diff --git a/.github/containers/centos7/Dockerfile b/.github/containers/centos7/Dockerfile deleted file mode 100644 index c27717ec50..0000000000 --- a/.github/containers/centos7/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM centos:7 - -RUN yum -y groupinstall 'Development Tools' -RUN yum -y install centos-packager -RUN yum -y install sudo -RUN yum -y install epel-release - -RUN useradd -s /bin/bash -m rpm -RUN echo >> /etc/sudoers -RUN echo "rpm ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers - -USER rpm -WORKDIR /home/rpm diff --git a/.github/containers/centos7/build.sh b/.github/containers/centos7/build.sh deleted file mode 100755 index bc4f3828e0..0000000000 --- a/.github/containers/centos7/build.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -set -e -set -x - -## Basic variables - -CURDIR=$(dirname $(readlink -f $0)) -TOPDIR=$(git rev-parse --show-toplevel 2>/dev/null) - -RPMDIR=${TOPDIR}/contrib/packages/rpm/el7 - -VERSION=$(grep '^set(VERSION ' ${TOPDIR}/CMakeLists.txt | sed 's@^set(VERSION \(.*\))@\1@') - -## Prepare the build directory - -rm -rf ${CURDIR}/rpmbuild -mkdir -p ${CURDIR}/rpmbuild/{BUILD,BUILDROOT,SRPMS,SOURCES,SPECS,RPMS} -chmod a+w ${CURDIR}/rpmbuild/{BUILD,BUILDROOT,SRPMS,RPMS} -[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled && chcon -Rt container_file_t ${CURDIR}/rpmbuild - -## Copy over the packaging files - -cp ${RPMDIR}/SOURCES/* ${CURDIR}/rpmbuild/SOURCES -cp ${RPMDIR}/SPECS/tigervnc.spec ${CURDIR}/rpmbuild/SPECS -sed -i "s/@VERSION@/${VERSION}/" ${CURDIR}/rpmbuild/SPECS/tigervnc.spec - -## Copy over the source code - -(cd ${TOPDIR} && git archive --prefix tigervnc-${VERSION}/ HEAD) | bzip2 > ${CURDIR}/rpmbuild/SOURCES/tigervnc-${VERSION}.tar.bz2 - -## Start the build - -docker run --volume ${CURDIR}/rpmbuild:/home/rpm/rpmbuild --interactive --rm tigervnc/${DOCKER} \ - bash -e -x -c " - sudo yum install -y xorg-x11-server-devel - sudo yum-builddep -y ~/rpmbuild/SPECS/tigervnc.spec - sudo chown 0.0 ~/rpmbuild/SOURCES/* - sudo chown 0.0 ~/rpmbuild/SPECS/* - rpmbuild -ba ~/rpmbuild/SPECS/tigervnc.spec - " - -mkdir -p ${CURDIR}/result -cp -av ${CURDIR}/rpmbuild/RPMS ${CURDIR}/result -cp -av ${CURDIR}/rpmbuild/SRPMS ${CURDIR}/result diff --git a/.github/containers/noble/Dockerfile b/.github/containers/noble/Dockerfile new file mode 100644 index 0000000000..171ab0f94e --- /dev/null +++ b/.github/containers/noble/Dockerfile @@ -0,0 +1,13 @@ +FROM ubuntu:noble + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update +RUN apt-get -y install packaging-dev equivs + +RUN useradd -s /bin/bash -m deb +RUN echo >> /etc/sudoers +RUN echo "deb ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers + +USER deb +WORKDIR /home/deb diff --git a/.github/containers/noble/build.sh b/.github/containers/noble/build.sh new file mode 100755 index 0000000000..1b90f16d05 --- /dev/null +++ b/.github/containers/noble/build.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +set -e +set -x + +## Basic variables + +CURDIR=$(dirname $(readlink -f $0)) +TOPDIR=$(git rev-parse --show-toplevel 2>/dev/null) + +DEBDIR=${TOPDIR}/contrib/packages/deb/ubuntu-noble + +VERSION=$(grep '^set(VERSION ' ${TOPDIR}/CMakeLists.txt | sed 's@^set(VERSION \(.*\))@\1@') + +## Prepare the build directory + +rm -rf ${CURDIR}/build +mkdir -p ${CURDIR}/build +chmod a+w ${CURDIR}/build +[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled && chcon -Rt container_file_t ${CURDIR}/build + +## Copy over the source code + +(cd ${TOPDIR} && git archive --prefix tigervnc-${VERSION}/ HEAD) | xz > ${CURDIR}/build/tigervnc_${VERSION}.orig.tar.xz + +## Copy over the packaging files + +cp -r ${DEBDIR}/debian ${CURDIR}/build/debian + +chmod a+x ${CURDIR}/build/debian/rules + +# Assemble a fake changelog entry to get the correct version + +cat - > ${CURDIR}/build/debian/changelog << EOT +tigervnc (${VERSION}-1ubuntu1) UNRELEASED; urgency=low + + * Automated build for TigerVNC + + -- Build bot $(date -R) + +EOT +cat ${DEBDIR}/debian/changelog >> ${CURDIR}/build/debian/changelog + +## Start the build + +docker run --volume ${CURDIR}/build:/home/deb/build --interactive --rm tigervnc/${DOCKER} \ + bash -e -x -c " + tar -C ~/build -axf ~/build/tigervnc_${VERSION}.orig.tar.xz + cp -a ~/build/debian ~/build/tigervnc-${VERSION}/debian + sudo apt-get update + mk-build-deps ~/build/tigervnc-${VERSION}/debian/control + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get install -y ~/tigervnc-build-deps_*.deb + cd ~/build/tigervnc-${VERSION} && dpkg-buildpackage + " + +mkdir -p ${CURDIR}/result +cp -av ${CURDIR}/build/*.deb ${CURDIR}/result +cp -av ${CURDIR}/build/*.ddeb ${CURDIR}/result diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d657a13063..c23cada951 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -111,11 +111,11 @@ jobs: strategy: matrix: target: - - centos7 - rocky8 - rocky9 - focal - jammy + - noble fail-fast: false runs-on: ubuntu-latest env: diff --git a/contrib/packages/deb/ubuntu-focal/debian/control b/contrib/packages/deb/ubuntu-focal/debian/control index b668e436c5..f88ad733cc 100644 --- a/contrib/packages/deb/ubuntu-focal/debian/control +++ b/contrib/packages/deb/ubuntu-focal/debian/control @@ -13,7 +13,6 @@ Build-Depends: cmake, pkg-config, gettext, - libpixman-1-dev, zlib1g-dev, libjpeg-turbo8-dev, libavcodec-dev, @@ -24,9 +23,6 @@ Build-Depends: libgmp-dev, libpam0g-dev, libpng-dev, - libxext-dev, - libxi-dev, - libxtst-dev, libxrandr-dev, libxdamage-dev, libxfixes-dev, @@ -37,7 +33,6 @@ Build-Depends: # Xorg dependencies debhelper (>= 10), po-debconf, - dpkg-dev (>= 1.16.1), quilt, lsb-release, pkg-config, diff --git a/contrib/packages/deb/ubuntu-focal/debian/copyright b/contrib/packages/deb/ubuntu-focal/debian/copyright index 905754e3ef..aa70681159 100644 --- a/contrib/packages/deb/ubuntu-focal/debian/copyright +++ b/contrib/packages/deb/ubuntu-focal/debian/copyright @@ -22,7 +22,7 @@ TigerVNC is Copyright (C) 2009-2011 D. R. Commander Copyright (C) 2009-2011 Pierre Ossman for Cendio AB Copyright (C) 2004, 2009-2011 Red Hat, Inc. - Copyright (C) 2009-2019 TigerVNC Team + Copyright (C) 2009-2024 TigerVNC Team All Rights Reserved. This software is distributed under the GNU General Public Licence as published diff --git a/contrib/packages/deb/ubuntu-jammy/debian/control b/contrib/packages/deb/ubuntu-jammy/debian/control index cf6175ef82..f62e398e26 100644 --- a/contrib/packages/deb/ubuntu-jammy/debian/control +++ b/contrib/packages/deb/ubuntu-jammy/debian/control @@ -11,25 +11,18 @@ Build-Depends: dpkg-dev (>= 1.16.1), appstream, cmake, - pkg-config, gettext, - libpixman-1-dev, zlib1g-dev, libjpeg-turbo8-dev, libavcodec-dev, libavutil-dev, libswscale-dev, libgnutls28-dev, - nettle-dev, libgmp-dev, libpam0g-dev, libpng-dev, - libxext-dev, - libxi-dev, - libxtst-dev, libxrandr-dev, libxdamage-dev, - libxfixes-dev, libfltk1.3-dev, xorg-server-source, xserver-xorg-dev, diff --git a/contrib/packages/deb/ubuntu-jammy/debian/copyright b/contrib/packages/deb/ubuntu-jammy/debian/copyright index 905754e3ef..aa70681159 100644 --- a/contrib/packages/deb/ubuntu-jammy/debian/copyright +++ b/contrib/packages/deb/ubuntu-jammy/debian/copyright @@ -22,7 +22,7 @@ TigerVNC is Copyright (C) 2009-2011 D. R. Commander Copyright (C) 2009-2011 Pierre Ossman for Cendio AB Copyright (C) 2004, 2009-2011 Red Hat, Inc. - Copyright (C) 2009-2019 TigerVNC Team + Copyright (C) 2009-2024 TigerVNC Team All Rights Reserved. This software is distributed under the GNU General Public Licence as published diff --git a/contrib/packages/deb/ubuntu-noble/debian/changelog b/contrib/packages/deb/ubuntu-noble/debian/changelog new file mode 100644 index 0000000000..65967959f6 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/changelog @@ -0,0 +1,5 @@ +tigervnc (1.13.80) noble; urgency=low + + * Initial release. + + -- Brian P. Hinz Tue, 18 Jun 2024 18:50:23 -0400 diff --git a/contrib/packages/deb/ubuntu-noble/debian/compat b/contrib/packages/deb/ubuntu-noble/debian/compat new file mode 100644 index 0000000000..f599e28b8a --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/compat @@ -0,0 +1 @@ +10 diff --git a/contrib/packages/deb/ubuntu-noble/debian/control b/contrib/packages/deb/ubuntu-noble/debian/control new file mode 100644 index 0000000000..1b34193d7c --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/control @@ -0,0 +1,188 @@ +Source: tigervnc +Section: x11 +Priority: optional +Maintainer: Brian P. Hinz +Standards-Version: 3.8.4 +Build-Depends: +# TigerVNC dependencies + debhelper (>= 9), + dh-autoreconf, + po-debconf, + dpkg-dev (>= 1.16.1), + appstream, + cmake, + pkg-config, + gettext, + zlib1g-dev, + libjpeg-turbo8-dev, + libavcodec-dev, + libavutil-dev, + libswscale-dev, + libgnutls28-dev, + nettle-dev, + libgmp-dev, + libpam0g-dev, + libpng-dev, + libxrandr-dev, + libxdamage-dev, + libfltk1.3-dev, + xorg-server-source, + xserver-xorg-dev, + openjdk-8-jdk, +# Xorg dependencies +# debhelper-compat (= 12), + quilt, + bison, + flex, + xutils-dev (>= 1:7.6+4), + xfonts-utils (>= 1:7.5+1), + x11proto-dev (>= 2021.5), + xtrans-dev (>= 1.3.5), + libxau-dev (>= 1:1.0.5-2), + libxcvt-dev, + libxdmcp-dev (>= 1:0.99.1), + libxfont-dev (>= 1:2.0.1), + libxkbfile-dev (>= 1:0.99.1), + libpixman-1-dev (>= 0.27.2), + libpciaccess-dev (>= 0.12.901), + libgcrypt20-dev, + libudev-dev (>= 151-3) [linux-any], + libselinux1-dev (>= 2.0.80) [linux-any], + libaudit-dev [linux-any], + libdrm-dev (>= 2.4.107-5~) [!hurd-i386], + libgl1-mesa-dev (>= 9.2), + mesa-common-dev, +# Don't use libunwind for armel, armhf, and arm64 as this library is buggy (bug #923962) on those architectures. + libunwind-dev [amd64 hppa i386 ia64 mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el sh4], + libxmuu-dev (>= 1:0.99.1), + libxext-dev (>= 1:0.99.1), + libx11-dev (>= 2:1.6), + libxrender-dev (>= 1:0.9.0), + libxi-dev (>= 2:1.8), + libxpm-dev (>= 1:3.5.3), + libxaw7-dev (>= 1:0.99.1), + libxt-dev (>= 1:0.99.1), + libxmu-dev (>= 1:0.99.1), + libxtst-dev (>= 1:0.99.1), + libxres-dev (>= 1:0.99.1), + libxfixes-dev (>= 1:3.0.0), + libxv-dev, + libxinerama-dev, + libxshmfence-dev (>= 1.1) [!hurd-i386], +# glamor + libepoxy-dev [linux-any kfreebsd-any], + libegl1-mesa-dev [linux-any kfreebsd-any], + libgbm-dev (>= 10.2) [linux-any kfreebsd-any], +## XCB bits for Xephyr +# libx11-xcb-dev, +# libxcb1-dev, +# libxcb-xkb-dev, +# libxcb-shape0-dev, +# libxcb-render0-dev, +# libxcb-render-util0-dev, +# libxcb-util0-dev, +# libxcb-image0-dev, +# libxcb-icccm4-dev, +# libxcb-shm0-dev, +# libxcb-keysyms1-dev, +# libxcb-randr0-dev, +# libxcb-xv0-dev, +# libxcb-glx0-dev, +# libxcb-xf86dri0-dev (>= 1.6), +# unit tests + xkb-data, + x11-xkb-utils, +# arc4random_buf(), getpeereid() + libbsd-dev, +#logind + libdbus-1-dev (>= 1.0) [linux-any], +# systemd-daemon + libsystemd-dev [linux-any], +Homepage: http://www.tigervnc.com + +Package: tigervncserver +Architecture: any +Provides: + xserver, + vnc-server +Depends: + x11-common | xserver-common, + x11-utils, + xauth, + x11-xkb-utils, + ${shlibs:Depends}, + ${perl:Depends}, + ${misc:Depends} +Recommends: + xfonts-base, + x11-xserver-utils +Suggests: + xtigervncviewer, + tigervnc-java +Description: virtual network computing server software + Virtual Network Computing (VNC) is a remote display system which allows you to + view and interact with a virtual desktop environment that is running on another + computer on the network. Using VNC, you can run graphical applications on a + remote machine and send only the display from these applications to your local + machine. VNC is platform-independent and supports a wide variety of operating + systems and architectures as both servers and clients. + . + TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code + bases. TigerVNC started as a next-generation development effort for TightVNC + on Unix and Linux platforms, but it split from its parent project in early 2009 + so that TightVNC could focus on Windows platforms. TigerVNC supports a variant + of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo + JPEG codec. + +Package: xtigervncviewer +Architecture: any +Provides: + vncviewer, + vnc-viewer +Depends: + ${shlibs:Depends}, + ${misc:Depends} +Recommends: + xfonts-base +Suggests: + tigervncserver, + ssh +Description: virtual network computing client software for X + Virtual Network Computing (VNC) is a remote display system which allows you to + view and interact with a virtual desktop environment that is running on another + computer on the network. Using VNC, you can run graphical applications on a + remote machine and send only the display from these applications to your local + machine. VNC is platform-independent and supports a wide variety of operating + systems and architectures as both servers and clients. + . + TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code + bases. TigerVNC started as a next-generation development effort for TightVNC + on Unix and Linux platforms, but it split from its parent project in early 2009 + so that TightVNC could focus on Windows platforms. TigerVNC supports a variant + of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo + JPEG codec. + +Package: tigervnc-java +Architecture: any +Suggests: + tigervncserver +Provides: + vncviewer, + vnc-viewer +Depends: + default-jre +Description: TigerVNC java applet + Virtual Network Computing (VNC) is a remote display system which allows you to + view and interact with a virtual desktop environment that is running on another + computer on the network. Using VNC, you can run graphical applications on a + remote machine and send only the display from these applications to your local + machine. VNC is platform-independent and supports a wide variety of operating + systems and architectures as both servers and clients. + . + TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code + bases. TigerVNC started as a next-generation development effort for TightVNC + on Unix and Linux platforms, but it split from its parent project in early 2009 + so that TightVNC could focus on Windows platforms. TigerVNC supports a variant + of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo + JPEG codec. + diff --git a/contrib/packages/deb/ubuntu-noble/debian/copyright b/contrib/packages/deb/ubuntu-noble/debian/copyright new file mode 100644 index 0000000000..8159ec5728 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/copyright @@ -0,0 +1,116 @@ +This package was packaged for Debian by Brian P. Hinz +on Tue, 18 Jun 2024 18:54:03 -0400 using the tightvnc package as a base. + +It was downloaded from: + https://www.tigervnc.org/ + +COPYRIGHT: +========== + +TigerVNC is + + Copyright (C) 1999 AT&T Laboratories Cambridge + Copyright (C) 2002-2005 RealVNC Ltd. + Copyright (C) 2000-2006 TightVNC Group + Copyright (C) 2005-2006 Martin Koegler + Copyright (C) 2005-2006 Sun Microsystems, Inc. + Copyright (C) 2006 OCCAM Financial Technology + Copyright (C) 2000-2008 Constantin Kaplinsky + Copyright (C) 2004-2017 Peter Astrand for Cendio AB + Copyright (C) 2010 Antoine Martin + Copyright (C) 2010 m-privacy GmbH + Copyright (C) 2009-2011 D. R. Commander + Copyright (C) 2009-2011 Pierre Ossman for Cendio AB + Copyright (C) 2004, 2009-2011 Red Hat, Inc. + Copyright (C) 2009-2024 TigerVNC Team + All Rights Reserved. + +This software is distributed under the GNU General Public Licence as published +by the Free Software Foundation. See the file LICENCE.TXT for the conditions +under which this software is made available. TigerVNC also contains code from +other sources. See the Acknowledgements section below, and the individual +source files, for details of the conditions under which they are made +available. + +ACKNOWLEDGEMENTS +================ + +This distribution contains zlib compression software. This is: + + Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). + + +This distribution contains public domain DES software by Richard Outerbridge. +This is: + + Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge. + (GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992. + + +This distribution contains software from the X Window System. This is: + + Copyright 1987, 1988, 1998 The Open Group + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of The Open Group shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from The Open Group. + + + Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and that + both that copyright notice and this permission notice appear in + supporting documentation, and that the name of Digital not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. diff --git a/contrib/packages/deb/ubuntu-noble/debian/rules b/contrib/packages/deb/ubuntu-noble/debian/rules new file mode 100644 index 0000000000..02e798c9ff --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/rules @@ -0,0 +1,288 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 by Joey Hess. +export DEB_BUILD_MAINT_OPTIONS=hardening=+all + +CFLAGS := $(shell dpkg-buildflags --get CFLAGS) +CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) +CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) +LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) + +export CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + +NUMJOBS := -j$(shell nproc) + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif +SOURCE_NAME := tigervnc +SOURCE_VERSION := $(shell dpkg-parsechangelog | awk -F': ' '/^Version: / {print $$2}') +BUILDER=For technical support please see http://sourceforge.net/projects/tigervnc/support +libdir = /usr/lib/$(DEB_HOST_MULTIARCH) + + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g -O2 -fPIC +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +export CC = gcc + +# use xorg sources as shipped in xorg-server-source package +XORG_SOURCE_ARCHIVE = /usr/src/xorg-server.tar.xz + +xorg-source-stamp: $(XORG_SOURCE_ARCHIVE) + tar -C unix/xserver -axf $(XORG_SOURCE_ARCHIVE) --strip-components=1 + cd unix/xserver && patch -p1 < ../xserver21.1.1.patch + patch -p1 < debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch + touch xorg-source-stamp + +configure: config-stamp +config-stamp: xorg-source-stamp + dh_testdir + # Add here commands to configure the package. + cmake -G"Unix Makefiles" \ + -DBUILD_STATIC=off \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_INSTALL_LIBEXECDIR:PATH=lib/$(DEB_HOST_MULTIARCH) \ + -DCMAKE_INSTALL_UNITDIR:PATH=/lib/systemd/system + (cd unix/xserver; \ + export PIXMANINCDIR=/usr/include/pixman-1; \ + autoreconf -fiv; \ + patch -p1 -i ../../debian/xorg-source-patches/debian_libtool.patch; \ + ./configure --prefix=/usr \ + --disable-silent-rules \ + --disable-static \ + --without-dtrace \ + --disable-strict-compilation \ + --disable-debug \ + --disable-unit-tests \ + --with-int10=x86emu \ + --with-extra-module-dir="/usr/lib/${DEB_HOST_MULTIARCH}/xorg/extra-modules,/usr/lib/xorg/extra-modules" \ + --with-os-vendor="$(VENDOR)" \ + --with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(BUILDER))" \ + --with-xkb-path=/usr/share/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + --with-default-xkb-rules=evdev \ + --disable-devel-docs \ + --enable-mitshm \ + --enable-xres \ + --disable-xcsecurity \ + --disable-tslib \ + --enable-dbe \ + --disable-xf86bigfont \ + --disable-dpms \ + --disable-config-hal \ + --disable-config-udev \ + --disable-xorg \ + --disable-xquartz \ + --disable-xwin \ + --disable-xfake \ + --disable-install-setuid \ + --with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType,built-ins" \ + --enable-aiglx \ + --enable-composite \ + --enable-record \ + --enable-xv \ + --enable-xvmc \ + --enable-dga \ + --enable-screensaver \ + --enable-xdmcp \ + --enable-xdm-auth-1 \ + --enable-glx \ + --disable-dri --enable-dri2 --disable-dri3 \ + --enable-xinerama \ + --enable-xf86vidmode \ + --enable-xace \ + --enable-xfree86-utils \ + --disable-dmx \ + --disable-xvfb \ + --disable-xnest \ + --disable-kdrive \ + --disable-xephyr \ + --enable-xfbdev \ + --with-sha1=libgcrypt \ + --enable-xcsecurity \ + --disable-docs \ + --disable-selective-werror) + touch config-stamp + +build-arch: config-stamp build-arch-stamp +build-arch-stamp: + dh_testdir + + # Add here command to compile/build the package. + # Build first things. + # Build Xvnc + make $(NUMJOBS) LDFLAGS="-lpng" + make $(NUMJOBS) -C unix/xserver + + touch build-arch-stamp + +build-indep: config-stamp build-indep-stamp +build-indep-stamp: + dh_testdir + + # Add here command to compile/build the arch indep package. + # It's ok not to do anything here, if you don't need to build + # anything for this package. + #/usr/bin/docbook-to-man debian/vnc.sgml > vnc.1 + (cd media;make) + #(cd java;cmake -G"Unix Makefiles";make) + + touch build-indep-stamp + +build: build-arch build-indep + +clean: + dh_testdir + dh_testroot + rm -f build-arch-stamp build-indep-stamp config-stamp + + # Add here commands to clean up after the build process. + dh_clean + +install: DH_OPTIONS= +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_prep + dh_installdirs + # Add here commands to install the package into debian/vnc. + make install DESTDIR=$(CURDIR)/debian/tigervncserver + (cd unix/xserver/hw/vnc; make install DESTDIR=$(CURDIR)/debian/tigervncserver) + # rename server files to tigervnc specific names + mv $(CURDIR)/debian/tigervncserver/usr/bin/Xvnc \ + $(CURDIR)/debian/tigervncserver/usr/bin/Xtigervnc + mv $(CURDIR)/debian/tigervncserver/usr/bin/vncconfig \ + $(CURDIR)/debian/tigervncserver/usr/bin/tigervncconfig + mv $(CURDIR)/debian/tigervncserver/usr/bin/vncpasswd \ + $(CURDIR)/debian/tigervncserver/usr/bin/tigervncpasswd + mv $(CURDIR)/debian/tigervncserver/usr/bin/x0vncserver \ + $(CURDIR)/debian/tigervncserver/usr/bin/x0tigervncserver + mv $(CURDIR)/debian/tigervncserver/usr/sbin/vncsession \ + $(CURDIR)/debian/tigervncserver/usr/sbin/tigervncsession + mv $(CURDIR)/debian/tigervncserver/usr/lib/$(DEB_HOST_MULTIARCH)/vncserver \ + $(CURDIR)/debian/tigervncserver/usr/lib/$(DEB_HOST_MULTIARCH)/tigervncserver + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncconfig.1 \ + $(CURDIR)/debian/tigervncserver/usr/share/man/man1/tigervncconfig.1 + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncpasswd.1 \ + $(CURDIR)/debian/tigervncserver/usr/share/man/man1/tigervncpasswd.1 + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/x0vncserver.1 \ + $(CURDIR)/debian/tigervncserver/usr/share/man/man1/x0tigervncserver.1 + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/Xvnc.1 \ + $(CURDIR)/debian/tigervncserver/usr/share/man/man1/Xtigervnc.1 + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man8/vncsession.8 \ + $(CURDIR)/debian/tigervncserver/usr/share/man/man8/tigervncsession.8 + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man8/vncserver.8 \ + $(CURDIR)/debian/tigervncserver/usr/share/man/man8/tigervncserver.8 + # delete development files + rm -f $(CURDIR)/debian/tigervncserver/usr/lib/xorg/modules/extensions/libvnc.la + # move viewer files to viewer package, rename on the fly + mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/bin + mv $(CURDIR)/debian/tigervncserver/usr/bin/vncviewer \ + $(CURDIR)/debian/xtigervncviewer/usr/bin/xtigervncviewer + mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/share/man/man1 + mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncviewer.1 \ + $(CURDIR)/debian/xtigervncviewer/usr/share/man/man1/xtigervncviewer.1 + mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/share + mv $(CURDIR)/debian/tigervncserver/usr/share/applications \ + $(CURDIR)/debian/xtigervncviewer/usr/share/ + mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/share + mv $(CURDIR)/debian/tigervncserver/usr/share/icons \ + $(CURDIR)/debian/xtigervncviewer/usr/share/ + # tigervnc-java + #mkdir -p $(CURDIR)/debian/tigervnc-java/usr/share + #(cd java; make install DESTDIR=$(CURDIR)/debian/tigervnc-java/usr/share) + # install additional license files + mkdir -p $(CURDIR)/debian/xtigervncviewer/usr/share/doc/xtigervncviewer + cp $(CURDIR)/debian/tigervncserver/usr/share/doc/tigervnc/* \ + $(CURDIR)/debian/xtigervncviewer/usr/share/doc/xtigervncviewer/ + #mkdir -p $(CURDIR)/debian/tigervnc-java/usr/share/doc/tigervnc-java + #cp $(CURDIR)/debian/tigervncserver/usr/share/doc/tigervnc/* \ + #$(CURDIR)/debian/tigervnc-java/usr/share/doc/tigervnc-java/ + mkdir -p $(CURDIR)/debian/tigervncserver/usr/share/doc/tigervncserver + mv $(CURDIR)/debian/tigervncserver/usr/share/doc/tigervnc \ + $(CURDIR)/debian/tigervncserver/usr/share/doc/tigervncserver +# dh_movefiles + sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ + debian/tigervncserver.postinst.in > debian/tigervncserver.postinst + +# Build architecture-independent files here. +# Pass -i to all debhelper commands in this target to reduce clutter. +binary-indep: build install + +binary-indep-keep: + dh_testdir -i + dh_testroot -i +# dh_installdebconf -i + dh_install + dh_installdocs -i + dh_installexamples -i + dh_installmenu -i +# dh_installlogrotate -i +# dh_installemacsen -i +# dh_installpam -i +# dh_installmime -i +# dh_installinit -i + dh_installcron -i + dh_installman -i + dh_installinfo -i +# dh_undocumented -i + dh_installchangelogs -i + dh_link -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_perl -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir -a + dh_testroot -a +# dh_installdebconf -a + dh_installdocs -a +# dh_installexamples -a + dh_installmenu -a +# dh_installlogrotate -a +# dh_installemacsen -a +# dh_installpam -a +# dh_installmime -a + dh_install + dh_installinit -a +# dh_installcron -a + dh_installman -a + dh_installinfo -a +# dh_undocumented -a + dh_installchangelogs -a + # Remove empty directories + dh_strip -a + dh_link -a + dh_compress -a + dh_fixperms -a + dh_makeshlibs -a + dh_installdeb -a + dh_perl -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/contrib/packages/deb/ubuntu-noble/debian/source/format b/contrib/packages/deb/ubuntu-noble/debian/source/format new file mode 100644 index 0000000000..163aaf8d82 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/contrib/packages/deb/ubuntu-noble/debian/tigervncserver.postinst.in b/contrib/packages/deb/ubuntu-noble/debian/tigervncserver.postinst.in new file mode 100644 index 0000000000..2491329161 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/tigervncserver.postinst.in @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ]; then + MAN=/usr/share/man + BIN=/usr/bin + SBIN=/usr/sbin + LIB=/usr/lib/@DEB_HOST_MULTIARCH@ + update-alternatives --install \ + $SBIN/vncsession vncsession $SBIN/tigervncsession 64 \ + --slave \ + $LIB/vncserver vncserver $LIB/tigervncserver \ + --slave \ + $MAN/man8/vncsession.8.gz vncsession.8.gz $MAN/man8/tigervncsession.8.gz \ + --slave \ + $MAN/man8/vncserver.8.gz vncserver.8.gz $MAN/man8/tigervncserver.8.gz + update-alternatives --install \ + $BIN/Xvnc Xvnc $BIN/Xtigervnc 74 \ + --slave \ + $MAN/man1/Xvnc.1.gz Xvnc.1.gz $MAN/man1/Xtigervnc.1.gz + update-alternatives --install \ + $BIN/x0vncserver x0vncserver $BIN/x0tigervncserver 74 \ + --slave \ + $MAN/man1/x0vncserver.1.gz x0vncserver.1.gz $MAN/man1/x0tigervncserver.1.gz + update-alternatives --install \ + $BIN/vncpasswd vncpasswd $BIN/tigervncpasswd 74 \ + --slave \ + $MAN/man1/vncpasswd.1.gz vncpasswd.1.gz $MAN/man1/tigervncpasswd.1.gz + update-alternatives --install \ + $BIN/vncconfig vncconfig $BIN/tigervncconfig 64 \ + --slave \ + $MAN/man1/vncconfig.1.gz vncconfig.1.gz $MAN/man1/tigervncconfig.1.gz +fi + +#DEBHELPER# + +exit 0 diff --git a/contrib/packages/deb/ubuntu-noble/debian/tigervncserver.prerm b/contrib/packages/deb/ubuntu-noble/debian/tigervncserver.prerm new file mode 100644 index 0000000000..2e8e77c487 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/tigervncserver.prerm @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ] ; then + BIN=/usr/bin + SBIN=/usr/sbin + update-alternatives --remove \ + vncsession $SBIN/tigervncsession + update-alternatives --remove \ + Xvnc $BIN/Xtigervnc + update-alternatives --remove \ + x0vncserver $BIN/x0tigervncserver + update-alternatives --remove \ + vncpasswd $BIN/tigervncpasswd + update-alternatives --remove \ + tigervncconfig $BIN/tigervncconfig +fi + +#DEBHELPER# + +exit 0 diff --git a/contrib/packages/deb/ubuntu-noble/debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch b/contrib/packages/deb/ubuntu-noble/debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch new file mode 100644 index 0000000000..4575f6a976 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch @@ -0,0 +1,10 @@ +--- a/unix/xserver/man/Makefile.am 2013-03-30 17:51:01.707258746 -0400 ++++ b/unix/xserver/man/Makefile.am 2013-03-30 17:51:47.606569692 -0400 +@@ -2,5 +2,7 @@ + # (i.e. those handled in the os/utils.c options processing instead of in + # the DDX-level options processing) + ++if ENABLE_DOCS + include $(top_srcdir)/manpages.am + appman_PRE = Xserver.man ++endif ENABLE_DOCS diff --git a/contrib/packages/deb/ubuntu-noble/debian/xorg-source-patches/debian_libtool.patch b/contrib/packages/deb/ubuntu-noble/debian/xorg-source-patches/debian_libtool.patch new file mode 100644 index 0000000000..d24877d2c7 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/xorg-source-patches/debian_libtool.patch @@ -0,0 +1,87 @@ +Index: a/ltmain.sh +=================================================================== +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -7890,19 +7890,19 @@ + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" +- tmp_libs= +- for deplib in $dependency_libs; do +- deplibs="$deplib $deplibs" +- if $opt_preserve_dup_deps; then +- case "$tmp_libs " in +- *" $deplib "*) func_append specialdeplibs " $deplib" ;; +- esac +- fi +- func_append tmp_libs " $deplib" +- done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if $opt_preserve_dup_deps; then ++ case "$tmp_libs " in ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; ++ esac ++ fi ++ func_append tmp_libs " $deplib" ++ done + continue + fi # $pass = conv + +## Do not link against deplibs. This is not needed for shared libs +## on atleast ELF systems since those already know which libs they +## need themself. This seems to break a few things and will be fixed +## in a better way in a future upstream version. + +Index: a/ltmain.sh +=================================================================== +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -7568,10 +7568,7 @@ + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; +- link) +- libs="$deplibs %DEPLIBS%" +- test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" +- ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then +Index: a/m4/libtool.m4 +=================================================================== +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -4936,9 +4936,6 @@ + ;; + esac + ;; +- linux* | k*bsd*-gnu | gnu*) +- _LT_TAGVAR(link_all_deplibs, $1)=no +- ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; +@@ -4998,9 +5001,6 @@ + openbsd* | bitrig*) + with_gnu_ld=no + ;; +- linux* | k*bsd*-gnu | gnu*) +- _LT_TAGVAR(link_all_deplibs, $1)=no +- ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes +@@ -5773,7 +5779,6 @@ + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi +- _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' diff --git a/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.menu b/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.menu new file mode 100644 index 0000000000..aac942ca36 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.menu @@ -0,0 +1,5 @@ +?package(xtigervncviewer):needs="x11" \ + section="Applications/Network/Communication" \ + hints="VNC,remote-control"\ + title="xtigervncviewer" \ + command="/usr/bin/xtigervncviewer" diff --git a/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.postinst b/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.postinst new file mode 100644 index 0000000000..4df0c65fe3 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.postinst @@ -0,0 +1,18 @@ +#!/bin/sh -e + +if [ "$1" = "configure" ]; then + MAN=/usr/share/man/man1 + BIN=/usr/bin + update-alternatives --install \ + $BIN/vncviewer vncviewer $BIN/xtigervncviewer 74 \ + --slave \ + $MAN/vncviewer.1.gz vncviewer.1.gz $MAN/xtigervncviewer.1.gz \ + --slave \ + $MAN/xvncviewer.1.gz xvncviewer.1.gz $MAN/xtigervncviewer.1.gz \ + --slave \ + $BIN/xvncviewer xvncviewer $BIN/xtigervncviewer +fi + +#DEBHELPER# + +exit 0 diff --git a/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.prerm b/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.prerm new file mode 100644 index 0000000000..7a51fd2cd0 --- /dev/null +++ b/contrib/packages/deb/ubuntu-noble/debian/xtigervncviewer.prerm @@ -0,0 +1,11 @@ +#!/bin/sh -e + +if [ "$1" = "remove" ] ; then + BIN=/usr/bin + update-alternatives --remove \ + vncviewer $BIN/xtigervncviewer +fi + +#DEBHELPER# + +exit 0