3 ms·
The floating content-addressed derivations we've worked on as part of this Nix × IPFS work get's us a lot closer to reproducible builds by making non-determins
by Ericson2314 6y ago
The floating content-addressed derivations we've worked on as part of this Nix × IPFS work get's us a lot closer to reproducible builds by making non-determinstic builds far more noticiable.
See these:
https://github.com/NixOS/rfcs/pull/62 https://github.com/NixOS/rfcs/pull/62
https://github.com/NixOS/nix/issues/4087 https://github.com/NixOS/nix/issues/4087
- Foxboron 6y agoMaking it noticeable isn't going to get you closer to reproducible builds though. There is still a quite a lot of effort that needs to go into patching individual packages and fix the non-determinism introduced by the compilation process which NixOS can't solve by adding tricks. And as an outsider I'm unable to read the RFC and understand what is going on and what tangible issues it solves for Nix.
- Ericson2314 6y agoThe Nix approach is any package-specific tricks are left to the plan writer, and Nix's job is to sandbox things. We ought to look things down further and further until build jobs can be deterministic by construction. Until that ideal is reached, you could call "leaving it to the plan writer" a cop-out, but what else is there to do? It's the stop-gap. The benefit of the new system is that all store paths can be content-addressed. That means the inputs of all build stems can be content-addressed, whereas before they might also be "input-addressed" paths whose contents are also a matter of trust. This means one takes "small step" rather than "big step" trust steps, and also that upstream non-determinism won't "pollute" downstream builds.