summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorAneesh Agrawal <aneeshusa@gmail.com>2016-09-10 16:57:11 -0400
committerAneesh Agrawal <aneeshusa@gmail.com>2016-09-10 17:15:51 -0400
commit54ff1184779419c91cb57d7a3a234a069fcdc592 (patch)
treebcb7064cedb891d52cbc31d47130242f57aefe4f /pkgs
parent0dbfb0fc48a19f1052afc052c68fe0ca6a3e77b5 (diff)
downloadnixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.tar
nixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.tar.gz
nixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.tar.bz2
nixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.tar.lz
nixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.tar.xz
nixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.tar.zst
nixlib-54ff1184779419c91cb57d7a3a234a069fcdc592.zip
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).
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/top-level/all-packages.nix10
1 files changed, 9 insertions, 1 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 33b1523df087..9262c8c144a4 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 {};