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

Attachment: 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

Reply via email to