Control: tags -1 + patch

Hi.

On Mon, 01 Jun 2015 11:44:06 -0400 Daniel Kahn Gillmor
<d...@fifthhorseman.net> wrote:
> One example can be seen in the difference in
> /usr/share/emacs/24.4/lisp/finder-inf.el from here:
> 
> https://reproducible.debian.net/dbd/unstable/amd64/emacs24_24.4+1-5.debbindiff.html
> 
> compare the list after "convenience" here, which sorts the first 13
> items differently on each build:

This difference is coming from the Makefile, which passes file names in
a non-reproducible order to finder-compile-keywords-make-dist, which
itself seem to me reproducible.

The attached patch sorts the filenames before passing them to
finder-compile-keywords-make-dist, and fixes this non-reproductible
behavior in my experimental toolchain [1].

Regards,
Alexis Bienvenüe.

[1] https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain
Description: Sort files in $wins
 lisp/Makefile.in: sort files in the $wins variable, to make the build
 reproducible.
Author: Alexis Bienvenüe <p...@passoire.fr>
Bug-Debian: https://bugs.debian.org/787424

Index: emacs24-24.5+1/lisp/Makefile.in
===================================================================
--- emacs24-24.5+1.orig/lisp/Makefile.in
+++ emacs24-24.5+1/lisp/Makefile.in
@@ -110,14 +110,14 @@ COMPILE_FIRST = \
 emacs = EMACSLOADPATH= '$(EMACS)' $(EMACSOPT)
 
 # Common command to find subdirectories
-setwins=for file in `find . -type d -print`; do \
+setwins=for file in `find . -type d -print | LC_ALL=C sort`; do \
 	   case $$file in */.* ) ;; \
 		*) wins="$$wins$${wins:+ }$$file" ;; \
 	   esac; \
 	done
 
 # Find all subdirectories except `obsolete' and `term'.
-setwins_almost=for file in `find ${srcdir} -type d -print`; do \
+setwins_almost=for file in `find ${srcdir} -type d -print | LC_ALL=C sort`; do \
 	   case $$file in ${srcdir}*/obsolete | ${srcdir}*/term ) ;; \
 	     *) wins="$$wins$${wins:+ }$$file" ;; \
 	   esac; \
@@ -126,14 +126,14 @@ setwins_almost=for file in `find ${srcdi
 # Find all subdirectories except `obsolete', `term', and `leim' (and subdirs).
 # We don't want the leim files listed as packages, especially
 # since many share basenames with files in language/.
-setwins_finder=for file in `find ${srcdir} -type d -print`; do \
+setwins_finder=for file in `find ${srcdir} -type d -print | LC_ALL=C sort`; do \
 	   case $$file in ${srcdir}*/obsolete | ${srcdir}*/term | ${srcdir}*/leim* ) ;; \
 	     *) wins="$$wins$${wins:+ }$$file" ;; \
 	   esac; \
         done
 
 # Find all subdirectories in which we might want to create subdirs.el.
-setwins_for_subdirs=for file in `find ${srcdir} -type d -print`; do \
+setwins_for_subdirs=for file in `find ${srcdir} -type d -print | LC_ALL=C sort`; do \
 	   case $$file in \
 	     ${srcdir}*/cedet* | ${srcdir}*/leim* ) ;; \
 	     *) wins="$$wins$${wins:+ }$$file" ;; \

Reply via email to