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:
Eelco Dolstra 2012-08-22 15:21:10 -04:00
parent 85047983a1
commit bf2b75ca7e

View File

@ -10,6 +10,8 @@ let
lib = import ../../lib;
disallowUnfree = builtins.getEnv "HYDRA_DISALLOW_UNFREE" == "1";
stdenvGenerator = setupScript: rec {
# The stdenv that we are producing.
@ -39,6 +41,9 @@ let
# Add a utility function to produce derivations that use this
# stdenv and its shell.
mkDerivation = attrs:
if disallowUnfree && attrs.meta.license or "" == "unfree" then
throw "package ${attrs.name} has an unfree license, refusing to evaluate"
else
(derivation (
(removeAttrs attrs ["meta" "passthru" "crossAttrs"])
// (let