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

2015-07-18 Thread Chris Lamb
> shouldn't we upload dpkg with that fix to our repo then?

If the impact was more widespread, then definitely.. but am tempted to
wait until some response from dpkg maintainers, especially as I'm not
100% confident in the patch.


-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  la...@debian.org / chris-lamb.co.uk
   `-

___
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-18 Thread Holger Levsen
Hi,

On Samstag, 18. Juli 2015, Chris Lamb wrote:
> Fixed in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792491

shouldn't we upload dpkg with that fix to our repo then?


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

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

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

Fixed in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792491


Regards,

-- 
  ,''`.
 : :'  : Chris Lamb
 `. `'`  la...@debian.org / chris-lamb.co.uk
   `-

___
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-18 Thread Holger Levsen
Hi Andreas,

On Freitag, 10. Juli 2015, Andreas Beckmann wrote:
> 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'm not really sure what you mean, we don't ignore test failures at all.


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

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

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

___
Reproducible-builds mailing list
Reproducible-buil

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

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


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:
> Yes, I use a modified variant of your pbuilder script + hook scripts
> that works with my build setup.
> 
> that was with debhelper 9.20150628.0~reproducible3
>
> 
> but since there may be some "dependency sanitization" pass in dpkg (? or
> some other debhelper?) later on, maybe not dh_shlibdeps is to be blamed ...

I think we've fixed these issues, maybe someone else has an idea?
 
> >> 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


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

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:05, Holger Levsen wrote:
> have you been using our patched debhelper? see 

Yes, I use a modified variant of your pbuilder script + hook scripts
that works with my build setup.

that was with debhelper 9.20150628.0~reproducible3

but since there may be some "dependency sanitization" pass in dpkg (? or
some other debhelper?) later on, maybe not dh_shlibdeps is to be blamed ...

>> 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

Andreas

___
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 Andreas,

On Donnerstag, 9. Juli 2015, Andreas Beckmann wrote:
> [ please keep me Cc:ed ]

done
 
> 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 (?).

have you been using our patched debhelper? see 
https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain
 
> PPS: Similarly "complex" symbols files are used by ocl-icd-libopencl1
> and nvidia-libopencl1, too.

are these both only in non-free too?
 
> PPPS: I haven't tried to see whether this unreproducibility is
> reproducible.

:-)

Thanks for caring + investigating this!


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] 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:

===
# 
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