about summary refs log tree commit diff
path: root/release.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2018-02-03 06:42:02 +0100
committeraszlig <aszlig@nix.build>2018-02-03 06:42:02 +0100
commit66512b9b1ffcf600e4e21c175ae904e837365586 (patch)
treef07659b8a7a6d557852a9abdd038d71944ea9af4 /release.nix
parente7136782e1a8116aec0c938521750e80e6a82772 (diff)
release.nix: Exclude broken packages from set
While we now evaluate broken packages and they fail to build, this is
still not very nice because it will still break the generic channel.

So let's do this a bit differently and actually exclude these packages
without running into an eval error. We evaluate the derivation and later
check whether meta.broken is set, which has the advantage that we only
kick out packages that are *directly* marked as broken rather than
excluding packages that have a broken flag in one of their dependencies.

Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
Diffstat (limited to 'release.nix')
-rw-r--r--release.nix3
1 files changed, 2 insertions, 1 deletions
diff --git a/release.nix b/release.nix
index a3d220f4..81f0d44e 100644
--- a/release.nix
+++ b/release.nix
@@ -60,10 +60,11 @@ let
     };
 
     packagePlatforms = mapAttrs (name: value: let
+      brokenOr = if value.meta.broken or false then [] else id;
       platforms = value.meta.hydraPlatforms or (value.meta.platforms or []);
       isRecursive = value.recurseForDerivations or false
                  || value.recurseForRelease or false;
-      result = if isDerivation value then platforms
+      result = if isDerivation value then brokenOr platforms
                else if isRecursive then packagePlatforms value
                else [];
       tried = builtins.tryEval result;