#!/usr/bin/make -f # See debhelper(7) (uncomment to enable) # output every command that modifies files on the build system. #export DH_VERBOSE = 1 # see FEATURE AREAS in dpkg-buildflags(1) export DEB_BUILD_MAINT_OPTIONS = hardening=+all # see ENVIRONMENT in dpkg-buildflags(1) # package maintainers to append CFLAGS #export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic # package maintainers to append LDFLAGS export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed # Normal situation #VNC_PATCH = $(CURDIR)/unix/xserver120.patch # However in this case we do not have this file from upstream so we use a # debian specific copy instead. VNC_PATCH = $(CURDIR)/debian/xserver121.patch VNC_LIBTOOL_PATCH = $(CURDIR)/contrib/packages/deb/ubuntu-xenial/debian/xorg-source-patches/debian_libtool.patch include /usr/share/dpkg/architecture.mk include /usr/share/dpkg/buildflags.mk # This is stolen from xorg-server/debian/xsfbs/xsfbs.mk # Determine (source) package name from Debian changelog. SOURCE_NAME:=$(shell dpkg-parsechangelog -SSource) # Determine package version from Debian changelog. SOURCE_VERSION:=$(shell dpkg-parsechangelog -SVersion) # Determine package date from Debian changelog. BUILD_TIMESTAMP:=$(shell dpkg-parsechangelog -SDate | date -u -f- '+%Y-%m-%d %H:%M') export BUILD_TIMESTAMP # Strip a possible epoch marker from source version. NO_EPOCH_VER:=$(shell echo $(SOURCE_VERSION) | sed 's/^.://') # Determine upstream version number for make get-orig-source UPSTREAM_DFSG_VERSION:=$(shell echo $(NO_EPOCH_VER) | sed 's/-.*//') # Determine upstream version number. UPSTREAM_VERSION:=$(shell echo $(UPSTREAM_DFSG_VERSION) | cut -d"+" -f1) DEB_DESTDIR := $(CURDIR)/debian/tmp TIGERVNC_SRCDIR := $(CURDIR) TIGERVNC_BUILDDIR := $(CURDIR)/obj-$(DEB_HOST_MULTIARCH) XTIGERVNC_SRCDIR := $(CURDIR)/unix/xserver XTIGERVNC_BUILDDIR := $(CURDIR)/obj-$(DEB_HOST_MULTIARCH)/unix/xserver # Work around bug #641051 (See https://bugs.debian.org/641051) DEB_CMAKE_EXTRA_FLAGS := -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) #DEB_CMAKE_EXTRA_FLAGS += -DENABLE_LIBWRAP:BOOL=ON DEB_CMAKE_EXTRA_FLAGS += -DENABLE_NLS:BOOL=ON DEB_CMAKE_EXTRA_FLAGS += -DENABLE_GNUTLS:BOOL=ON DEB_CMAKE_EXTRA_FLAGS += -DENABLE_PAM:BOOL=ON #DEB_CMAKE_EXTRA_FLAGS += -DBUILD_JAVA=1 DEB_CMAKE_EXTRA_FLAGS += -DBUILD_TIMESTAMP="$(BUILD_TIMESTAMP)" # Unfortunately quoting in /usr/share/xserver-xorg/configure_flags.mk is fucked # up in buster and ${xxx} is not escaped correctly. xserver_confflags := $(shell cat /usr/share/xserver-xorg/configure_flags.mk | \ sed -ne '/^xserver_confflags\s*=/{s/^[^=]*=//;s/--with-builderstring="[^"]*"//;p}') #-include /usr/share/xserver-xorg/configure_flags.mk #xserver_confflags := $(shell echo '$(xserver_confflags)' | sed 's/--with-builderstring="[^"]*"//') XORG_DEBIAN_CONFIGURE_FLAGS := \ $(filter-out \ --prefix=% \ --mandir=% \ --infodir=% \ --sysconfdir=% \ --localstatedir=% \ --build=% \ --host=% \ --enable-xwayland \ --enable-dmx \ --enable-xvfb \ --enable-xnest \ --enable-xephyr \ --enable-xorg \ --enable-dri \ --enable-dri2 \ --enable-dri3 \ --enable-xmir \ , $(xserver_confflags) \ ) DEB_CONFIGURE_EXTRA_FLAGS := \ --disable-selective-werror \ --with-builderstring="tigervnc-xorg-server $(NO_EPOCH_VER) (TigerVNC Packaging Team )" \ --disable-xwayland \ --disable-dmx \ --disable-xvfb \ --disable-xnest \ --disable-xephyr \ --disable-xorg \ --disable-dri \ --disable-dri2 \ --disable-dri3 # Don't use libunwind for armel, armhf, and arm64 as this library is buggy # (bug #923962) on those architectures. ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf arm64)) DEB_CONFIGURE_EXTRA_FLAGS += --disable-libunwind XORG_DEBIAN_CONFIGURE_FLAGS := \ $(filter-out --enable-libunwind, $(XORG_DEBIAN_CONFIGURE_FLAGS)) endif DEB_CONFIGURE_EXTRA_FLAGS += \ CPPFLAGS='$(CPPFLAGS) -DBUILD_TIMESTAMP="\"$${BUILD_TIMESTAMP}\""' .PHONY: debug-debian-rules debug-debian-rules: @echo '$$(SOURCE_NAME) $(SOURCE_NAME)' @echo '$$(BUILD_TIMESTAMP) $(BUILD_TIMESTAMP)' @echo '$$(SOURCE_VERSION) $(SOURCE_VERSION)' @echo '$$(NO_EPOCH_VER) $(NO_EPOCH_VER)' @echo '$$(UPSTREAM_DFSG_VERSION) $(UPSTREAM_DFSG_VERSION)' @echo '$$(UPSTREAM_VERSION) $(UPSTREAM_VERSION)' @echo '$$(TIGERVNC_SRCDIR) $(TIGERVNC_SRCDIR)' @echo '$$(TIGERVNC_BUILDDIR) $(TIGERVNC_BUILDDIR)' @echo '$$(XTIGERVNC_SRCDIR) $(XTIGERVNC_SRCDIR)' @echo '$$(XTIGERVNC_BUILDDIR) $(XTIGERVNC_BUILDDIR)' @echo '$$(DEB_HOST_ARCH) $(DEB_HOST_ARCH)' @echo '$$(DEB_HOST_MULTIARCH) $(DEB_HOST_MULTIARCH)' @echo '$$(XORG_DEBIAN_CONFIGURE_FLAGS) $(XORG_DEBIAN_CONFIGURE_FLAGS)' @echo '$$(DEB_CMAKE_EXTRA_FLAGS) $(DEB_CMAKE_EXTRA_FLAGS)' @echo '$$(DEB_CONFIGURE_EXTRA_FLAGS) $(DEB_CONFIGURE_EXTRA_FLAGS)' @echo '$$(DEB_DESTDIR) $(DEB_DESTDIR)' .PHONY: override_dh_autoreconf override_dh_autoreconf: dh_autoreconf cd $(XTIGERVNC_SRCDIR) && { \ patch --no-backup-if-mismatch -p1 < $(VNC_LIBTOOL_PATCH); \ } .PHONY: override_dh_auto_configure override_dh_auto_configure: dh_auto_configure -D$(TIGERVNC_SRCDIR) -B$(TIGERVNC_BUILDDIR) -- \ $(DEB_CMAKE_EXTRA_FLAGS) dh_auto_configure -D$(XTIGERVNC_SRCDIR) -B$(XTIGERVNC_BUILDDIR) -- \ $(XORG_DEBIAN_CONFIGURE_FLAGS) \ $(DEB_CONFIGURE_EXTRA_FLAGS) .PHONY: override_dh_auto_build override_dh_auto_build: dh_auto_build -D$(TIGERVNC_SRCDIR) -B$(TIGERVNC_BUILDDIR) dh_auto_build -D$(XTIGERVNC_SRCDIR) -B$(XTIGERVNC_BUILDDIR) .PHONY: override_dh_auto_install override_dh_auto_install: dh_auto_install -D$(TIGERVNC_SRCDIR) -B$(TIGERVNC_BUILDDIR) dh_auto_install -D$(XTIGERVNC_SRCDIR) -B$(XTIGERVNC_BUILDDIR) mv $(DEB_DESTDIR)/usr/share/doc/tigervnc \ $(DEB_DESTDIR)/usr/share/doc/tigervnc-common mv $(DEB_DESTDIR)/usr/bin/vncviewer \ $(DEB_DESTDIR)/usr/bin/xvncviewer mv $(DEB_DESTDIR)/usr/share/man/man1/vncviewer.1 \ $(DEB_DESTDIR)/usr/share/man/man1/xvncviewer.1 mv $(DEB_DESTDIR)/usr/bin/x0vncserver \ $(DEB_DESTDIR)/usr/bin/X0vnc mv $(DEB_DESTDIR)/usr/share/man/man1/x0vncserver.1 \ $(DEB_DESTDIR)/usr/share/man/man1/X0vnc.1 mv $(DEB_DESTDIR)/usr/share/applications/vncviewer.desktop \ $(DEB_DESTDIR)/usr/share/applications/xvncviewer.desktop mkdir -p $(DEB_DESTDIR)/usr/share/icons/hicolor/scalable/apps cp media/icons/tigervnc.svg \ $(DEB_DESTDIR)/usr/share/icons/hicolor/scalable/apps/ for i in 16 22 24 32 48; do \ mkdir -p $(DEB_DESTDIR)/usr/share/icons/hicolor/$${i}x$${i}/apps; \ cp media/icons/tigervnc_$${i}.png \ $(DEB_DESTDIR)/usr/share/icons/hicolor/$${i}x$${i}/apps/tigervnc.png; \ done # Hack, replace media/icons/tigervnc_16.png of wrong dimensions 20x20 by our fixed version. cp debian/tigervnc_16.png \ $(DEB_DESTDIR)/usr/share/icons/hicolor/16x16/apps/tigervnc.png cd $(DEB_DESTDIR) && \ find usr/bin usr/sbin usr/lib/systemd/system usr/libexec usr/share/man usr/share/applications -name "*vnc*" | \ while read line; do \ echo Rename "$$line" `echo "$$line" | sed -e 's/vnc/tigervnc/g'` ; \ mv "$$line" `echo "$$line" | sed -e 's/vnc/tigervnc/g'`; \ done # Fixup org.tigervnc.vncviewer.metainfo.xml sed -i \ -e 's/vncviewer.desktop<\/launchable>/xtigervncviewer.desktop<\/launchable>/' \ $(DEB_DESTDIR)/usr/share/metainfo/org.tigervnc.vncviewer.metainfo.xml cp -pr debian/helpers/* \ debian/tmp find debian/tmp/usr/share/man -type f | while read line; do \ echo "Rewriting and renaming $$line into $$line.gz" ; \ sed -e 's/\(\<\|\\f[IBP]\)vncviewer\>/\1xtigervncviewer/g' \ -e 's/\(\<\|\\f[IBP]\)vncpasswd\>/\1tigervncpasswd/g' \ -e 's/\(\<\|\\f[IBP]\)vncconfig\>/\1tigervncconfig/g' \ -e 's/\(\<\|\\f[IBP]\)vncserver\>/\1tigervncserver/g' \ -e 's/\(\<\|\\f[IBP]\)vncsession\>/\1tigervncsession/g' \ -e 's/\(\<\|\\f[IBP]\)X0VNCSERVER\>/\1X0tigervnc/g' \ -e 's/\(\<\|\\f[IBP]\)x0vncserver\>/\1X0tigervnc/g' \ -e 's/\(\<\|\\f[IBP]\)Xvnc\>/\1Xtigervnc/g' \ -e 's/\(\<\|\\f[IBP]\)tigervnc\/tigervnc/\1tigervnc\/vnc/g' \ $$line | \ gzip -9 > $$line.gz; \ rm -f $$line; \ done touch $@ .PHONY: override_dh_auto_clean override_dh_auto_clean: dh_auto_clean -D$(TIGERVNC_SRCDIR) -B$(TIGERVNC_BUILDDIR) dh_auto_clean -D$(XTIGERVNC_SRCDIR) -B$(XTIGERVNC_BUILDDIR) build build-arch build-indep: patch clean: unpatch %: dh $@ .PHONY: patch patch: apply-vnc-patch-xorg apply-vnc-patch-xorg: apply-unify-xorg-and-vnc-tree .PHONY: unpatch unpatch: reverse-unify-xorg-and-vnc-tree reverse-unify-xorg-and-vnc-tree: reverse-vnc-patch-xorg .PHONY: apply-vnc-patch-xorg reverse-vnc-patch-xorg apply-vnc-patch-xorg: unix/xserver/.apply-vnc-patch-xorg.stamp unix/xserver/.apply-vnc-patch-xorg.stamp: $(VNC_PATCH) cd $(XTIGERVNC_SRCDIR) && { \ patch --no-backup-if-mismatch -p1 < $(VNC_PATCH) && \ touch .apply-vnc-patch-xorg.stamp; \ } reverse-vnc-patch-xorg: $(VNC_PATCH) cd $(XTIGERVNC_SRCDIR) && if test -f .apply-vnc-patch-xorg.stamp; then \ patch --no-backup-if-mismatch -R -p1 < $(VNC_PATCH); \ rm -f .apply-vnc-patch-xorg.stamp; \ fi .PHONY: apply-unify-xorg-and-vnc-tree reverse-unify-xorg-and-vnc-tree apply-unify-xorg-and-vnc-tree: unix/xserver/.apply-unify-xorg-and-vnc-tree.stamp unix/xserver/.apply-unify-xorg-and-vnc-tree.stamp: cd $(XTIGERVNC_SRCDIR) && \ { tar --strip-components 1 -xvJf /usr/src/xorg-server.tar.xz | \ sed -e 's@^[^/]*/@@' > .apply-unify-xorg-and-vnc-tree.files; } && \ touch .apply-unify-xorg-and-vnc-tree.stamp reverse-unify-xorg-and-vnc-tree: override_dh_auto_clean cd $(XTIGERVNC_SRCDIR) && \ if test -f .apply-unify-xorg-and-vnc-tree.files; then \ sort -r < .apply-unify-xorg-and-vnc-tree.files | \ while read line; do \ if test -d "$$line"; then \ rmdir --ignore-fail-on-non-empty "$$line"; \ else \ rm -f "$$line"; \ fi; \ done; \ rm -f .apply-unify-xorg-and-vnc-tree.stamp \ .apply-unify-xorg-and-vnc-tree.files; \ fi