git.iko.soy/typeable/nixpkgs-stackage
on master help sign in
70 lines 2.4 kB history raw
1self: super:
3let
5 # from pkgs/stdenv/generic/make-derivation.nix
6 # This parameter is sometimes a string, sometimes null, and sometimes a list, yuck
7 normalizedConfigureFlags = configureFlags: let inherit (super) lib; in
8 (/**/ if lib.isString configureFlags then [configureFlags]
9 else if configureFlags == null then []
10 else configureFlags);
12 stackage2nixPackages = import ./stackage2nix/stackage-packages.nix { nixpkgs = self; };
14in {
15 haskell = super.haskell // {
16 packages = super.haskell.packages // {
17 stackage = super.callPackage ./stackage {} // {
18 lib = super.callPackage ./lib.nix {};
19 };
20 };
21 };
23 stackage2nix = self.callPackage ./stackage2nix {
24 drv = super.haskell.lib.disableSharedExecutables stackage2nixPackages.stackage2nix;
25 };
27 stackage2nixWrapper = import ./stackage2nix/impure.nix {
28 cacheVersion = builtins.readFile ./cache-version.txt;
29 inherit self;
30 };
32 stackage2nix-static = import ./stackage2nix/impure.nix {
33 drv =
34 let
35 stackagePackages = import ./stackage2nix/stackage-packages.nix { nixpkgs = self; };
36 in self.haskell.lib.overrideCabal stackagePackages.stackage2nix (drv: {
37 enableSharedExecutables = false;
38 enableSharedLibraries = false;
39 configureFlags = [
40 "--ghc-option=-optl=-static"
41 "--ghc-option=-optl=-L${self.glibc.static}/lib"
42 "--ghc-option=-optl=-L${self.gmp.override { withStatic = true; }}/lib"
43 "--ghc-option=-optl=-L${self.icu-static.static}/lib"
44 "--ghc-option=-optl=-L${self.openssl-static.static}/lib"
45 "--ghc-option=-optl=-L${self.zlib.static}/lib"
46 ];
47 });
48 cacheVersion = builtins.readFile ./cache-version.txt;
49 inherit self;
50 };
52 icu-static = super.icu.overrideAttrs (attrs: {
53 dontDisableStatic = true;
54 configureFlags = normalizedConfigureFlags attrs.configureFlags ++ [ "--enable-static" ];
55 outputs = attrs.outputs ++ [ "static" ];
56 postInstall = ''
57 moveToOutput "lib/*.a" "$static"
58 '' + (if attrs ? postInstall then attrs.postInstall else "");
59 });
61 openssl-static = super.openssl.overrideAttrs (attrs: {
62 dontDisableStatic = true;
63 outputs = attrs.outputs ++ [ "static" ];
64 postInstall = ''
65 mkdir -p $static/lib;
66 cp -v *.a $static/lib;
67 '' + (if attrs ? postInstall then attrs.postInstall else "");
68 });