Source: directfb Version: 1.4.3-1.1 Severity: wishlist Tags: patch upstream User: reproducible-builds@lists.alioth.debian.org Usertags: fileordering timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org
Hi! While working on the "reproducible builds" effort [1], we have noticed that directfb could not be built reproducibly. It embeds the current build time into several binaries and does notsort object files in static libraries. The attached patch fixes this. Regards, Reiner [1]: https://wiki.debian.org/ReproducibleBuilds
diff --git a/debian/patches/reproducible_build.patch b/debian/patches/reproducible_build.patch new file mode 100644 index 0000000..9d97fa5 --- /dev/null +++ b/debian/patches/reproducible_build.patch @@ -0,0 +1,83 @@ +Author: Reiner Herrmann <rei...@reiner-h.de> +Description: Enable reproducible building + - Sort list of object files while linking + - Strip build time from binary + +--- a/lib/direct/Makefile.am ++++ b/lib/direct/Makefile.am +@@ -116,7 +116,7 @@ + + libdirect_fixed.a: .libs/libdirect.a + rm -f libdirect_fixed.a +- ${AR} cru libdirect_fixed.a `find . -name "*.o" | grep -v '.libs' | grep -v dtest` ++ ${AR} cru libdirect_fixed.a `find . -name "*.o" | grep -v '.libs' | grep -v dtest | LC_ALL=C sort` + ${RANLIB} libdirect_fixed.a + cp -pf libdirect_fixed.a .libs/libdirect.a + +--- a/src/core/Makefile.am ++++ b/src/core/Makefile.am +@@ -10,8 +10,7 @@ + AM_CPPFLAGS = \ + -DDATADIR=\"${RUNTIME_SYSROOT}@DATADIR@\" \ + -DSOPATH=\"@SOPATH@\" \ +- -DMODULEDIR=\"${RUNTIME_SYSROOT}@MODULEDIR@\" \ +- "-DBUILDTIME=\"`date -u "+%Y-%m-%d %H:%M"`\"" ++ -DMODULEDIR=\"${RUNTIME_SYSROOT}@MODULEDIR@\" + + + internalincludedir = $(INTERNALINCLUDEDIR)/core +--- a/src/core/core.c ++++ b/src/core/core.c +@@ -275,7 +275,7 @@ + direct_initialize(); + + +- D_INFO( "DirectFB/Core: %s Application Core. ("BUILDTIME") %s%s\n", ++ D_INFO( "DirectFB/Core: %s Application Core. %s%s\n", + FUSION_BUILD_MULTI ? "Multi" : "Single", + DIRECT_BUILD_DEBUG ? "[ DEBUG ]" : "", + DIRECT_BUILD_TRACE ? "[ TRACE ]" : "" ); +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -55,7 +55,7 @@ + + libdirectfb_fixed.a: .libs/libdirectfb.a + rm -f libdirectfb_fixed.a +- ${AR} cru libdirectfb_fixed.a `find . -name "*.o" | grep -v '.libs'` ++ ${AR} cru libdirectfb_fixed.a `find . -name "*.o" | grep -v '.libs' | LC_ALL=C sort` + ${RANLIB} libdirectfb_fixed.a + cp -pf libdirectfb_fixed.a .libs/libdirectfb.a + +--- a/lib/fusion/Makefile.am ++++ b/lib/fusion/Makefile.am +@@ -82,7 +82,7 @@ + + libfusion_fixed.a: .libs/libfusion.a + rm -f libfusion_fixed.a +- ${AR} cru libfusion_fixed.a `find . -name "*.o" | grep -v '.libs'` ++ ${AR} cru libfusion_fixed.a `find . -name "*.o" | grep -v '.libs' | LC_ALL=C sort` + ${RANLIB} libfusion_fixed.a + cp -pf libfusion_fixed.a .libs/libfusion.a + +--- a/lib/voodoo/Makefile.am ++++ b/lib/voodoo/Makefile.am +@@ -62,7 +62,7 @@ + + libvoodoo_fixed.a: .libs/libvoodoo.a + rm -f libvoodoo_fixed.a +- ${AR} cru libvoodoo_fixed.a `find . -name "*.o"` ++ ${AR} cru libvoodoo_fixed.a `find . -name "*.o" | LC_ALL=C sort` + ${RANLIB} libvoodoo_fixed.a + cp -pf libvoodoo_fixed.a .libs/libvoodoo.a + +--- a/wm/unique/Makefile.am ++++ b/wm/unique/Makefile.am +@@ -135,7 +135,7 @@ + + libuniquewm_fixed.a: .libs/libuniquewm.a + rm -f libuniquewm_fixed.a +- ${AR} cru libuniquewm_fixed.a `find . -name "*.o" | grep -v '.libs'` ++ ${AR} cru libuniquewm_fixed.a `find . -name "*.o" | grep -v '.libs' | LC_ALL=C sort` + ${RANLIB} libuniquewm_fixed.a + cp -pf libuniquewm_fixed.a .libs/libuniquewm.a + diff --git a/debian/patches/series b/debian/patches/series index 36f3991..6f8f0ec 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -6,3 +6,4 @@ 93_fix_unicode_key_handling.patch 94_fix_mknod.patch directfb-1.2.10_libpng-1.5.patch +reproducible_build.patch
_______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds