Merge pull request #8047 from lovesegfault/always-allow-substitutes

feat: add always-allow-substitutes

(cherry picked from commit da2b59a08878b3c6c7074595e3b6d26b6928b4c1)
Change-Id: I50481cd8fe643c673c610fec28bad84519a4d650
This commit is contained in:
eldritch horrors 2024-03-04 04:30:34 +01:00
parent 6897e238bd
commit aeb803de9a
3 changed files with 12 additions and 1 deletions

View file

@ -261,6 +261,9 @@ Derivations can declare some infrequently used optional attributes.
useful for very trivial derivations (such as `writeText` in Nixpkgs) useful for very trivial derivations (such as `writeText` in Nixpkgs)
that are cheaper to build than to substitute from a binary cache. that are cheaper to build than to substitute from a binary cache.
You may disable the effects of this attibute by enabling the
`always-allow-substitutes` configuration option in Nix.
> **Note** > **Note**
> >
> You need to have a builder configured which satisfies the > You need to have a builder configured which satisfies the

View file

@ -261,6 +261,14 @@ public:
For the exact format and examples, see [the manual chapter on remote builds](../advanced-topics/distributed-builds.md) For the exact format and examples, see [the manual chapter on remote builds](../advanced-topics/distributed-builds.md)
)"}; )"};
Setting<bool> alwaysAllowSubstitutes{
this, false, "always-allow-substitutes",
R"(
If set to `true`, Nix will ignore the `allowSubstitutes` attribute in
derivations and always attempt to use available substituters.
For more information on `allowSubstitutes`, see [the manual chapter on advanced attributes](../language/advanced-attributes.md).
)"};
Setting<bool> buildersUseSubstitutes{ Setting<bool> buildersUseSubstitutes{
this, false, "builders-use-substitutes", this, false, "builders-use-substitutes",
R"( R"(

View file

@ -122,7 +122,7 @@ bool ParsedDerivation::willBuildLocally(Store & localStore) const
bool ParsedDerivation::substitutesAllowed() const bool ParsedDerivation::substitutesAllowed() const
{ {
return getBoolAttr("allowSubstitutes", true); return settings.alwaysAllowSubstitutes ? true : getBoolAttr("allowSubstitutes", true);
} }
bool ParsedDerivation::useUidRange() const bool ParsedDerivation::useUidRange() const