Add hacky way to prevent Hydra from building/distributing unfree packages
If the environment variable HYDRA_DISALLOW_UNFREE is set to "1", then evaluation of a package with license "unfree" will throw an error. Thus such packages or any packages that depend on them will fail to evaluate.
This commit is contained in:
parent
85047983a1
commit
bf2b75ca7e
@ -10,6 +10,8 @@ let
|
|||||||
|
|
||||||
lib = import ../../lib;
|
lib = import ../../lib;
|
||||||
|
|
||||||
|
disallowUnfree = builtins.getEnv "HYDRA_DISALLOW_UNFREE" == "1";
|
||||||
|
|
||||||
stdenvGenerator = setupScript: rec {
|
stdenvGenerator = setupScript: rec {
|
||||||
|
|
||||||
# The stdenv that we are producing.
|
# The stdenv that we are producing.
|
||||||
@ -39,6 +41,9 @@ let
|
|||||||
# Add a utility function to produce derivations that use this
|
# Add a utility function to produce derivations that use this
|
||||||
# stdenv and its shell.
|
# stdenv and its shell.
|
||||||
mkDerivation = attrs:
|
mkDerivation = attrs:
|
||||||
|
if disallowUnfree && attrs.meta.license or "" == "unfree" then
|
||||||
|
throw "package ‘${attrs.name}’ has an unfree license, refusing to evaluate"
|
||||||
|
else
|
||||||
(derivation (
|
(derivation (
|
||||||
(removeAttrs attrs ["meta" "passthru" "crossAttrs"])
|
(removeAttrs attrs ["meta" "passthru" "crossAttrs"])
|
||||||
// (let
|
// (let
|
||||||
|
Loading…
Reference in New Issue
Block a user