Bug#836453: xserver-xorg-dev: please move xorg-server.pc to a multiarch path
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 <helmut@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
Reply to: