summary refs log tree commit diff
diff options
context:
space:
mode:
authorGraham Christensen <graham@grahamc.com>2017-11-06 13:11:04 -0500
committerGitHub <noreply@github.com>2017-11-06 13:11:04 -0500
commit240b4f36a6467d1863b8402e057991a66a50a694 (patch)
treedff7c4ac8e7d694caf01ca2b96a26acc1534cf2e
parent5549fa767fe9393dba635d615f6e4b7796b5a333 (diff)
parent40124cd0cf474dd17959b5ae36c8a98112c173c0 (diff)
downloadnixlib-240b4f36a6467d1863b8402e057991a66a50a694.tar
nixlib-240b4f36a6467d1863b8402e057991a66a50a694.tar.gz
nixlib-240b4f36a6467d1863b8402e057991a66a50a694.tar.bz2
nixlib-240b4f36a6467d1863b8402e057991a66a50a694.tar.lz
nixlib-240b4f36a6467d1863b8402e057991a66a50a694.tar.xz
nixlib-240b4f36a6467d1863b8402e057991a66a50a694.tar.zst
nixlib-240b4f36a6467d1863b8402e057991a66a50a694.zip
Merge pull request #31160 from mpickering/idris-10450
Add wrapper for idris exe for gcc/gmp runtime deps
-rw-r--r--pkgs/development/idris-modules/default.nix9
-rw-r--r--pkgs/development/idris-modules/idris-wrapper.nix14
-rw-r--r--pkgs/top-level/all-packages.nix5
3 files changed, 25 insertions, 3 deletions
diff --git a/pkgs/development/idris-modules/default.nix b/pkgs/development/idris-modules/default.nix
index 4d7c4928283a..16f6c65b094a 100644
--- a/pkgs/development/idris-modules/default.nix
+++ b/pkgs/development/idris-modules/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, idris, overrides ? (self: super: {}) }: let
+{ pkgs, idris-no-deps, overrides ? (self: super: {}) }: let
   inherit (pkgs.lib) callPackageWith fix' extends;
 
   /* Taken from haskell-modules/default.nix, should probably abstract this away */
@@ -33,7 +33,12 @@
 
     value = callPackage (./. + "/${name}.nix") {};
   }) files)) // {
-    inherit idris callPackage;
+    inherit idris-no-deps callPackage;
+    # See #10450 about why we have to wrap the executable
+    idris =
+        (pkgs.callPackage ./idris-wrapper.nix {})
+          idris-no-deps
+          { path = [ pkgs.gcc ]; lib = [pkgs.gmp]; };
 
     # A list of all of the libraries that come with idris
     builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
diff --git a/pkgs/development/idris-modules/idris-wrapper.nix b/pkgs/development/idris-modules/idris-wrapper.nix
new file mode 100644
index 000000000000..32424ba1f862
--- /dev/null
+++ b/pkgs/development/idris-modules/idris-wrapper.nix
@@ -0,0 +1,14 @@
+{ symlinkJoin, makeWrapper, stdenv }: idris: { path, lib }:
+
+symlinkJoin {
+  name = idris.name;
+  src = idris.src;
+  paths = [ idris ];
+  buildInputs = [ makeWrapper ];
+  postBuild = ''
+    wrapProgram $out/bin/idris \
+      --suffix PATH : ${ stdenv.lib.makeBinPath path } \
+      --suffix LIBRARY_PATH : ${stdenv.lib.makeLibraryPath lib}
+      '';
+  }
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 37a35aca0083..983dacda0449 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5874,7 +5874,8 @@ with pkgs;
   icedtea_web = icedtea8_web;
 
   idrisPackages = callPackage ../development/idris-modules {
-    idris =
+
+    idris-no-deps =
       let
         inherit (self.haskell) lib;
         haskellPackages = self.haskellPackages.override {
@@ -5891,6 +5892,8 @@ with pkgs;
         haskellPackages.idris;
   };
 
+  idris = idrisPackages.with-packages [ idrisPackages.base ] ;
+
   intercal = callPackage ../development/compilers/intercal { };
 
   irony-server = callPackage ../development/tools/irony-server/default.nix {