[Reproducible-builds] Bug#791922: 389-admin: please make the build reproducible

2015-07-09 Thread Chris Lamb
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

2015-07-09 Thread Andreas Beckmann
[ 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

2015-07-09 Thread Chris Lamb
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

2015-07-09 Thread Andreas Beckmann
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

2015-07-09 Thread Reiner Herrmann
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

2015-07-09 Thread Mattia Rizzolo
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

2015-07-09 Thread Holger Levsen
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

2015-07-09 Thread Chris Lamb
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