Source: stk Version: 4.5.0-3 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 'stk' could not be built reproducibly. The attached patch fixes the order in which *.o files are merged. Once applied, stk can be built reproducibly in our current experimental framework. Regards, Alexis Bienvenüe. [1]: https://wiki.debian.org/ReproducibleBuilds
diff -Nru stk-4.5.0/debian/changelog stk-4.5.0/debian/changelog --- stk-4.5.0/debian/changelog 2015-12-11 02:39:07.000000000 +0100 +++ stk-4.5.0/debian/changelog 2016-04-25 14:30:42.000000000 +0200 @@ -1,3 +1,9 @@ +stk (4.5.0-3.0~reproducible1) unstable; urgency=medium + + * Sort *.o files when building shared lib, to get reproducible build. + + -- Alexis Bienvenüe <p...@passoire.fr> Mon, 25 Apr 2016 14:30:42 +0200 + stk (4.5.0-3) unstable; urgency=medium * Use autotools_dev again to get up-to-date config.{sub,guess} diff -Nru stk-4.5.0/debian/patches/0007-Sort-o-files stk-4.5.0/debian/patches/0007-Sort-o-files --- stk-4.5.0/debian/patches/0007-Sort-o-files 1970-01-01 01:00:00.000000000 +0100 +++ stk-4.5.0/debian/patches/0007-Sort-o-files 2016-04-25 14:59:52.000000000 +0200 @@ -0,0 +1,83 @@ +Description: Sort *.o files + Fix the order in which *.o files are merged to build the shared lib, + to get reproducible build. +Author: Alexis Bienvenüe <p...@passoire.fr> + +Index: stk-4.5.0/src/Makefile.in +=================================================================== +--- stk-4.5.0.orig/src/Makefile.in ++++ stk-4.5.0/src/Makefile.in +@@ -90,7 +90,7 @@ $(STATICLIB) : $(OBJECTS) + + $(SHAREDLIB) : $(OBJECTS) + $(RM) -f $(@) $(SHAREDLIB).$(MAJOR) $(SHAREDLIB) +- $(CC) $(LDFLAGS) -fPIC @libflags@ $(OBJECT_PATH)/*.o $(LIBS) ++ $(CC) $(LDFLAGS) -fPIC @libflags@ `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBS) + $(LN) -s @sharedname@ $(SHAREDLIB) + + install-headers: +Index: stk-4.5.0/projects/demo/Makefile.in +=================================================================== +--- stk-4.5.0.orig/projects/demo/Makefile.in ++++ stk-4.5.0/projects/demo/Makefile.in +@@ -63,7 +63,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + stk-demo: demo.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o stk-demo demo.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o stk-demo demo.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libdemo: demo.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o demo utilities.cpp demo.cpp -L../../src -lstk $(LIBRARY) +Index: stk-4.5.0/projects/effects/Makefile.in +=================================================================== +--- stk-4.5.0.orig/projects/effects/Makefile.in ++++ stk-4.5.0/projects/effects/Makefile.in +@@ -52,7 +52,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + effects: effects.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libeffects: effects.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp -L../../src -lstk $(LIBRARY) +Index: stk-4.5.0/projects/eguitar/Makefile.in +=================================================================== +--- stk-4.5.0.orig/projects/eguitar/Makefile.in ++++ stk-4.5.0/projects/eguitar/Makefile.in +@@ -52,7 +52,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + eguitar: eguitar.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar eguitar.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar eguitar.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libeguitar: eguitar.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar utilities.cpp eguitar.cpp -L../../src -lstk $(LIBRARY) +Index: stk-4.5.0/projects/examples/Makefile.in +=================================================================== +--- stk-4.5.0.orig/projects/examples/Makefile.in ++++ stk-4.5.0/projects/examples/Makefile.in +@@ -57,7 +57,7 @@ strip : + strip $(PROGRAMS) + + audioprobe: @objects@ +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o audioprobe audioprobe.cpp $(OBJECT_PATH)/*.o $(LIBRARY) -lrtaudio ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o audioprobe audioprobe.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) -lrtaudio + + midiprobe: + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o midiprobe midiprobe.cpp $(LIBRARY) -lrtmidi +Index: stk-4.5.0/projects/ragamatic/Makefile.in +=================================================================== +--- stk-4.5.0.orig/projects/ragamatic/Makefile.in ++++ stk-4.5.0/projects/ragamatic/Makefile.in +@@ -53,7 +53,7 @@ $(OBJECT_PATH)/.placeholder: + touch $(OBJECT_PATH)/.placeholder + + ragamat: ragamat.cpp $(OBJECTS) +- $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o ragamat ragamat.cpp $(OBJECT_PATH)/*.o $(LIBRARY) ++ $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o ragamat ragamat.cpp `LC_ALL=C ls $(OBJECT_PATH)/*.o` $(LIBRARY) + + libragamat: ragamat.cpp Tabla.cpp Drone.cpp VoicDrum.cpp + $(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o ragamat Tabla.cpp Drone.cpp VoicDrum.cpp ragamat.cpp -L../../src -lstk $(LIBRARY) diff -Nru stk-4.5.0/debian/patches/series stk-4.5.0/debian/patches/series --- stk-4.5.0/debian/patches/series 2015-12-11 02:39:07.000000000 +0100 +++ stk-4.5.0/debian/patches/series 2016-04-25 15:01:02.000000000 +0200 @@ -4,3 +4,4 @@ 0004-File-endian.h-is-not-on-machine-subdir.patch 0005-Fix-install-target-for-new-soname-scheme.patch 0006-Install-missing-include-files-SKINI.msg-and-SKINI.tb.patch +0007-Sort-o-files
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds