lib/minfeatures: init from minver.nix (#433057)
This commit is contained in:
+6
-4
@@ -1,13 +1,15 @@
|
||||
let
|
||||
requiredVersion = import ./lib/minver.nix;
|
||||
missingFeatures = map ({ description, ... }: description) (import ./lib/minfeatures.nix).missing;
|
||||
in
|
||||
|
||||
if !builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then
|
||||
if missingFeatures != [ ] then
|
||||
|
||||
abort ''
|
||||
|
||||
This version of Nixpkgs requires Nix >= ${requiredVersion} but it is being
|
||||
evaluated with Nix ${builtins.nixVersion or "(too old to know)"}, please upgrade:
|
||||
This version of Nixpkgs requires an implementation of Nix with the following features:
|
||||
- ${builtins.concatStringsSep "\n- " missingFeatures}
|
||||
|
||||
Your are evaluating with Nix ${builtins.nixVersion or "(too old to know)"}, please upgrade:
|
||||
|
||||
- If you are running NixOS, `nixos-rebuild' can be used to upgrade your system.
|
||||
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ This file evaluates to an attribute set containing two separate kinds of attribu
|
||||
Example: `lib.take` is an alias for `lib.lists.take`.
|
||||
|
||||
Most files in this directory are definitions of sub-libraries, but there are a few others:
|
||||
- [`minver.nix`](minver.nix): A string of the minimum version of Nix that is required to evaluate Nixpkgs.
|
||||
- [`minfeatures.nix`](minfeatures.nix): A list of conditions for the used Nix version to match that are required to evaluate Nixpkgs.
|
||||
- [`tests`](tests): Tests, see [Running tests](#running-tests)
|
||||
- [`release.nix`](tests/release.nix): A derivation aggregating all tests
|
||||
- [`misc.nix`](tests/misc.nix): Evaluation unit tests for most sub-libraries
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
let
|
||||
features = [
|
||||
{
|
||||
description = "the `nixVersion` builtin";
|
||||
condition = builtins ? nixVersion;
|
||||
}
|
||||
{
|
||||
description = "`builtins.nixVersion` reports at least 2.18";
|
||||
condition = builtins ? nixVersion && builtins.compareVersions "2.18" builtins.nixVersion != 1;
|
||||
}
|
||||
];
|
||||
|
||||
evaluated = builtins.partition ({ condition, ... }: condition) features;
|
||||
in
|
||||
{
|
||||
all = features;
|
||||
supported = evaluated.right;
|
||||
missing = evaluated.wrong;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
# Expose the minimum required version for evaluating Nixpkgs
|
||||
"2.18"
|
||||
Reference in New Issue
Block a user