[Reproducible-builds] dh_shlibdeps dependency ordering not stable if alternate dependency templates are used

Andreas Beckmann anbe at debian.org
Fri Jul 10 08:21:37 UTC 2015


On 2015-07-09 20:23, 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

After fixing the other issues, I now have a reproducability rate of 50% ... IIRC you are repeating a failed test once to ignore some spurious failures? So you would end up at an error rate of 25% - or less if you were retrying even more.

I've now collected the d/*.substvars before the call to dh_gencontrol, let's see if we get something there:

$ grep libopencl-1.2-1 logs/fglrx-driver_*.build*
logs/fglrx-driver_15.7-1.build1:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
logs/fglrx-driver_15.7-1.build1:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
# first build with --twice, so 2 output lines

logs/fglrx-driver_15.7-1.build2:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
# second build w/o --twice


OK, let's repeat a few times until we get some successes:

logs/fglrx-driver_15.7-1.build1:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
logs/fglrx-driver_15.7-1.build1:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
logs/fglrx-driver_15.7-1.build2:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
# not reproducible

logs/fglrx-driver_15.7-1.build1:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
logs/fglrx-driver_15.7-1.build1:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
logs/fglrx-driver_15.7-1.build2:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
# reproducible

logs/fglrx-driver_15.7-1.build1:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
logs/fglrx-driver_15.7-1.build1:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
logs/fglrx-driver_15.7-1.build2:shlibs: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.1-1, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.2-1
# not reproducible

logs/fglrx-driver_15.7-1.build1:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
logs/fglrx-driver_15.7-1.build1:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
logs/fglrx-driver_15.7-1.build2:shlibs: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, ocl-icd-libopencl1 (>= 1.0) | amd-libopencl1 | libopencl-1.1-1
# reproducible, but the other way around


Andreas



More information about the Reproducible-builds mailing list