[Reproducible-builds] Preliminary review of dpkg-genbuildinfo

Holger Levsen holger at layer-acht.org
Wed Feb 4 13:36:12 UTC 2015


Hi Guillem,

thanks a lot for support (including sharing your critism!) in making dpkg(-
dev) suitable for reproducible builds! Very very much appreciated.

I'll keep my comments brief, as Lunar said most already.

Also please note that we'll be announcing the reproducible builds project (in 
it's preliminary state) on d-d-a very soon (probably on / shortly after this 
coming weekend), for officially inviting everyone to have a project wide 
discussion...

Before that, the edited version (aka: with slides) of the video our FOSDEM 
talk should be ready for download, please ping me privatly if you want the 
only-still-camera shots version earlier than that. The Q+A and the end is 
pretty interesting and you can easily put the slides next to the video if you 
want to watch it like this.

On Sonntag, 1. Februar 2015, Guillem Jover wrote:
>  * I'm still somewhat unconvinced that having byte-for-byte identical
>    container binary .deb packages is the ideal minimal reproducible
>    unit.

I'm getting more and more convinced it is. Cause that is what we really care 
about.

>    This will completely disallow digital signatures embedded in
>    the binary packages or per-executable signatures in their xattr
>    metadata for example, and that seems to me was completely ignored
>    last time around. I'd be very unhappy if at some point reproducible
>    builds were enforced and that'd mean we've painted ourselves into a
>    corner with other potential additions to the .deb that might not be
>    reproducible by design.

I think, not allowing unreproducible fields in .debs is a feature and a nice 
design.

And yes, there has been years work on embedding signatures into debs, but I 
dont see it as a problem that the result of this work is: don't do that, it 
causes $these problems.  Detached signatures are pretty common everywhere.

I'm also not surprised no one thought of this design earlier, as reproducible 
builds as we know them today were pretty much unknown and unthought even just 
two years ago.

Also, regarding embedded signatures, sure they are nice, but once we have 
reproducible builds, they are also _way_ less meaningful, as the 
reproducibility (and the signed source) make a even more useful statement: 
with embedded signatures you still need to trust the signee that this binary 
derived from the source he/she says it derives from. With reproducible builds 
you can independently veriry that the binary indeed comes from this source.
 
>  * Some of the information in this file trigger my privacy alarm bells,
>    for example the Build-Path field.

While I don't really share your concerns here, as I think the situation now is 
worse: tools embedd this private data into binaries and not many people know 
about this. So I think making the build path visible (and explaining why we 
have to do this) is actually a step in the right direction, on the way to the 
right fix: not embedding the build path at all.

But that is a goal rather far away, so if we want reproducible builds anytime 
soon, which given the feedback at FOSDEM I think *many* people wish for, not 
only on Debian, btw, we need to solve this somehow.

That said, I don't want to dismiss your point at all, because I also think 
it's valid and we can make the problem more visible in a less intrusive way:

a.) we don't include the build path in the .buildinfo but instead
b.) we _define_ a canonical location for Debian builds

And then buildds and developers and users who want reproducible packages will 
need to build in that location. Which is practically which we (the 
reproducible builds project) already demand, just that we now codifiy this 
redundantly in every .buildinfo file.

Probably this is a good question to include in the d-d-a mail...


Touching this subject and also subject to RFC on d-d-a: currently non 
reproducibility bugs are wishlist, I hope soon, once the dpkg+debhelper 
(+probably cdbs) changes are in sid, these bugs will become normal bugs.

So developer builds in a different build path or otherwise unreproducbile 
builds should not become policy violations or even important bugs for the 
immediate future, even in my vision ;-) But that said, I certainly hope that 
reproducibility will be at least a release goal for stretch!


cheers,
	Holger
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20150204/b38c4dc3/attachment.sig>


More information about the Reproducible-builds mailing list