Package: debhelper Version: 9.20141222 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain fileordering
Hi! While working on the “reproducible builds” effort [1], we have noticed that some packages failed to build reproducibly because the order of libraries listed in shlibs varies depending on the order of files on the filesystem. The attached patch modifies dh_makeshlibs to sort the files, resulting in a stable order in shlibs files. This allows more packages to build reproducibly. [1]: https://wiki.debian.org/ReproducibleBuilds -- Lunar .''`. lu...@debian.org : :Ⓐ : # apt-get install anarchism `. `'` `-
From 1937c649950b47e8985ab393b25b1cc78d1e08f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= <lu...@debian.org> Date: Sun, 28 Dec 2014 16:18:29 +0000 Subject: [PATCH 1/3] dh_makeshlibs: ensure a stable order in shlibs files We now sort the list of .so files to have a stable order in shlibs files. This was preventing some packages to build reproducibly. --- dh_makeshlibs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dh_makeshlibs b/dh_makeshlibs index 7aa52e4..cf27a8a 100755 --- a/dh_makeshlibs +++ b/dh_makeshlibs @@ -153,7 +153,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') { $exclude="! \\( $dh{EXCLUDE_FIND} \\) "; } - open (FIND, "find $tmp -type f \\( -name '*.so' -or -name '*.so.*' \\) $exclude |"); + open (FIND, "find $tmp -type f \\( -name '*.so' -or -name '*.so.*' \\) $exclude | LC_ALL=C sort |"); while (<FIND>) { my ($library, $major); push @lib_files, $_; -- 2.1.3
signature.asc
Description: Digital signature
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds