diff --git a/pkgs/development/idris-modules/default.nix b/pkgs/development/idris-modules/default.nix index 4d7c4928283..16f6c65b094 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 00000000000..32424ba1f86 --- /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 a76c4eac651..294a79b101e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5876,7 +5876,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 { @@ -5893,6 +5894,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 {