Lots of progress for Debian's reproducible builds
1–10 of 35 posts
Re: Lots of progress for Debian's reproducible builds
#2Re: Lots of progress for Debian's reproducible builds
#3Re: Lots of progress for Debian's reproducible builds
#4It's an interesting use-case for Docker as well: you can ship the build environment (or its Dockerfile describing it) for people to run builds under the same env as the official released build.
Re: Lots of progress for Debian's reproducible builds
#5Offhand, I remember that /etc/{passwd,group} are copied from the host machine by design. There is also a random seed file, to save entropy across reboots. And there is some nondeterminism in the dynamic linker cache AFAIK. And timestamps in logs.
If anyone is interested in this let me know.
Re: Lots of progress for Debian's reproducible builds
#6Re: Lots of progress for Debian's reproducible builds
#7It can be surprisingly difficult. Funnily enough moving from svn git in one project I know of probably did a lot of the necessary work to achieve this, by having to remove reliance on $SVN tags and pre/post-"build commits" which used to be a part of the release process. It's an interesting use-case for Docker as well: you can ship the build environment (or its Dockerfile describing it) for people to run builds under…
Many many build processes have hidden from-the-network dependencies which are yet another huge source of problems (both in terms of having high-availability for the build process and in terms of understanding exactly what is getting built).
All of the upstream Docker images (including the bottom base images which most people never look at carefully) would need to be built in a reproducible way. And the Docker code would need to actually verify checksums more carefully than it currently does.
Having projects like Debian doing work like this will make it a lot easier for everything else to become reproducible. Which in addition to the security benefits is also pretty useful when bug hunting - having a system that makes it clear which (if any) of your dependencies changed narrows the list of things which need to be checked when something breaks. Ubuntu Core, Snappy, and Nix are also on my list of things to watch in this area.
Re: Lots of progress for Debian's reproducible builds
#8Re: Lots of progress for Debian's reproducible builds
#9Baserock ( http://wiki.baserock.org ) may have a repeatable build of OpenEmbedded for automotive systems.
Re: Lots of progress for Debian's reproducible builds
#10It can be surprisingly difficult. Funnily enough moving from svn git in one project I know of probably did a lot of the necessary work to achieve this, by having to remove reliance on $SVN tags and pre/post-"build commits" which used to be a part of the release process. It's an interesting use-case for Docker as well: you can ship the build environment (or its Dockerfile describing it) for people to run builds under…
I had the same hope for Docker, that it would ease reproducible builds. It quickly became clear to me how much work still needs to be done for that to be realistic. I maintain a packaging of Meteor using Docker designed to increase reproducibility ( https://registry.hub.docker.com/u/danieldent/meteor/ ). It does some checksums on the Meteor code, but the build process itself introduces entropy, and Dockerfile doesn't…
NixOS is definitely on my list, although for different reasons (whilst I love using and babysitting Debian systems, orchestrating it is eating up time that could be better spent on something like NixOS).