1{ fetchurl, hackage, stdenv, ghc, zlib, src, version }:
3 [ { name = "deepseq"; version = "1.4.3.0"; }
4 { name = "binary"; version = "0.8.5.1"; }
5 { name = "time"; version = "1.9.1"; }
6 { name = "transformers"; version = "0.5.5.0"; }
7 { name = "mtl"; version = "2.2.2"; }
8 { name = "text"; version = "1.2.3.0"; }
9 { name = "parsec"; version = "3.1.13.0"; }
10 { name = "network-uri"; version = "2.6.1.0"; }
11 { name = "network"; version = "2.7.0.0"; }
12 { name = "HTTP"; version = "4000.3.12"; }
13 { name = "zlib"; version = "0.6.2"; }
14 { name = "random"; version = "1.1"; }
15 { name = "stm"; version = "2.4.5.0"; }
16 { name = "hashable"; version = "1.2.7.0"; }
17 { name = "async"; version = "2.2.1"; }
18 { name = "base16-bytestring"; version = "0.1.1.6"; }
19 { name = "base64-bytestring"; version = "1.0.0.1"; }
20 { name = "cryptohash-sha256"; version = "0.11.101.0";}
21 { name = "resolv"; version = "0.1.1.1"; }
22 { name = "mintty"; version = "0.1.2"; }
23 { name = "echo"; version = "0.1.3"; }
24 { name = "edit-distance"; version = "0.2.2.1"; }
25 { name = "ed25519"; version = "0.0.5.0"; }
26 { name = "tar"; version = "0.5.1.0"; }
27 { name = "digest"; version = "0.0.1.2"; }
28 { name = "zip-archive"; version = "0.3.3"; }
29 { name = "hackage-security"; version = "0.5.3.0"; }
31let depPaths = builtins.map ({name, version}:
33 url = "mirror://hackage/${name}-${version}.tar.gz";
34 inherit (hackage.${name}.${version}) sha256; }) dependencies;
35in stdenv.mkDerivation ({
36 name = "cabal-install";
45 platforms = stdenv.lib.platforms.all;
48 nativeBuildInputs = [ ghc zlib ];
55 # We need the .git directory to make the ./bootstrap command use ../Cabal.
59 # unpack dependencies, so we can bootstrap without network.
60 for dep in ${builtins.concatStringsSep " " depPaths}; do
64 # make sure we have the patched (revised) .cabal files.
65 ${builtins.concatStringsSep "\n"
66 (builtins.map ({name, version}:
67 let revInfo = hackage.${name}.${version}.revisions.default; in
68 if revInfo.revNum == null || revInfo.revNum == 0
70 else let revision = fetchurl { url = "https://hackage.haskell.org/package/${name}-${version}/revision/${toString revInfo.revNum}.cabal"; inherit (revInfo) sha256; }; in
71 ''cp "${revision}" "${name}-${version}/${name}.cabal"''
75 ghc-pkg init $out/packages.conf.d
76 EXTRA_CONFIGURE_OPTS="" SCOPE_OF_INSTALLATION="--package-db=$out/packages.conf.d" PREFIX="$out" ./bootstrap.sh --no-doc -j
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list