1
0
Fork 0
mirror of https://github.com/numtide/flake-utils.git synced 2024-12-14 11:47:31 +00:00

filterPackages: Do not use meta.hydraPlatforms for filtering

The meta.hydraPlatforms attribute was never intended to mark the package
broken; actually lots of packages have `meta.hydraPlatforms = []` while
being perfectly usable.  Typical reasons for disabling Hydra builds are:

  - the package build process is so trivial that caching the build
    results on Hydra won't be useful (this often applies to wrapper
    packages, or some packages which contain just prebuilt data or
    binaries);

  - the package build process exceeds Hydra limits;

  - the package is impure and depends on some proprietary software
    installed on the build host (this is the case with some
    Darwin-specific packages that require Xcode to build);

  - the package license does not allow redistribution of binaries (which
    also may need to be modified to work with Nix, and many proprietary
    licenses don't allow redistribution of such modified binaries);
    although this should normally be handled with meta.unfree.

Especially the first case (wrapper packages) hits some important
packages (firefox, neovim).

Remove the usage of meta.hydraPlatforms from the filterPackages code, so
that the filtering performed by that function would match the actual
platform restriction of packages (meta.platforms and meta.badPlatforms).
This commit is contained in:
Sergey Vlasov 2022-06-24 00:07:55 +03:00
parent 3ff4550a66
commit 3b6a41d794

View file

@ -21,7 +21,7 @@ let
inherit (builtins) isAttrs;
isDerivation = x: isAttrs x && x ? type && x.type == "derivation";
isBroken = meta.broken or false;
platforms = meta.hydraPlatforms or meta.platforms or allSystems;
platforms = meta.platforms or allSystems;
badPlatforms = meta.badPlatforms or [ ];
in
# check for isDerivation, so this is independently useful of