From 524b7fe178e7ff909d9eef1e8fab78e227076de7 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Thu, 28 May 2015 16:09:05 +0200 Subject: [PATCH] coq-ssreflect: refactor --- .../coq-modules/ssreflect/default.nix | 47 +++++-------------- .../ssreflect/{1.5.nix => generic.nix} | 22 +++++---- pkgs/top-level/all-packages.nix | 15 +++--- 3 files changed, 33 insertions(+), 51 deletions(-) rename pkgs/development/coq-modules/ssreflect/{1.5.nix => generic.nix} (59%) diff --git a/pkgs/development/coq-modules/ssreflect/default.nix b/pkgs/development/coq-modules/ssreflect/default.nix index bb91c3e270b6..a0b0d951c0df 100644 --- a/pkgs/development/coq-modules/ssreflect/default.nix +++ b/pkgs/development/coq-modules/ssreflect/default.nix @@ -1,48 +1,27 @@ -{ stdenv, fetchurl, coq -, graphviz, withDoc ? true -}: +{ callPackage, fetchurl, coq }: -assert coq.coq-version == "8.4"; +if coq.coq-version == "8.4" then -stdenv.mkDerivation { - - name = "coq-ssreflect-1.5"; +callPackage ./generic.nix { src = fetchurl { url = http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.tar.gz; sha256 = "0hm1ha7sxqfqhc7iwhx6zdz3nki4rj5nfd3ab24hmz8v7mlpinds"; }; - nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ]; - buildInputs = [ coq.ocaml coq.camlp5 ]; - propagatedBuildInputs = [ coq ]; +} - enableParallelBuilding = true; +else if coq.coq-version == "8.5" then - patchPhase = '' - # Permit building of the ssrcoq statically-bound executable - sed -i 's/^#-custom/-custom/' Make - sed -i 's/^#SSRCOQ/SSRCOQ/' Make - ''; +callPackage ./generic.nix { - buildFlags = stdenv.lib.optionalString withDoc "doc"; - - installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/"; - - postInstall = '' - mkdir -p $out/bin - cp -p bin/ssrcoq $out/bin - cp -p bin/ssrcoq.byte $out/bin - '' + stdenv.lib.optionalString withDoc '' - mkdir -p $out/share/doc/coq/${coq.coq-version}/user-contrib/Ssreflect/ - cp -r html $out/share/doc/coq/${coq.coq-version}/user-contrib/Ssreflect/ - ''; - - meta = with stdenv.lib; { - homepage = http://ssr.msr-inria.inria.fr/; - license = licenses.cecill-b; - maintainers = with maintainers; [ vbgl jwiegley ]; - platforms = coq.meta.platforms; + src = fetchurl { + url = http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.coq85beta2.tar.gz; + sha256 = "084l9xd5vgb8jml0dkm66g8cil5rsf04w821pjhn2qk9mdbwaagf"; }; + patches = [ ./threads.patch ]; + } + +else throw "No ssreflect package for Coq version ${coq.coq-version}" diff --git a/pkgs/development/coq-modules/ssreflect/1.5.nix b/pkgs/development/coq-modules/ssreflect/generic.nix similarity index 59% rename from pkgs/development/coq-modules/ssreflect/1.5.nix rename to pkgs/development/coq-modules/ssreflect/generic.nix index 7c16b43ba8cb..dffa895da5fc 100644 --- a/pkgs/development/coq-modules/ssreflect/1.5.nix +++ b/pkgs/development/coq-modules/ssreflect/generic.nix @@ -1,22 +1,21 @@ -{stdenv, fetchurl, coq}: - -assert coq.coq-version == "8.5"; +{ stdenv, fetchurl, coq +, graphviz, withDoc ? true +, src, patches ? [] +}: stdenv.mkDerivation { - name = "coq-ssreflect-1.5-8.5b2"; + name = "coq-${coq.coq-version}-ssreflect-1.5"; - src = fetchurl { - url = http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.coq85beta2.tar.gz; - sha256 = "084l9xd5vgb8jml0dkm66g8cil5rsf04w821pjhn2qk9mdbwaagf"; - }; + inherit src; + nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ]; buildInputs = [ coq.ocaml coq.camlp5 ]; propagatedBuildInputs = [ coq ]; enableParallelBuilding = true; - patches = [ ./threads.patch ]; + inherit patches; postPatch = '' # Permit building of the ssrcoq statically-bound executable @@ -24,12 +23,17 @@ stdenv.mkDerivation { sed -i 's/^#SSRCOQ/SSRCOQ/' Make ''; + buildFlags = stdenv.lib.optionalString withDoc "doc"; + installFlags = "COQLIB=$(out)/lib/coq/${coq.coq-version}/"; postInstall = '' mkdir -p $out/bin cp -p bin/ssrcoq $out/bin cp -p bin/ssrcoq.byte $out/bin + '' + stdenv.lib.optionalString withDoc '' + mkdir -p $out/share/doc/coq/${coq.coq-version}/user-contrib/Ssreflect/ + cp -r html $out/share/doc/coq/${coq.coq-version}/user-contrib/Ssreflect/ ''; meta = with stdenv.lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bc4a490902da..ef80fcd5e088 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14090,19 +14090,18 @@ let mkCoqPackages_8_5 = self: let callPackage = newScope self; in rec { - mathcomp = callPackage ../development/coq-modules/mathcomp/1.5.nix { - coq = coq_8_5; - ssreflect = ssreflect; - }; + inherit callPackage; - ssreflect = callPackage ../development/coq-modules/ssreflect/1.5.nix { - coq = coq_8_5; - }; + coq = coq_8_5; + + mathcomp = callPackage ../development/coq-modules/mathcomp/1.5.nix { }; + + ssreflect = callPackage ../development/coq-modules/ssreflect { }; }; coqPackages = recurseIntoAttrs (mkCoqPackages_8_4 coqPackages); - coqPackages_8_5 = recurseIntoAttrs (mkCoqPackages_8_5 coqPackages); + coqPackages_8_5 = recurseIntoAttrs (mkCoqPackages_8_5 coqPackages_8_5); cvc3 = callPackage ../applications/science/logic/cvc3 {}; cvc4 = callPackage ../applications/science/logic/cvc4 {};