git.iko.soy/typeable/nixpkgs-stackage
on master help sign in
Update examples
commit81b64aae960ae76a927dff90de1c8d436c048478 authorDmitry Bushev <bushevdv@gmail.com> dateWed 20 Jun 2018, 18:16 (8 years ago) parent73a0062
9 files changed+38−62
default.nix+3−1 examples/example.nix+1−3 examples/nixpkgs-pinned.nix+3−3 examples/nixpkgs-stackage.json−6 examples/nixpkgs.json−6 examples/stackage2nix.json+2−2 lib.nix+20−7 nixpkgs.json+2−2 stackage2nix/default.nix+7−32
default.nix+3−1
@@ -20,7 +20,9 @@ in {
2020 };
2121 };
2222
23− stackage2nix = super.haskell.lib.disableSharedExecutables stackage2nixPackages.stackage2nix;
23+ stackage2nix = self.callPackage ./stackage2nix {
24+ drv = super.haskell.lib.disableSharedExecutables stackage2nixPackages.stackage2nix;
25+ };
2426
2527 stackage2nixWrapper = import ./stackage2nix/impure.nix {
2628 cacheVersion = builtins.readFile ./cache-version.txt;
examples/example.nix+1−3
@@ -11,8 +11,6 @@ let
1111
1212 stackage2nixSrc = pkgs.fetchFromGitHub (lib.importJSON ./stackage2nix.json);
1313
14− stackage = nixpkgs.haskell.packages.stackage.lib.callStackage2nix "stackage2nix" stackage2nixSrc {
15− inherit nixpkgs;
16− };
14+ stackage = nixpkgs.haskell.packages.stackage.lib.callStackage2nix "stackage2nix" stackage2nixSrc;
1715in
1816 stackage
examples/nixpkgs-pinned.nix+3−3
@@ -6,10 +6,10 @@
66
77let
88 _pkgs = import <nixpkgs> {};
9− _pkgsPath = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./nixpkgs.json);
10− _stackageOverlayPath = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./nixpkgs-stackage.json);
9+ _pkgsPath = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ../nixpkgs.json);
10+ _stackageOverlayLocal = ../.;
1111in
1212 import _pkgsPath ({
13− overlays = [ (import _stackageOverlayPath) ] ++ overlays;
13+ overlays = [ (import _stackageOverlayLocal) ] ++ overlays;
1414 config = config // { allowUnfree = true; };
1515 } // (if system != null then { inherit system; } else { }))
examples/nixpkgs-stackage.jsondeleted−6
@@ -1,6 +0,0 @@
1−{
2− "owner": "4e6",
3− "repo": "nixpkgs-stackage",
4− "rev": "2a6c3ecb5f0015491e2a6626d5c89aec2d75defc",
5− "sha256": "1065v9pyi9c30qb7rq0wfpdixwn5kv0h4dziabppy406grxpmrg4"
6−}
examples/nixpkgs.jsondeleted−6
@@ -1,6 +0,0 @@
1−{
2− "owner": "NixOS",
3− "repo": "nixpkgs-channels",
4− "rev": "66b4de79e3841530e6d9c6baf98702aa1f7124e4",
5− "sha256": "1l3lwi944hnxka0nfq9a1g86xhc0b8hzqr2fm6cvds33gj26l0g4"
6−}
examples/stackage2nix.json+2−2
@@ -1,6 +1,6 @@
11{
22 "owner": "typeable",
33 "repo": "stackage2nix",
4− "rev": "7bd086b41252e293af1b3d8a15e6b53bc63230bf",
5− "sha256": "06hyma8cxncv2l6icdaf2dwh2mxjbgds6l2z2x8kp25gq2qlqx1r"
4+ "rev": "8d6e70044a4bafa0f8d5bdc011ac00634549a13b",
5+ "sha256": "1lcs8ii0nqlyg1lj50zjabw8z4crkk59dpfyykpxraa9whkklg4d"
66}
lib.nix+20−7
@@ -5,11 +5,9 @@ rec {
55 stackage2nixGeneric = { drv, pname, installPhase, name, src }:
66 stdenv.mkDerivation {
77
8− inherit installPhase;
9−
108 name = "${pname}-${name}";
119
12− phases = ["installPhase"];
10+ phases = [ "installPhase" ];
1311 buildInputs = [ drv ];
1412 preferLocalBuild = true;
1513
@@ -17,6 +15,7 @@ rec {
1715 LANG = "en_US.UTF-8";
1816 LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
1917
18+ inherit installPhase;
2019 };
2120
2221 stackage2nixWrapperSrc = { name, src }: stackage2nixGeneric {
@@ -32,9 +31,22 @@ rec {
3231 inherit name src;
3332 };
3433
35− stackage2nixSrc = { name, src, stackage-lts, all-cabal-hashes, hackage-db }: stackage2nixGeneric {
34+ stackage2nixSrc = { name, src }: stackage2nixGeneric {
3635 drv = stackage2nix;
3736 pname = "stackage2nix";
37+ installPhase = ''
38+ export HOME="$TMP"
39+ mkdir -p $out
40+ cd $out
41+ stackage2nix "${src}"
42+ '';
43+
44+ inherit name src;
45+ };
46+
47+ stackage2nixSrcArgs = { name, src, stackage-lts, all-cabal-hashes, hackage-db }: stackage2nixGeneric {
48+ drv = stackage2nix;
49+ pname = "stackage2nixArgs";
3850 installPhase = ''
3951 export HOME="$TMP"
4052 mkdir -p $out
@@ -45,10 +57,11 @@ rec {
4557 inherit name src;
4658 };
4759
60+ callStackage2nix = name: src: import (stackage2nixSrc { inherit name src; });
61+
4862 callStackage2nixWrapper = name: src: import (stackage2nixWrapperSrc { inherit name src; });
4963
50− callStackage2nix = name: src: stackage-lts: all-cabal-hashes: hackage-db: import stackage2nixSrc {
51− inherit name src stackage-lts all-cabal-hashes hackage-db;
52− };
64+ callStackage2nixArgs = name: src: stackage-lts: all-cabal-hashes: hackage-db:
65+ import (stackage2nixSrcArgs { inherit name src stackage-lts all-cabal-hashes hackage-db; });
5366
5467}
nixpkgs.json+2−2
@@ -1,6 +1,6 @@
11{
22 "owner": "NixOS",
33 "repo": "nixpkgs-channels",
4− "rev": "06c576b0525da85f2de86b3c13bb796d6a0c20f6",
5− "sha256": "01cra89drfjf3yhii5na0j5ivap2wcs0h8i0xcxrjs946nk4pp5j"
4+ "rev": "f3c913d466f1994192f758002a6bbb796bda05ef",
5+ "sha256": "0vvg523xqrcvs4myrqs91lg1v4kb5spq6vi0hfrmxf3x27yxfh9b"
66}
stackage2nix/default.nix+7−32
@@ -1,42 +1,17 @@
1−{ nixpkgs ? import <nixpkgs> {}
2−, stackage-nightly ? null
3−, stackage-lts
4−, all-cabal-hashes
5−, hackage-db
1+{ stdenv, makeWrapper, nix, nix-prefetch-scripts
2+, drv
63}:
74
8−let
9− inherit (nixpkgs) pkgs stdenv makeWrapper runCommand;
10−
11− stackagePackages = import ./stackage-packages.nix { inherit nixpkgs; };
12− stackage2nix = pkgs.haskell.lib.disableSharedExecutables stackagePackages.stackage2nix;
13−
14− stackageAll = runCommand "stackage-all" { }
15− ''
16− mkdir $out
17− for file in ${stackage-lts}/*.yaml
18− do
19− ln -s $file $out
20− done
21− '' + stdenv.lib.optionalString (stackage-nightly != null) ''
22− for file in ${stackage-nightly}/*.yaml
23− do
24− ln -s $file $out
25− done
26− '';
27−in pkgs.stdenv.mkDerivation rec {
5+stdenv.mkDerivation rec {
286 name = "stackage2nix-${version}";
29− version = stackage2nix.version;
7+ version = drv.version;
308 phases = [ "installPhase" "fixupPhase" ];
319 buildInputs = [ makeWrapper ];
3210
3311 installPhase = ''
3412 mkdir -p $out/bin
35− makeWrapper ${stackage2nix}/bin/stackage2nix $out/bin/stackage2nix \
36− --add-flags "--all-cabal-hashes ${all-cabal-hashes}" \
37− --add-flags "--lts-haskell ${stackageAll}" \
38− --add-flags "--hackage-db ${hackage-db}" \
39− --prefix PATH ":" "${pkgs.nix}/bin" \
40− --prefix PATH ":" "${pkgs.nix-prefetch-scripts}/bin"
13+ makeWrapper ${drv}/bin/stackage2nix $out/bin/stackage2nix \
14+ --prefix PATH ":" "${nix}/bin" \
15+ --prefix PATH ":" "${nix-prefetch-scripts}/bin"
4116 '';
4217}