On Sun, Oct 01, 2017 at 10:47:54PM +0200, Julien Cristau wrote: > > How do you feel about applying this patch to help with cross-compilation > > and (re)bootstrapping? > > > Unconvinced. d/rules is already too messy as it is.
Indeed. The original patch makes d/rules worse. So I am attaching a new patch to improve the situation: 1. Drop --libdir (to pick up the debhelper default). 2. Add --with-module-dir to avoid moving /usr/lib/xorg. Other packages place their modules here, so we cannot move it without coordination. Given that there can be only one /usr/bin/Xorg and that these modules are loaded into that Xorg, I think it should default to ${libexecdir}/modules. I can try changing that upstream. 3. Add --with-serverconfig-path to avoid moving protocol.txt. It ends up in xserver-common, which is Arch:all and thus cannot be multiarchy. Again using ${libexecdir} would make more sense. 4. Move the installation of pkgconfig into d/rules as .install files cannot contain variables. (Alternatively: use dh-exec) 5. d/rules fails to define the architecture variables (e.g. DEB_HOST_ARCH_OS). Unless building with dpkg-buildpackage they are undefined. So I sneak "include /usr/share/dpkg/architecture.mk" into the patch. Ignoring the last point (which is a bug imo), this is a net increase in 1 line. Potentially, points 2 and 3 could be upstreamed to further reduce messiness. I hope this works better for you. Helmut
diff -u xorg-server-1.19.3/debian/changelog xorg-server-1.19.3/debian/changelog --- xorg-server-1.19.3/debian/changelog +++ xorg-server-1.19.3/debian/changelog @@ -1,3 +1,10 @@ +xorg-server (2:1.19.3-2.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Move xorg-server.pc to a multiarch location. closes: #836453 + + -- Helmut Grohne <hel...@subdivi.de> Mon, 02 Oct 2017 06:50:45 +0200 + xorg-server (2:1.19.3-2) unstable; urgency=high * CVE-2017-10972: information leak out of the X server due to an diff -u xorg-server-1.19.3/debian/rules xorg-server-1.19.3/debian/rules --- xorg-server-1.19.3/debian/rules +++ xorg-server-1.19.3/debian/rules @@ -1,5 +1,7 @@ #!/usr/bin/make -f +include /usr/share/dpkg/architecture.mk + ifeq ($(DEB_HOST_ARCH_OS), linux) selinux = --enable-xselinux wayland = --enable-xwayland @@ -77,8 +79,11 @@ --disable-strict-compilation \ --disable-debug \ $(config_tests) \ + --libexecdir=\$${prefix}/lib/xorg \ --with-int10=x86emu \ + --with-module-dir=\$${libexecdir}/modules \ --with-os-vendor="$(VENDOR)" \ + --with-serverconfig-path=\$${libexecdir} \ --with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(SUPPORT))" \ --with-xkb-path=/usr/share/X11/xkb \ --with-xkb-output=/var/lib/xkb \ @@ -180,14 +185,10 @@ override_dh_auto_configure: dh_auto_configure --builddirectory=debian/build/main -- \ - --libdir=\$${prefix}/lib \ - --libexecdir=\$${libdir}/xorg \ $(confflags) \ $(confflags_main) \ $(vars) dh_auto_configure --builddirectory=debian/build/udeb -- \ - --libdir=\$${prefix}/lib \ - --libexecdir=\$${libdir}/xorg \ $(confflags) \ $(confflags_udeb) \ $(vars) @@ -226,7 +227,7 @@ rm -rf debian/tmp/udeb/usr/include rm -rf debian/tmp/udeb/usr/share/aclocal rm -rf debian/tmp/udeb/usr/share/man - rm -rf debian/tmp/udeb/usr/lib/pkgconfig + rm -rf debian/tmp/udeb/usr/lib/*/pkgconfig install -m 755 debian/local/xvfb-run debian/tmp/main/usr/bin install debian/local/xvfb-run.1 debian/tmp/main/usr/share/man/man1 @@ -266,13 +267,14 @@ chmod ug+s $(CURDIR)/debian/xserver-xorg-legacy/usr/lib/xorg/Xorg.wrap override_dh_install: + dh_install -pxserver-xorg-dev main/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig usr/lib/$(DEB_HOST_MULTIARCH) dh_install --fail-missing install -d $(CURDIR)/debian/xserver-xorg-dev/usr/share/xserver-xorg # Extract only the major ABI version: - abi_videodrv=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/pkgconfig pkg-config --variable=abi_videodrv xorg-server|cut -d . -f 1`; \ + abi_videodrv=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig pkg-config --variable=abi_videodrv xorg-server|cut -d . -f 1`; \ echo videoabi=xorg-video-abi-$$abi_videodrv > debian/xserver-xorg-core.substvars && \ echo "xorg-video-abi-$$abi_videodrv, xserver-xorg-core (>= $(serverminver))" > debian/xserver-xorg-dev/usr/share/xserver-xorg/videodrvdep - abi_xinput=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/pkgconfig pkg-config --variable=abi_xinput xorg-server|cut -d . -f 1`; \ + abi_xinput=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig pkg-config --variable=abi_xinput xorg-server|cut -d . -f 1`; \ echo inputabi=xorg-input-abi-$$abi_xinput >> debian/xserver-xorg-core.substvars && \ echo "xorg-input-abi-$$abi_xinput, xserver-xorg-core (>= $(serverminver))" > debian/xserver-xorg-dev/usr/share/xserver-xorg/xinputdep diff -u xorg-server-1.19.3/debian/xserver-xorg-dev.install xorg-server-1.19.3/debian/xserver-xorg-dev.install --- xorg-server-1.19.3/debian/xserver-xorg-dev.install +++ xorg-server-1.19.3/debian/xserver-xorg-dev.install @@ -1,5 +1,4 @@ main/usr/include/xorg usr/include -main/usr/lib/pkgconfig/xorg-server.pc usr/lib/pkgconfig main/usr/share/aclocal usr/share ../../debian/local/dh_xsf_substvars usr/bin