Nixos-unstable’s ISO_minimal.x86_64-Linux is 100% reproducible
I don&#x27;t see a single comment doubting the value of reproducibility, so I&#x27;ll be the resident skeptic :)<p>I think build reproducibility is a cargo cult. The website says reproducibility can reduce the risk of developers being threatened or bribed to backdoor their software, but that is just ridiculous. Developers have a perfect method for making their own software malicious: bugdoors. A bugdoor (bug + backdoor) is a deliberately introduced &quot;vulnerability&quot; that the vendor can &quot;exploit&quot; when they want backdoor access. If the bug is ever discovered you simply issue a patch and say it was a mistake, it&#x27;s perfectly deniable. It&#x27;s not unusual for major vendors to patch critical vulnerabilities every month, there is zero penalty for doing this.<p>The existence of bugdoors means you <i>have</i> to trust the vendor who provided the source code, there is no way around this.<p>You have to trust the developer, but in theory, reproducible builds could be used to convince yourself their build server hasn&#x27;t been hacked. This isn&#x27;t really necessary or useful, you can already produce a trustworthy binary by just building the source code yourself. You still have to trust the vendor to keep hackers off everything else though!<p>Okay, but building software is tedious, and for some reason you are particularly concerned about build servers being hacked. Perhaps you will nominate a dozen different organization that will all build the code, and make this a consensus system. If they all agree, then you can be sure enough the binaries were built with a trustworthy toolchain. A modest improvement in theory, but that introduces a whole bunch of new crazy problems.<p>You can&#x27;t just pick one or two consensus servers, because then an attacker can stop you getting updates by compromising any one of them. You will have to do something like choose a lot of servers, and only require 51% to agree.<p>Now, imagine a contentious update like a adopting a cryptocurrency fork, or switching to systemd (haha). If the server operators rebel, they can effectively veto a change the vendor wants to make. Perhaps vendors will implement a killswitch that allows them to have the final say, or perhaps they operate all the consensus build servers themselves.<p>The problem is now you&#x27;ve either just replaced build servers with killswitches, or just replicated the same potentially-compromised buildserver.<p>I wrote a blog post about this a while ago, although I should update it at some point.<p><a href="https:&#x2F;&#x2F;blog.cmpxchg8b.com&#x2F;2020&#x2F;07&#x2F;you-dont-need-reproducible-builds.html" rel="nofollow">https:&#x2F;&#x2F;blog.cmpxchg8b.com&#x2F;2020&#x2F;07&#x2F;you-dont-need-reproducibl...</a>