[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: