Merge pull request #34444 from obsidiansystems/meta-check

lib: Fix #30902
This commit is contained in:
John Ericson
2018-03-18 13:51:03 -04:00
committed by GitHub
7 changed files with 65 additions and 22 deletions

View File

@@ -47,7 +47,7 @@ let
filesystem = callLibs ./filesystem.nix;
# back-compat aliases
platforms = systems.doubles;
platforms = systems.forMeta;
inherit (builtins) add addErrorContext attrNames
concatLists deepSeq elem elemAt filter genericClosure genList

View File

@@ -3,6 +3,7 @@
rec {
doubles = import ./doubles.nix { inherit lib; };
forMeta = import ./for-meta.nix { inherit lib; };
parse = import ./parse.nix { inherit lib; };
inspect = import ./inspect.nix { inherit lib; };
platforms = import ./platforms.nix { inherit lib; };

View File

@@ -30,14 +30,14 @@ in rec {
aarch64 = filterDoubles predicates.isAarch64;
x86 = filterDoubles predicates.isx86;
i686 = filterDoubles predicates.isi686;
mips = filterDoubles predicates.isMips;
x86_64 = filterDoubles predicates.isx86_64;
mips = filterDoubles predicates.isMips;
cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin;
freebsd = filterDoubles predicates.isFreeBSD;
# Should be better, but MinGW is unclear, and HURD is bit-rotted.
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; });
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; });
illumos = filterDoubles predicates.isSunOS;
linux = filterDoubles predicates.isLinux;
netbsd = filterDoubles predicates.isNetBSD;

27
lib/systems/for-meta.nix Normal file
View File

@@ -0,0 +1,27 @@
{ lib }:
let
inherit (lib.systems) parse;
inherit (lib.systems.inspect) patterns;
in rec {
inherit (lib.systems.doubles) all mesaPlatforms;
none = [];
arm = [ patterns.Arm ];
aarch64 = [ patterns.Aarch64 ];
x86 = [ patterns.x86 ];
i686 = [ patterns.i686 ];
x86_64 = [ patterns.x86_64 ];
mips = [ patterns.Mips ];
cygwin = [ patterns.Cygwin ];
darwin = [ patterns.Darwin ];
freebsd = [ patterns.FreeBSD ];
# Should be better, but MinGW is unclear, and HURD is bit-rotted.
gnu = [ { kernel = parse.kernels.linux; abi = parse.abis.gnu; } ];
illumos = [ patterns.SunOS ];
linux = [ patterns.Linux ];
netbsd = [ patterns.NetBSD ];
openbsd = [ patterns.OpenBSD ];
unix = patterns.Unix; # Actually a list
}