From 2a7a765c10fa44bb87beaf2d3a83aa9bc70c6090 Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Fri, 17 Oct 2025 14:28:43 +0200 Subject: [PATCH 1/3] rocqPackages.micromega-plugin: init at 1.0.0 --- .../rocq-modules/micromega-plugin/default.nix | 55 +++++++++++++++++++ pkgs/top-level/rocq-packages.nix | 1 + 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/rocq-modules/micromega-plugin/default.nix diff --git a/pkgs/development/rocq-modules/micromega-plugin/default.nix b/pkgs/development/rocq-modules/micromega-plugin/default.nix new file mode 100644 index 000000000000..dd773caebc55 --- /dev/null +++ b/pkgs/development/rocq-modules/micromega-plugin/default.nix @@ -0,0 +1,55 @@ +{ + lib, + mkRocqDerivation, + rocq-core, + version ? null, +}: + +mkRocqDerivation { + pname = "micromega-plugin"; + owner = "rocq-community"; + inherit version; + defaultVersion = + let + case = case: out: { inherit case out; }; + in + with lib.versions; + lib.switch rocq-core.rocq-version [ + (case (range "9.0" "9.2") "1.0.0") + ] null; + + release = { + "1.0.0".sha256 = "sha256-srDOrGC4h21O9MIHfmOMJ0BKQhamaWyzQT72TwgfDYc="; + }; + releaseRev = v: "v${v}"; + + mlPlugin = true; + useDune = true; + + nativeBuildInputs = [ + rocq-core.ocamlPackages.ppx_optcomp + ]; + + propagatedBuildInputs = [ + rocq-core.ocamlPackages.findlib + ]; + + configurePhase = '' + patchShebangs etc/with-rocq-wrap.sh + ''; + + buildPhase = '' + etc/with-rocq-wrap.sh dune build -p micromega-plugin @install ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + ''; + + installPhase = '' + etc/with-rocq-wrap.sh dune install --root . micromega-plugin --prefix=$out --libdir $OCAMLFIND_DESTDIR + mkdir $out/lib/coq/ + mv $OCAMLFIND_DESTDIR/coq $out/lib/coq/${rocq-core.rocq-version} + ''; + + meta = { + description = "Plugin for (semi)decision procedures for arithmetic."; + license = lib.licenses.lgpl21; + }; +} diff --git a/pkgs/top-level/rocq-packages.nix b/pkgs/top-level/rocq-packages.nix index a6ca3f9b04c9..34af9d8c93a5 100644 --- a/pkgs/top-level/rocq-packages.nix +++ b/pkgs/top-level/rocq-packages.nix @@ -57,6 +57,7 @@ let mathcomp-finmap = callPackage ../development/rocq-modules/mathcomp-finmap { }; mathcomp-reals = self.mathcomp-analysis.reals; mathcomp-reals-stdlib = self.mathcomp-analysis.reals-stdlib; + micromega-plugin = callPackage ../development/rocq-modules/micromega-plugin { }; parseque = callPackage ../development/rocq-modules/parseque { }; relation-algebra = callPackage ../development/rocq-modules/relation-algebra { }; rocq-elpi = callPackage ../development/rocq-modules/rocq-elpi { }; From 30b1c85e6672d8de16abd8779bd4c1b41271cf6d Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Fri, 17 Oct 2025 14:29:00 +0200 Subject: [PATCH 2/3] rocqPackages.mathcomp-algebra: master depends on micromega-plugin --- .../coq-modules/graph-theory/default.nix | 6 ++++-- .../coq-modules/jasmin/default.nix | 6 ++++-- .../mathcomp-algebra-tactics/default.nix | 14 +++++++------- .../coq-modules/mathcomp-infotheo/default.nix | 7 ++++++- .../coq-modules/mathcomp/default.nix | 2 +- .../rocq-modules/mathcomp/default.nix | 19 +++++++++++++++++-- 6 files changed, 39 insertions(+), 15 deletions(-) diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix index cafa0793461d..31bfcba6394d 100644 --- a/pkgs/development/coq-modules/graph-theory/default.nix +++ b/pkgs/development/coq-modules/graph-theory/default.nix @@ -52,10 +52,12 @@ mkCoqDerivation { mathcomp.algebra mathcomp-finmap mathcomp.fingroup - mathcomp-algebra-tactics fourcolor stdlib - ]; + ] + ++ lib.optional ( + mathcomp.version != "dev" && lib.versions.isLe "2.5" mathcomp.version + ) mathcomp-algebra-tactics; meta = { description = "Library of formalized graph theory results in Coq"; diff --git a/pkgs/development/coq-modules/jasmin/default.nix b/pkgs/development/coq-modules/jasmin/default.nix index ac01c30397b6..b8f0bf4d8d08 100644 --- a/pkgs/development/coq-modules/jasmin/default.nix +++ b/pkgs/development/coq-modules/jasmin/default.nix @@ -38,9 +38,11 @@ release."2024.07.2".sha256 = "sha256-aF8SYY5jRxQ6iEr7t6mRN3BEmIDhJ53PGhuZiJGB+i8="; propagatedBuildInputs = [ - mathcomp-algebra-tactics mathcomp-word - ]; + ] + ++ lib.optional ( + mathcomp.version != "dev" && lib.versions.isLe "2.5" mathcomp.version + ) mathcomp-algebra-tactics; makeFlags = [ "-C" diff --git a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix index cc2f839e0cca..e0f15fcb301e 100644 --- a/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix +++ b/pkgs/development/coq-modules/mathcomp-algebra-tactics/default.nix @@ -32,13 +32,13 @@ mkCoqDerivation { lib.switch [ coq.coq-version mathcomp-algebra.version ] [ - (case (range "8.20" "9.1") (isGe "2.4") "1.2.7") - (case (range "8.20" "9.1") (isGe "2.4") "1.2.6") - (case (range "8.20" "9.1") (isGe "2.4") "1.2.5") - (case (range "8.16" "9.0") (isGe "2.0") "1.2.4") - (case (range "8.16" "8.18") (isGe "2.0") "1.2.2") - (case (range "8.16" "8.19") (isGe "1.15") "1.1.1") - (case (range "8.13" "8.16") (isGe "1.12") "1.0.0") + (case (range "8.20" "9.1") (range "2.4" "2.5") "1.2.7") + (case (range "8.20" "9.1") (range "2.4" "2.4") "1.2.6") + (case (range "8.20" "9.1") (range "2.4" "2.4") "1.2.5") + (case (range "8.16" "9.0") (range "2.0" "2.3") "1.2.4") + (case (range "8.16" "8.18") (range "2.0" "2.2") "1.2.2") + (case (range "8.16" "8.19") (range "1.15" "1.19") "1.1.1") + (case (range "8.13" "8.16") (range "1.12" "1.17") "1.0.0") ] null; diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix index 3a9684e54349..cd038af428a2 100644 --- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix +++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix @@ -1,6 +1,7 @@ { coq, mkCoqDerivation, + mathcomp, mathcomp-analysis, mathcomp-analysis-stdlib, mathcomp-algebra-tactics, @@ -71,6 +72,10 @@ (o: { propagatedBuildInputs = o.propagatedBuildInputs - ++ lib.optional (lib.versions.isGe "0.6.1" o.version || o.version == "dev") mathcomp-algebra-tactics + ++ lib.optional ( + mathcomp.version != "dev" + && lib.versions.isLe "2.5" mathcomp.version + && (lib.versions.isGe "0.6.1" o.version || o.version == "dev") + ) mathcomp-algebra-tactics ++ lib.optional (lib.versions.isGe "0.7.2" o.version || o.version == "dev") interval; }) diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix index 943d4b67a418..6cc86368fcfb 100644 --- a/pkgs/development/coq-modules/mathcomp/default.nix +++ b/pkgs/development/coq-modules/mathcomp/default.nix @@ -256,7 +256,7 @@ if coq.rocqPackages ? mathcomp && version != "2.3.0" && version != "2.4.0" then fetchzip hierarchy-builder ; - inherit (coq.rocqPackages) rocq-core; + inherit (coq.rocqPackages) rocq-core micromega-plugin; }; in mc diff --git a/pkgs/development/rocq-modules/mathcomp/default.nix b/pkgs/development/rocq-modules/mathcomp/default.nix index 32669add7037..05de2bbd843c 100644 --- a/pkgs/development/rocq-modules/mathcomp/default.nix +++ b/pkgs/development/rocq-modules/mathcomp/default.nix @@ -21,6 +21,7 @@ single ? false, rocq-core, hierarchy-builder, + micromega-plugin, version ? null, }@args: @@ -139,8 +140,22 @@ let extraInstallFlags = [ "-f Makefile.coq" ]; } ); - # patched-derivation1 = derivation.overrideAttrs ... + patched-derivation1 = derivation.overrideAttrs ( + o: + lib.optionalAttrs + ( + lib.elem package [ + "algebra" + "single" + ] + && o.version != null + && (o.version == "dev" || lib.versions.isGe "2.6.0" o.version) + ) + { + propagatedBuildInputs = o.propagatedBuildInputs ++ [ micromega-plugin ]; + } + ); in - derivation; + patched-derivation1; in mathcomp_ (if single then "single" else "all") From d0f59b52197053fcdc67545beb86be2ee80df795 Mon Sep 17 00:00:00 2001 From: Pierre Roux Date: Fri, 10 Apr 2026 13:58:54 +0200 Subject: [PATCH 3/3] coqPackages.compcert: fix ocamlPackages --- pkgs/development/coq-modules/compcert/default.nix | 5 ++--- pkgs/top-level/coq-packages.nix | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/development/coq-modules/compcert/default.nix b/pkgs/development/coq-modules/compcert/default.nix index d1c39ed6abd4..feed65d9a66d 100644 --- a/pkgs/development/coq-modules/compcert/default.nix +++ b/pkgs/development/coq-modules/compcert/default.nix @@ -4,7 +4,6 @@ coq, flocq, MenhirLib, - ocamlPackages, fetchpatch, makeWrapper, coq2html, @@ -71,7 +70,7 @@ let strictDeps = true; - nativeBuildInputs = with ocamlPackages; [ + nativeBuildInputs = with coq.ocamlPackages; [ makeWrapper ocaml findlib @@ -79,7 +78,7 @@ let coq coq2html ]; - buildInputs = with ocamlPackages; [ menhirLib ]; + buildInputs = with coq.ocamlPackages; [ menhirLib ]; propagatedBuildInputs = [ flocq MenhirLib diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index 995f14930b8e..b2cd7f2ada19 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -88,7 +88,6 @@ let lib stdenv ; - ocamlPackages = ocamlPackages_4_14; }; ConCert = callPackage ../development/coq-modules/ConCert { }; coq-bits = callPackage ../development/coq-modules/coq-bits { };