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
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
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
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
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