I actually did some work making debootstrap reproducible. So even if the 100 or so .deb builds it depends on are reproducible, then the chroot image resulting from debootstrap will not be reproducible byte-for-byte, due to the debootstrap shell script itself and the tools it calls. Offhand, I remember that /etc/{passwd,group} are copied from the host machine by design. There is also a random seed file, to save entrop…
Lots of progress for Debian's reproducible builds
11–20 of 35 posts
Re: Lots of progress for Debian's reproducible builds
#12I actually did some work making debootstrap reproducible. So even if the 100 or so .deb builds it depends on are reproducible, then the chroot image resulting from debootstrap will not be reproducible byte-for-byte, due to the debootstrap shell script itself and the tools it calls. Offhand, I remember that /etc/{passwd,group} are copied from the host machine by design. There is also a random seed file, to save entrop…
Re: Lots of progress for Debian's reproducible builds
#13Baserock ( http://wiki.baserock.org ) may have a repeatable build of OpenEmbedded for automotive systems.
What's the relationship between Baserock and OpenEmbedded? Glancing through OpenEmbedded's wiki page, it seems to a recipe/build system for embedded linux. Baserock seems to be in the same league.
Re: Lots of progress for Debian's reproducible builds
#14I mean, if a package is compiled on the same system, with the same compiler, with the same build script -- should it not produce the same output?
Re: Lots of progress for Debian's reproducible builds
#15Can anyone comment on why all builds are not currently "reproducible"? I mean, if a package is compiled on the same system, with the same compiler, with the same build script -- should it not produce the same output?
Also, the goal is to make it reproducible across machines, since one of the motivations is to enable everybody to verify that the binary distribution matches the source.
Re: Lots of progress for Debian's reproducible builds
#16Can anyone comment on why all builds are not currently "reproducible"? I mean, if a package is compiled on the same system, with the same compiler, with the same build script -- should it not produce the same output?
Other problems include non-deterministic filesystem order, randomized hash algorithms, and even the fact that Markdown processors mangle email addresses randomly. A highly vexing problem that I'm currently trying to solve is that libxslt implements the XSLT generate-id() function by taking the memory address of the XML node struct, which makes documentation generated with XSLT non-reproducible (memory addresses are non-deterministic because of address space randomization and randomized hash tables).
(I'm the author of strip-nondeterminism, a tool in our custom toolchain that attempts to normalize files after they're built.)
Re: Lots of progress for Debian's reproducible builds
#17Re: Lots of progress for Debian's reproducible builds
#18Can anyone comment on why all builds are not currently "reproducible"? I mean, if a package is compiled on the same system, with the same compiler, with the same build script -- should it not produce the same output?
The biggest offender is timestamps - compiled binaries, documentation, archives, etc. often contain the time at which the file was built. Other problems include non-deterministic filesystem order, randomized hash algorithms, and even the fact that Markdown processors mangle email addresses randomly. A highly vexing problem that I'm currently trying to solve is that libxslt implements the XSLT generate-id() function b…
Browse source @ https://anonscm.debian.org/cgit/reproducible/strip-nondeterm...
PS. non-deterministic filesystem order .. doesn't this go away if you use tmpfs?
Re: Lots of progress for Debian's reproducible builds
#19Earlier quoted context omitted.
What's the relationship between Baserock and OpenEmbedded? Glancing through OpenEmbedded's wiki page, it seems to a recipe/build system for embedded linux. Baserock seems to be in the same league.
It's a distro/downstream stable version of OE, used in automotive, http://www.genivi.org/ . There are several OE "distros", e.g. Angstrom, http://www.angstrom-distribution.org/ . There's also Yocto, the overall build system, https://www.yoctoproject.org/
Re: Lots of progress for Debian's reproducible builds
#20Can anyone comment on why all builds are not currently "reproducible"? I mean, if a package is compiled on the same system, with the same compiler, with the same build script -- should it not produce the same output?
The biggest offender is timestamps - compiled binaries, documentation, archives, etc. often contain the time at which the file was built. Other problems include non-deterministic filesystem order, randomized hash algorithms, and even the fact that Markdown processors mangle email addresses randomly. A highly vexing problem that I'm currently trying to solve is that libxslt implements the XSLT generate-id() function b…