On 07/02/2014 08:41 AM, Brett Viren wrote:
To add, if deterministic builds were not possible it would mean this could not exist: http://nixos.org/nix/ Regards, -Brett.
I don't see anywhere on that site where they claim that any given source package, when build, will always produce a bit-for-bit identical binary package. The hash that's mentioned is of the dependency graph, not the actual package binary.
They seem to define a 'reproducible' build as "Nix builds packages in isolation from each other. This ensures that they are reproducible and don’t have undeclared dependencies, so if a package works on one machine, it will also work on another." This is 'functionally compatible.' (It also sounds a lot like how mock is used to build rpms from source rpms; this is very much an improvement over how builds were done in the days before mock and its predecessor, mach.)
Russ mentions parallel builds; I will have to try that on my 30 CPU Altix box at some point; I'll take a source package (I'll probably do the kernel) and rebuild it, wait a day, rebuild the same source RPM again (with the same buildroot of the same binaries), and compare the binary packages. With a -j 28 argument to make it would show this sort of artifact most easily.
