Bug#1030727: multipath-tools: please make the build reproducible

Chris Lamb lamby at debian.org
Mon Feb 6 20:19:41 GMT 2023


Source: multipath-tools
Version: 0.9.4-2
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: randomness
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org

Hi,

Whilst working on the Reproducible Builds effort [0] we noticed that
multipath-tools could not be built reproducibly.

This is because there is a race condition in the build/installation of
the manpages. Specifically, it is possible for the manpages to either
be regenerated in a build (and therefore lead to the date being set to
the value of SOURCE_DATE_EPOCH), but it also possible for them not to
be processed at all, thus leading them to be installed as-is with a
date of "March 2018".

Naturally, this is nondeterminstic so somewhat difficult to
programmatically trigger, but I found running the build in a loop will
find a difference within 5 or 6 runs or so.

I can't seem to locate a deep fix, but a patch is attached that forces
the build to be single-threaded via the addition of the --parallel=1
switch. I found that both the build and udeb build variants need to
have this option.

 [0] https://reproducible-builds.org/


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
--- a/debian/rules	2023-02-06 11:38:48.486038303 -0800
--- b/debian/rules	2023-02-06 11:57:09.189800611 -0800
@@ -27,10 +27,10 @@
 override_dh_auto_configure:
 
 override_dh_auto_build:
-	dh_auto_build --sourcedirectory=debian/build-deb -- \
+	dh_auto_build --sourcedirectory=debian/build-deb --max-parallel=1 -- \
 		SCSI_DH_MODULES_PRELOAD="scsi_dh_alua scsi_dh_emc scsi_dh_rdac"
 	# multipath-udeb: build separately; don't reference dynamic libgcc at runtime (#779579); disable systemd
-	dh_auto_build --sourcedirectory=debian/build-udeb -- \
+	dh_auto_build --sourcedirectory=debian/build-udeb --max-parallel=1 -- \
 		SYSTEMD= EXTRACFLAGS="-static-libgcc"
 
 override_dh_auto_test:


More information about the Reproducible-bugs mailing list