You don’t need reproducible builds
blog.cmpxchg8b.com
You don’t need reproducible builds
1–10 of 179 posts
Re: You don’t need reproducible builds
#2Re: You don’t need reproducible builds
#3The ability to cache build artefacts is a pretty huge benefit for my work.
Re: You don’t need reproducible builds
#4Re: You don’t need reproducible builds
#5Without having them, that kind of verification is much harder, depending on the build setup used, it can be even too hard to be achieved at all.
So we do have clear advantages of having the build infrastructure which results in reproducible builds, and I don't see anything that can substitute that.
The argument "if you build yourself from the sources, your build is then trusted" is not reflecting the reality. Most of the users are never going to build from the sources. Having reproducible builds, only a few people have to build from the sources to verify the binaries for the vast majority. Not to mention that without reproducibility, you can't even know if your own build environment is misconfigured.
Re: You don’t need reproducible builds
#6I think OP is coming from a different perspective than I (corporate bespoke solution builder) do. When I say "reproducible build" I mean a build that is the same on any machine (i.e. no special magic necessary to build a "official" version of the code). Too often in corporate environments, getting a local build or setting up a new build pipeline involves arcane black magic and/or copy/pasting weird libraries that can…
Re: You don’t need reproducible builds
#7Re: You don’t need reproducible builds
#8I think OP is coming from a different perspective than I (corporate bespoke solution builder) do. When I say "reproducible build" I mean a build that is the same on any machine (i.e. no special magic necessary to build a "official" version of the code). Too often in corporate environments, getting a local build or setting up a new build pipeline involves arcane black magic and/or copy/pasting weird libraries that can…
It's true that a dockerized build isn’t any simpler than its non-dockerized ancestor, but at least there’s a Dockerfile that lays bare all the black magic and special sauce which goes into each build. And it can be version controlled to watch for drift over time.
This stuff is useful in a corporate setting, but the other fetishization of reproducible builds is just a distraction that can stay where it belongs: open source mailing lists.
Re: You don’t need reproducible builds
#9I think he's right about all the security arguments. It is definitely nice to have properly reproducible builds from a build system point of view though. Things like ccache would work a lot more reliably.
I think there's added security for the first party builder in their own process: they can better audit the process from source code to deployment.
Re: You don’t need reproducible builds
#10> I think this is a fantasy threat model. If the user does discover the vendor was malicious, what are they supposed to do?
> The malicious vendor can simply refuse to provide them with signed security updates instead, so this threat model doesn’t work.
For me, this is one of the primary benefits of reproducible builds and the author's dismissal of it as fantasy is unconvincing.
Vendors trade on trust. If a reputable application uses reproducible builds and discovers that a platform vendor is modifying their application on their platform, that information is damaging to that vendor's reputation. That's extremely useful leverage against potentially malicious vendors.