git.iko.soy/nixpkgs-stackage
on master help sign in
Upd callStackage2nix calls impure wrapper
db3ad91Dmitry Bushev
default.nix+5−1
@@ -9,6 +9,8 @@ let
9 else if configureFlags == null then []
9 else if configureFlags == null then []
10 else configureFlags);
10 else configureFlags);
11
11
12+ stackage2nixPackages = import ./stackage2nix/stackage-packages.nix { nixpkgs = self; };
13+
12in {
14in {
13 haskell = super.haskell // {
15 haskell = super.haskell // {
14 packages = super.haskell.packages // {
16 packages = super.haskell.packages // {
@@ -18,7 +20,9 @@ in {
18 };
20 };
19 };
21 };
20
22
23+ stackage2nix = super.haskell.lib.disableSharedExecutables stackage2nixPackages.stackage2nix;
24+
21− stackage2nix = import ./stackage2nix/impure.nix {
25+ stackage2nixWrapper = import ./stackage2nix/impure.nix {
22 cacheVersion = builtins.readFile ./cache-version.txt;
26 cacheVersion = builtins.readFile ./cache-version.txt;
23 inherit self;
27 inherit self;
24 };
28 };
lib.nix+11−7
@@ -1,22 +1,26 @@
1−{ stdenv, lib, cacert, glibcLocales, stackage2nix }:
1+{ stdenv, lib, cacert, glibcLocales, stackage2nixWrapper }:
2
2
3rec {
3rec {
4
4
5 stackageSrc2nix = { name, src }:
5 stackageSrc2nix = { name, src }:
6 stdenv.mkDerivation {
6 stdenv.mkDerivation {
7− name = "stackage2nix-${name}";
7+ name = "stackage2nixWrapper-${name}";
8− buildInputs = [ stackage2nix ];
8+
9− preferLocalBuild = true;
10 phases = ["installPhase"];
9 phases = ["installPhase"];
11− SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
10+ buildInputs = [ stackage2nixWrapper ];
12− LANG = "en_US.UTF-8";
11+ preferLocalBuild = true;
13− LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
12+
14 installPhase = ''
13 installPhase = ''
15 export HOME="$TMP"
14 export HOME="$TMP"
16 mkdir -p "$out"
15 mkdir -p "$out"
17 cd $out
16 cd $out
18 stackage2nix "${src}"
17 stackage2nix "${src}"
19 '';
18 '';
19+
20+ SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
21+ LANG = "en_US.UTF-8";
22+ LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
23+
20 };
24 };
21
25
22 callStackage2nix = name: src: import (stackageSrc2nix { inherit name src; });
26 callStackage2nix = name: src: import (stackageSrc2nix { inherit name src; });