Re: [Nix-dev] nix.buildCores and determinism

2016-10-14 Thread Guillaume Maudoux (Layus)
And because the hash does not represent the content, but the intended content, it is very important for the build to be reproducible. This means that the build must be deterministic, and stripped from information such as the host name, time of build and such. Sadly, many parallel builds are not

Re: [Nix-dev] nix.buildCores and determinism

2016-10-13 Thread Peter Simons
Hi Zimbatm, > I think there is a misunderstanding, the hash of the package > derivation depends on the build output. the $out hash for a given package is computed over the build command that generates that store path. Build inputs required for the process play into that hash because the build

Re: [Nix-dev] nix.buildCores and determinism

2016-10-13 Thread zimbatm
I think there is a misunderstanding, the hash of the package derivation depends on the build output. We assume it's always the same which allow us to look it up based on the input hash but it's not always true. For example if the build adds the current time to the build output it will not always

Re: [Nix-dev] nix.buildCores and determinism

2016-10-10 Thread Domen Kožar
You're running the build system in parallel. For example Makefiles, they are not pure and thus builds can fail due to race conditions. We have quite a few disabled for that reason and also that's why you have to explicitly enable parallel building. On Tue, Oct 11, 2016 at 1:56 AM, Ruben Astudillo

[Nix-dev] nix.buildCores and determinism

2016-10-10 Thread Ruben Astudillo
On reading `nixos-option nix.buildCores`, it says that this option can affect the determinism of the build. I don't understand how is important as the hash of the package depends on the default.nix file, not the build process. What does it mean to be non-deterministic in this case? -- Ruben