diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-07-05 08:55:26 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-07-05 08:55:26 +0200 |
commit | 5328aac7be5b7ebf794349f915a379efd04b018b (patch) | |
tree | 029547f7673a785c42f12770a68a3ec31a297bf9 /lib | |
parent | f203b32bb8e824a75f89fd9805680b4a8e92d2a5 (diff) | |
parent | c73f0caea5f0822ea044b4f90de4b64706d91362 (diff) | |
download | nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.tar nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.tar.gz nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.tar.bz2 nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.tar.lz nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.tar.xz nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.tar.zst nixpkgs-5328aac7be5b7ebf794349f915a379efd04b018b.zip |
Merge branch 'staging'
Comparison looks OK; I'll try some fixes on master directly. http://hydra.nixos.org/eval/1372577?compare=1372497
Diffstat (limited to 'lib')
-rw-r--r-- | lib/systems/inspect.nix | 15 | ||||
-rw-r--r-- | lib/systems/parse.nix | 19 |
2 files changed, 19 insertions, 15 deletions
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 241c9365f2e..8228705272e 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -1,8 +1,9 @@ with import ./parse.nix; with import ../attrsets.nix; +with import ../lists.nix; rec { - patterns = { + patterns = rec { "32bit" = { cpu = { bits = 32; }; }; "64bit" = { cpu = { bits = 64; }; }; i686 = { cpu = cpuTypes.i686; }; @@ -13,8 +14,8 @@ rec { BigEndian = { cpu = { significantByte = significantBytes.bigEndian; }; }; LittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; }; - Unix = { kernel = { families = { inherit (kernelFamilies) unix; }; }; }; BSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; }; + Unix = [ BSD Darwin Linux SunOS Hurd Cygwin ]; Darwin = { kernel = kernels.darwin; }; Linux = { kernel = kernels.linux; }; @@ -27,11 +28,15 @@ rec { Cygwin = { kernel = kernels.windows; abi = abis.cygnus; }; MinGW = { kernel = kernels.windows; abi = abis.gnu; }; - Arm32 = recursiveUpdate patterns.Arm patterns."32bit"; - Arm64 = recursiveUpdate patterns.Arm patterns."64bit"; + Arm32 = recursiveUpdate Arm patterns."32bit"; + Arm64 = recursiveUpdate Arm patterns."64bit"; }; + matchAnyAttrs = patterns: + if builtins.isList patterns then attrs: any (pattern: matchAttrs pattern attrs) patterns + else matchAttrs patterns; + predicates = mapAttrs' - (name: value: nameValuePair ("is" + name) (matchAttrs value)) + (name: value: nameValuePair ("is" + name) (matchAnyAttrs value)) patterns; } diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 34272b45b8b..bf21d74b931 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -68,21 +68,20 @@ rec { isKernelFamily = isType "kernel-family"; kernelFamilies = setTypes "kernel-family" { bsd = {}; - unix = {}; }; isKernel = x: isType "kernel" x; kernels = with execFormats; with kernelFamilies; setTypesAssert "kernel" (x: isExecFormat x.execFormat && all isKernelFamily (attrValues x.families)) { - darwin = { execFormat = macho; families = { inherit unix; }; }; - freebsd = { execFormat = elf; families = { inherit unix bsd; }; }; - hurd = { execFormat = elf; families = { inherit unix; }; }; - linux = { execFormat = elf; families = { inherit unix; }; }; - netbsd = { execFormat = elf; families = { inherit unix bsd; }; }; - none = { execFormat = unknown; families = { inherit unix; }; }; - openbsd = { execFormat = elf; families = { inherit unix bsd; }; }; - solaris = { execFormat = elf; families = { inherit unix; }; }; + darwin = { execFormat = macho; families = { }; }; + freebsd = { execFormat = elf; families = { inherit bsd; }; }; + hurd = { execFormat = elf; families = { }; }; + linux = { execFormat = elf; families = { }; }; + netbsd = { execFormat = elf; families = { inherit bsd; }; }; + none = { execFormat = unknown; families = { }; }; + openbsd = { execFormat = elf; families = { inherit bsd; }; }; + solaris = { execFormat = elf; families = { }; }; windows = { execFormat = pe; families = { }; }; } // { # aliases # TODO(@Ericson2314): Handle these Darwin version suffixes more generally. @@ -164,7 +163,7 @@ rec { mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s)); doubleFromSystem = { cpu, vendor, kernel, abi, ... }: - if vendor == kernels.windows && abi == abis.cygnus + if abi == abis.cygnus then "${cpu.name}-cygwin" else "${cpu.name}-${kernel.name}"; |