summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2018-11-06 15:21:19 +0000
committerGitHub <noreply@github.com>2018-11-06 15:21:19 +0000
commit846b2faea1a1458da292a0b77f132d0d57eb6d36 (patch)
tree03e8fec04e2aa3261a53f1789e2a31067a6fbe75
parent329bf4c3e1f3c8020ab9e31ba652f6b13e713630 (diff)
parent5b813ebbc40a3da6560594276eda08af74ce31b0 (diff)
downloadnixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.tar
nixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.tar.gz
nixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.tar.bz2
nixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.tar.lz
nixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.tar.xz
nixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.tar.zst
nixlib-846b2faea1a1458da292a0b77f132d0d57eb6d36.zip
Merge pull request #49780 from Zimmi48/give-default-version-of-ssreflect
coqPackages.ssreflect: refactor choice of source version
-rw-r--r--pkgs/development/coq-modules/mathcomp/default.nix48
-rw-r--r--pkgs/development/coq-modules/ssreflect/default.nix50
2 files changed, 32 insertions, 66 deletions
diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix
index 99a6fe311a01..1e5b6b7bf666 100644
--- a/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/pkgs/development/coq-modules/mathcomp/default.nix
@@ -1,34 +1,33 @@
-{ stdenv, fetchurl, coq, ncurses, which
+{ stdenv, fetchFromGitHub, coq, ncurses, which
 , graphviz, withDoc ? false
 }:
 
-let params =
-
-  let param_1_7 = {
-      version = "1.7.0";
-      sha256 = "05zgyi4wmasi1rcyn5jq42w0bi9713q9m8dl1fdgl66nmacixh39";
-  }; in
+let param =
 
+  if stdenv.lib.versionAtLeast coq.coq-version "8.6" then
   {
-    "8.5" =  {
-      version = "1.6.1";
-      sha256 = "1j9ylggjzrxz1i2hdl2yhsvmvy5z6l4rprwx7604401080p5sgjw";
-    };
-
-    "8.6" = param_1_7;
-    "8.7" = param_1_7;
-    "8.8" = param_1_7;
-    "8.9" = param_1_7;
+    version = "1.7.0";
+    sha256 = "0wnhj9nqpx2bw6n1l4i8jgrw3pjajvckvj3lr4vzjb3my2lbxdd1";
+  }
+  else if stdenv.lib.versionAtLeast coq.coq-version "8.5" then
+  {
+    version = "1.6.1";
+    sha256 = "1ilw6vm4dlsdv9cd7kmf0vfrh2kkzr45wrqr8m37miy0byzr4p9i";
+  }
+  else throw "No version of math-comp is available for Coq ${coq.coq-version}";
 
-  };
-  param = params."${coq.coq-version}";
 in
 
-stdenv.mkDerivation {
-  name = "coq${coq.coq-version}-mathcomp-${param.version}";
+stdenv.mkDerivation rec {
+  name = "coq${coq.coq-version}-mathcomp-${version}";
+
+  # used in ssreflect
+  inherit (param) version;
 
-  src = fetchurl {
-    url = "https://github.com/math-comp/math-comp/archive/mathcomp-${param.version}.tar.gz";
+  src = fetchFromGitHub {
+    owner = "math-comp";
+    repo = "math-comp";
+    rev = "mathcomp-${param.version}";
     inherit (param) sha256;
   };
 
@@ -39,10 +38,11 @@ stdenv.mkDerivation {
 
   buildFlags = stdenv.lib.optionalString withDoc "doc";
 
+  COQBIN = "${coq}/bin/";
+
   preBuild = ''
     patchShebangs etc/utils/ssrcoqdep || true
     cd mathcomp
-    export COQBIN=${coq}/bin/
   '';
 
   installPhase = ''
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.hasAttr v params;
+    compatibleCoqVersions = v: stdenv.lib.versionAtLeast v "8.5";
   };
 
 }
diff --git a/pkgs/development/coq-modules/ssreflect/default.nix b/pkgs/development/coq-modules/ssreflect/default.nix
index 840189e347a5..1fcb7e2da8ae 100644
--- a/pkgs/development/coq-modules/ssreflect/default.nix
+++ b/pkgs/development/coq-modules/ssreflect/default.nix
@@ -1,46 +1,22 @@
-{ stdenv, fetchurl, coq, ncurses, which
-, graphviz, withDoc ? false
+{ stdenv, fetchFromGitHub, coq, ncurses, which
+, graphviz, mathcomp, withDoc ? false
 }:
 
-let params =
+stdenv.mkDerivation rec {
+  name = "coq${coq.coq-version}-ssreflect-${version}";
 
-  let param_1_7 = {
-    version = "1.7.0";
-    sha256 = "05zgyi4wmasi1rcyn5jq42w0bi9713q9m8dl1fdgl66nmacixh39";
-  }; in
-
-  {
-    "8.5" =  {
-      version = "1.6.1";
-      sha256 = "1j9ylggjzrxz1i2hdl2yhsvmvy5z6l4rprwx7604401080p5sgjw";
-    };
-
-    "8.6" = param_1_7;
-    "8.7" = param_1_7;
-    "8.8" = param_1_7;
-    "8.9" = param_1_7;
-
-  };
-  param = params."${coq.coq-version}";
-in
-
-stdenv.mkDerivation {
-
-  name = "coq${coq.coq-version}-ssreflect-${param.version}";
-  src = fetchurl {
-    url = "https://github.com/math-comp/math-comp/archive/mathcomp-${param.version}.tar.gz";
-    inherit (param) sha256;
-  };
+  inherit (mathcomp) src version meta;
 
   nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ];
   buildInputs = [ coq ncurses which ] ++ (with coq.ocamlPackages; [ ocaml findlib camlp5 ]);
 
   enableParallelBuilding = true;
 
+  COQBIN = "${coq}/bin/";
+
   preBuild = ''
     patchShebangs etc/utils/ssrcoqdep || true
     cd mathcomp/ssreflect
-    export COQBIN=${coq}/bin/
   '';
 
   installPhase = ''
@@ -52,15 +28,5 @@ stdenv.mkDerivation {
     cp -r html $out/share/doc/coq/${coq.coq-version}/user-contrib/mathcomp/ssreflect/
   '';
 
-  meta = with stdenv.lib; {
-    homepage = http://ssr.msr-inria.inria.fr/;
-    license = licenses.cecill-b;
-    maintainers = with maintainers; [ vbgl jwiegley ];
-    inherit (coq.meta) platforms;
-  };
-
-  passthru = {
-    compatibleCoqVersions = v: builtins.hasAttr v params;
-  };
-
+  passthru.compatibleCoqVersions = mathcomp.compatibleCoqVersions;
 }