Package: debhelper
Version: 7.4.15
Severity: wishlist
Tags: patch

the md5sums file created by dh_md5sums lists the files in an unsorted
way (in the same sequence as they are printed by find).

this is a minor annoyance when comparing different builds of a package,
eg a build from the vcs and a pbuilder build from the dsc -- the md5sums
will always show up as different.

i suggest to sort the list before passing it to xargs, thus creating
more reproducible deb files. this is implemented in the attached patch;
the LC_ALL=C can be dropped if it is already made sure that the build
environment is language independent (otherwise, local sorting rules
apply).


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.33-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages debhelper depends on:
ii  binutils                      2.20-6     The GNU assembler, linker and bina
ii  dpkg-dev                      1.15.5.6   Debian package development tools
ii  file                          5.04-1     Determines file type using "magic"
ii  html2text                     1.3.2a-14  advanced HTML to text converter
ii  man-db                        2.5.7-2    on-line manual pager
ii  perl                          5.10.1-11  Larry Wall's Practical Extraction 
ii  perl-base                     5.10.1-11  minimal Perl system
ii  po-debconf                    1.0.16     tool for managing templates file t

debhelper recommends no packages.

Versions of packages debhelper suggests:
ii  dh-make                       0.51       tool that converts source archives

-- no debconf information

-- 
To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom
--- dh_md5sums	2010-03-13 10:42:42.000000000 +0100
+++ dh_md5sums.orig	2010-03-13 10:49:26.000000000 +0100
@@ -75,7 +75,7 @@
 		$exclude.="! \\( $dh{EXCLUDE_FIND} \\) ";
 	}
 	
-	complex_doit("(cd $tmp >/dev/null ; find . -type f $exclude ! -regex '.*/DEBIAN/.*' -printf '%P\\0' | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums) >/dev/null");
+	complex_doit("(cd $tmp >/dev/null ; find . -type f $exclude ! -regex '.*/DEBIAN/.*' -printf '%P\\0' | xargs -r0 md5sum > DEBIAN/md5sums) >/dev/null");
 	# If the file's empty, no reason to waste inodes on it.
 	if (-z "$tmp/DEBIAN/md5sums") {
 		doit("rm","-f","$tmp/DEBIAN/md5sums");

Attachment: signature.asc
Description: Digital signature

Reply via email to