From a30e8db9f04315730f83f324c4079f69bbac44a5 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 9 Jan 2017 19:32:49 +0000 Subject: [PATCH 1/3] coq: merge files 8.5.nix and 8.6.nix into default.nix --- pkgs/applications/science/logic/coq/8.6.nix | 88 ------------------- .../logic/coq/{8.5.nix => default.nix} | 16 ++-- pkgs/top-level/all-packages.nix | 5 +- 3 files changed, 11 insertions(+), 98 deletions(-) delete mode 100644 pkgs/applications/science/logic/coq/8.6.nix rename pkgs/applications/science/logic/coq/{8.5.nix => default.nix} (85%) diff --git a/pkgs/applications/science/logic/coq/8.6.nix b/pkgs/applications/science/logic/coq/8.6.nix deleted file mode 100644 index 9d3aa756aa5..00000000000 --- a/pkgs/applications/science/logic/coq/8.6.nix +++ /dev/null @@ -1,88 +0,0 @@ -# - coqide compilation can be disabled by setting lablgtk to null; -# - The csdp program used for the Micromega tactic is statically referenced. -# However, coq can build without csdp by setting it to null. -# In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found. -# - The patch-level version can be specified through the `pl` argument to -# the derivation; it defaults to the greatest. - -{ stdenv, fetchurl, writeText, pkgconfig -, ocaml, findlib, camlp5, ncurses -, lablgtk ? null, csdp ? null -, pl ? "1" -}: - -let - # version = "8.6pl${pl}"; - version = "8.6"; - sha256 = "1pw1xvy1657l1k69wrb911iqqflzhhp8wwsjvihbgc72r3skqg3f"; - coq-version = "8.6"; - buildIde = lablgtk != null; - ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else ""; - csdpPatch = if csdp != null then '' - substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp" - substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true" - '' else ""; -in - -stdenv.mkDerivation { - name = "coq-${version}"; - - inherit coq-version; - inherit ocaml camlp5; - - src = fetchurl { - url = "http://coq.inria.fr/distrib/V${version}/files/coq-${version}.tar.gz"; - inherit sha256; - }; - - buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ]; - - postPatch = '' - UNAME=$(type -tp uname) - RM=$(type -tp rm) - substituteInPlace configure --replace "/bin/uname" "$UNAME" - substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM" - substituteInPlace configure.ml --replace '"md5 -q"' '"md5sum"' - ${csdpPatch} - ''; - - setupHook = writeText "setupHook.sh" '' - addCoqPath () { - if test -d "''$1/lib/coq/${coq-version}/user-contrib"; then - export COQPATH="''${COQPATH}''${COQPATH:+:}''$1/lib/coq/${coq-version}/user-contrib/" - fi - } - - envHooks=(''${envHooks[@]} addCoqPath) - ''; - - preConfigure = '' - configureFlagsArray=( - -opt - ${ideFlags} - ) - ''; - - prefixKey = "-prefix "; - - buildFlags = "revision coq coqide bin/votour"; - - postInstall = '' - cp bin/votour $out/bin/ - ''; - - meta = with stdenv.lib; { - description = "Coq proof assistant"; - longDescription = '' - Coq is a formal proof management system. It provides a formal language - to write mathematical definitions, executable algorithms and theorems - together with an environment for semi-interactive development of - machine-checked proofs. - ''; - homepage = "http://coq.inria.fr"; - license = licenses.lgpl21; - branch = coq-version; - maintainers = with maintainers; [ roconnor thoughtpolice vbgl ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/applications/science/logic/coq/8.5.nix b/pkgs/applications/science/logic/coq/default.nix similarity index 85% rename from pkgs/applications/science/logic/coq/8.5.nix rename to pkgs/applications/science/logic/coq/default.nix index aae2101f50e..2fb76ac33bc 100644 --- a/pkgs/applications/science/logic/coq/8.5.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -2,23 +2,23 @@ # - The csdp program used for the Micromega tactic is statically referenced. # However, coq can build without csdp by setting it to null. # In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found. -# - The patch-level version can be specified through the `pl` argument to +# - The patch-level version can be specified through the `version` argument to # the derivation; it defaults to the greatest. { stdenv, fetchurl, writeText, pkgconfig , ocaml, findlib, camlp5, ncurses , lablgtk ? null, csdp ? null -, pl ? "3" +, version ? "8.6" }: let - version = "8.5pl${pl}"; sha256 = { - "1" = "1w2xvm6w16khfn63bp95s25hnkn2ny3w0yqg3lq63gp11aqpbyjb"; - "2" = "0wyywia0darak2zmc5v0ra9rn0b9whwdfiahralm8v5za499s8w3"; - "3" = "0fyk2a4fpifibq8y8jhx1891k55qnsnlygglch64sva0bph94nrh"; - }."${pl}"; - coq-version = "8.5"; + "8.5pl1" = "1w2xvm6w16khfn63bp95s25hnkn2ny3w0yqg3lq63gp11aqpbyjb"; + "8.5pl2" = "0wyywia0darak2zmc5v0ra9rn0b9whwdfiahralm8v5za499s8w3"; + "8.5pl3" = "0fyk2a4fpifibq8y8jhx1891k55qnsnlygglch64sva0bph94nrh"; + "8.6" = "1pw1xvy1657l1k69wrb911iqqflzhhp8wwsjvihbgc72r3skqg3f"; + }."${version}"; + coq-version = builtins.substring 0 3 version; buildIde = lablgtk != null; ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else ""; csdpPatch = if csdp != null then '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0fed3d4f5dd..3ddf3271b13 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16977,11 +16977,12 @@ with pkgs; inherit (ocamlPackages_4_01_0) ocaml findlib lablgtk; camlp5 = ocamlPackages_4_01_0.camlp5_transitional; }; - coq_8_5 = callPackage ../applications/science/logic/coq/8.5.nix { + coq_8_5 = callPackage ../applications/science/logic/coq { + version = "8.5pl3"; inherit (ocamlPackages) ocaml findlib lablgtk; camlp5 = ocamlPackages.camlp5_transitional; }; - coq_8_6 = callPackage ../applications/science/logic/coq/8.6.nix { + coq_8_6 = callPackage ../applications/science/logic/coq { inherit (ocamlPackages) ocaml findlib lablgtk; camlp5 = ocamlPackages.camlp5_transitional; }; From 9b949be617ecd3c2f8ed9e0a7b159e96b58b025d Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sat, 14 Jan 2017 10:49:36 +0000 Subject: [PATCH 2/3] coq: minor refactoring --- pkgs/applications/science/logic/coq/default.nix | 16 +++++++++------- pkgs/top-level/all-packages.nix | 7 +------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index 2fb76ac33bc..36f6b76a477 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -1,4 +1,4 @@ -# - coqide compilation can be disabled by setting lablgtk to null; +# - coqide compilation can be disabled by setting buildIde to false # - The csdp program used for the Micromega tactic is statically referenced. # However, coq can build without csdp by setting it to null. # In this case some Micromega tactics will search the user's path for the csdp program and will fail if it is not found. @@ -6,8 +6,9 @@ # the derivation; it defaults to the greatest. { stdenv, fetchurl, writeText, pkgconfig -, ocaml, findlib, camlp5, ncurses -, lablgtk ? null, csdp ? null +, ocamlPackages, ncurses +, buildIde ? true +, csdp ? null , version ? "8.6" }: @@ -19,8 +20,8 @@ let "8.6" = "1pw1xvy1657l1k69wrb911iqqflzhhp8wwsjvihbgc72r3skqg3f"; }."${version}"; coq-version = builtins.substring 0 3 version; - buildIde = lablgtk != null; - ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else ""; + camlp5 = ocamlPackages.camlp5_transitional; + ideFlags = if buildIde then "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else ""; csdpPatch = if csdp != null then '' substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp" substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true" @@ -31,14 +32,15 @@ stdenv.mkDerivation { name = "coq-${version}"; inherit coq-version; - inherit ocaml camlp5; + inherit camlp5; + inherit (ocamlPackages) ocaml; src = fetchurl { url = "http://coq.inria.fr/distrib/V${version}/files/coq-${version}.tar.gz"; inherit sha256; }; - buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ]; + buildInputs = [ pkgconfig ocamlPackages.ocaml ocamlPackages.findlib camlp5 ncurses ocamlPackages.lablgtk ]; postPatch = '' UNAME=$(type -tp uname) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3ddf3271b13..ac0a8248289 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16979,13 +16979,8 @@ with pkgs; }; coq_8_5 = callPackage ../applications/science/logic/coq { version = "8.5pl3"; - inherit (ocamlPackages) ocaml findlib lablgtk; - camlp5 = ocamlPackages.camlp5_transitional; - }; - coq_8_6 = callPackage ../applications/science/logic/coq { - inherit (ocamlPackages) ocaml findlib lablgtk; - camlp5 = ocamlPackages.camlp5_transitional; }; + coq_8_6 = callPackage ../applications/science/logic/coq {}; coq_HEAD = callPackage ../applications/science/logic/coq/HEAD.nix { inherit (ocamlPackages) ocaml findlib lablgtk; camlp5 = ocamlPackages.camlp5_transitional; From 798a87159b00d79b0931ff65d7ce3ae7366f7574 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 25 Jan 2017 07:03:24 +0000 Subject: [PATCH 3/3] Coq: propagates the findlib package So that Coq libraries that need it can easyly use it --- pkgs/applications/science/logic/coq/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index 36f6b76a477..bc9ba049cd2 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -34,6 +34,9 @@ stdenv.mkDerivation { inherit coq-version; inherit camlp5; inherit (ocamlPackages) ocaml; + passthru = { + inherit (ocamlPackages) findlib; + }; src = fetchurl { url = "http://coq.inria.fr/distrib/V${version}/files/coq-${version}.tar.gz";