From ab8a6bdc797ffe2dbf6c0836fceaf6f554729ff4 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Thu, 23 Sep 2021 18:45:33 +0200 Subject: [PATCH] [ci] use custom why3 version Waiting for a fix the published opam package --- nix/default.nix | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/nix/default.nix b/nix/default.nix index ee073660bc7..705c9eff9d5 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -2,16 +2,40 @@ { pkgs, stdenv, src ? ../., opam2nix, ocaml ? pkgs.ocaml-ng.ocamlPackages_4_08.ocaml, plugins ? { } }: let mydir = builtins.getEnv("PWD"); - mk-opam-selection = { name, opamSrc?null, ... }: { + why3 = + pkgs.fetchgit { + url = "https://gitlab.inria.fr/why3/why3"; + # commit that has updated why3-coq.opam to make it + # compatible with Coq>8.12 (so that we can compile on OCaml 4.12) + rev = "a41e40f88987a26a7ac35f62e7637a2f6fcf1c07"; + sha256 = "138ymjf1pg00yp2biw3qrx8yir8grfwjmfx81amddpx3p0c1zzhl"; + }; + mk-opam-selection = { name, opamSrc?{}, ... }: { inherit ocaml; - src = opamSrc; + src = { why3 = why3; why3-coq = why3; } // opamSrc; + override = { pkgs, selection}: + { why3 = super: super.overrideAttrs (attrs: + { prePatch = "ln -s opam/why3.opam why3.opam; " + attrs.prePatch; + configurePhase = "autoconf; "; + buildInputs = [ pkgs.autoconf ]; + }); + why3-coq = super: super.overrideAttrs (attrs: + { + prePatch = "ln -s opam/why3-coq.opam why3-coq.opam; " + attrs.prePatch; + buildPhase = "autoconf; " + attrs.buildPhase; + buildInputs = [ pkgs.autoconf ]; + } + ); + } + ; selection = "${mydir}/${name}-${ocaml.version}-opam-selection.nix"; }; - opamPackages = + opamPackages = [ "ocamlfind" "zarith" "ocamlgraph" "yojson" "zmq" "ppx_deriving" "ppx_deriving_yojson" - "coq=8.12.0" "alt-ergo=2.2.0" "why3=1.4.0" "why3-coq=1.4.0" ]; - + "coq=8.13.0" "alt-ergo=2.2.0" + "${why3}/opam/why3.opam" "${why3}/opam/why3-coq.opam" + ]; # only pure nix packages. See mk_deriv below for adding opam2nix packages mk_buildInputs = { nixPackages ? [] } : [ pkgs.gnugrep pkgs.gnused pkgs.autoconf pkgs.gnumake pkgs.gcc pkgs.ncurses pkgs.time pkgs.python3 pkgs.perl pkgs.file pkgs.which pkgs.dos2unix] ++ nixPackages; -- GitLab