From 1eb0f86fb2fc91337b2193b61a00498a4d0c36a8 Mon Sep 17 00:00:00 2001 From: "Brian P. Hinz" Date: Sat, 19 Dec 2020 15:30:16 -0500 Subject: [PATCH] Initial support for ubuntu focal --- .travis.yml | 1 + .travis/focal/Dockerfile | 13 + .travis/focal/build.sh | 55 ++++ .../deb/ubuntu-focal/debian/changelog | 5 + .../packages/deb/ubuntu-focal/debian/compat | 1 + .../packages/deb/ubuntu-focal/debian/control | 70 +++++ .../deb/ubuntu-focal/debian/copyright | 116 +++++++ .../packages/deb/ubuntu-focal/debian/rules | 289 ++++++++++++++++++ .../deb/ubuntu-focal/debian/source/format | 1 + .../debian/tigervncserver.postinst.in | 38 +++ .../ubuntu-focal/debian/tigervncserver.prerm | 22 ++ .../100_rethrow_signals.patch | 22 ++ .../516_tigervnc-xorg-manpages.patch | 10 + .../xorg-source-patches/debian_libtool.patch | 87 ++++++ .../ubuntu-focal/debian/xtigervncviewer.menu | 5 + .../debian/xtigervncviewer.postinst | 18 ++ .../ubuntu-focal/debian/xtigervncviewer.prerm | 11 + 17 files changed, 764 insertions(+) create mode 100644 .travis/focal/Dockerfile create mode 100755 .travis/focal/build.sh create mode 100644 contrib/packages/deb/ubuntu-focal/debian/changelog create mode 100644 contrib/packages/deb/ubuntu-focal/debian/compat create mode 100644 contrib/packages/deb/ubuntu-focal/debian/control create mode 100644 contrib/packages/deb/ubuntu-focal/debian/copyright create mode 100644 contrib/packages/deb/ubuntu-focal/debian/rules create mode 100644 contrib/packages/deb/ubuntu-focal/debian/source/format create mode 100644 contrib/packages/deb/ubuntu-focal/debian/tigervncserver.postinst.in create mode 100644 contrib/packages/deb/ubuntu-focal/debian/tigervncserver.prerm create mode 100644 contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/100_rethrow_signals.patch create mode 100644 contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch create mode 100644 contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/debian_libtool.patch create mode 100644 contrib/packages/deb/ubuntu-focal/debian/xtigervncviewer.menu create mode 100644 contrib/packages/deb/ubuntu-focal/debian/xtigervncviewer.postinst create mode 100644 contrib/packages/deb/ubuntu-focal/debian/xtigervncviewer.prerm diff --git a/.travis.yml b/.travis.yml index f221dc58..34493262 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ env: - DOCKER=centos7 - DOCKER=xenial - DOCKER=bionic + - DOCKER=focal matrix: include: diff --git a/.travis/focal/Dockerfile b/.travis/focal/Dockerfile new file mode 100644 index 00000000..7fea0d10 --- /dev/null +++ b/.travis/focal/Dockerfile @@ -0,0 +1,13 @@ +FROM ubuntu:focal + +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/.travis/focal/build.sh b/.travis/focal/build.sh new file mode 100755 index 00000000..892aefae --- /dev/null +++ b/.travis/focal/build.sh @@ -0,0 +1,55 @@ +#!/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-focal + +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 --tty --rm tigervnc/${DOCKER} \ + bash -c " + tar -C ~/build -axf ~/build/tigervnc_${VERSION}.orig.tar.xz && + cp -a ~/build/debian ~/build/tigervnc-${VERSION}/debian && + mk-build-deps ~/build/tigervnc-${VERSION}/debian/control && + sudo dpkg --unpack ~/tigervnc-build-deps_*.deb && + sudo apt-get update && + sudo apt-get -f install -y && + cd ~/build/tigervnc-${VERSION} && dpkg-buildpackage + " diff --git a/contrib/packages/deb/ubuntu-focal/debian/changelog b/contrib/packages/deb/ubuntu-focal/debian/changelog new file mode 100644 index 00000000..fc50c979 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/changelog @@ -0,0 +1,5 @@ +tigervnc (1.11.80) focal; urgency=low + + * Initial release. + + -- Brian P. Hinz Sat, 19 Dec 2020 15:27:35 -0400 diff --git a/contrib/packages/deb/ubuntu-focal/debian/compat b/contrib/packages/deb/ubuntu-focal/debian/compat new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/compat @@ -0,0 +1 @@ +9 diff --git a/contrib/packages/deb/ubuntu-focal/debian/control b/contrib/packages/deb/ubuntu-focal/debian/control new file mode 100644 index 00000000..a3cba9d6 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/control @@ -0,0 +1,70 @@ +Source: tigervnc +Section: x11 +Priority: optional +Maintainer: Brian P. Hinz +Standards-Version: 3.8.4 +Build-Depends: debhelper (>= 9),dh-autoreconf,po-debconf,dpkg-dev (>= 1.16.1),quilt,lsb-release,pkg-config,bison,flex,xauth,xutils-dev (>= 1:7.6+4),xfonts-utils (>= 1:7.5+1),x11proto-bigreqs-dev (>= 1:1.1.0),x11proto-composite-dev (>= 1:0.4),x11proto-core-dev (>= 7.0.31),x11proto-damage-dev (>= 1.1),x11proto-fixes-dev (>= 1:5.0),x11proto-fonts-dev (>= 2.1.3),x11proto-kb-dev (>= 1.0.3),x11proto-xinerama-dev,x11proto-randr-dev (>= 1.5.0),x11proto-record-dev (>= 1.13.99.1),x11proto-render-dev (>= 2:0.11),x11proto-resource-dev (>= 1.2.0),x11proto-scrnsaver-dev,x11proto-video-dev,x11proto-xcmisc-dev (>= 1.2.0),x11proto-xext-dev (>= 7.2.99.901),x11proto-xf86bigfont-dev (>= 1.2.0),x11proto-xf86dga-dev (>= 2.0.99.1),x11proto-xf86vidmode-dev (>= 2.2.99.1),x11proto-present-dev,x11proto-dri3-dev,xtrans-dev (>= 1.3.5),libxau-dev (>= 1:1.0.5-2),x11proto-input-dev (>= 2.3),x11proto-dri2-dev (>= 2.8),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),libgcrypt-dev,nettle-dev,libudev-dev (>= 151-3) [linux-any],libselinux1-dev (>= 2.0.80) [linux-any],libaudit-dev [linux-any],x11proto-xf86dri-dev (>= 2.1.0),libdrm-dev (>= 2.4.46) [!hurd-i386],x11proto-gl-dev (>= 1.4.17),libgl1-mesa-dev (>= 9.2),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.6.99.1),x11proto-dmx-dev (>= 1:2.2.99.1),libdmx-dev (>= 1:1.0.1),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],libepoxy-dev [linux-any kfreebsd-any],libegl1-mesa-dev [linux-any kfreebsd-any],libgbm-dev (>= 10.2) [linux-any kfreebsd-any],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),xkb-data,x11-xkb-utils,libbsd-dev,libwayland-dev [linux-any],wayland-protocols (>= 1.9) [linux-any],libdbus-1-dev (>= 1.0) [linux-any],libsystemd-dev [linux-any],libmirclient-dev (>= 0.13.1) [!powerpc !ppc64el !s390x],mir-client-platform-mesa-dev,zlib1g-dev,libjpeg-turbo8-dev,perl-modules,cmake,gnutls-dev,libpam0g-dev,libpng-dev,automake,autoconf,libtool,pkg-config,openjdk-8-jdk,xorg-server-source,libfltk1.3-dev,fluid,curl,bzip2,quilt,libosmesa6-dev,libgl1-mesa-dri,libgl1-mesa-glx,libxft-dev,xfonts-base,libexpat1-dev,libfontconfig1-dev,libglu1-mesa-dev,libxcursor-dev,libxrandr-dev,libcairo2-dev,mesa-common-dev +Homepage: http://www.tigervnc.com + +Package: tigervncserver +Architecture: any +Provides: xserver, vnc-server +Depends: x11-common | xserver-common, x11-utils, xauth, libbz2-1.0, libc6, libfontenc1, libfreetype6, libgcc1, libgl1-mesa-dri, libgnutls30, libjpeg-turbo8, libp11-kit0, libpam0g, libpixman-1-0, libstdc++6, libtasn1-6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxfont-dev, libxtst6, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3, x11-xkb-utils +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: libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgnutls30, libjpeg-turbo8, libp11-kit0, libpng16-16, libstdc++6, libtasn1-6, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxft2, libxrender1, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3, libfltk1.3, libfltk-images1.3 +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-focal/debian/copyright b/contrib/packages/deb/ubuntu-focal/debian/copyright new file mode 100644 index 00000000..905754e3 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/copyright @@ -0,0 +1,116 @@ +This package was packaged for Debian by Brian P. Hinz +on Mon, 28 Oct 2019 21:29:33 +0500 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-2019 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-focal/debian/rules b/contrib/packages/deb/ubuntu-focal/debian/rules new file mode 100644 index 00000000..7590e913 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/rules @@ -0,0 +1,289 @@ +#!/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 < ../xserver120.patch + patch -p1 < debian/xorg-source-patches/100_rethrow_signals.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-focal/debian/source/format b/contrib/packages/deb/ubuntu-focal/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/contrib/packages/deb/ubuntu-focal/debian/tigervncserver.postinst.in b/contrib/packages/deb/ubuntu-focal/debian/tigervncserver.postinst.in new file mode 100644 index 00000000..24913291 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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-focal/debian/tigervncserver.prerm b/contrib/packages/deb/ubuntu-focal/debian/tigervncserver.prerm new file mode 100644 index 00000000..2e8e77c4 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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-focal/debian/xorg-source-patches/100_rethrow_signals.patch b/contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/100_rethrow_signals.patch new file mode 100644 index 00000000..8c24720d --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/100_rethrow_signals.patch @@ -0,0 +1,22 @@ +diff -up tigervnc-1.10.80/unix/xserver/hw/vnc/xvnc.c.orig tigervnc-1.10.80/unix/xserver/hw/vnc/xvnc.c +--- tigervnc-1.10.80/unix/xserver/hw/vnc/xvnc.c.orig 2020-04-02 11:18:00.000000000 +0200 ++++ tigervnc-1.10.80/unix/xserver/hw/vnc/xvnc.c 2020-04-02 12:44:06.365607230 +0200 +@@ -229,11 +229,17 @@ void ddxGiveUp(enum ExitCode error) + } + + void +-AbortDDX(enum ExitCode error) ++SigAbortDDX(int signo, enum ExitCode error) + { + ddxGiveUp(error); + } + ++void ++AbortDDX(enum ExitCode error) ++{ ++ SigAbortDDX(0, error); ++} ++ + #ifdef __DARWIN__ + void + DarwinHandleGUI(int argc, char *argv[]) diff --git a/contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch b/contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/516_tigervnc-xorg-manpages.patch new file mode 100644 index 00000000..4575f6a9 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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-focal/debian/xorg-source-patches/debian_libtool.patch b/contrib/packages/deb/ubuntu-focal/debian/xorg-source-patches/debian_libtool.patch new file mode 100644 index 00000000..d24877d2 --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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-focal/debian/xtigervncviewer.menu b/contrib/packages/deb/ubuntu-focal/debian/xtigervncviewer.menu new file mode 100644 index 00000000..aac942ca --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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-focal/debian/xtigervncviewer.postinst b/contrib/packages/deb/ubuntu-focal/debian/xtigervncviewer.postinst new file mode 100644 index 00000000..4df0c65f --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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-focal/debian/xtigervncviewer.prerm b/contrib/packages/deb/ubuntu-focal/debian/xtigervncviewer.prerm new file mode 100644 index 00000000..7a51fd2c --- /dev/null +++ b/contrib/packages/deb/ubuntu-focal/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 -- 2.39.5