diff options
-rw-r--r-- | pkgs/applications/science/logic/coq/default.nix | 5 | ||||
-rw-r--r-- | pkgs/development/coq-modules/mathcomp/default.nix | 5 | ||||
-rw-r--r-- | pkgs/development/coq-modules/mathcomp/extra.nix | 19 |
3 files changed, 13 insertions, 16 deletions
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index 774fbadd4fd3..7427875895f3 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -29,10 +29,7 @@ let "8.9.0" = "1dkgdjc4n1m15m1p724hhi5cyxpqbjw6rxc5na6fl3v4qjjfnizh"; "8.10+beta1" = "19wf39i0ap2vakglgdlqxpjd3l1h5w7dp460w8y7nc1y06b2153h"; }."${version}"; - coq-version = - let inherit (builtins) concatStringsSep head map; in - let inherit (stdenv.lib) take splitString; in - concatStringsSep "." (take 2 (map head (map (splitString "pl") (splitString "." version)))); + coq-version = stdenv.lib.versions.majorMinor version; versionAtLeast = stdenv.lib.versionAtLeast coq-version; ideFlags = stdenv.lib.optionalString (buildIde && !versionAtLeast "8.10") "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt"; diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix index aa6da1a1e28c..a9933692db3b 100644 --- a/pkgs/development/coq-modules/mathcomp/default.nix +++ b/pkgs/development/coq-modules/mathcomp/default.nix @@ -16,9 +16,10 @@ let "1.6.1" = flip elem ["8.5"]; }; # computes the default version of mathcomp given a version of Coq - min-mathcomp-version = head (naturalSort (attrNames mathcomp-coq-versions)); - default-mathcomp-version = last (naturalSort ([min-mathcomp-version] + max-mathcomp-version = last (naturalSort (attrNames mathcomp-coq-versions)); + default-mathcomp-version = let v = last (naturalSort (["0.0.0"] ++ (attrNames (filterAttrs (_: vs: vs coq.coq-version) mathcomp-coq-versions)))); + in if v == "0.0.0" then max-mathcomp-version else v; # list of core mathcomp packages sorted by dependency order mathcomp-packages = diff --git a/pkgs/development/coq-modules/mathcomp/extra.nix b/pkgs/development/coq-modules/mathcomp/extra.nix index ef387985e062..3666d54a7869 100644 --- a/pkgs/development/coq-modules/mathcomp/extra.nix +++ b/pkgs/development/coq-modules/mathcomp/extra.nix @@ -75,11 +75,9 @@ packageGen = { mathcomp ? current-mathcomp, license ? mathcomp.meta.license, # mandatory - package, version, version-sha256, description + package, version ? "broken", version-sha256, description }: - if version == "" then {} - else { "${package}" = - let from = src; in + { "${package}" = let from = src; in stdenv.mkDerivation rec { inherit version; @@ -102,19 +100,20 @@ packageGen = { inherit (src.meta) homepage; inherit (mathcomp.meta) platforms; maintainers = [ stdenv.lib.maintainers.vbgl ]; + broken = (version == "broken"); }; passthru = { inherit version-sha256; - compatibleCoqVersions = v: builtins.elem v coq-versions; + compatibleCoqVersions = if meta.broken then _: false else + v: builtins.elem v coq-versions; }; - };}; + }; + }; -current-versions = versions."${current-mathcomp.version}" - or (throw "no mathcomp extra packages found for mathcomp ${current-mathcomp.version}"); +current-versions = versions."${current-mathcomp.version}" or {}; -select = x: mapAttrs (n: pkg: {package = n;} // pkg) - (recursiveUpdate (overrideExisting x param) x); +select = x: mapAttrs (n: pkg: {package = n;} // pkg) (recursiveUpdate param x); all = (mapAttrs' (n: pkg: {name = "mathcomp_1_7-${n}"; |