[Reproducible-builds] Bug#791922: 389-admin: please make the build reproducible
Source: 389-admin Version: 1.1.38-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that 389-admin could not be built reproducibly. The attached patch fixes locale-specific timestamps from the build system. Once applied, 389-admin can be built reproducibly in our reproducible toolchain. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `- diff --git a/debian/rules b/debian/rules index 273b989..cf1f840 100755 --- a/debian/rules +++ b/debian/rules @@ -15,7 +15,7 @@ LDFLAGS += -L/usr/lib/$(DEB_HOST_MULTIARCH)/nss # Deterministic build number. Format is defined in ./buildnum.pl BUILD_DATE := $(shell dpkg-parsechangelog --show-field Date) -BUILDNUM := $(shell date --date=$(BUILD_DATE) +%Y.%j.%H%M) +BUILDNUM := $(shell date --utc --date=$(BUILD_DATE) +%Y.%j.%H%M) override_dh_auto_configure: dh_auto_configure -- \ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] dh_shlibdeps dependency ordering not stable if alternate dependency templates are used
[ please keep me Cc:ed ] Hi, I'm just looking into reproducibility of fglrx-driver/non-free and saw some toolchain issue resulting in unreproducible packages: debdiff b1/amd-clinfo_15.5-2_amd64.deb b2/amd-clinfo_15.5-2_amd64.deb (manually wrapped for better readability) File lists identical (after any substitutions) Control files: lines which differ (wdiff format) Depends: libc6 (= 2.3.3), libgcc1 (= 1:4.1.1), ocl-icd-libopencl1 | amd-libopencl1 | libopencl1, ocl-icd-libopencl1 (= 1.0) | amd-libopencl1 | [-libopencl-1.2-1,-] {+libopencl-1.1-1,+} ocl-icd-libopencl1 (= 1.0) | amd-libopencl1 | [-libopencl-1.1-1-] {+libopencl-1.2-1+} The only difference is the ordering of the dependencies generated by dh_shlibdeps (?). The symbols file from amd-libopencl1 that is used to generate these dependencies makes use of alternate dependency templates and more than one of the alternate templates are needed for the final dependencies: === # snipped some paragraphs of comments libOpenCL.so.1 ocl-icd-libopencl1 | #PACKAGE# #MINVER# | libopencl1 # symbols specific to this implementation - would forbid using alternate implementations | #PACKAGE# #MINVER# # symbols conforming to the OpenCL standards - can use alternate implementations | ocl-icd-libopencl1 (= 1.0) | #PACKAGE# #MINVER# | libopencl-1.1-1 | ocl-icd-libopencl1 (= 1.0) | #PACKAGE# #MINVER# | libopencl-1.2-1 | ocl-icd-libopencl1 (= 2.2.0) | #PACKAGE# #MINVER# | libopencl-2.0-1 # As AMD uses versioned symbols, we use this information instead of # listing all symbols. (symver|optional)OPENCL_1.0 0 2 (symver|optional)OPENCL_1.1 0 2 (symver|optional)OPENCL_1.2 0 3 (symver|optional)OPENCL_2.0 1:14 4 === Andreas PS: As an additional reproducibility torturing measure I used the pbuilder --twice option for the first build. PPS: Similarly complex symbols files are used by ocl-icd-libopencl1 and nvidia-libopencl1, too. PPPS: I haven't tried to see whether this unreproducibility is reproducible. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#791923: alpine: please make the build reproducible
Source: alpine Version: 2.20+dfsg1-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that alpine could not be built reproducibly. The attached patch removes timestamps from the build system. Once applied, alpine can be built reproducibly in our reproducible toolchain. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `- diff --no-dereference -urNad alpine.orig/alpine-2.20+dfsg1/debian/patches/90_reproducible_build.patch alpine/alpine-2.20+dfsg1/debian/patches/90_reproducible_build.patch --- alpine.orig/alpine-2.20+dfsg1/debian/patches/90_reproducible_build.patch 1970-01-01 01:00:00.0 +0100 +++ alpine/alpine-2.20+dfsg1/debian/patches/90_reproducible_build.patch 2015-07-09 16:12:22.460926998 +0100 @@ -0,0 +1,10 @@ +--- alpine-2.20+dfsg1.orig/alpine/Makefile.am alpine-2.20+dfsg1/alpine/Makefile.am +@@ -48,5 +48,5 @@ AM_LDFLAGS = `cat @top_srcdir@/c-client/ + CLEANFILES = date.c + + date.c: +- echo char datestamp[]=\`date`\; date.c +- echo char hoststamp[]=\`hostname`\; date.c ++ echo char datestamp[]=\`dpkg-parsechangelog -l../debian/changelog -SDate`\; date.c ++ echo char hoststamp[]=\debian\; date.c diff --no-dereference -urNad alpine.orig/alpine-2.20+dfsg1/debian/patches/series alpine/alpine-2.20+dfsg1/debian/patches/series --- alpine.orig/alpine-2.20+dfsg1/debian/patches/series 2015-07-09 16:09:24.238634581 +0100 +++ alpine/alpine-2.20+dfsg1/debian/patches/series 2015-07-09 16:12:19.012746733 +0100 @@ -4,3 +4,4 @@ 40_fix_filter_hardcoded_paths.patch 40_fix_browser_hardcoded_paths.patch 80_remove_phone_home.patch +90_reproducible_build.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] dh_shlibdeps dependency ordering not stable if alternate dependency templates are used
On 2015-07-09 18:38, Holger Levsen wrote: PPS: Similarly complex symbols files are used by ocl-icd-libopencl1 and nvidia-libopencl1, too. are these both only in non-free too? ocl-icd is in main and reproducible when tested in our setup: https://reproducible.debian.net/ocl-icd no, you need to test something that uses both OpenCL 1.1 and OpenCL 1.2 functions, e.g. amd-clinfo, erlang-cl, python{,3}-pyopencl{,-dbg}. That list is complete - all rdepends of the libopencl-1.2-1 virtual package. The issue is nondeterministic - a first rebuild after partly fixing another reproducibility issue has not shown this again. Andreas ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#791960: leveldb: please make the build reproducible
Source: leveldb Version: 1.18-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi! While working on the reproducible builds effort [1], we have noticed that leveldb could not be built reproducibly. A file list is sorted differently depending on the locale. The attached patch fixes this by setting LC_ALL to C before sorting. Regards, Reiner [1]: https://wiki.debian.org/ReproducibleBuilds diff --git a/debian/patches/0002-reproducible_build.patch b/debian/patches/0002-reproducible_build.patch new file mode 100644 index 000..c728033 --- /dev/null +++ b/debian/patches/0002-reproducible_build.patch @@ -0,0 +1,13 @@ +Index: leveldb-1.18/build_detect_platform +=== +--- leveldb-1.18.orig/build_detect_platform leveldb-1.18/build_detect_platform +@@ -174,7 +174,7 @@ set -f # temporarily disable globbing so + PRUNE_TEST=-name *test*.cc -prune + PRUNE_BENCH=-name *_bench.cc -prune + PRUNE_TOOL=-name leveldb_main.cc -prune +-PORTABLE_FILES=`find $DIRS $PRUNE_TEST -o $PRUNE_BENCH -o $PRUNE_TOOL -o -name '*.cc' -print | sort | sed s,^$PREFIX/,, | tr \n ` ++PORTABLE_FILES=`find $DIRS $PRUNE_TEST -o $PRUNE_BENCH -o $PRUNE_TOOL -o -name '*.cc' -print | LC_ALL=C sort | sed s,^$PREFIX/,, | tr \n ` + + set +f # re-enable globbing + diff --git a/debian/patches/series b/debian/patches/series index c12b084..eafed0d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ 0112-makefile_install.patch 0113-makefile_memenv.patch 1001-fix_bloom_test.patch +0002-reproducible_build.patch signature.asc Description: OpenPGP digital signature ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] dh_shlibdeps dependency ordering not stable if alternate dependency templates are used
On Thu, Jul 09, 2015 at 08:23:12PM +0200, Holger Levsen wrote: The issue is nondeterministic - a first rebuild after partly fixing another reproducibility issue has not shown this again. btw: https://reproducible.debian.net/rb-pkg/unstable/amd64/pyopencl.html I recall some other cases, where it turned out that the problem is not dpkg's and neither dh's. from dpkg-gencontrol(1): The order of dependencies is preserved as best as possible: if any dependency must be discarded due to another dependency appearing further in the field, the superseding dependency will take the place of the discarded one. That means that whatever passes them to dpkg, has to sort them. I quickly looked to dh_shlibdeps, and (if i got that right) it just call dpkg-shlibdeps. Now I don't have a clue of the order used by this one, and the manpage is way too long to be read in 5 minutes, but I'm fairly sure we didn't patch that file (at least, the changelog does not state so). -- regards, Mattia Rizzolo GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`. more about me: http://mapreri.org : :' : Launchpad user: https://launchpad.net/~mapreri `. `'` Debian QA page: https://qa.debian.org/developer.php?login=mattia `- signature.asc Description: Digital signature ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
Re: [Reproducible-builds] dh_shlibdeps dependency ordering not stable if alternate dependency templates are used
Hi, On Donnerstag, 9. Juli 2015, Andreas Beckmann wrote: no, you need to test something that uses both OpenCL 1.1 and OpenCL 1.2 functions, e.g. amd-clinfo, erlang-cl, python{,3}-pyopencl{,-dbg}. That list is complete - all rdepends of the libopencl-1.2-1 virtual package. any of these in main? The issue is nondeterministic - a first rebuild after partly fixing another reproducibility issue has not shown this again. btw: https://reproducible.debian.net/rb-pkg/unstable/amd64/pyopencl.html cheers, Holger signature.asc Description: This is a digitally signed message part. ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#791913: ceph: please make the build reproducible
Source: ceph Version: 0.80.9-2 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: randomness X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that ceph could not be built reproducibly. This is because the dh_installinit snippets that are placed into the post{inst,rm} scripts are generated in a filesystem — and thus non-deterministic — order. The attached patch removes this randomness from the build system by simply sorting the filenames. Once applied, ceph can be built reproducibly in our reproducible toolchain. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `- diff --git a/debian/rules b/debian/rules index b3b0ccb..45833b4 100755 --- a/debian/rules +++ b/debian/rules @@ -62,17 +62,17 @@ override_dh_installinit: dh_installinit --no-start dh_installinit -pceph --no-start --name=rbdmap # Install upstart configurations using dh_installinit - for conf in `ls -1 src/upstart/ceph*.conf | grep -v mds`; do \ + for conf in `ls -1 src/upstart/ceph*.conf | grep -v mds | LC_ALL=C sort`; do \ name=`basename $$conf | cut -d . -f 1`; \ cp -v $$conf debian/ceph.$$name.upstart; \ dh_installinit -pceph --no-start --name=$$name; \ done - for conf in `ls -1 src/upstart/ceph-mds*.conf`; do \ + for conf in `ls -1 src/upstart/ceph-mds*.conf | LC_ALL=C sort`; do \ name=`basename $$conf | cut -d . -f 1`; \ cp -v $$conf debian/ceph-mds.$$name.upstart; \ dh_installinit -pceph-mds --no-start --name=$$name; \ done - for conf in `ls -1 src/upstart/radosgw*.conf`; do \ + for conf in `ls -1 src/upstart/radosgw*.conf | LC_ALL=C sort`; do \ name=`basename $$conf | cut -d . -f 1`; \ [ $$name = radosgw ] name=radosgw-instance;\ cp -v $$conf debian/radosgw.$$name.upstart; \ ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds