Source: roaraudio Version: 1.0~beta12-1 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: environment X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that roaraudio could not be built reproducibly. This is because it captured the current build time, hostname and uname in the binaries and in the shipped config.h: #ifdef __RABS_COMMENT__ -/* uname: Linux profitbricks-build15-amd64 4.19.0-0.bpo.1-amd64 #1 SMP Debian 4.19.12-1~bpo9+1 (2018-12-30) x86_64 GNU/Linux */ -/* Date : Fri Feb 28 21:12:02 UTC 2020 */ +/* uname: Linux i-capture-the-hostname 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux */ +/* Date : Sat Jan 26 15:00:18 UTC 2019 */ Patch attached. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `-
--- a/debian/patches/reproducible-build.patch 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/reproducible-build.patch 2019-01-27 09:20:43.266786381 +0100 @@ -0,0 +1,54 @@ +Description: Make the build reproducible +Author: Chris Lamb <la...@debian.org> +Last-Update: 2019-01-27 + +--- roaraudio-1.0~beta12.orig/build-system/configure.lib ++++ roaraudio-1.0~beta12/build-system/configure.lib +@@ -549,8 +549,13 @@ write_header_configlog() { + */ + + EOF +- echo '/* uname: ' $(uname -a) '*/' +- echo '/* Date : ' $(LC_ALL=C date --utc) '*/' ++ echo '/* Date : ' $(LC_ALL=C date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}") '*/' ++ if [ "$SOURCE_DATE_EPOCH" = '' ] ++ then ++ echo '/* uname: ' $(uname -a) '*/' ++ else ++ echo '/* uname: (reproducible) */' ++ fi + echo + + echo +@@ -588,8 +593,13 @@ write_header_configh() { + echo "#define $1" + echo + echo '#ifdef __RABS_COMMENT__' +- echo '/* uname: ' $(uname -a) '*/' +- echo '/* Date : ' $(LC_ALL=C date --utc) '*/' ++ echo '/* Date : ' $(LC_ALL=C date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}") '*/' ++ if [ "$SOURCE_DATE_EPOCH" = '' ] ++ then ++ echo '/* uname: ' $(uname -a) '*/' ++ else ++ echo '/* uname: (reproducible) */' ++ fi + echo '#endif' + echo + } >&3 +--- roaraudio-1.0~beta12.orig/build-system/configure.tests ++++ roaraudio-1.0~beta12/build-system/configure.tests +@@ -52,7 +52,12 @@ test_pkgversion() { + + test_buildstamp() { + echo -n "checking for build stamp of this package... " +- BUILD_STAMP="`LC_ALL=C date --utc +'%F %X'` (`id -un`@`uname -n`)" ++ if [ "$SOURCE_DATE_EPOCH" = '' ] ++ then ++ BUILD_STAMP="`LC_ALL=C date --utc +'%F %X'` (`id -un`@`uname -n`)" ++ else ++ BUILD_STAMP="`LC_ALL=C date --utc +'%F %X' --date=@$SOURCE_DATE_EPOCH` (reproducuble)" ++ fi + echo "$BUILD_STAMP" + return 0 + } --- a/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/series 2019-01-27 09:03:06.721045620 +0100 @@ -0,0 +1 @@ +reproducible-build.patch