Package: debhelper
Version: 9.20141010
Severity: wishlist
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: toolchain fileordering

Hi!

As part of the “reproducible builds” effort [1], we have noticed that
dh_installdeb is registering conffiles depending on the file system
order. This prevents some package from building reproducibly.

Attached is a patch that will sort the list of files, giving a stable
output.

 [1]: https://wiki.debian.org/ReproducibleBuilds

Thanks,
-- 
Lunar                                .''`. 
lu...@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   
From 4cd40ffc4e64eabb82ce712351324b7356c0105d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= <lu...@debian.org>
Date: Sun, 19 Oct 2014 13:35:46 +0200
Subject: [PATCH] dh_installdeb: register conffiles in a stable order

conffiles were automatically registered by dh_installdeb depending on
the order they were found on the filesystem. For build reproducibility,
we now sort them in order to have a stable order accross multiple
builds.
---
 dh_installdeb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dh_installdeb b/dh_installdeb
index 1f02edf..3fc802c 100755
--- a/dh_installdeb
+++ b/dh_installdeb
@@ -128,7 +128,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 	# Automatic conffiles registration: If it is in /etc, it is a
 	# conffile.
 	if (! compat(2) && -d "$tmp/etc") {
-		complex_doit("find $tmp/etc -type f -printf '/etc/%P\n' >> $tmp/DEBIAN/conffiles");
+		complex_doit("find $tmp/etc -type f -printf '/etc/%P\n' | LC_ALL=C sort >> $tmp/DEBIAN/conffiles");
 		# Anything found?
 		if (-z "$tmp/DEBIAN/conffiles") {
 			doit("rm", "-f", "$tmp/DEBIAN/conffiles");
-- 
1.9.1

Attachment: signature.asc
Description: Digital signature

Reply via email to