From 54ff1184779419c91cb57d7a3a234a069fcdc592 Mon Sep 17 00:00:00 2001 From: Aneesh Agrawal Date: Sat, 10 Sep 2016 16:57:11 -0400 Subject: [PATCH] cryptol: Make Z3 available for REPL users The Cryptol REPL has a hard dependency on Z3, but the rest of the library uses SBV to support multiple solvers. Ensure that Z3 is available for `pkgs.cryptol`, which is likely to be installed via nix-env for REPL usage, but do not change pkgs.haskellPackages.cryptol, which is likely to be used as a dependency (in Nix expressions). --- pkgs/top-level/all-packages.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 33b1523df08..9262c8c144a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4443,7 +4443,15 @@ in coq = coq_8_5; }); - cryptol = haskellPackages.cryptol; + # Users installing via `nix-env` will likely be using the REPL, + # which has a hard dependency on Z3, so make sure it is available. + cryptol = haskellPackages.cryptol.overrideDerivation (oldAttrs: { + buildInputs = (oldAttrs.buildInputs or []) ++ [ makeWrapper ]; + installPhase = (oldAttrs.installPhase or "") + '' + wrapProgram $out/bin/cryptol \ + --prefix 'PATH' ':' "${lib.getBin z3}/bin" + ''; + }); devpi-client = callPackage ../development/tools/devpi-client {};