Source: funtools Version: 1.4.6+git150811-2 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
Dear Maintainer, While working on the "reproducible builds" effort [1], we have noticed that 'funtools' could not be built reproducibly. The attached patch fixes the order in which object files are passed to mklib. Once applied, funtools can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds
diff -Nru funtools-1.4.6+git150811/debian/changelog funtools-1.4.6+git150811/debian/changelog --- funtools-1.4.6+git150811/debian/changelog 2015-11-24 20:27:06.000000000 +0100 +++ funtools-1.4.6+git150811/debian/changelog 2016-06-21 17:40:22.000000000 +0200 @@ -1,3 +1,9 @@ +funtools (1.4.6+git150811-2.0~reproducible1) UNRELEASED; urgency=medium + + * Sort object files to pass to mklib, to make the build reproducible. + + -- Alexis Bienvenüe <p...@passoire.fr> Tue, 21 Jun 2016 17:40:22 +0200 + funtools (1.4.6+git150811-2) unstable; urgency=low * Depend on libfuntools1 on libc6-dev, since this is needed for the diff -Nru funtools-1.4.6+git150811/debian/patches/series funtools-1.4.6+git150811/debian/patches/series --- funtools-1.4.6+git150811/debian/patches/series 2015-10-23 13:29:58.000000000 +0200 +++ funtools-1.4.6+git150811/debian/patches/series 2016-06-21 17:38:53.000000000 +0200 @@ -2,3 +2,4 @@ use_shared_libwcstools.patch build_tclfun.patch multiarch.patch +sort-object-files.patch diff -Nru funtools-1.4.6+git150811/debian/patches/sort-object-files.patch funtools-1.4.6+git150811/debian/patches/sort-object-files.patch --- funtools-1.4.6+git150811/debian/patches/sort-object-files.patch 1970-01-01 01:00:00.000000000 +0100 +++ funtools-1.4.6+git150811/debian/patches/sort-object-files.patch 2016-06-21 17:39:43.000000000 +0200 @@ -0,0 +1,33 @@ +Description: Sort object files + Sort object files to pass to mklib, to make the build reproducible. +Author: Alexis Bienvenüe <p...@passoire.fr> + +--- funtools-1.4.6+git150811.orig/Makefile.in ++++ funtools-1.4.6+git150811/Makefile.in +@@ -233,7 +233,7 @@ shlib: sublib $(LIBOBJS) + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../$(LIB)); \ + CC='$(CC)' CXX=$(CXX) \ +- ./mklib -o $(PACKAGE) -ldl $(WCS_LIBS) -lm -lz $(PACKAGE)tmp/*.o; \ ++ ./mklib -o $(PACKAGE) -ldl $(WCS_LIBS) -lm -lz `LC_ALL=C ls $(PACKAGE)tmp/*.o`; \ + rm -rf $(PACKAGE)tmp;) + + mainlib: $(MAINLIBOBJS) funmainlib.o lex.calc.o +@@ -245,7 +245,7 @@ shmainlib: mainlib + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../lib$(PACKAGE)MainLib.a); \ + CC='$(CC)' CXX='$(CXX)' \ +- ./mklib -o $(PACKAGE)MainLib -L. -lfuntools $(PACKAGE)tmp/*.o;\ ++ ./mklib -o $(PACKAGE)MainLib -L. -lfuntools `LC_ALL=C ls $(PACKAGE)tmp/*.o`;\ + rm -rf $(PACKAGE)tmp;) + + tclfun: $(LIB) tclmainlib.o tclfun.o +@@ -256,7 +256,7 @@ shtclfun: tclfun + @(rm -rf $(PACKAGE)tmp; mkdir $(PACKAGE)tmp; \ + (cd $(PACKAGE)tmp && ar x ../libtclfun.a); \ + CC='$(CC)' CXX='$(CXX)' \ +- ./mklib -o tclfun -L. -lfuntools $(PACKAGE)tmp/*.o $(TCL_LIBS); \ ++ ./mklib -o tclfun -L. -lfuntools `LC_ALL=C ls $(PACKAGE)tmp/*.o` $(TCL_LIBS); \ + rm -rf $(PACKAGE)tmp; \ + test -r pkgIndex.tcl && mv pkgIndex.tcl pkgIndex.tcl-old; \ + SHLIB=libtclfun.so; \
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds