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

Bug#914911: x11-apps: reproducible build (usrmerge): Embeds full path to mktemp found via PATH



Package: x11-apps
Version: 7.7+7
Severity: normal
Tags: patch
User: md@linux.it
Usertags: usrmerge

Dear Maintainer,

The reproducible build spotted a difference in your package when
built on a usrmerged system vs a non-merged system:
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/x11-apps.html

It seems x11perfcomp contains the full path of 'mktemp' found via
AC_PROG_PATH during build.

Since PATH defaults to contain /usr/bin before /bin the found path will
be /usr/bin/mktemp on a usrmerged system, since both paths are
essentially the same thing there. This is however not desirable on
a non-merged system where it needs to be /bin/mktemp.

The attached patch fixes the problem by explicitly specifying
the default path via MKTEMP environment variable as documented
in AC_PROG_PATH documentation.

(This is likely a good idea either way, since otherwise hypothetical
problems could happen for users building on their system with
/usr/local/bin/... or ~/bin/....)

Regards,
Andreas Henriksson


-- System Information:
Debian Release: buster/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing'), (500, 'stable'), (400, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.18.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages x11-apps depends on:
ii  libc6        2.27-8
ii  libpng16-16  1.6.34-2
ii  libsm6       2:1.2.2-1+b3
ii  libx11-6     2:1.6.7-1
ii  libxaw7      2:1.0.13-1+b2
ii  libxcursor1  1:1.1.15-2
ii  libxext6     2:1.3.3-1+b2
ii  libxft2      2.3.2-2
ii  libxkbfile1  1:1.0.9-2
ii  libxmu6      2:1.1.2-2
ii  libxmuu1     2:1.1.2-2
ii  libxrender1  1:0.9.10-1
ii  libxt6       1:1.1.5-1
ii  man-db       2.8.4-3
ii  zlib1g       1:1.2.11.dfsg-1

Versions of packages x11-apps recommends:
pn  xbitmaps  <none>

Versions of packages x11-apps suggests:
ii  mesa-utils  8.4.0-1
diff -Nru x11-apps-7.7+7/debian/changelog x11-apps-7.7+7+nmu1/debian/changelog
--- x11-apps-7.7+7/debian/changelog	2018-03-18 17:07:42.000000000 +0100
+++ x11-apps-7.7+7+nmu1/debian/changelog	2018-11-28 15:22:57.000000000 +0100
@@ -1,3 +1,10 @@
+x11-apps (7.7+7+nmu1) UNRELEASED; urgency=medium
+
+  * Explicitly set mktemp path via MKTEMP to make build reproducible
+    on usrmerged vs non-merged systems. (Closes: #-1)
+
+ -- Andreas Henriksson <andreas@fatal.se>  Wed, 28 Nov 2018 15:22:57 +0100
+
 x11-apps (7.7+7) unstable; urgency=medium
 
   * Switch all xorg.freedesktop.org URLs in packaging to https.
diff -Nru x11-apps-7.7+7/debian/rules x11-apps-7.7+7+nmu1/debian/rules
--- x11-apps-7.7+7/debian/rules	2015-04-30 23:56:55.000000000 +0200
+++ x11-apps-7.7+7+nmu1/debian/rules	2018-11-28 15:22:50.000000000 +0100
@@ -16,6 +16,12 @@
 CONFIG_STAMPS = $(addprefix $(STAMP_DIR)/configure-, $(SUBDIRS))
 BUILD_STAMPS = $(addprefix $(STAMP_DIR)/build-,$(SUBDIRS))
 
+# Make build reprocudible by explicitly setting the path for mktemp.
+# AC_PATH_PROG will find /usr/bin/mktemp on usrmerged systems,
+# which is undesirable on non-merged systems. The full path
+# of mktemp is embedded in the built x11perfcomp script.
+export MKTEMP=/bin/mktemp
+
 %:
 	dh $@ --with quilt,autoreconf --parallel
 

Reply to: