git.iko.soy/typeable/stackage2nix
on 4028855 help sign in
30 files changed+400−6425
since splitsnapshots
unifiedsplit
.gitignore−2 .travis.yml+3−27 CHANGELOG.md−49 README.md+26−88 ci-stackage2nix−26 nix/README.md−25 nix/haskell-packages/configuration-packages.nix−40 nix/haskell-packages/default.nix−187 nix/haskell-packages/packages.nix−4832 nix/lib.nix−60 nix/stackage2nix/default.nix−22 src/AllCabalHashes.hs+21−27 src/Distribution/Nixpkgs/Haskell/FromStack.hs+12−22 src/Distribution/Nixpkgs/Haskell/FromStack/Package.hs+12−32 src/Distribution/Nixpkgs/Haskell/Packages/PrettyPrinting.hs−2 src/Distribution/Nixpkgs/Haskell/Stack.hs+46−43 src/Distribution/Nixpkgs/Haskell/Stack/PrettyPrinting.hs+25−107 src/Language/Nix/FilePath.hs+6−6 src/LtsHaskell.hs+13−43 src/Runner.hs+47−150 src/Runner/Cli.hs+50−109 src/Stack/Config.hs+47−130 src/Stack/Config/Yaml.hs+25−63 src/Stack/Types.hs+4−3 stack.yaml+14−10 stack2nix-test+22 stackage2nix.cabal → stack2nix.cabal+14−20 stackage2nix/Main.hs → stack2nix/Main.hs test/Stack/Config/YamlSpec.hs+13−109 test/Stack/ConfigSpec.hs−191
.gitignore−2
@@ -1,4 +1,2 @@
11.stack-work
2−Paths_stackage2nix.hs
32/*.nix
4−/result*
.travis.yml+3−27
@@ -1,38 +1,15 @@
1−sudo: required
2−
3−language: generic
1+sudo: false
42
53addons:
64 apt:
75 packages:
86 - libgmp-dev
97
8+# Caching so the next build will be fast too.
109cache:
1110 directories:
12− - $HOME/.local/bin
1311 - $HOME/.stack
1412
15−jobs:
16− include:
17− - stage: build
18− - stage: bootstrap
19− install:
20− # Install Nix
21− - mkdir -p ~/.nix
22− - sudo mkdir -p /nix
23− - sudo chmod a+w /nix
24− - sudo mount --bind ~/.nix /nix
25− - curl https://nixos.org/nix/install | sh
26− - source ~/.nix-profile/etc/profile.d/nix.sh
27− # nixpkgs-unstable not supported
28− - nix-channel --add https://nixos.org/channels/nixos-18.03 nixpkgs
29− - nix-channel --update
30− script:
31− - nix-env -i cabal-install nix-prefetch-scripts
32− - cabal update
33− - nix-build nix/stackage2nix --dry-run
34− - ./ci-stackage2nix --dry-run
35−
3613before_install:
3714# Download and unpack the stack executable
3815- mkdir -p ~/.local/bin
@@ -40,5 +17,4 @@ before_install:
4017- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
4118
4219script:
43−- stack --no-terminal --install-ghc build --test --haddock --no-haddock-deps --copy-bins --fast --pedantic
44−
20+- stack -j2 --no-terminal --install-ghc test --fast --pedantic
CHANGELOG.mddeleted−49
@@ -1,49 +0,0 @@
1−# 0.7.2
2−- Build with ghc-8.4
3−- Drop compatibility with Cabal<2.2
4−- Don't check extra-deps when generating derivation from stack.yaml
5−
6−# 0.7.1
7−- Generate stack packages `stack-yaml-packages.nix`
8−
9−# 0.7.0
10−- Add compatibility with nixos-18.03
11−- Drop compatibility with nixos-17-09
12−- Add partial support for new stack extra-deps syntax.
13− https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps
14− Supported same syntax for packages and extra-deps sections
15−
16−# 0.6.1
17−- Pass extra `buildHaskellPackages` argument to `makePackageSet` function
18−
19−# 0.6.0
20−- Replace call to `<nixpkgs/pkgs/development/haskell-modules>` in generated
21− Haskell packages with `makePackageSet` library function
22−
23−# 0.5.0
24−- Add `--with-stackage` and `--with-stackage-closure` flag generates stackage
25−- Add `--extra-deps-revision-latest` flag. Changes generation strategy for the
26− direct dependencies of the stack.yaml extra-deps. Default strategy is to
27− generate exact revision defined in the Stackage config. With this flag
28− enabled, direct dependencies of the stack.yaml extra-deps will be generated
29− with latest revision available on Hackage. This may help when Cabal fails to
30− resolve dependencies of extra-deps, and dependences are fixed in the latest
31− revision
32−- Upd by default stackage2nix generates override of pre-generated Stackage
33− packages set.
34−- Upd generated Stackage packages with `doCheck` and `runHaddock` enabled by
35− default
36−- Remove `--do-check-stackage` flag (enabled by default)
37−- Remove `--do-haddock-stackage` flag (enabled by default)
38−- Remove `--no-packages-closure` flag (use `--with-stackage-closure`)
39−- Remove `cabal2nix < 2.7.2` support #45
40−
41−# 0.4.0
42−- Add `--resolver` option to generate full stackage packages set
43−- Add Nix wrapper, see `nix/README.md`
44−- Upd support cabal2nix >2.5
45−- Fix honor `--hackage-db` flag
46−
47−# 0.3.0
48−- Initial Hackage release
49−- Add CHANGELOG.md
README.md+26−88
@@ -1,120 +1,58 @@
1−# stackage2nix (DEPRECATED)
1+# stack2nix
22
3−[![Build Status](https://travis-ci.org/typeable/stackage2nix.svg?branch=master)](https://travis-ci.org/typeable/stackage2nix)
3+[![Build Status](https://travis-ci.org/4e6/stack2nix.svg?branch=master)](https://travis-ci.org/4e6/stack2nix)
44
5−`stackage2nix` converts a Stack file into a Nix Haskell packages set.
6−
7−# Create build derivation from stack.yaml
8−
9−## Generate targets from stack.yaml only
10−
11−```
12−stack exec -- stackage2nix .
13−```
14−
15−Command creates file `default.nix` which overrides `haskell.packages.stackage`
16−packages set. You should use
17−[typeable/nixpkgs-stackage](https://github.com/typeable/nixpkgs-stackage) overlay that
18−adds LTS Stackage packages to Nixpkgs.
19−
20−Build package with overlay installed:
5+`stack2nix` converts a Stack file into a Nix Haskell packages set.
6+It creates LTS Stackage packages set, and applies appropriate overrides on top of it.
217
228```
23−nix-build -A stackage2nix
9+stack2nix \
10+ --lts-haskell "$LTS_HASKELL_REPO" \
11+ --all-cabal-hashes "$ALL_CABAL_HASHES_REPO" \
12+ .
2413```
2514
26−## Generate Stackage packages for the build
15+`stack2nix` has three required arguments:
16+- `--lts-haskell` - path to [fpco/lts-haskell](https://github.com/fpco/lts-haskell)
17+- `--all-cabal-hashes` - path to [commercialhaskell/all-cabal-hashes](https://github.com/commercialhaskell/all-cabal-hashes) checked out to `hackage` branch
18+- `.` - path to stack.yaml file or directory
2719
28−If you don't want to use Stackage overlay, stackage2nix can generate required
29−packages with `--with-stackage-closure` flag.
20+Produced Nix derivation split on following files:
21+- packages.nix - Base Stackage packages set
22+- configuration-packages.nix - Compiler configuration
23+- default.nix - Final Haskell packages set with all overrides applied
3024
31−``` bash
32−stack exec -- stackage2nix \
33− --all-cabal-hashes /path/to/commercialhaskell/all-cabal-hashes \
34− --lts-haskell /path/to/fpco/lts-haskell \
35− --with-stackage-closure \
36− ./stack.yaml
37−```
38−
39−To generate Stackage packages, supply the `--all-cabal-hashes` flag
40−with the path to a local clone of
41−[all-cabal-hashes](https://github.com/commercialhaskell/all-cabal-hashes)
42−checked out on the `hackage` branch and supply the `--lts-haskell` flag
43−with the path to a local clone of
44−[lts-haskell](https://github.com/commercialhaskell/lts-haskell).
45−
46−### stackage2nix wrapper
47−
48−You can use stackage2nix wrapper from `nix` directory that adds required flags:
25+A particular package from result Haskell packages set can be built with:
4926
5027```
51−nix-env -i -f ./nix/stackage2nix
52−stackage2nix --with-stackage-closure ./stack.yaml
28+nix-build -A <package-name>
5329```
5430
55−This command will produce `packages.nix` and `configuration-packages.nix`
56−Stackage packages and its override in `default.nix`
57−
58−## Generate full Stackage
59−
60−`--with-stackage` parameter generates full Stackage LTS in addition to the
61−targets from `stack.yaml`
62−
63−```
64−nix-env -i -f ./nix/stackage2nix
65−stackage2nix --with-stackage ./stack.yaml
66−```
67−
68−## Generate Stackage from LTS resolver
69−
70−You can also generate only Stackage packages set from the resolver:
71−
72−```
73−nix-env -i -f ./nix/stackage2nix
74−stackage2nix --resolver lts-10.0
75−```
76−
77−This command will produce Stackage packages `packages.nix`, packages config
78−`configuration-packages.nix` and a Haskell packages set `default.nix`.
79−
80−## Runtime dependencies
81−
82−- `nix-env` is required to be on PATH by the
83− [distribution-nixpkgs](https://hackage.haskell.org/package/distribution-nixpkgs)
84− dependency
85−- `nix-prefetch-scripts` is required on PATH if you have git dependencies in
86− `stack.yaml`
87−
8831## Override result derivation
8932
9033Complex projects may require some extra customization.
9134Snippet `override.nix` below shows a minimal example of how to apply additional
92−overrides on top of Haskell packages set produced by `stackage2nix`.
35+overrides on top of Haskell packages set produced by `stack2nix`.
9336
94−``` nix
37+```
9538with import <nixpkgs> {};
96−with haskell.lib;
39+with pkgs.haskell.lib;
9740let haskellPackages = import ./. {};
9841in haskellPackages.override {
9942 overrides = self: super: {
100− stackage2nix = disableSharedExecutables super.stackage2nix;
43+ stack2nix = disableSharedExecutables super.stack2nix;
10144 };
10245}
10346```
10447
10548```
106−nix-build -A stackage2nix override.nix
49+nix-build -A stack2nix override.nix
10750```
10851
10952For more complex overrides and detailed information on how to work with Haskell packages in Nix, see Nixpkgs manual [User’s Guide to the Haskell Infrastructure](http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure)
11053
111−## Tests
11254
113−Integration tests that build stackage2nix form different yaml configs:
55+## Examples
11456
115−``` bash
116−STACKAGE_REPO=<path/to/stackage/repo> \
117−ALL_CABAL_HASHES=<path/to/all-cabal-hashes/repo> \
118−STACK_FILE=stack-ghc-7103.yaml \
119−./ci-stackage2nix
120−```
57+For other examples of `stack2nix` usage, see [4e6/stack2nix-examples](https://github.com/4e6/stack2nix-examples) repository.
58+It verifies `stack2nix` by running it on different public projects.
ci-stackage2nixdeleted−26
@@ -1,26 +0,0 @@
1−#!/usr/bin/env bash
2−
3−set -e
4−
5−STACKAGE2NIX_WORK_DIR=${STACKAGE2NIX_WORK_DIR:-$HOME}
6−STACKAGE_REPO=${STACKAGE_REPO:-$STACKAGE2NIX_WORK_DIR/lts-haskell}
7−ALL_CABAL_HASHES_REPO=${ALL_CABAL_HASHES_REPO:-$STACKAGE2NIX_WORK_DIR/all-cabal-hashes}
8−STACK_FILE=${STACK_YAML:-stack.yaml}
9−
10−if [ ! -d "$STACKAGE_REPO" ]; then
11− git clone --depth 1 https://github.com/commercialhaskell/lts-haskell.git "$STACKAGE_REPO"
12−fi
13−
14−if [ ! -d "$ALL_CABAL_HASHES_REPO" ]; then
15− git clone --branch hackage https://github.com/commercialhaskell/all-cabal-hashes.git "$ALL_CABAL_HASHES_REPO"
16−fi
17−
18−set -x
19−time stackage2nix \
20− --lts-haskell "$STACKAGE_REPO" \
21− --all-cabal-hashes "$ALL_CABAL_HASHES_REPO" \
22− --hackage-db "$HOME/.cabal/packages/hackage.haskell.org/01-index.tar" \
23− --with-stackage-closure \
24− "$STACK_FILE"
25−
26−nix-build -o "result-$(basename $STACK_FILE)" -A stackage2nix "$@"
nix/README.mddeleted−25
@@ -1,25 +0,0 @@
1−# Nix
2−
3−Nix infrastructure.
4−
5−## stackage2nix
6−
7−Provides ready-to-use `stackage2nix` wrapper with
8−`--all-cabal-hashes` and `--lts-haskell` flags set up. It also has all
9−required executables on `PATH`.
10−
11−Install stackage2nix:
12−
13−```
14−$ nix-env -i -f ./stackage2nix
15−```
16−
17−## haskell-packages
18−
19−Directory contains Stackage LTS packages generated by `stackage2nix` from this
20−project's `stack.yaml`.
21−
22−## lib.nix
23−
24−Provides Nix expressions for `hackage-db`, `all-cabal-hashes` and `lts-haskell`
25−sources.
nix/haskell-packages/configuration-packages.nixdeleted−40
@@ -1,40 +0,0 @@
1−# Generated by stackage2nix 0.7.1 from "/home/dbushev/projects/commercialhaskell/lts-haskell/lts-12.2.yaml"
2−{ pkgs, haskellLib }:
3−
4−with haskellLib; self: super: {
5−
6− # core packages
7− "array" = null;
8− "base" = null;
9− "binary" = null;
10− "bytestring" = null;
11− "containers" = null;
12− "deepseq" = null;
13− "directory" = null;
14− "filepath" = null;
15− "ghc-boot" = null;
16− "ghc-boot-th" = null;
17− "ghc-prim" = null;
18− "ghci" = null;
19− "hpc" = null;
20− "integer-gmp" = null;
21− "pretty" = null;
22− "process" = null;
23− "rts" = null;
24− "template-haskell" = null;
25− "terminfo" = null;
26− "time" = null;
27− "transformers" = null;
28− "unix" = null;
29− # break cycle: HUnit call-stack nanospec hspec hspec-core clock tasty async hashable test-framework-hunit tasty-quickcheck tasty-hunit hspec-expectations hspec-meta quickcheck-io silently temporary exceptions hspec-discover stringbuilder
30− "stringbuilder" = dontCheck super.stringbuilder;
31− "hspec-discover" = dontCheck super.hspec-discover;
32− "exceptions" = dontCheck super.exceptions;
33− "temporary" = dontCheck super.temporary;
34− "silently" = dontCheck super.silently;
35− "hashable" = dontCheck super.hashable;
36− "async" = dontCheck super.async;
37− "clock" = dontCheck super.clock;
38− "nanospec" = dontCheck super.nanospec;
39−
40−}
nix/haskell-packages/default.nixdeleted−187
@@ -1,187 +0,0 @@
1−# Generated by stackage2nix 0.7.1 from "../../stack.yaml"
2−{ nixpkgs ? import <nixpkgs> {} }:
3−
4−with nixpkgs;
5−let
6− inherit (stdenv.lib) extends;
7− haskellLib = callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/lib.nix") {};
8− stackagePackages = import ./packages.nix;
9− stackageConfig = import ./configuration-packages.nix { inherit pkgs haskellLib; };
10− stackPackages =
11− { pkgs, stdenv, callPackage }:
12−
13− self: {
14− "stackage2nix" = callPackage
15− ({ mkDerivation, aeson, base, bytestring, Cabal, cabal2nix
16− , containers, deepseq, distribution-nixpkgs, exceptions, filepath
17− , gitlib, gitlib-libgit2, hopenssl, hspec, inflections
18− , language-nix, lens, network-uri, optparse-applicative, pretty
19− , QuickCheck, shakespeare, stackage-curator, text
20− , unordered-containers, yaml
21− }:
22− mkDerivation {
23− pname = "stackage2nix";
24− version = "0.7.1";
25− src = ../../.;
26− isLibrary = true;
27− isExecutable = true;
28− libraryHaskellDepends = [
29− aeson base bytestring Cabal cabal2nix containers deepseq
30− distribution-nixpkgs exceptions filepath gitlib gitlib-libgit2
31− hopenssl inflections language-nix lens network-uri
32− optparse-applicative pretty QuickCheck stackage-curator text
33− unordered-containers yaml
34− ];
35− executableHaskellDepends = [ base ];
36− testHaskellDepends = [
37− base bytestring Cabal hspec network-uri pretty shakespeare text
38− yaml
39− ];
40− homepage = "https://github.com/typeable/stackage2nix#readme";
41− description = "Convert Stack files into Nix build instructions";
42− license = stdenv.lib.licenses.bsd3;
43− }) {};
44− "yaml" = callPackage
45− ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit
46− , containers, directory, filepath, resourcet, scientific
47− , semigroups, template-haskell, text, transformers
48− , unordered-containers, vector
49− }:
50− mkDerivation {
51− pname = "yaml";
52− version = "0.8.31.1";
53− sha256 = "1ba1451917e6cb1df6081e2e14c2e4dcec6969b9b25a5d72db96942c3e6d8b53";
54− isLibrary = true;
55− isExecutable = true;
56− libraryHaskellDepends = [
57− aeson attoparsec base bytestring conduit containers directory
58− filepath resourcet scientific semigroups template-haskell text
59− transformers unordered-containers vector
60− ];
61− doHaddock = false;
62− doCheck = false;
63− homepage = "http://github.com/snoyberg/yaml/";
64− description = "Support for parsing and rendering YAML documents";
65− license = stdenv.lib.licenses.bsd3;
66− }) {};
67− "stackage-curator" = callPackage
68− ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3, async
69− , base, blaze-html, bytestring, Cabal, classy-prelude-conduit
70− , conduit, conduit-extra, containers, cryptonite
71− , cryptonite-conduit, data-default-class, directory, exceptions
72− , fetchgit, filepath, hashable, html-conduit, http-client
73− , http-client-tls, http-conduit, lucid, memory, mime-types
74− , mono-traversable, mtl, old-locale, optparse-applicative
75− , optparse-simple, process, resourcet, safe, semigroups, stm, store
76− , streaming-commons, syb, tar, temporary, text, time, transformers
77− , unix-compat, unordered-containers, utf8-string, vector
78− , xml-conduit, xml-types, yaml, zlib
79− }:
80− mkDerivation {
81− pname = "stackage-curator";
82− version = "0.17.0.0";
83− src = fetchgit {
84− url = "https://github.com/fpco/stackage-curator.git";
85− sha256 = "0hymmzn59aszqxqs5s0mba8pzrky8wpkmy7hdgaxqrhg0syc6mkw";
86− rev = "73c5ed06602990c33d3fec1711e27875f283b6bf";
87− };
88− isLibrary = true;
89− isExecutable = true;
90− libraryHaskellDepends = [
91− aeson amazonka amazonka-core amazonka-s3 async base blaze-html
92− bytestring Cabal classy-prelude-conduit conduit conduit-extra
93− containers cryptonite cryptonite-conduit data-default-class
94− directory exceptions filepath hashable html-conduit http-client
95− http-client-tls http-conduit lucid memory mime-types
96− mono-traversable mtl old-locale process resourcet safe semigroups
97− stm store streaming-commons syb tar temporary text time
98− transformers unix-compat unordered-containers utf8-string vector
99− xml-conduit xml-types yaml zlib
100− ];
101− executableHaskellDepends = [
102− aeson amazonka amazonka-core amazonka-s3 async base blaze-html
103− bytestring Cabal classy-prelude-conduit conduit conduit-extra
104− containers cryptonite cryptonite-conduit data-default-class
105− directory exceptions filepath hashable html-conduit http-client
106− http-client-tls http-conduit lucid memory mime-types
107− mono-traversable mtl old-locale optparse-applicative
108− optparse-simple process resourcet safe semigroups stm store
109− streaming-commons syb tar temporary text time transformers
110− unix-compat unordered-containers utf8-string vector xml-conduit
111− xml-types yaml zlib
112− ];
113− doHaddock = false;
114− doCheck = false;
115− homepage = "https://github.com/fpco/stackage-curator#readme";
116− description = "Tools for curating Stackage bundles";
117− license = stdenv.lib.licenses.mit;
118− }) {};
119− "gitlib" = callPackage
120− ({ mkDerivation, base, base16-bytestring, bytestring, conduit
121− , conduit-combinators, containers, directory, exceptions, fetchgit
122− , filepath, hashable, mtl, resourcet, semigroups, tagged, text
123− , time, transformers, unix, unliftio, unliftio-core
124− , unordered-containers
125− }:
126− mkDerivation {
127− pname = "gitlib";
128− version = "3.1.2";
129− src = fetchgit {
130− url = "https://github.com/jwiegley/gitlib.git";
131− sha256 = "0rp6lnbbbf9m6fvmx7mzknrk89ly0gbqaxsfx38cn6qdy7r54xcm";
132− rev = "70c99759b8b9377f67492fe29afb32f05882409d";
133− };
134− postUnpack = "sourceRoot+=/gitlib; echo source root reset to $sourceRoot";
135− libraryHaskellDepends = [
136− base base16-bytestring bytestring conduit conduit-combinators
137− containers directory exceptions filepath hashable mtl resourcet
138− semigroups tagged text time transformers unix unliftio
139− unliftio-core unordered-containers
140− ];
141− doHaddock = false;
142− doCheck = false;
143− homepage = "https://github.com/jwiegley/gitlib";
144− description = "API library for working with Git repositories";
145− license = stdenv.lib.licenses.mit;
146− }) {};
147− "gitlib-libgit2" = callPackage
148− ({ mkDerivation, base, bytestring, conduit, conduit-combinators
149− , containers, directory, exceptions, fast-logger, fetchgit
150− , filepath, gitlib, hlibgit2, mmorph, monad-loops, mtl, resourcet
151− , stm, stm-conduit, tagged, template-haskell, text, text-icu, time
152− , transformers, transformers-base, unliftio, unliftio-core
153− }:
154− mkDerivation {
155− pname = "gitlib-libgit2";
156− version = "3.1.1";
157− src = fetchgit {
158− url = "https://github.com/jwiegley/gitlib.git";
159− sha256 = "0rp6lnbbbf9m6fvmx7mzknrk89ly0gbqaxsfx38cn6qdy7r54xcm";
160− rev = "70c99759b8b9377f67492fe29afb32f05882409d";
161− };
162− postUnpack = "sourceRoot+=/gitlib-libgit2; echo source root reset to $sourceRoot";
163− libraryHaskellDepends = [
164− base bytestring conduit conduit-combinators containers directory
165− exceptions fast-logger filepath gitlib hlibgit2 mmorph monad-loops
166− mtl resourcet stm stm-conduit tagged template-haskell text text-icu
167− time transformers transformers-base unliftio unliftio-core
168− ];
169− doHaddock = false;
170− doCheck = false;
171− description = "Libgit2 backend for gitlib";
172− license = stdenv.lib.licenses.mit;
173− }) {};
174− };
175−
176− pkgOverrides = self: stackPackages {
177− inherit pkgs stdenv;
178− inherit (self) callPackage;
179− };
180−in callPackage (nixpkgs.path + "/pkgs/development/haskell-modules") {
181− ghc = pkgs.haskell.compiler.ghc843;
182− buildHaskellPackages = buildPackages.haskell.packages.ghc843;
183− compilerConfig = self: extends pkgOverrides (stackageConfig self);
184− initialPackages = stackagePackages;
185− configurationCommon = args: self: super: {};
186− inherit haskellLib;
187−}
nix/haskell-packages/packages.nixdeleted−4832
@@ -1,4832 +0,0 @@
1−# Generated by stackage2nix 0.7.1 from "/home/dbushev/projects/commercialhaskell/lts-haskell/lts-12.2.yaml"
2−{ pkgs, stdenv, callPackage }:
3−
4−self: {
5− "Cabal" = callPackage
6− ({ mkDerivation, array, base, binary, bytestring, containers
7− , deepseq, directory, filepath, mtl, parsec, pretty, process, text
8− , time, transformers, unix
9− }:
10− mkDerivation {
11− pname = "Cabal";
12− version = "2.2.0.1";
13− sha256 = "0yqa6fm9jvr0ka6b1mf17bf43092dc1bai6mqyiwwwyz0h9k1d82";
14− setupHaskellDepends = [ mtl parsec ];
15− libraryHaskellDepends = [
16− array base binary bytestring containers deepseq directory filepath
17− mtl parsec pretty process text time transformers unix
18− ];
19− doCheck = false;
20− homepage = "http://www.haskell.org/cabal/";
21− description = "A framework for packaging Haskell software";
22− license = stdenv.lib.licenses.bsd3;
23− }) {};
24− "ChasingBottoms" = callPackage
25− ({ mkDerivation, array, base, containers, mtl, QuickCheck, random
26− , syb
27− }:
28− mkDerivation {
29− pname = "ChasingBottoms";
30− version = "1.3.1.4";
31− sha256 = "06cynx6hcbfpky7qq3b3mjjgwbnaxkwin3znbwq4b9ikiw0ng633";
32− libraryHaskellDepends = [
33− base containers mtl QuickCheck random syb
34− ];
35− testHaskellDepends = [
36− array base containers mtl QuickCheck random syb
37− ];
38− description = "For testing partial and infinite values";
39− license = stdenv.lib.licenses.mit;
40− }) {};
41− "Glob" = callPackage
42− ({ mkDerivation, base, containers, directory, dlist, filepath
43− , HUnit, QuickCheck, test-framework, test-framework-hunit
44− , test-framework-quickcheck2, transformers, transformers-compat
45− }:
46− mkDerivation {
47− pname = "Glob";
48− version = "0.9.2";
49− sha256 = "1rbwcq9w9951qsnp13vqcm9r01yax2yh1wk8s4zxa3ckk9717iwg";
50− libraryHaskellDepends = [
51− base containers directory dlist filepath transformers
52− transformers-compat
53− ];
54− testHaskellDepends = [
55− base containers directory dlist filepath HUnit QuickCheck
56− test-framework test-framework-hunit test-framework-quickcheck2
57− transformers transformers-compat
58− ];
59− homepage = "http://iki.fi/matti.niemenmaa/glob/";
60− description = "Globbing library";
61− license = stdenv.lib.licenses.bsd3;
62− }) {};
63− "HTTP" = callPackage
64− ({ mkDerivation, array, base, bytestring, case-insensitive, conduit
65− , conduit-extra, deepseq, http-types, httpd-shed, HUnit, mtl
66− , network, network-uri, parsec, pureMD5, split, test-framework
67− , test-framework-hunit, time, wai, warp
68− }:
69− mkDerivation {
70− pname = "HTTP";
71− version = "4000.3.12";
72− sha256 = "140r6qy1ay25piv0z3hih11zhigyi08nkwc32097j43pjff6mzx3";
73− libraryHaskellDepends = [
74− array base bytestring mtl network network-uri parsec time
75− ];
76− testHaskellDepends = [
77− base bytestring case-insensitive conduit conduit-extra deepseq
78− http-types httpd-shed HUnit mtl network network-uri pureMD5 split
79− test-framework test-framework-hunit wai warp
80− ];
81− doCheck = false;
82− homepage = "https://github.com/haskell/HTTP";
83− description = "A library for client-side HTTP";
84− license = stdenv.lib.licenses.bsd3;
85− }) {};
86− "HUnit" = callPackage
87− ({ mkDerivation, base, call-stack, deepseq, filepath }:
88− mkDerivation {
89− pname = "HUnit";
90− version = "1.6.0.0";
91− sha256 = "1pnhwqq5v8h48gbp3ibv3skfj25mf4zs5svxcavq93p9cswycj3l";
92− libraryHaskellDepends = [ base call-stack deepseq ];
93− testHaskellDepends = [ base call-stack deepseq filepath ];
94− homepage = "https://github.com/hspec/HUnit#readme";
95− description = "A unit testing framework for Haskell";
96− license = stdenv.lib.licenses.bsd3;
97− }) {};
98− "Only" = callPackage
99− ({ mkDerivation, base, deepseq }:
100− mkDerivation {
101− pname = "Only";
102− version = "0.1";
103− sha256 = "0rdj3a629fk2vp121jq8mf2smkblrz5w3cxhlsyx6my2x29s2ymb";
104− revision = "1";
105− editedCabalFile = "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr";
106− libraryHaskellDepends = [ base deepseq ];
107− description = "The 1-tuple type or single-value \"collection\"";
108− license = stdenv.lib.licenses.bsd3;
109− }) {};
110− "QuickCheck" = callPackage
111− ({ mkDerivation, base, containers, deepseq, random
112− , template-haskell, tf-random, transformers
113− }:
114− mkDerivation {
115− pname = "QuickCheck";
116− version = "2.11.3";
117− sha256 = "0xhqk35fkzlbjcqbabg6962jkv8d688nzmz7ng4bm84x2d95d328";
118− libraryHaskellDepends = [
119− base containers deepseq random template-haskell tf-random
120− transformers
121− ];
122− testHaskellDepends = [ base ];
123− homepage = "https://github.com/nick8325/quickcheck";
124− description = "Automatic testing of Haskell programs";
125− license = stdenv.lib.licenses.bsd3;
126− }) {};
127− "StateVar" = callPackage
128− ({ mkDerivation, base, stm, transformers }:
129− mkDerivation {
130− pname = "StateVar";
131− version = "1.1.1.0";
132− sha256 = "102f4x240zj3jwa7gx6vp813j76cjhlc3zbi9i5kiz6268kcv28s";
133− libraryHaskellDepends = [ base stm transformers ];
134− homepage = "https://github.com/haskell-opengl/StateVar";
135− description = "State variables";
136− license = stdenv.lib.licenses.bsd3;
137− }) {};
138− "abstract-deque" = callPackage
139− ({ mkDerivation, array, base, containers, random, time }:
140− mkDerivation {
141− pname = "abstract-deque";
142− version = "0.3";
143− sha256 = "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9";
144− libraryHaskellDepends = [ array base containers random time ];
145− homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
146− description = "Abstract, parameterized interface to mutable Deques";
147− license = stdenv.lib.licenses.bsd3;
148− }) {};
149− "abstract-par" = callPackage
150− ({ mkDerivation, base, deepseq }:
151− mkDerivation {
152− pname = "abstract-par";
153− version = "0.3.3";
154− sha256 = "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4";
155− libraryHaskellDepends = [ base deepseq ];
156− homepage = "https://github.com/simonmar/monad-par";
157− description = "Type classes generalizing the functionality of the 'monad-par' library";
158− license = stdenv.lib.licenses.bsd3;
159− }) {};
160− "adjunctions" = callPackage
161− ({ mkDerivation, array, base, comonad, containers, contravariant
162− , distributive, free, generic-deriving, hspec, hspec-discover, mtl
163− , profunctors, semigroupoids, semigroups, tagged, transformers
164− , transformers-compat, void
165− }:
166− mkDerivation {
167− pname = "adjunctions";
168− version = "4.4";
169− sha256 = "1sbal7cbhm12crfnfhkk322jnzgx7lhw3jzq0p463bipagsjwz2h";
170− revision = "1";
171− editedCabalFile = "0582nnn3fab63nd7ng8smk2c8j7pciiyzfj1na34wqid2hs675as";
172− libraryHaskellDepends = [
173− array base comonad containers contravariant distributive free mtl
174− profunctors semigroupoids semigroups tagged transformers
175− transformers-compat void
176− ];
177− testHaskellDepends = [ base distributive generic-deriving hspec ];
178− testToolDepends = [ hspec-discover ];
179− homepage = "http://github.com/ekmett/adjunctions/";
180− description = "Adjunctions and representable functors";
181− license = stdenv.lib.licenses.bsd3;
182− }) {};
183− "aeson" = callPackage
184− ({ mkDerivation, attoparsec, base, base-compat, bytestring
185− , containers, deepseq, dlist, ghc-prim, hashable, scientific
186− , tagged, template-haskell, text, th-abstraction, time
187− , time-locale-compat, unordered-containers, uuid-types, vector
188− }:
189− mkDerivation {
190− pname = "aeson";
191− version = "1.3.1.1";
192− sha256 = "1i1ig840fvsb1lnklcv32zsc0zscirc301lw1mpfxhc6h4pk0gw4";
193− libraryHaskellDepends = [
194− attoparsec base base-compat bytestring containers deepseq dlist
195− ghc-prim hashable scientific tagged template-haskell text
196− th-abstraction time time-locale-compat unordered-containers
197− uuid-types vector
198− ];
199− doCheck = false;
200− homepage = "https://github.com/bos/aeson";
201− description = "Fast JSON parsing and encoding";
202− license = stdenv.lib.licenses.bsd3;
203− }) {};
204− "aeson-pretty" = callPackage
205− ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
206− , cmdargs, scientific, text, unordered-containers, vector
207− }:
208− mkDerivation {
209− pname = "aeson-pretty";
210− version = "0.8.7";
211− sha256 = "1m977gs0s9gf3lwzlbs5y7bl6ansc5pywmn2qjk09l5bwg2yrhf1";
212− isLibrary = true;
213− isExecutable = true;
214− libraryHaskellDepends = [
215− aeson base base-compat bytestring scientific text
216− unordered-containers vector
217− ];
218− executableHaskellDepends = [
219− aeson attoparsec base bytestring cmdargs
220− ];
221− homepage = "http://github.com/informatikr/aeson-pretty";
222− description = "JSON pretty-printing library and command-line tool";
223− license = stdenv.lib.licenses.bsd3;
224− }) {};
225− "amazonka" = callPackage
226− ({ mkDerivation, amazonka-core, base, bytestring, conduit
227− , conduit-extra, directory, exceptions, http-client, http-conduit
228− , http-types, ini, mmorph, monad-control, mtl, resourcet, retry
229− , tasty, tasty-hunit, text, time, transformers, transformers-base
230− , transformers-compat, void
231− }:
232− mkDerivation {
233− pname = "amazonka";
234− version = "1.6.0";
235− sha256 = "07647x7lq9kaq6bqh38rvdiajji4ks6s7nvxv2xi4v4lhwn8j89p";
236− libraryHaskellDepends = [
237− amazonka-core base bytestring conduit conduit-extra directory
238− exceptions http-client http-conduit http-types ini mmorph
239− monad-control mtl resourcet retry text time transformers
240− transformers-base transformers-compat void
241− ];
242− testHaskellDepends = [ base tasty tasty-hunit ];
243− homepage = "https://github.com/brendanhay/amazonka";
244− description = "Comprehensive Amazon Web Services SDK";
245− license = stdenv.lib.licenses.mpl20;
246− }) {};
247− "amazonka-core" = callPackage
248− ({ mkDerivation, aeson, attoparsec, base, bifunctors, bytestring
249− , case-insensitive, conduit, conduit-extra, cryptonite
250− , data-ordlist, deepseq, exceptions, hashable, http-client
251− , http-conduit, http-types, lens, memory, mtl, QuickCheck
252− , quickcheck-unicode, resourcet, scientific, semigroups, tagged
253− , tasty, tasty-hunit, tasty-quickcheck, template-haskell, text
254− , time, transformers, transformers-compat, unordered-containers
255− , xml-conduit, xml-types
256− }:
257− mkDerivation {
258− pname = "amazonka-core";
259− version = "1.6.0";
260− sha256 = "1j9x17zhyxrg4ds5pdxfjdb4z7hpzn42cydx34j25h5d9avwbqdg";
261− libraryHaskellDepends = [
262− aeson attoparsec base bifunctors bytestring case-insensitive
263− conduit conduit-extra cryptonite deepseq exceptions hashable
264− http-client http-conduit http-types lens memory mtl resourcet
265− scientific semigroups tagged text time transformers
266− transformers-compat unordered-containers xml-conduit xml-types
267− ];
268− testHaskellDepends = [
269− aeson base bytestring case-insensitive conduit data-ordlist
270− http-conduit http-types lens QuickCheck quickcheck-unicode tasty
271− tasty-hunit tasty-quickcheck template-haskell text time
272− ];
273− doCheck = false;
274− homepage = "https://github.com/brendanhay/amazonka";
275− description = "Core data types and functionality for Amazonka libraries";
276− license = stdenv.lib.licenses.mpl20;
277− }) {};
278− "amazonka-s3" = callPackage
279− ({ mkDerivation, amazonka-core, amazonka-test, base, bytestring
280− , lens, tasty, tasty-hunit, text, time, unordered-containers
281− }:
282− mkDerivation {
283− pname = "amazonka-s3";
284− version = "1.6.0";
285− sha256 = "0irz8vyklapjy3w3qasidpvq4hk2qwkmhrnrd23sf4yzs2xqx8gc";
286− libraryHaskellDepends = [ amazonka-core base lens text ];
287− testHaskellDepends = [
288− amazonka-core amazonka-test base bytestring tasty tasty-hunit text
289− time unordered-containers
290− ];
291− homepage = "https://github.com/brendanhay/amazonka";
292− description = "Amazon Simple Storage Service SDK";
293− license = stdenv.lib.licenses.mpl20;
294− }) {};
295− "amazonka-test" = callPackage
296− ({ mkDerivation, aeson, amazonka-core, base, bifunctors, bytestring
297− , case-insensitive, conduit, conduit-extra, groom, http-client
298− , http-types, process, resourcet, tasty, tasty-hunit
299− , template-haskell, temporary, text, time, unordered-containers
300− , yaml
301− }:
302− mkDerivation {
303− pname = "amazonka-test";
304− version = "1.6.0";
305− sha256 = "0a6xfp97hijhqmhj9nv4aqax08ry8y809jpjhyj2819p01wvga26";
306− libraryHaskellDepends = [
307− aeson amazonka-core base bifunctors bytestring case-insensitive
308− conduit conduit-extra groom http-client http-types process
309− resourcet tasty tasty-hunit template-haskell temporary text time
310− unordered-containers yaml
311− ];
312− homepage = "https://github.com/brendanhay/amazonka";
313− description = "Common functionality for Amazonka library test-suites";
314− license = stdenv.lib.licenses.mpl20;
315− }) {};
316− "ansi-terminal" = callPackage
317− ({ mkDerivation, base, colour }:
318− mkDerivation {
319− pname = "ansi-terminal";
320− version = "0.8.0.4";
321− sha256 = "0428gq8m3fdnb7ldcsyk97qcch76hcxbgh2666p6f76fs2qbhg7b";
322− isLibrary = true;
323− isExecutable = true;
324− libraryHaskellDepends = [ base colour ];
325− homepage = "https://github.com/feuerbach/ansi-terminal";
326− description = "Simple ANSI terminal support, with Windows compatibility";
327− license = stdenv.lib.licenses.bsd3;
328− }) {};
329− "ansi-wl-pprint" = callPackage
330− ({ mkDerivation, ansi-terminal, base }:
331− mkDerivation {
332− pname = "ansi-wl-pprint";
333− version = "0.6.8.2";
334− sha256 = "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56";
335− isLibrary = true;
336− isExecutable = true;
337− libraryHaskellDepends = [ ansi-terminal base ];
338− homepage = "http://github.com/ekmett/ansi-wl-pprint";
339− description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
340− license = stdenv.lib.licenses.bsd3;
341− }) {};
342− "appar" = callPackage
343− ({ mkDerivation, base, bytestring }:
344− mkDerivation {
345− pname = "appar";
346− version = "0.1.4";
347− sha256 = "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq";
348− libraryHaskellDepends = [ base bytestring ];
349− description = "A simple applicative parser";
350− license = stdenv.lib.licenses.bsd3;
351− }) {};
352− "asn1-encoding" = callPackage
353− ({ mkDerivation, asn1-types, base, bytestring, hourglass, mtl
354− , tasty, tasty-quickcheck, text
355− }:
356− mkDerivation {
357− pname = "asn1-encoding";
358− version = "0.9.5";
359− sha256 = "0adgbamyq0mj1l1hdq4zyyllay714bac1wl0rih3fv1z6vykp1hy";
360− libraryHaskellDepends = [ asn1-types base bytestring hourglass ];
361− testHaskellDepends = [
362− asn1-types base bytestring hourglass mtl tasty tasty-quickcheck
363− text
364− ];
365− homepage = "http://github.com/vincenthz/hs-asn1";
366− description = "ASN1 data reader and writer in RAW, BER and DER forms";
367− license = stdenv.lib.licenses.bsd3;
368− }) {};
369− "asn1-parse" = callPackage
370− ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring }:
371− mkDerivation {
372− pname = "asn1-parse";
373− version = "0.9.4";
374− sha256 = "025prsihk5g6rdv9xlfmj0zpa0wa3qjzj5i4ilzvg7f6f3sji8y6";
375− libraryHaskellDepends = [
376− asn1-encoding asn1-types base bytestring
377− ];
378− homepage = "https://github.com/vincenthz/hs-asn1";
379− description = "Simple monadic parser for ASN1 stream types";
380− license = stdenv.lib.licenses.bsd3;
381− }) {};
382− "asn1-types" = callPackage
383− ({ mkDerivation, base, bytestring, hourglass, memory }:
384− mkDerivation {
385− pname = "asn1-types";
386− version = "0.3.2";
387− sha256 = "05vjchyqiy9n275cygffhn0ma7fz7jx52j0dcdm9qm8h9bziymqc";
388− libraryHaskellDepends = [ base bytestring hourglass memory ];
389− homepage = "http://github.com/vincenthz/hs-asn1-types";
390− description = "ASN.1 types";
391− license = stdenv.lib.licenses.bsd3;
392− }) {};
393− "async" = callPackage
394− ({ mkDerivation, base, hashable, HUnit, stm, test-framework
395− , test-framework-hunit
396− }:
397− mkDerivation {
398− pname = "async";
399− version = "2.2.1";
400− sha256 = "09whscli1q5z7lzyq9rfk0bq1ydplh6pjmc6qv0x668k5818c2wg";
401− isLibrary = true;
402− isExecutable = true;
403− libraryHaskellDepends = [ base hashable stm ];
404− testHaskellDepends = [
405− base HUnit stm test-framework test-framework-hunit
406− ];
407− homepage = "https://github.com/simonmar/async";
408− description = "Run IO operations asynchronously and wait for their results";
409− license = stdenv.lib.licenses.bsd3;
410− }) {};
411− "attoparsec" = callPackage
412− ({ mkDerivation, array, base, bytestring, case-insensitive
413− , containers, criterion, deepseq, directory, filepath, ghc-prim
414− , http-types, parsec, scientific, text, transformers
415− , unordered-containers, vector
416− }:
417− mkDerivation {
418− pname = "attoparsec";
419− version = "0.13.2.2";
420− sha256 = "0j6qcwd146yzlkc9mcvzvnixsyl65n2a68l28322q5v9p4g4g4yx";
421− libraryHaskellDepends = [
422− array base bytestring containers deepseq scientific text
423− transformers
424− ];
425− benchmarkHaskellDepends = [
426− array base bytestring case-insensitive containers criterion deepseq
427− directory filepath ghc-prim http-types parsec scientific text
428− transformers unordered-containers vector
429− ];
430− doCheck = false;
431− homepage = "https://github.com/bos/attoparsec";
432− description = "Fast combinator parsing for bytestrings and text";
433− license = stdenv.lib.licenses.bsd3;
434− }) {};
435− "auto-update" = callPackage
436− ({ mkDerivation, base }:
437− mkDerivation {
438− pname = "auto-update";
439− version = "0.1.4";
440− sha256 = "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy";
441− libraryHaskellDepends = [ base ];
442− homepage = "https://github.com/yesodweb/wai";
443− description = "Efficiently run periodic, on-demand actions";
444− license = stdenv.lib.licenses.mit;
445− }) {};
446− "base-compat" = callPackage
447− ({ mkDerivation, base, unix }:
448− mkDerivation {
449− pname = "base-compat";
450− version = "0.10.4";
451− sha256 = "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d";
452− libraryHaskellDepends = [ base unix ];
453− description = "A compatibility layer for base";
454− license = stdenv.lib.licenses.mit;
455− }) {};
456− "base-compat-batteries" = callPackage
457− ({ mkDerivation, base, base-compat, hspec, hspec-discover
458− , QuickCheck
459− }:
460− mkDerivation {
461− pname = "base-compat-batteries";
462− version = "0.10.1";
463− sha256 = "1j8ky6241mj1ymbwm9scvyvbknj7n2r56cnkg9y1zf2xwjpqnmqm";
464− libraryHaskellDepends = [ base base-compat ];
465− testHaskellDepends = [ base hspec QuickCheck ];
466− testToolDepends = [ hspec-discover ];
467− description = "base-compat with extra batteries";
468− license = stdenv.lib.licenses.mit;
469− }) {};
470− "base-orphans" = callPackage
471− ({ mkDerivation, base, ghc-prim, hspec, hspec-discover, QuickCheck
472− }:
473− mkDerivation {
474− pname = "base-orphans";
475− version = "0.7";
476− sha256 = "057f9npnqk71ccfh95djfkpd54dzazphj06grwxa3fyhwcwxrb8a";
477− libraryHaskellDepends = [ base ghc-prim ];
478− testHaskellDepends = [ base hspec QuickCheck ];
479− testToolDepends = [ hspec-discover ];
480− homepage = "https://github.com/haskell-compat/base-orphans#readme";
481− description = "Backwards-compatible orphan instances for base";
482− license = stdenv.lib.licenses.mit;
483− }) {};
484− "base-prelude" = callPackage
485− ({ mkDerivation, base }:
486− mkDerivation {
487− pname = "base-prelude";
488− version = "1.3";
489− sha256 = "1zk728sd09hh2r4xwz4lazsrrgg5cshydn64932sm0vckplndk73";
490− libraryHaskellDepends = [ base ];
491− doCheck = false;
492− homepage = "https://github.com/nikita-volkov/base-prelude";
493− description = "The most complete prelude formed solely from the \"base\" package";
494− license = stdenv.lib.licenses.mit;
495− }) {};
496− "base16-bytestring" = callPackage
497− ({ mkDerivation, base, bytestring, ghc-prim }:
498− mkDerivation {
499− pname = "base16-bytestring";
500− version = "0.1.1.6";
501− sha256 = "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs";
502− libraryHaskellDepends = [ base bytestring ghc-prim ];
503− homepage = "http://github.com/bos/base16-bytestring";
504− description = "Fast base16 (hex) encoding and decoding for ByteStrings";
505− license = stdenv.lib.licenses.bsd3;
506− }) {};
507− "base64-bytestring" = callPackage
508− ({ mkDerivation, base, bytestring, containers, HUnit, QuickCheck
509− , test-framework, test-framework-hunit, test-framework-quickcheck2
510− }:
511− mkDerivation {
512− pname = "base64-bytestring";
513− version = "1.0.0.1";
514− sha256 = "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db";
515− libraryHaskellDepends = [ base bytestring ];
516− testHaskellDepends = [
517− base bytestring containers HUnit QuickCheck test-framework
518− test-framework-hunit test-framework-quickcheck2
519− ];
520− homepage = "https://github.com/bos/base64-bytestring";
521− description = "Fast base64 encoding and decoding for ByteStrings";
522− license = stdenv.lib.licenses.bsd3;
523− }) {};
524− "basement" = callPackage
525− ({ mkDerivation, base, ghc-prim }:
526− mkDerivation {
527− pname = "basement";
528− version = "0.0.8";
529− sha256 = "194jw567di4q2758943q9rrwkbf9gl261my7qc21i9xhyabipx67";
530− libraryHaskellDepends = [ base ghc-prim ];
531− homepage = "https://github.com/haskell-foundation/foundation#readme";
532− description = "Foundation scrap box of array & string";
533− license = stdenv.lib.licenses.bsd3;
534− }) {};
535− "basic-prelude" = callPackage
536− ({ mkDerivation, base, bytestring, containers, filepath, hashable
537− , text, transformers, unordered-containers, vector
538− }:
539− mkDerivation {
540− pname = "basic-prelude";
541− version = "0.7.0";
542− sha256 = "0yckmnvm6i4vw0mykj4fzl4ldsf67v8d2h0vp1bakyj84n4myx8h";
543− libraryHaskellDepends = [
544− base bytestring containers filepath hashable text transformers
545− unordered-containers vector
546− ];
547− homepage = "https://github.com/snoyberg/basic-prelude#readme";
548− description = "An enhanced core prelude; a common foundation for alternate preludes";
549− license = stdenv.lib.licenses.mit;
550− }) {};
551− "bifunctors" = callPackage
552− ({ mkDerivation, base, base-orphans, comonad, containers, hspec
553− , hspec-discover, QuickCheck, semigroups, tagged, template-haskell
554− , th-abstraction, transformers, transformers-compat
555− }:
556− mkDerivation {
557− pname = "bifunctors";
558− version = "5.5.3";
559− sha256 = "1jn9rxg643xnlhrknmjz88nblcpsr45xwjkwwnn5nxpasa7m4d6l";
560− libraryHaskellDepends = [
561− base base-orphans comonad containers semigroups tagged
562− template-haskell th-abstraction transformers
563− ];
564− testHaskellDepends = [
565− base hspec QuickCheck template-haskell transformers
566− transformers-compat
567− ];
568− testToolDepends = [ hspec-discover ];
569− homepage = "http://github.com/ekmett/bifunctors/";
570− description = "Bifunctors";
571− license = stdenv.lib.licenses.bsd3;
572− }) {};
573− "bindings-DSL" = callPackage
574− ({ mkDerivation, base }:
575− mkDerivation {
576− pname = "bindings-DSL";
577− version = "1.0.25";
578− sha256 = "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3";
579− libraryHaskellDepends = [ base ];
580− homepage = "https://github.com/jwiegley/bindings-dsl/wiki";
581− description = "FFI domain specific language, on top of hsc2hs";
582− license = stdenv.lib.licenses.bsd3;
583− }) {};
584− "blaze-builder" = callPackage
585− ({ mkDerivation, base, bytestring, deepseq, HUnit, QuickCheck
586− , test-framework, test-framework-hunit, test-framework-quickcheck2
587− , text, utf8-string
588− }:
589− mkDerivation {
590− pname = "blaze-builder";
591− version = "0.4.1.0";
592− sha256 = "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i";
593− libraryHaskellDepends = [ base bytestring deepseq text ];
594− testHaskellDepends = [
595− base bytestring HUnit QuickCheck test-framework
596− test-framework-hunit test-framework-quickcheck2 text utf8-string
597− ];
598− homepage = "http://github.com/lpsmith/blaze-builder";
599− description = "Efficient buffered output";
600− license = stdenv.lib.licenses.bsd3;
601− }) {};
602− "blaze-html" = callPackage
603− ({ mkDerivation, base, blaze-builder, blaze-markup, bytestring
604− , text
605− }:
606− mkDerivation {
607− pname = "blaze-html";
608− version = "0.9.1.1";
609− sha256 = "06xv8fqhclfjj61z74cgggn4lmx1s7diakxg84mnkgfvk11983pa";
610− libraryHaskellDepends = [
611− base blaze-builder blaze-markup bytestring text
612− ];
613− doCheck = false;
614− homepage = "http://jaspervdj.be/blaze";
615− description = "A blazingly fast HTML combinator library for Haskell";
616− license = stdenv.lib.licenses.bsd3;
617− }) {};
618− "blaze-markup" = callPackage
619− ({ mkDerivation, base, blaze-builder, bytestring, text }:
620− mkDerivation {
621− pname = "blaze-markup";
622− version = "0.8.2.1";
623− sha256 = "0ih1c3qahkdgzbqihdhny5s313l2m66fbb88w8jbx7yz56y7rawh";
624− libraryHaskellDepends = [ base blaze-builder bytestring text ];
625− doCheck = false;
626− homepage = "http://jaspervdj.be/blaze";
627− description = "A blazingly fast markup combinator library for Haskell";
628− license = stdenv.lib.licenses.bsd3;
629− }) {};
630− "bsb-http-chunked" = callPackage
631− ({ mkDerivation, base, bytestring, bytestring-builder }:
632− mkDerivation {
633− pname = "bsb-http-chunked";
634− version = "0.0.0.2";
635− sha256 = "1x6m6xkrcw6jiaig1bb2wb5pqyw31x8xr9k9pxgq2g3ng44pbjr8";
636− libraryHaskellDepends = [ base bytestring bytestring-builder ];
637− homepage = "http://github.com/sjakobi/bsb-http-chunked";
638− description = "Chunked HTTP transfer encoding for bytestring builders";
639− license = stdenv.lib.licenses.bsd3;
640− }) {};
641− "byteable" = callPackage
642− ({ mkDerivation, base, bytestring }:
643− mkDerivation {
644− pname = "byteable";
645− version = "0.1.1";
646− sha256 = "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4";
647− enableSeparateDataOutput = true;
648− libraryHaskellDepends = [ base bytestring ];
649− homepage = "http://github.com/vincenthz/hs-byteable";
650− description = "Type class for sequence of bytes";
651− license = stdenv.lib.licenses.bsd3;
652− }) {};
653− "byteorder" = callPackage
654− ({ mkDerivation, base }:
655− mkDerivation {
656− pname = "byteorder";
657− version = "1.0.4";
658− sha256 = "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x";
659− libraryHaskellDepends = [ base ];
660− homepage = "http://community.haskell.org/~aslatter/code/byteorder";
661− description = "Exposes the native endianness or byte ordering of the system";
662− license = stdenv.lib.licenses.bsd3;
663− }) {};
664− "bytestring-builder" = callPackage
665− ({ mkDerivation, base, bytestring, deepseq }:
666− mkDerivation {
667− pname = "bytestring-builder";
668− version = "0.10.8.1.0";
669− sha256 = "1hnvjac28y44yn78c9vdp1zvrknvlw98ky3g4n5vivr16rvh8x3d";
670− libraryHaskellDepends = [ base bytestring deepseq ];
671− doHaddock = false;
672− description = "The new bytestring builder, packaged outside of GHC";
673− license = stdenv.lib.licenses.bsd3;
674− }) {};
675− "cabal-doctest" = callPackage
676− ({ mkDerivation, base, Cabal, directory, filepath }:
677− mkDerivation {
678− pname = "cabal-doctest";
679− version = "1.0.6";
680− sha256 = "0bgd4jdmzxq5y465r4sf4jv2ix73yvblnr4c9wyazazafddamjny";
681− revision = "1";
682− editedCabalFile = "1bk85avgc93yvcggwbk01fy8nvg6753wgmaanhkry0hz55h7mpld";
683− libraryHaskellDepends = [ base Cabal directory filepath ];
684− homepage = "https://github.com/phadej/cabal-doctest";
685− description = "A Setup.hs helper for doctests running";
686− license = stdenv.lib.licenses.bsd3;
687− }) {};
688− "cabal2nix" = callPackage
689− ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, Cabal
690− , containers, deepseq, directory, distribution-nixpkgs, filepath
691− , hackage-db, hopenssl, hpack, language-nix, lens, monad-par
692− , monad-par-extras, mtl, optparse-applicative, pretty, process
693− , split, tasty, tasty-golden, text, time, transformers, yaml
694− }:
695− mkDerivation {
696− pname = "cabal2nix";
697− version = "2.9.3";
698− sha256 = "10l1k8rilf032v6pchwhxaq53mr0d08h6xkllidc3c7wfkzcx7qj";
699− isLibrary = true;
700− isExecutable = true;
701− libraryHaskellDepends = [
702− aeson ansi-wl-pprint base bytestring Cabal containers deepseq
703− directory distribution-nixpkgs filepath hackage-db hopenssl hpack
704− language-nix lens optparse-applicative pretty process split text
705− time transformers yaml
706− ];
707− executableHaskellDepends = [
708− aeson base bytestring Cabal containers directory
709− distribution-nixpkgs filepath hopenssl language-nix lens monad-par
710− monad-par-extras mtl optparse-applicative pretty
711− ];
712− testHaskellDepends = [
713− base Cabal containers directory filepath language-nix lens pretty
714− process tasty tasty-golden
715− ];
716− homepage = "https://github.com/nixos/cabal2nix#readme";
717− description = "Convert Cabal files into Nix build instructions";
718− license = stdenv.lib.licenses.bsd3;
719− }) {};
720− "call-stack" = callPackage
721− ({ mkDerivation, base, nanospec }:
722− mkDerivation {
723− pname = "call-stack";
724− version = "0.1.0";
725− sha256 = "1qmihf5jafmc79sk52l6gpx75f5bnla2lp62kh3p34x3j84mwpzj";
726− libraryHaskellDepends = [ base ];
727− testHaskellDepends = [ base nanospec ];
728− homepage = "https://github.com/sol/call-stack#readme";
729− description = "Use GHC call-stacks in a backward compatible way";
730− license = stdenv.lib.licenses.mit;
731− }) {};
732− "case-insensitive" = callPackage
733− ({ mkDerivation, base, bytestring, criterion, deepseq, hashable
734− , HUnit, test-framework, test-framework-hunit, text
735− }:
736− mkDerivation {
737− pname = "case-insensitive";
738− version = "1.2.0.11";
739− sha256 = "1qrpxfirsxckg7jv28f5ah2qc8lh95hp7rnqkbqs1ahcwlbnvkm7";
740− libraryHaskellDepends = [ base bytestring deepseq hashable text ];
741− testHaskellDepends = [
742− base bytestring HUnit test-framework test-framework-hunit text
743− ];
744− benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
745− homepage = "https://github.com/basvandijk/case-insensitive";
746− description = "Case insensitive string comparison";
747− license = stdenv.lib.licenses.bsd3;
748− }) {};
749− "cassava" = callPackage
750− ({ mkDerivation, array, attoparsec, base, bytestring, containers
751− , deepseq, hashable, Only, scientific, text, text-short
752− , unordered-containers, vector
753− }:
754− mkDerivation {
755− pname = "cassava";
756− version = "0.5.1.0";
757− sha256 = "0xs2c5lpy0g5lsmp2cx0dm5lnxij7cgry6xd5gsn3bfdlap8lb3n";
758− configureFlags = [ "-f-bytestring--lt-0_10_4" ];
759− libraryHaskellDepends = [
760− array attoparsec base bytestring containers deepseq hashable Only
761− scientific text text-short unordered-containers vector
762− ];
763− doCheck = false;
764− homepage = "https://github.com/hvr/cassava";
765− description = "A CSV parsing and encoding library";
766− license = stdenv.lib.licenses.bsd3;
767− }) {};
768− "cereal" = callPackage
769− ({ mkDerivation, array, base, bytestring, containers, ghc-prim
770− , QuickCheck, test-framework, test-framework-quickcheck2
771− }:
772− mkDerivation {
773− pname = "cereal";
774− version = "0.5.5.0";
775− sha256 = "08k8y6nf3n8h8gzw4a44mssy7rhgpmfj28lhczjz4vgszc7k55qb";
776− libraryHaskellDepends = [
777− array base bytestring containers ghc-prim
778− ];
779− testHaskellDepends = [
780− base bytestring QuickCheck test-framework
781− test-framework-quickcheck2
782− ];
783− homepage = "https://github.com/GaloisInc/cereal";
784− description = "A binary serialization library";
785− license = stdenv.lib.licenses.bsd3;
786− }) {};
787− "cereal-conduit" = callPackage
788− ({ mkDerivation, base, bytestring, cereal, conduit, HUnit, mtl
789− , resourcet, transformers
790− }:
791− mkDerivation {
792− pname = "cereal-conduit";
793− version = "0.8.0";
794− sha256 = "1srr7agvgfw78q5s1npjq5sgynvhjgllpihiv37ylkwqm4c4ap6r";
795− revision = "1";
796− editedCabalFile = "1imyl3g2bni8bc6kajr857xh94fscphksj3286pxfpa8yp9vqqpc";
797− libraryHaskellDepends = [
798− base bytestring cereal conduit resourcet transformers
799− ];
800− testHaskellDepends = [
801− base bytestring cereal conduit HUnit mtl transformers
802− ];
803− homepage = "https://github.com/snoyberg/conduit";
804− description = "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits";
805− license = stdenv.lib.licenses.bsd3;
806− }) {};
807− "chunked-data" = callPackage
808− ({ mkDerivation, base, bytestring, containers, semigroups, text
809− , transformers, vector
810− }:
811− mkDerivation {
812− pname = "chunked-data";
813− version = "0.3.1";
814− sha256 = "16m7y7fwrirbjbqqcsfmr4yxa9qvfax6r7pw0zl9ky71ms0wa47p";
815− libraryHaskellDepends = [
816− base bytestring containers semigroups text transformers vector
817− ];
818− homepage = "https://github.com/snoyberg/mono-traversable#readme";
819− description = "Typeclasses for dealing with various chunked data representations";
820− license = stdenv.lib.licenses.mit;
821− }) {};
822− "classy-prelude" = callPackage
823− ({ mkDerivation, async, base, basic-prelude, bifunctors, bytestring
824− , chunked-data, containers, deepseq, dlist, ghc-prim, hashable
825− , hspec, mono-traversable, mono-traversable-instances, mtl
826− , mutable-containers, primitive, QuickCheck, say, semigroups, stm
827− , stm-chans, text, time, transformers, unliftio
828− , unordered-containers, vector, vector-instances
829− }:
830− mkDerivation {
831− pname = "classy-prelude";
832− version = "1.4.0";
833− sha256 = "1q7r4lnrxjsh7rj5nr0cs22ddp9m6maa7bzbkarxw3xbfrb2afrb";
834− libraryHaskellDepends = [
835− async base basic-prelude bifunctors bytestring chunked-data
836− containers deepseq dlist ghc-prim hashable mono-traversable
837− mono-traversable-instances mtl mutable-containers primitive say
838− semigroups stm stm-chans text time transformers unliftio
839− unordered-containers vector vector-instances
840− ];
841− testHaskellDepends = [
842− base containers hspec QuickCheck transformers unordered-containers
843− ];
844− homepage = "https://github.com/snoyberg/mono-traversable#readme";
845− description = "A typeclass-based Prelude";
846− license = stdenv.lib.licenses.mit;
847− }) {};
848− "classy-prelude-conduit" = callPackage
849− ({ mkDerivation, base, bytestring, classy-prelude, conduit, hspec
850− , monad-control, QuickCheck, resourcet, transformers, void
851− }:
852− mkDerivation {
853− pname = "classy-prelude-conduit";
854− version = "1.4.0";
855− sha256 = "096466cyyxxmg3jpq705xjjc4r7v9b607hgbys8vybjlldkjbvrr";
856− libraryHaskellDepends = [
857− base bytestring classy-prelude conduit monad-control resourcet
858− transformers void
859− ];
860− testHaskellDepends = [
861− base bytestring conduit hspec QuickCheck transformers
862− ];
863− homepage = "https://github.com/snoyberg/mono-traversable#readme";
864− description = "classy-prelude together with conduit functions";
865− license = stdenv.lib.licenses.mit;
866− }) {};
867− "clock" = callPackage
868− ({ mkDerivation, base, tasty, tasty-quickcheck }:
869− mkDerivation {
870− pname = "clock";
871− version = "0.7.2";
872− sha256 = "07v91s20halsqjmziqb1sqjp2sjpckl9by7y28aaklwqi2bh2rl8";
873− libraryHaskellDepends = [ base ];
874− testHaskellDepends = [ base tasty tasty-quickcheck ];
875− homepage = "https://github.com/corsis/clock";
876− description = "High-resolution clock functions: monotonic, realtime, cputime";
877− license = stdenv.lib.licenses.bsd3;
878− }) {};
879− "cmdargs" = callPackage
880− ({ mkDerivation, base, filepath, process, template-haskell
881− , transformers
882− }:
883− mkDerivation {
884− pname = "cmdargs";
885− version = "0.10.20";
886− sha256 = "0cbkmgrcnwgigg6z88y3c09gm7g6dwm7gzbgr53h8k1xik29s9hf";
887− isLibrary = true;
888− isExecutable = true;
889− libraryHaskellDepends = [
890− base filepath process template-haskell transformers
891− ];
892− homepage = "https://github.com/ndmitchell/cmdargs#readme";
893− description = "Command line argument processing";
894− license = stdenv.lib.licenses.bsd3;
895− }) {};
896− "code-page" = callPackage
897− ({ mkDerivation, base }:
898− mkDerivation {
899− pname = "code-page";
900− version = "0.1.3";
901− sha256 = "1491frk4jx6dlhifky9dvcxbsbcfssrz979a5hp5zn061rh8cp76";
902− libraryHaskellDepends = [ base ];
903− testHaskellDepends = [ base ];
904− homepage = "https://github.com/RyanGlScott/code-page";
905− description = "Windows code page library for Haskell";
906− license = stdenv.lib.licenses.bsd3;
907− }) {};
908− "colour" = callPackage
909− ({ mkDerivation, base }:
910− mkDerivation {
911− pname = "colour";
912− version = "2.3.4";
913− sha256 = "1sy51nz096sv91nxqk6yk7b92b5a40axv9183xakvki2nc09yhqg";
914− enableSeparateDataOutput = true;
915− libraryHaskellDepends = [ base ];
916− doCheck = false;
917− homepage = "http://www.haskell.org/haskellwiki/Colour";
918− description = "A model for human colour/color perception";
919− license = stdenv.lib.licenses.mit;
920− }) {};
921− "comonad" = callPackage
922− ({ mkDerivation, base, Cabal, cabal-doctest, containers
923− , contravariant, distributive, doctest, semigroups, tagged
924− , transformers, transformers-compat
925− }:
926− mkDerivation {
927− pname = "comonad";
928− version = "5.0.4";
929− sha256 = "09g870c4flp4k3fgbibsd0mmfjani1qcpbcl685v8x89kxzrva3q";
930− setupHaskellDepends = [ base Cabal cabal-doctest ];
931− libraryHaskellDepends = [
932− base containers contravariant distributive semigroups tagged
933− transformers transformers-compat
934− ];
935− testHaskellDepends = [ base doctest ];
936− homepage = "http://github.com/ekmett/comonad/";
937− description = "Comonads";
938− license = stdenv.lib.licenses.bsd3;
939− }) {};
940− "concurrent-output" = callPackage
941− ({ mkDerivation, ansi-terminal, async, base, directory, exceptions
942− , process, stm, terminal-size, text, transformers, unix
943− }:
944− mkDerivation {
945− pname = "concurrent-output";
946− version = "1.10.6";
947− sha256 = "1qlp1vij4qgcrkw8ym5xdc0pgfwklbhsfh56sgayy3cvpvcac093";
948− libraryHaskellDepends = [
949− ansi-terminal async base directory exceptions process stm
950− terminal-size text transformers unix
951− ];
952− description = "Ungarble output from several threads or commands";
953− license = stdenv.lib.licenses.bsd2;
954− }) {};
955− "conduit" = callPackage
956− ({ mkDerivation, base, bytestring, containers, deepseq, directory
957− , exceptions, filepath, gauge, hspec, kan-extensions
958− , mono-traversable, mtl, mwc-random, primitive, QuickCheck
959− , resourcet, safe, silently, split, text, transformers, unix
960− , unliftio, unliftio-core, vector
961− }:
962− mkDerivation {
963− pname = "conduit";
964− version = "1.3.0.3";
965− sha256 = "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v";
966− libraryHaskellDepends = [
967− base bytestring directory exceptions filepath mono-traversable mtl
968− primitive resourcet text transformers unix unliftio-core vector
969− ];
970− testHaskellDepends = [
971− base bytestring containers directory exceptions filepath hspec
972− mono-traversable mtl QuickCheck resourcet safe silently split text
973− transformers unliftio vector
974− ];
975− benchmarkHaskellDepends = [
976− base containers deepseq gauge hspec kan-extensions mwc-random
977− transformers vector
978− ];
979− homepage = "http://github.com/snoyberg/conduit";
980− description = "Streaming data processing library";
981− license = stdenv.lib.licenses.mit;
982− }) {};
983− "conduit-combinators" = callPackage
984− ({ mkDerivation, base }:
985− mkDerivation {
986− pname = "conduit-combinators";
987− version = "1.3.0";
988− sha256 = "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp";
989− libraryHaskellDepends = [ base ];
990− doHaddock = false;
991− homepage = "https://github.com/snoyberg/mono-traversable#readme";
992− description = "DEPRECATED Functionality merged into the conduit package itself";
993− license = stdenv.lib.licenses.mit;
994− }) {};
995− "conduit-extra" = callPackage
996− ({ mkDerivation, async, attoparsec, base, bytestring
997− , bytestring-builder, conduit, directory, exceptions, filepath
998− , gauge, hspec, network, primitive, process, QuickCheck, resourcet
999− , stm, streaming-commons, text, transformers, transformers-base
1000− , typed-process, unliftio-core
1001− }:
1002− mkDerivation {
1003− pname = "conduit-extra";
1004− version = "1.3.0";
1005− sha256 = "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c";
1006− libraryHaskellDepends = [
1007− async attoparsec base bytestring conduit directory filepath network
1008− primitive process resourcet stm streaming-commons text transformers
1009− typed-process unliftio-core
1010− ];
1011− testHaskellDepends = [
1012− async attoparsec base bytestring bytestring-builder conduit
1013− directory exceptions hspec process QuickCheck resourcet stm
1014− streaming-commons text transformers transformers-base
1015− ];
1016− benchmarkHaskellDepends = [
1017− base bytestring bytestring-builder conduit gauge transformers
1018− ];
1019− homepage = "http://github.com/snoyberg/conduit";
1020− description = "Batteries included conduit: adapters for common libraries";
1021− license = stdenv.lib.licenses.mit;
1022− }) {};
1023− "connection" = callPackage
1024− ({ mkDerivation, base, byteable, bytestring, containers
1025− , data-default-class, network, socks, tls, x509, x509-store
1026− , x509-system, x509-validation
1027− }:
1028− mkDerivation {
1029− pname = "connection";
1030− version = "0.2.8";
1031− sha256 = "1swkb9w5vx9ph7x55y51dc0srj2z27nd9ibgn8c0qcl6hx7g9cbh";
1032− libraryHaskellDepends = [
1033− base byteable bytestring containers data-default-class network
1034− socks tls x509 x509-store x509-system x509-validation
1035− ];
1036− homepage = "http://github.com/vincenthz/hs-connection";
1037− description = "Simple and easy network connections API";
1038− license = stdenv.lib.licenses.bsd3;
1039− }) {};
1040− "constraints" = callPackage
1041− ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
1042− , hspec-discover, mtl, semigroups, transformers
1043− , transformers-compat
1044− }:
1045− mkDerivation {
1046− pname = "constraints";
1047− version = "0.10.1";
1048− sha256 = "1xy3vv78jxc17hm0z7qqspxjwv7l2jbcbj670yrl2f053qkfr02q";
1049− libraryHaskellDepends = [
1050− base binary deepseq ghc-prim hashable mtl semigroups transformers
1051− transformers-compat
1052− ];
1053− testHaskellDepends = [ base hspec ];
1054− testToolDepends = [ hspec-discover ];
1055− homepage = "http://github.com/ekmett/constraints/";
1056− description = "Constraint manipulation";
1057− license = stdenv.lib.licenses.bsd2;
1058− }) {};
1059− "contravariant" = callPackage
1060− ({ mkDerivation, base, StateVar, transformers, transformers-compat
1061− }:
1062− mkDerivation {
1063− pname = "contravariant";
1064− version = "1.4.1";
1065− sha256 = "1vfhk8c5cxmmakx7rflap1ipkx5q0j5vnlrcz7yz6y53kxhksgf9";
1066− revision = "1";
1067− editedCabalFile = "0qj5nymccrb9p0cd6hffsy90jidjng14g9yv95z8v6h4q84sbzvx";
1068− libraryHaskellDepends = [
1069− base StateVar transformers transformers-compat
1070− ];
1071− homepage = "http://github.com/ekmett/contravariant/";
1072− description = "Contravariant functors";
1073− license = stdenv.lib.licenses.bsd3;
1074− }) {};
1075− "cookie" = callPackage
1076− ({ mkDerivation, base, bytestring, data-default-class, deepseq
1077− , HUnit, QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
1078− , time
1079− }:
1080− mkDerivation {
1081− pname = "cookie";
1082− version = "0.4.4";
1083− sha256 = "1qy09i0jh2z9i9avy2khf8a8afq4fqgnv0fyrszgfg4kmq2fsi9j";
1084− libraryHaskellDepends = [
1085− base bytestring data-default-class deepseq text time
1086− ];
1087− testHaskellDepends = [
1088− base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
1089− text time
1090− ];
1091− homepage = "http://github.com/snoyberg/cookie";
1092− description = "HTTP cookie parsing and rendering";
1093− license = stdenv.lib.licenses.mit;
1094− }) {};
1095− "cpphs" = callPackage
1096− ({ mkDerivation, base, directory, old-locale, old-time, polyparse
1097− }:
1098− mkDerivation {
1099− pname = "cpphs";
1100− version = "1.20.8";
1101− sha256 = "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5";
1102− isLibrary = true;
1103− isExecutable = true;
1104− libraryHaskellDepends = [
1105− base directory old-locale old-time polyparse
1106− ];
1107− executableHaskellDepends = [
1108− base directory old-locale old-time polyparse
1109− ];
1110− homepage = "http://projects.haskell.org/cpphs/";
1111− description = "A liberalised re-implementation of cpp, the C pre-processor";
1112− license = "LGPL";
1113− }) {};
1114− "cpu" = callPackage
1115− ({ mkDerivation, base }:
1116− mkDerivation {
1117− pname = "cpu";
1118− version = "0.1.2";
1119− sha256 = "0x19mlanmkg96h6h1i04w2i631z84y4rbk22ki4zhgsajysgw9sn";
1120− isLibrary = true;
1121− isExecutable = true;
1122− enableSeparateDataOutput = true;
1123− libraryHaskellDepends = [ base ];
1124− homepage = "http://github.com/vincenthz/hs-cpu";
1125− description = "Cpu information and properties helpers";
1126− license = stdenv.lib.licenses.bsd3;
1127− }) {};
1128− "criterion" = callPackage
1129− ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat
1130− , base-compat-batteries, binary, bytestring, cassava, code-page
1131− , containers, deepseq, directory, exceptions, filepath, Glob, HUnit
1132− , js-flot, js-jquery, microstache, mtl, mwc-random
1133− , optparse-applicative, parsec, QuickCheck, semigroups, statistics
1134− , tasty, tasty-hunit, tasty-quickcheck, text, time, transformers
1135− , transformers-compat, vector, vector-algorithms
1136− }:
1137− mkDerivation {
1138− pname = "criterion";
1139− version = "1.4.1.0";
1140− sha256 = "0v429araqkcw3wwwi6fsp0g7g1hy3l47p061lcy7r4m7d9khd4y4";
1141− isLibrary = true;
1142− isExecutable = true;
1143− enableSeparateDataOutput = true;
1144− libraryHaskellDepends = [
1145− aeson ansi-wl-pprint base base-compat-batteries binary bytestring
1146− cassava code-page containers deepseq directory exceptions filepath
1147− Glob js-flot js-jquery microstache mtl mwc-random
1148− optparse-applicative parsec semigroups statistics text time
1149− transformers transformers-compat vector vector-algorithms
1150− ];
1151− executableHaskellDepends = [
1152− base base-compat-batteries optparse-applicative semigroups
1153− ];
1154− testHaskellDepends = [
1155− aeson base base-compat base-compat-batteries bytestring deepseq
1156− directory HUnit QuickCheck statistics tasty tasty-hunit
1157− tasty-quickcheck vector
1158− ];
1159− homepage = "http://www.serpentine.com/criterion";
1160− description = "Robust, reliable performance measurement and analysis";
1161− license = stdenv.lib.licenses.bsd3;
1162− }) {};
1163− "crypto-api" = callPackage
1164− ({ mkDerivation, base, bytestring, cereal, entropy, tagged
1165− , transformers
1166− }:
1167− mkDerivation {
1168− pname = "crypto-api";
1169− version = "0.13.3";
1170− sha256 = "19bsmkqkpnvh01b77pmyarx00fic15j4hvg4pzscrj4prskrx2i9";
1171− revision = "1";
1172− editedCabalFile = "1z6n1sa5pn3iqvqjrd8hv4bc2pxzsrhm5sh0l8z7g9lbqp6w0wp5";
1173− libraryHaskellDepends = [
1174− base bytestring cereal entropy tagged transformers
1175− ];
1176− homepage = "https://github.com/TomMD/crypto-api";
1177− description = "A generic interface for cryptographic operations";
1178− license = stdenv.lib.licenses.bsd3;
1179− }) {};
1180− "crypto-api-tests" = callPackage
1181− ({ mkDerivation, base, bytestring, cereal, crypto-api, directory
1182− , filepath, HUnit, QuickCheck, test-framework, test-framework-hunit
1183− , test-framework-quickcheck2
1184− }:
1185− mkDerivation {
1186− pname = "crypto-api-tests";
1187− version = "0.3";
1188− sha256 = "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl";
1189− enableSeparateDataOutput = true;
1190− libraryHaskellDepends = [
1191− base bytestring cereal crypto-api directory filepath HUnit
1192− QuickCheck test-framework test-framework-hunit
1193− test-framework-quickcheck2
1194− ];
1195− homepage = "http://trac.haskell.org/crypto-api/wiki";
1196− description = "A test framework and KATs for cryptographic operations";
1197− license = stdenv.lib.licenses.bsd3;
1198− }) {};
1199− "cryptohash" = callPackage
1200− ({ mkDerivation, base, byteable, bytestring, criterion, cryptonite
1201− , ghc-prim, HUnit, memory, QuickCheck, tasty, tasty-hunit
1202− , tasty-quickcheck
1203− }:
1204− mkDerivation {
1205− pname = "cryptohash";
1206− version = "0.11.9";
1207− sha256 = "1yr2iyb779znj79j3fq4ky8l1y8a600a2x1fx9p5pmpwq5zq93y2";
1208− libraryHaskellDepends = [
1209− base byteable bytestring cryptonite ghc-prim memory
1210− ];
1211− testHaskellDepends = [
1212− base byteable bytestring HUnit QuickCheck tasty tasty-hunit
1213− tasty-quickcheck
1214− ];
1215− benchmarkHaskellDepends = [ base byteable bytestring criterion ];
1216− homepage = "http://github.com/vincenthz/hs-cryptohash";
1217− description = "collection of crypto hashes, fast, pure and practical";
1218− license = stdenv.lib.licenses.bsd3;
1219− }) {};
1220− "cryptonite" = callPackage
1221− ({ mkDerivation, base, basement, bytestring, deepseq, gauge
1222− , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit
1223− , tasty-kat, tasty-quickcheck
1224− }:
1225− mkDerivation {
1226− pname = "cryptonite";
1227− version = "0.25";
1228− sha256 = "131wbbdr5yavs5k1ah9sz6fqx1ffyvaxf66pwjzsfc47mwc1mgl9";
1229− libraryHaskellDepends = [
1230− base basement bytestring deepseq ghc-prim integer-gmp memory
1231− ];
1232− testHaskellDepends = [
1233− base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck
1234− ];
1235− benchmarkHaskellDepends = [
1236− base bytestring deepseq gauge memory random
1237− ];
1238− homepage = "https://github.com/haskell-crypto/cryptonite";
1239− description = "Cryptography Primitives sink";
1240− license = stdenv.lib.licenses.bsd3;
1241− }) {};
1242− "cryptonite-conduit" = callPackage
1243− ({ mkDerivation, base, bytestring, conduit, conduit-combinators
1244− , conduit-extra, cryptonite, exceptions, memory, resourcet, tasty
1245− , tasty-hunit, tasty-quickcheck, transformers
1246− }:
1247− mkDerivation {
1248− pname = "cryptonite-conduit";
1249− version = "0.2.2";
1250− sha256 = "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh";
1251− revision = "1";
1252− editedCabalFile = "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz";
1253− libraryHaskellDepends = [
1254− base bytestring conduit conduit-extra cryptonite exceptions memory
1255− resourcet transformers
1256− ];
1257− testHaskellDepends = [
1258− base bytestring conduit conduit-combinators cryptonite memory tasty
1259− tasty-hunit tasty-quickcheck
1260− ];
1261− homepage = "https://github.com/haskell-crypto/cryptonite-conduit";
1262− description = "cryptonite conduit";
1263− license = stdenv.lib.licenses.bsd3;
1264− }) {};
1265− "data-default" = callPackage
1266− ({ mkDerivation, base, data-default-class
1267− , data-default-instances-containers, data-default-instances-dlist
1268− , data-default-instances-old-locale
1269− }:
1270− mkDerivation {
1271− pname = "data-default";
1272− version = "0.7.1.1";
1273− sha256 = "04d5n8ybmcxba9qb6h389w9zfq1lvj81b82jh6maqp6pkhkmvydh";
1274− libraryHaskellDepends = [
1275− base data-default-class data-default-instances-containers
1276− data-default-instances-dlist data-default-instances-old-locale
1277− ];
1278− description = "A class for types with a default value";
1279− license = stdenv.lib.licenses.bsd3;
1280− }) {};
1281− "data-default-class" = callPackage
1282− ({ mkDerivation, base }:
1283− mkDerivation {
1284− pname = "data-default-class";
1285− version = "0.1.2.0";
1286− sha256 = "0miyjz8d4jyvqf2vp60lyfbnflx6cj2k8apmm9ly1hq0y0iv80ag";
1287− libraryHaskellDepends = [ base ];
1288− description = "A class for types with a default value";
1289− license = stdenv.lib.licenses.bsd3;
1290− }) {};
1291− "data-default-instances-containers" = callPackage
1292− ({ mkDerivation, base, containers, data-default-class }:
1293− mkDerivation {
1294− pname = "data-default-instances-containers";
1295− version = "0.0.1";
1296− sha256 = "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5";
1297− libraryHaskellDepends = [ base containers data-default-class ];
1298− description = "Default instances for types in containers";
1299− license = stdenv.lib.licenses.bsd3;
1300− }) {};
1301− "data-default-instances-dlist" = callPackage
1302− ({ mkDerivation, base, data-default-class, dlist }:
1303− mkDerivation {
1304− pname = "data-default-instances-dlist";
1305− version = "0.0.1";
1306− sha256 = "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x";
1307− libraryHaskellDepends = [ base data-default-class dlist ];
1308− description = "Default instances for types in dlist";
1309− license = stdenv.lib.licenses.bsd3;
1310− }) {};
1311− "data-default-instances-old-locale" = callPackage
1312− ({ mkDerivation, base, data-default-class, old-locale }:
1313− mkDerivation {
1314− pname = "data-default-instances-old-locale";
1315− version = "0.0.1";
1316− sha256 = "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0";
1317− libraryHaskellDepends = [ base data-default-class old-locale ];
1318− description = "Default instances for types in old-locale";
1319− license = stdenv.lib.licenses.bsd3;
1320− }) {};
1321− "data-ordlist" = callPackage
1322− ({ mkDerivation, base }:
1323− mkDerivation {
1324− pname = "data-ordlist";
1325− version = "0.4.7.0";
1326− sha256 = "03a9ix1fcx08viwv2jg5ndw1qbkydyyrmjvqr9wasmcik9x1wv3g";
1327− libraryHaskellDepends = [ base ];
1328− description = "Set and bag operations on ordered lists";
1329− license = stdenv.lib.licenses.bsd3;
1330− }) {};
1331− "distribution-nixpkgs" = callPackage
1332− ({ mkDerivation, aeson, base, bytestring, Cabal, containers
1333− , deepseq, hspec, language-nix, lens, pretty, process, split
1334− }:
1335− mkDerivation {
1336− pname = "distribution-nixpkgs";
1337− version = "1.1.1";
1338− sha256 = "1694crd3l9cyc0c5xvqmx62154519g2cnpzc5qmlypwrk258bssm";
1339− libraryHaskellDepends = [
1340− aeson base bytestring Cabal containers deepseq language-nix lens
1341− pretty process split
1342− ];
1343− testHaskellDepends = [ base deepseq hspec lens ];
1344− homepage = "https://github.com/peti/distribution-nixpkgs#readme";
1345− description = "Types and functions to manipulate the Nixpkgs distribution";
1346− license = stdenv.lib.licenses.bsd3;
1347− }) {};
1348− "distributive" = callPackage
1349− ({ mkDerivation, base, base-orphans, Cabal, cabal-doctest, doctest
1350− , generic-deriving, hspec, tagged, transformers
1351− , transformers-compat
1352− }:
1353− mkDerivation {
1354− pname = "distributive";
1355− version = "0.5.3";
1356− sha256 = "0y566r97sfyvhsmd4yxiz4ns2mqgwf5bdbp56wgxl6wlkidq0wwi";
1357− revision = "6";
1358− editedCabalFile = "06bd38rf31yrvvy989r44pm0id3dsxwcp6nxg7wk6ccj3n2b8rzk";
1359− setupHaskellDepends = [ base Cabal cabal-doctest ];
1360− libraryHaskellDepends = [
1361− base base-orphans tagged transformers transformers-compat
1362− ];
1363− testHaskellDepends = [ base doctest generic-deriving hspec ];
1364− homepage = "http://github.com/ekmett/distributive/";
1365− description = "Distributive functors -- Dual to Traversable";
1366− license = stdenv.lib.licenses.bsd3;
1367− }) {};
1368− "dlist" = callPackage
1369− ({ mkDerivation, base, Cabal, deepseq, QuickCheck }:
1370− mkDerivation {
1371− pname = "dlist";
1372− version = "0.8.0.4";
1373− sha256 = "0yirrh0s6acjy9hhvf5fqg2d6q5y6gm9xs04v6w1imndh1xqdwdc";
1374− libraryHaskellDepends = [ base deepseq ];
1375− testHaskellDepends = [ base Cabal QuickCheck ];
1376− homepage = "https://github.com/spl/dlist";
1377− description = "Difference lists";
1378− license = stdenv.lib.licenses.bsd3;
1379− }) {};
1380− "dlist-instances" = callPackage
1381− ({ mkDerivation, base, dlist, semigroups }:
1382− mkDerivation {
1383− pname = "dlist-instances";
1384− version = "0.1.1.1";
1385− sha256 = "0nsgrr25r4qxv2kpn7i20hra8jjkyllxfrhh5hml3ysjdz010jni";
1386− libraryHaskellDepends = [ base dlist semigroups ];
1387− homepage = "https://github.com/gregwebs/dlist-instances";
1388− description = "Difference lists instances";
1389− license = stdenv.lib.licenses.bsd3;
1390− }) {};
1391− "doctest" = callPackage
1392− ({ mkDerivation, base, base-compat, code-page, deepseq, directory
1393− , filepath, ghc, ghc-paths, hspec, HUnit, mockery, process
1394− , QuickCheck, setenv, silently, stringbuilder, syb, transformers
1395− , with-location
1396− }:
1397− mkDerivation {
1398− pname = "doctest";
1399− version = "0.16.0";
1400− sha256 = "0hkccch65s3kp0b36h7bqhilnpi4bx8kngncm7ma9vbd3dwacjdv";
1401− isLibrary = true;
1402− isExecutable = true;
1403− libraryHaskellDepends = [
1404− base base-compat code-page deepseq directory filepath ghc ghc-paths
1405− process syb transformers
1406− ];
1407− executableHaskellDepends = [
1408− base base-compat code-page deepseq directory filepath ghc ghc-paths
1409− process syb transformers
1410− ];
1411− testHaskellDepends = [
1412− base base-compat code-page deepseq directory filepath ghc ghc-paths
1413− hspec HUnit mockery process QuickCheck setenv silently
1414− stringbuilder syb transformers with-location
1415− ];
1416− doCheck = false;
1417− homepage = "https://github.com/sol/doctest#readme";
1418− description = "Test interactive Haskell examples";
1419− license = stdenv.lib.licenses.mit;
1420− }) {};
1421− "easy-file" = callPackage
1422− ({ mkDerivation, base, directory, filepath, time, unix }:
1423− mkDerivation {
1424− pname = "easy-file";
1425− version = "0.2.2";
1426− sha256 = "0zmlcz723051qpn8l8vi51c5rx1blwrw4094jcshkmj8p9r2xxaj";
1427− libraryHaskellDepends = [ base directory filepath time unix ];
1428− homepage = "http://github.com/kazu-yamamoto/easy-file";
1429− description = "Cross-platform File handling";
1430− license = stdenv.lib.licenses.bsd3;
1431− }) {};
1432− "entropy" = callPackage
1433− ({ mkDerivation, base, bytestring, Cabal, directory, filepath
1434− , process, unix
1435− }:
1436− mkDerivation {
1437− pname = "entropy";
1438− version = "0.4.1.1";
1439− sha256 = "1ahz5g148l6sax3dy505na2513i99c7bxix68jja5kbx4f271zcf";
1440− setupHaskellDepends = [ base Cabal directory filepath process ];
1441− libraryHaskellDepends = [ base bytestring unix ];
1442− homepage = "https://github.com/TomMD/entropy";
1443− description = "A platform independent entropy source";
1444− license = stdenv.lib.licenses.bsd3;
1445− }) {};
1446− "erf" = callPackage
1447− ({ mkDerivation, base }:
1448− mkDerivation {
1449− pname = "erf";
1450− version = "2.0.0.0";
1451− sha256 = "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14";
1452− libraryHaskellDepends = [ base ];
1453− description = "The error function, erf, and related functions";
1454− license = stdenv.lib.licenses.bsd3;
1455− }) {};
1456− "exceptions" = callPackage
1457− ({ mkDerivation, base, mtl, QuickCheck, stm, template-haskell
1458− , test-framework, test-framework-hunit, test-framework-quickcheck2
1459− , transformers, transformers-compat
1460− }:
1461− mkDerivation {
1462− pname = "exceptions";
1463− version = "0.10.0";
1464− sha256 = "1ms9zansv0pwzwdjncvx4kf18lnkjy2p61hvjhvxmjx5bqp93p8y";
1465− revision = "1";
1466− editedCabalFile = "1ydvmhi9bj7b1md3wd4l2z2lccgyjgv3ha8milmy2l4lad9xh6xy";
1467− libraryHaskellDepends = [
1468− base mtl stm template-haskell transformers transformers-compat
1469− ];
1470− testHaskellDepends = [
1471− base mtl QuickCheck stm template-haskell test-framework
1472− test-framework-hunit test-framework-quickcheck2 transformers
1473− transformers-compat
1474− ];
1475− homepage = "http://github.com/ekmett/exceptions/";
1476− description = "Extensible optionally-pure exceptions";
1477− license = stdenv.lib.licenses.bsd3;
1478− }) {};
1479− "extensible-exceptions" = callPackage
1480− ({ mkDerivation, base }:
1481− mkDerivation {
1482− pname = "extensible-exceptions";
1483− version = "0.1.1.4";
1484− sha256 = "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc";
1485− libraryHaskellDepends = [ base ];
1486− description = "Extensible exceptions";
1487− license = stdenv.lib.licenses.bsd3;
1488− }) {};
1489− "fast-logger" = callPackage
1490− ({ mkDerivation, array, auto-update, base, bytestring, directory
1491− , easy-file, filepath, hspec, text, unix, unix-time
1492− }:
1493− mkDerivation {
1494− pname = "fast-logger";
1495− version = "2.4.11";
1496− sha256 = "1ad2vq4nifdxshqk9yrmghqizhkgybfz134kpr6padglb2mxxrdv";
1497− libraryHaskellDepends = [
1498− array auto-update base bytestring directory easy-file filepath text
1499− unix unix-time
1500− ];
1501− testHaskellDepends = [ base bytestring directory hspec ];
1502− homepage = "https://github.com/kazu-yamamoto/logger";
1503− description = "A fast logging system";
1504− license = stdenv.lib.licenses.bsd3;
1505− }) {};
1506− "foldl" = callPackage
1507− ({ mkDerivation, base, bytestring, comonad, containers
1508− , contravariant, criterion, hashable, mwc-random, primitive
1509− , profunctors, semigroupoids, semigroups, text, transformers
1510− , unordered-containers, vector, vector-builder
1511− }:
1512− mkDerivation {
1513− pname = "foldl";
1514− version = "1.4.2";
1515− sha256 = "14ccc2spv63v7vipfrmk8jbbw2x1dkkxsyzqzcpnkzjw0yg4ghc9";
1516− libraryHaskellDepends = [
1517− base bytestring comonad containers contravariant hashable
1518− mwc-random primitive profunctors semigroupoids semigroups text
1519− transformers unordered-containers vector vector-builder
1520− ];
1521− benchmarkHaskellDepends = [ base criterion ];
1522− description = "Composable, streaming, and efficient left folds";
1523− license = stdenv.lib.licenses.bsd3;
1524− }) {};
1525− "foundation" = callPackage
1526− ({ mkDerivation, base, basement, gauge, ghc-prim }:
1527− mkDerivation {
1528− pname = "foundation";
1529− version = "0.0.21";
1530− sha256 = "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf";
1531− libraryHaskellDepends = [ base basement ghc-prim ];
1532− testHaskellDepends = [ base basement ];
1533− benchmarkHaskellDepends = [ base basement gauge ];
1534− homepage = "https://github.com/haskell-foundation/foundation";
1535− description = "Alternative prelude with batteries and no dependencies";
1536− license = stdenv.lib.licenses.bsd3;
1537− }) {};
1538− "free" = callPackage
1539− ({ mkDerivation, base, bifunctors, comonad, containers
1540− , distributive, exceptions, mtl, profunctors, semigroupoids
1541− , semigroups, template-haskell, transformers, transformers-base
1542− , transformers-compat
1543− }:
1544− mkDerivation {
1545− pname = "free";
1546− version = "5.0.2";
1547− sha256 = "15m3n9vhz7z3kzv1w3wlfa3x8jp4cbrkwmrcjr7jlx39iqffn1gg";
1548− libraryHaskellDepends = [
1549− base bifunctors comonad containers distributive exceptions mtl
1550− profunctors semigroupoids semigroups template-haskell transformers
1551− transformers-base transformers-compat
1552− ];
1553− homepage = "http://github.com/ekmett/free/";
1554− description = "Monads for free";
1555− license = stdenv.lib.licenses.bsd3;
1556− }) {};
1557− "gauge" = callPackage
1558− ({ mkDerivation, base, basement, bytestring, deepseq, directory
1559− , foundation, process, vector
1560− }:
1561− mkDerivation {
1562− pname = "gauge";
1563− version = "0.2.3";
1564− sha256 = "0slsimv2zn9yhakxy2wdyfj6bgjd1p65wp6nr8j0ba7df64xykjs";
1565− libraryHaskellDepends = [
1566− base basement deepseq directory process vector
1567− ];
1568− testHaskellDepends = [
1569− base bytestring deepseq directory foundation
1570− ];
1571− benchmarkHaskellDepends = [ base ];
1572− homepage = "https://github.com/vincenthz/hs-gauge";
1573− description = "small framework for performance measurement and analysis";
1574− license = stdenv.lib.licenses.bsd3;
1575− }) {};
1576− "generic-deriving" = callPackage
1577− ({ mkDerivation, base, containers, ghc-prim, hspec, hspec-discover
1578− , template-haskell, th-abstraction
1579− }:
1580− mkDerivation {
1581− pname = "generic-deriving";
1582− version = "1.12.2";
1583− sha256 = "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n";
1584− revision = "1";
1585− editedCabalFile = "0gr20ypr6s0183wmrhmia0zvpbn4dmfyr3wksrkrqj4i8nhj42fz";
1586− libraryHaskellDepends = [
1587− base containers ghc-prim template-haskell th-abstraction
1588− ];
1589− testHaskellDepends = [ base hspec template-haskell ];
1590− testToolDepends = [ hspec-discover ];
1591− homepage = "https://github.com/dreixel/generic-deriving";
1592− description = "Generic programming library for generalised deriving";
1593− license = stdenv.lib.licenses.bsd3;
1594− }) {};
1595− "ghc-paths" = callPackage
1596− ({ mkDerivation, base, Cabal, directory }:
1597− mkDerivation {
1598− pname = "ghc-paths";
1599− version = "0.1.0.9";
1600− sha256 = "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg";
1601− revision = "3";
1602− editedCabalFile = "1gx47xbm3qviqccnbsibzkfnlzljvls33jh1ry4l506yvfnf4j10";
1603− setupHaskellDepends = [ base Cabal directory ];
1604− libraryHaskellDepends = [ base ];
1605− description = "Knowledge of GHC's installation directories";
1606− license = stdenv.lib.licenses.bsd3;
1607− }) {};
1608− "gitrev" = callPackage
1609− ({ mkDerivation, base, base-compat, directory, filepath, process
1610− , template-haskell
1611− }:
1612− mkDerivation {
1613− pname = "gitrev";
1614− version = "1.3.1";
1615− sha256 = "0cl3lfm6k1h8fxp2vxa6ihfp4v8igkz9h35iwyq2frzm4kdn96d8";
1616− libraryHaskellDepends = [
1617− base base-compat directory filepath process template-haskell
1618− ];
1619− homepage = "https://github.com/acfoltzer/gitrev";
1620− description = "Compile git revision info into Haskell projects";
1621− license = stdenv.lib.licenses.bsd3;
1622− }) {};
1623− "groom" = callPackage
1624− ({ mkDerivation, base, haskell-src-exts }:
1625− mkDerivation {
1626− pname = "groom";
1627− version = "0.1.2.1";
1628− sha256 = "17g51p15209wwgq83clsd97xvy4kchbx8jzh74qgc9hvmz9s9d56";
1629− isLibrary = true;
1630− isExecutable = true;
1631− libraryHaskellDepends = [ base haskell-src-exts ];
1632− executableHaskellDepends = [ base ];
1633− description = "Pretty printing for well-behaved Show instances";
1634− license = stdenv.lib.licenses.bsd3;
1635− }) {};
1636− "hackage-db" = callPackage
1637− ({ mkDerivation, aeson, base, bytestring, Cabal, containers
1638− , directory, filepath, tar, time, utf8-string
1639− }:
1640− mkDerivation {
1641− pname = "hackage-db";
1642− version = "2.0.1";
1643− sha256 = "13ggj72i8dxwh3qwznnqxbr00nvsbapyyhzx5zybfacddnpw3aph";
1644− isLibrary = true;
1645− isExecutable = true;
1646− libraryHaskellDepends = [
1647− aeson base bytestring Cabal containers directory filepath tar time
1648− utf8-string
1649− ];
1650− homepage = "https://github.com/peti/hackage-db#readme";
1651− description = "Access Hackage's package database via Data.Map";
1652− license = stdenv.lib.licenses.bsd3;
1653− }) {};
1654− "happy" = callPackage
1655− ({ mkDerivation, array, base, Cabal, containers, directory
1656− , filepath, mtl, process
1657− }:
1658− mkDerivation {
1659− pname = "happy";
1660− version = "1.19.9";
1661− sha256 = "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y";
1662− revision = "2";
1663− editedCabalFile = "1zxi8zfwiwxidrhr0yj5srpzp32z66sld9xv0k4yz7046rkl3577";
1664− isLibrary = false;
1665− isExecutable = true;
1666− setupHaskellDepends = [ base Cabal directory filepath ];
1667− executableHaskellDepends = [ array base containers mtl ];
1668− testHaskellDepends = [ base process ];
1669− doHaddock = false;
1670− doCheck = false;
1671− homepage = "https://www.haskell.org/happy/";
1672− description = "Happy is a parser generator for Haskell";
1673− license = stdenv.lib.licenses.bsd2;
1674− }) {};
1675− "hashable" = callPackage
1676− ({ mkDerivation, base, bytestring, criterion, deepseq, ghc-prim
1677− , HUnit, integer-gmp, QuickCheck, random, siphash, test-framework
1678− , test-framework-hunit, test-framework-quickcheck2, text, unix
1679− }:
1680− mkDerivation {
1681− pname = "hashable";
1682− version = "1.2.7.0";
1683− sha256 = "1gra8gq3kb7b2sd845h55yxlrfqx3ii004c6vjhga8v0b30fzdgc";
1684− isLibrary = true;
1685− isExecutable = true;
1686− libraryHaskellDepends = [
1687− base bytestring deepseq ghc-prim integer-gmp text
1688− ];
1689− testHaskellDepends = [
1690− base bytestring ghc-prim HUnit QuickCheck random test-framework
1691− test-framework-hunit test-framework-quickcheck2 text unix
1692− ];
1693− benchmarkHaskellDepends = [
1694− base bytestring criterion ghc-prim integer-gmp siphash text
1695− ];
1696− homepage = "http://github.com/tibbe/hashable";
1697− description = "A class for types that can be converted to a hash value";
1698− license = stdenv.lib.licenses.bsd3;
1699− }) {};
1700− "hashtables" = callPackage
1701− ({ mkDerivation, base, ghc-prim, hashable, primitive, vector }:
1702− mkDerivation {
1703− pname = "hashtables";
1704− version = "1.2.3.1";
1705− sha256 = "1giw9caajr07slf09j7zry9b0kvm4yj9q78zy1mawzi6gk3wglcg";
1706− libraryHaskellDepends = [
1707− base ghc-prim hashable primitive vector
1708− ];
1709− homepage = "http://github.com/gregorycollins/hashtables";
1710− description = "Mutable hash tables in the ST monad";
1711− license = stdenv.lib.licenses.bsd3;
1712− }) {};
1713− "haskell-lexer" = callPackage
1714− ({ mkDerivation, base }:
1715− mkDerivation {
1716− pname = "haskell-lexer";
1717− version = "1.0.1";
1718− sha256 = "0rj3r1pk88hh3sk3mj61whp8czz5kpxhbc78xlr04bxwqjrjmm6p";
1719− libraryHaskellDepends = [ base ];
1720− description = "A fully compliant Haskell 98 lexer";
1721− license = stdenv.lib.licenses.bsd3;
1722− }) {};
1723− "haskell-src-exts" = callPackage
1724− ({ mkDerivation, array, base, containers, cpphs, directory
1725− , filepath, ghc-prim, happy, mtl, pretty, pretty-show, smallcheck
1726− , tasty, tasty-golden, tasty-smallcheck
1727− }:
1728− mkDerivation {
1729− pname = "haskell-src-exts";
1730− version = "1.20.2";
1731− sha256 = "1sm3z4v1p5yffg01ldgavz71s3bvfhjfa13k428rk14bpkl8crlz";
1732− libraryHaskellDepends = [ array base cpphs ghc-prim pretty ];
1733− libraryToolDepends = [ happy ];
1734− testHaskellDepends = [
1735− base containers directory filepath mtl pretty-show smallcheck tasty
1736− tasty-golden tasty-smallcheck
1737− ];
1738− homepage = "https://github.com/haskell-suite/haskell-src-exts";
1739− description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
1740− license = stdenv.lib.licenses.bsd3;
1741− }) {};
1742− "haskell-src-meta" = callPackage
1743− ({ mkDerivation, base, haskell-src-exts, HUnit, pretty, syb
1744− , template-haskell, test-framework, test-framework-hunit
1745− , th-orphans
1746− }:
1747− mkDerivation {
1748− pname = "haskell-src-meta";
1749− version = "0.8.0.3";
1750− sha256 = "08jq156zv4m0fjq6712n99c1jwxnpa6kj6sq8ch0r1l0a1ay6ww4";
1751− libraryHaskellDepends = [
1752− base haskell-src-exts pretty syb template-haskell th-orphans
1753− ];
1754− testHaskellDepends = [
1755− base haskell-src-exts HUnit pretty template-haskell test-framework
1756− test-framework-hunit
1757− ];
1758− description = "Parse source to template-haskell abstract syntax";
1759− license = stdenv.lib.licenses.bsd3;
1760− }) {};
1761− "heaps" = callPackage
1762− ({ mkDerivation, base, Cabal, cabal-doctest, directory, doctest
1763− , filepath
1764− }:
1765− mkDerivation {
1766− pname = "heaps";
1767− version = "0.3.6";
1768− sha256 = "1cnxgmxxvl053yv93vcz5fnla4iir5g9wr697n88ysdyybbkq70q";
1769− revision = "3";
1770− editedCabalFile = "0k6wsm1hwn3vaxdvw8p7cidxg7p8zply2ig4w4qrbpyjhl6dj9x9";
1771− setupHaskellDepends = [ base Cabal cabal-doctest ];
1772− libraryHaskellDepends = [ base ];
1773− testHaskellDepends = [ base directory doctest filepath ];
1774− homepage = "http://github.com/ekmett/heaps/";
1775− description = "Asymptotically optimal Brodal/Okasaki heaps";
1776− license = stdenv.lib.licenses.bsd3;
1777− }) {};
1778− "hedgehog" = callPackage
1779− ({ mkDerivation, ansi-terminal, async, base, bytestring
1780− , concurrent-output, containers, directory, exceptions
1781− , lifted-async, mmorph, monad-control, mtl, pretty-show, primitive
1782− , random, resourcet, semigroups, stm, template-haskell, text
1783− , th-lift, time, transformers, transformers-base, unix
1784− , wl-pprint-annotated
1785− }:
1786− mkDerivation {
1787− pname = "hedgehog";
1788− version = "0.6";
1789− sha256 = "0c3y4gvl1i2r54ayha2kw5i2gdpd8nfzfzjly5vhxm13ylygwvxq";
1790− libraryHaskellDepends = [
1791− ansi-terminal async base bytestring concurrent-output containers
1792− directory exceptions lifted-async mmorph monad-control mtl
1793− pretty-show primitive random resourcet semigroups stm
1794− template-haskell text th-lift time transformers transformers-base
1795− unix wl-pprint-annotated
1796− ];
1797− testHaskellDepends = [
1798− base containers pretty-show semigroups text transformers
1799− ];
1800− homepage = "https://hedgehog.qa";
1801− description = "Hedgehog will eat all your bugs";
1802− license = stdenv.lib.licenses.bsd3;
1803− }) {};
1804− "hex" = callPackage
1805− ({ mkDerivation, base, bytestring }:
1806− mkDerivation {
1807− pname = "hex";
1808− version = "0.1.2";
1809− sha256 = "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj";
1810− libraryHaskellDepends = [ base bytestring ];
1811− description = "Convert strings into hexadecimal and back";
1812− license = stdenv.lib.licenses.bsd3;
1813− }) {};
1814− "hlibgit2" = callPackage
1815− ({ mkDerivation, base, bindings-DSL, git, openssl, process, zlib }:
1816− mkDerivation {
1817− pname = "hlibgit2";
1818− version = "0.18.0.16";
1819− sha256 = "0plfzxzgph7iilwp434ndcw7pia47n96hcfa32fs7q5gz8kl17hr";
1820− libraryHaskellDepends = [ base bindings-DSL zlib ];
1821− librarySystemDepends = [ openssl ];
1822− testHaskellDepends = [ base process ];
1823− testToolDepends = [ git ];
1824− description = "Low-level bindings to libgit2";
1825− license = stdenv.lib.licenses.mit;
1826− }) {inherit (pkgs) git; inherit (pkgs) openssl;};
1827− "hopenssl" = callPackage
1828− ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, doctest
1829− , HUnit, openssl
1830− }:
1831− mkDerivation {
1832− pname = "hopenssl";
1833− version = "2.2.1";
1834− sha256 = "1pxbs1k8sizvvz1nn1zv2i5grn0w11s9g09z07w5f80kbz0slcbh";
1835− setupHaskellDepends = [ base Cabal cabal-doctest ];
1836− libraryHaskellDepends = [ base bytestring ];
1837− librarySystemDepends = [ openssl ];
1838− testHaskellDepends = [ base doctest HUnit ];
1839− homepage = "http://github.com/peti/hopenssl";
1840− description = "FFI Bindings to OpenSSL's EVP Digest Interface";
1841− license = stdenv.lib.licenses.bsd3;
1842− }) {inherit (pkgs) openssl;};
1843− "hostname" = callPackage
1844− ({ mkDerivation, base }:
1845− mkDerivation {
1846− pname = "hostname";
1847− version = "1.0";
1848− sha256 = "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv";
1849− libraryHaskellDepends = [ base ];
1850− description = "A very simple package providing a cross-platform means of determining the hostname";
1851− license = stdenv.lib.licenses.bsd3;
1852− }) {};
1853− "hourglass" = callPackage
1854− ({ mkDerivation, base, bytestring, deepseq, gauge, mtl, old-locale
1855− , tasty, tasty-hunit, tasty-quickcheck, time
1856− }:
1857− mkDerivation {
1858− pname = "hourglass";
1859− version = "0.2.11";
1860− sha256 = "0lag9sgj7ndrbfmab6jhszlv413agg0zzaj5r9f2fmf07wqbp9hq";
1861− libraryHaskellDepends = [ base deepseq ];
1862− testHaskellDepends = [
1863− base deepseq mtl old-locale tasty tasty-hunit tasty-quickcheck time
1864− ];
1865− benchmarkHaskellDepends = [
1866− base bytestring deepseq gauge mtl old-locale time
1867− ];
1868− homepage = "https://github.com/vincenthz/hs-hourglass";
1869− description = "simple performant time related library";
1870− license = stdenv.lib.licenses.bsd3;
1871− }) {};
1872− "hpack" = callPackage
1873− ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
1874− , containers, cryptonite, deepseq, directory, filepath, Glob, hspec
1875− , http-client, http-client-tls, http-types, HUnit, interpolate
1876− , mockery, pretty, QuickCheck, scientific, template-haskell
1877− , temporary, text, transformers, unordered-containers, vector, yaml
1878− }:
1879− mkDerivation {
1880− pname = "hpack";
1881− version = "0.28.2";
1882− sha256 = "18w0h76jdp3mk9vin8da9iz3cwhcxmw787xy8wlh8bxcpcr16q5r";
1883− isLibrary = true;
1884− isExecutable = true;
1885− libraryHaskellDepends = [
1886− aeson base bifunctors bytestring Cabal containers cryptonite
1887− deepseq directory filepath Glob http-client http-client-tls
1888− http-types pretty scientific text transformers unordered-containers
1889− vector yaml
1890− ];
1891− executableHaskellDepends = [
1892− aeson base bifunctors bytestring Cabal containers cryptonite
1893− deepseq directory filepath Glob http-client http-client-tls
1894− http-types pretty scientific text transformers unordered-containers
1895− vector yaml
1896− ];
1897− testHaskellDepends = [
1898− aeson base bifunctors bytestring Cabal containers cryptonite
1899− deepseq directory filepath Glob hspec http-client http-client-tls
1900− http-types HUnit interpolate mockery pretty QuickCheck scientific
1901− template-haskell temporary text transformers unordered-containers
1902− vector yaml
1903− ];
1904− homepage = "https://github.com/sol/hpack#readme";
1905− description = "An alternative format for Haskell packages";
1906− license = stdenv.lib.licenses.mit;
1907− }) {};
1908− "hscolour" = callPackage
1909− ({ mkDerivation, base, containers }:
1910− mkDerivation {
1911− pname = "hscolour";
1912− version = "1.24.4";
1913− sha256 = "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4";
1914− isLibrary = true;
1915− isExecutable = true;
1916− enableSeparateDataOutput = true;
1917− libraryHaskellDepends = [ base containers ];
1918− executableHaskellDepends = [ base containers ];
1919− homepage = "http://code.haskell.org/~malcolm/hscolour/";
1920− description = "Colourise Haskell code";
1921− license = "LGPL";
1922− }) {};
1923− "hspec" = callPackage
1924− ({ mkDerivation, base, call-stack, directory, hspec-core
1925− , hspec-discover, hspec-expectations, hspec-meta, HUnit, QuickCheck
1926− , stringbuilder, transformers
1927− }:
1928− mkDerivation {
1929− pname = "hspec";
1930− version = "2.5.5";
1931− sha256 = "1yv4k5b5kkig2q3waj28587sq28wms7wfav5a3lq4dra6jybimfm";
1932− libraryHaskellDepends = [
1933− base call-stack hspec-core hspec-discover hspec-expectations HUnit
1934− QuickCheck transformers
1935− ];
1936− testHaskellDepends = [
1937− base call-stack directory hspec-core hspec-discover
1938− hspec-expectations hspec-meta HUnit QuickCheck stringbuilder
1939− transformers
1940− ];
1941− homepage = "http://hspec.github.io/";
1942− description = "A Testing Framework for Haskell";
1943− license = stdenv.lib.licenses.mit;
1944− }) {};
1945− "hspec-core" = callPackage
1946− ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
1947− , deepseq, directory, filepath, hspec-expectations, hspec-meta
1948− , HUnit, process, QuickCheck, quickcheck-io, random, setenv
1949− , silently, stm, temporary, tf-random, transformers
1950− }:
1951− mkDerivation {
1952− pname = "hspec-core";
1953− version = "2.5.5";
1954− sha256 = "1vfrqlpn32s9wiykmkxbnrnd5p56yznw20pf8fwzw78ar4wpz55x";
1955− libraryHaskellDepends = [
1956− ansi-terminal array base call-stack clock deepseq directory
1957− filepath hspec-expectations HUnit QuickCheck quickcheck-io random
1958− setenv stm tf-random transformers
1959− ];
1960− testHaskellDepends = [
1961− ansi-terminal array base call-stack clock deepseq directory
1962− filepath hspec-expectations hspec-meta HUnit process QuickCheck
1963− quickcheck-io random setenv silently stm temporary tf-random
1964− transformers
1965− ];
1966− testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
1967− homepage = "http://hspec.github.io/";
1968− description = "A Testing Framework for Haskell";
1969− license = stdenv.lib.licenses.mit;
1970− }) {};
1971− "hspec-discover" = callPackage
1972− ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
1973− }:
1974− mkDerivation {
1975− pname = "hspec-discover";
1976− version = "2.5.5";
1977− sha256 = "04aidzi91ccr9bygmfkjzshz34z9vh8wvqj4zinx2clxq6r7gqfz";
1978− isLibrary = true;
1979− isExecutable = true;
1980− libraryHaskellDepends = [ base directory filepath ];
1981− executableHaskellDepends = [ base directory filepath ];
1982− testHaskellDepends = [
1983− base directory filepath hspec-meta QuickCheck
1984− ];
1985− homepage = "http://hspec.github.io/";
1986− description = "Automatically discover and run Hspec tests";
1987− license = stdenv.lib.licenses.mit;
1988− }) {};
1989− "hspec-expectations" = callPackage
1990− ({ mkDerivation, base, call-stack, HUnit, nanospec }:
1991− mkDerivation {
1992− pname = "hspec-expectations";
1993− version = "0.8.2";
1994− sha256 = "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1";
1995− libraryHaskellDepends = [ base call-stack HUnit ];
1996− testHaskellDepends = [ base call-stack HUnit nanospec ];
1997− homepage = "https://github.com/hspec/hspec-expectations#readme";
1998− description = "Catchy combinators for HUnit";
1999− license = stdenv.lib.licenses.mit;
2000− }) {};
2001− "hspec-megaparsec" = callPackage
2002− ({ mkDerivation, base, containers, hspec, hspec-expectations
2003− , megaparsec
2004− }:
2005− mkDerivation {
2006− pname = "hspec-megaparsec";
2007− version = "1.0.0";
2008− sha256 = "1dafrbzjm7rzwvcpjpk3bsg7bd111xfij94n17sh8wfykzhim5hl";
2009− libraryHaskellDepends = [
2010− base containers hspec-expectations megaparsec
2011− ];
2012− testHaskellDepends = [ base hspec hspec-expectations megaparsec ];
2013− homepage = "https://github.com/mrkkrp/hspec-megaparsec";
2014− description = "Utility functions for testing Megaparsec parsers with Hspec";
2015− license = stdenv.lib.licenses.bsd3;
2016− }) {};
2017− "hspec-meta" = callPackage
2018− ({ mkDerivation, ansi-terminal, array, async, base, call-stack
2019− , deepseq, directory, filepath, hspec-expectations, HUnit
2020− , QuickCheck, quickcheck-io, random, setenv, time, transformers
2021− }:
2022− mkDerivation {
2023− pname = "hspec-meta";
2024− version = "2.4.6";
2025− sha256 = "0qmvk01n79j6skn79r6zalg2pd0x0nqqn9qn8mhg0pgyzcdnfc9b";
2026− isLibrary = true;
2027− isExecutable = true;
2028− libraryHaskellDepends = [
2029− ansi-terminal array async base call-stack deepseq directory
2030− filepath hspec-expectations HUnit QuickCheck quickcheck-io random
2031− setenv time transformers
2032− ];
2033− executableHaskellDepends = [
2034− ansi-terminal array async base call-stack deepseq directory
2035− filepath hspec-expectations HUnit QuickCheck quickcheck-io random
2036− setenv time transformers
2037− ];
2038− homepage = "http://hspec.github.io/";
2039− description = "A version of Hspec which is used to test Hspec itself";
2040− license = stdenv.lib.licenses.mit;
2041− }) {};
2042− "hspec-smallcheck" = callPackage
2043− ({ mkDerivation, base, base-orphans, call-stack, hspec, hspec-core
2044− , HUnit, QuickCheck, smallcheck
2045− }:
2046− mkDerivation {
2047− pname = "hspec-smallcheck";
2048− version = "0.5.2";
2049− sha256 = "06c1ym793zkdwi4bxk5f4l7m1n1bg5jmnm0p68q2pa9rlhk1lc4s";
2050− libraryHaskellDepends = [
2051− base call-stack hspec-core HUnit smallcheck
2052− ];
2053− testHaskellDepends = [
2054− base base-orphans call-stack hspec hspec-core HUnit QuickCheck
2055− smallcheck
2056− ];
2057− homepage = "http://hspec.github.io/";
2058− description = "SmallCheck support for the Hspec testing framework";
2059− license = stdenv.lib.licenses.mit;
2060− }) {};
2061− "html-conduit" = callPackage
2062− ({ mkDerivation, attoparsec, base, bytestring, conduit
2063− , conduit-extra, containers, deepseq, hspec, HUnit, resourcet, text
2064− , transformers, xml-conduit, xml-types
2065− }:
2066− mkDerivation {
2067− pname = "html-conduit";
2068− version = "1.3.1";
2069− sha256 = "0dg3sblihi93qn6ax1cwha0cng4zlpmic83ckdylq7s7kwa3rhbi";
2070− libraryHaskellDepends = [
2071− attoparsec base bytestring conduit conduit-extra containers
2072− resourcet text transformers xml-conduit xml-types
2073− ];
2074− testHaskellDepends = [
2075− base bytestring containers deepseq hspec HUnit text xml-conduit
2076− ];
2077− homepage = "https://github.com/snoyberg/xml";
2078− description = "Parse HTML documents using xml-conduit datatypes";
2079− license = stdenv.lib.licenses.mit;
2080− }) {};
2081− "http-client" = callPackage
2082− ({ mkDerivation, array, async, base, blaze-builder, bytestring
2083− , case-insensitive, containers, cookie, deepseq, directory
2084− , exceptions, filepath, ghc-prim, hspec, http-types, memory
2085− , mime-types, monad-control, network, network-uri, random, stm
2086− , streaming-commons, text, time, transformers, zlib
2087− }:
2088− mkDerivation {
2089− pname = "http-client";
2090− version = "0.5.13.1";
2091− sha256 = "0szwbgvkkdz56lgi91armkagmb7nnfwbpp4j7cm9zhmffv3ba8g1";
2092− libraryHaskellDepends = [
2093− array base blaze-builder bytestring case-insensitive containers
2094− cookie deepseq exceptions filepath ghc-prim http-types memory
2095− mime-types network network-uri random stm streaming-commons text
2096− time transformers
2097− ];
2098− testHaskellDepends = [
2099− async base blaze-builder bytestring case-insensitive containers
2100− deepseq directory hspec http-types monad-control network
2101− network-uri streaming-commons text time transformers zlib
2102− ];
2103− doCheck = false;
2104− homepage = "https://github.com/snoyberg/http-client";
2105− description = "An HTTP client engine";
2106− license = stdenv.lib.licenses.mit;
2107− }) {};
2108− "http-client-tls" = callPackage
2109− ({ mkDerivation, base, bytestring, case-insensitive, connection
2110− , containers, cryptonite, data-default-class, exceptions, gauge
2111− , hspec, http-client, http-types, memory, network, network-uri
2112− , text, tls, transformers
2113− }:
2114− mkDerivation {
2115− pname = "http-client-tls";
2116− version = "0.3.5.3";
2117− sha256 = "0qj3pcpgbsfsc4m52dz35khhl4hf1i0nmcpa445z82d9567vy6j7";
2118− libraryHaskellDepends = [
2119− base bytestring case-insensitive connection containers cryptonite
2120− data-default-class exceptions http-client http-types memory network
2121− network-uri text tls transformers
2122− ];
2123− testHaskellDepends = [
2124− base connection hspec http-client http-types
2125− ];
2126− benchmarkHaskellDepends = [ base gauge http-client ];
2127− doCheck = false;
2128− homepage = "https://github.com/snoyberg/http-client";
2129− description = "http-client backend using the connection package and tls library";
2130− license = stdenv.lib.licenses.mit;
2131− }) {};
2132− "http-conduit" = callPackage
2133− ({ mkDerivation, aeson, base, blaze-builder, bytestring
2134− , case-insensitive, conduit, conduit-extra, connection, cookie
2135− , data-default-class, hspec, http-client, http-client-tls
2136− , http-types, HUnit, mtl, network, resourcet, streaming-commons
2137− , temporary, text, time, transformers, unliftio, unliftio-core
2138− , utf8-string, wai, wai-conduit, warp, warp-tls
2139− }:
2140− mkDerivation {
2141− pname = "http-conduit";
2142− version = "2.3.2";
2143− sha256 = "1iay4hr0mj8brkxvgkv1liqa8irl9axfc3qhn8qsvcyq4n1l95km";
2144− revision = "1";
2145− editedCabalFile = "0g6rg8r33q5rmrx5287vjfcqwjacchgzyfc8aqqrhrfz3fq5ll0g";
2146− libraryHaskellDepends = [
2147− aeson base bytestring conduit conduit-extra http-client
2148− http-client-tls http-types mtl resourcet transformers unliftio-core
2149− ];
2150− testHaskellDepends = [
2151− aeson base blaze-builder bytestring case-insensitive conduit
2152− conduit-extra connection cookie data-default-class hspec
2153− http-client http-types HUnit network resourcet streaming-commons
2154− temporary text time transformers unliftio utf8-string wai
2155− wai-conduit warp warp-tls
2156− ];
2157− homepage = "http://www.yesodweb.com/book/http-conduit";
2158− description = "HTTP client package with conduit interface and HTTPS support";
2159− license = stdenv.lib.licenses.bsd3;
2160− }) {};
2161− "http-date" = callPackage
2162− ({ mkDerivation, array, attoparsec, base, bytestring, doctest
2163− , hspec, old-locale, time
2164− }:
2165− mkDerivation {
2166− pname = "http-date";
2167− version = "0.0.7";
2168− sha256 = "1hpzs646qqzp2g2qy7rx1bf3knf1hw38n82vcq6bs4mm1xzdryff";
2169− libraryHaskellDepends = [ array attoparsec base bytestring time ];
2170− testHaskellDepends = [
2171− base bytestring doctest hspec old-locale time
2172− ];
2173− description = "HTTP Date parser/formatter";
2174− license = stdenv.lib.licenses.bsd3;
2175− }) {};
2176− "http-types" = callPackage
2177− ({ mkDerivation, array, base, bytestring, case-insensitive, doctest
2178− , hspec, QuickCheck, quickcheck-instances, text
2179− }:
2180− mkDerivation {
2181− pname = "http-types";
2182− version = "0.12.1";
2183− sha256 = "1wv9k6nlvkdsxwlr7gaynphvzmvi5211gvwq96mbcxgk51a739rz";
2184− libraryHaskellDepends = [
2185− array base bytestring case-insensitive text
2186− ];
2187− testHaskellDepends = [
2188− base bytestring doctest hspec QuickCheck quickcheck-instances text
2189− ];
2190− homepage = "https://github.com/aristidb/http-types";
2191− description = "Generic HTTP types for Haskell (for both client and server code)";
2192− license = stdenv.lib.licenses.bsd3;
2193− }) {};
2194− "http2" = callPackage
2195− ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
2196− , bytestring-builder, case-insensitive, containers, criterion
2197− , directory, doctest, filepath, Glob, hashtables, heaps, hex, hspec
2198− , mwc-random, psqueues, stm, text, unordered-containers, vector
2199− , word8
2200− }:
2201− mkDerivation {
2202− pname = "http2";
2203− version = "1.6.3";
2204− sha256 = "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1";
2205− isLibrary = true;
2206− isExecutable = true;
2207− libraryHaskellDepends = [
2208− array base bytestring bytestring-builder case-insensitive
2209− containers psqueues stm
2210− ];
2211− testHaskellDepends = [
2212− aeson aeson-pretty array base bytestring bytestring-builder
2213− case-insensitive containers directory doctest filepath Glob hex
2214− hspec psqueues stm text unordered-containers vector word8
2215− ];
2216− benchmarkHaskellDepends = [
2217− array base bytestring case-insensitive containers criterion
2218− hashtables heaps mwc-random psqueues stm
2219− ];
2220− homepage = "https://github.com/kazu-yamamoto/http2";
2221− description = "HTTP/2 library including frames, priority queues and HPACK";
2222− license = stdenv.lib.licenses.bsd3;
2223− }) {};
2224− "httpd-shed" = callPackage
2225− ({ mkDerivation, base, network, network-uri }:
2226− mkDerivation {
2227− pname = "httpd-shed";
2228− version = "0.4.0.3";
2229− sha256 = "064jy1mqhnf1hvq6s04wlhmp916rd522x58djb9qixv13vc8gzxh";
2230− revision = "1";
2231− editedCabalFile = "159cjn9j8lq00gj2yvrzp81r37av25f83chsimp88h55zm9z8akw";
2232− isLibrary = true;
2233− isExecutable = true;
2234− libraryHaskellDepends = [ base network network-uri ];
2235− description = "A simple web-server with an interact style API";
2236− license = stdenv.lib.licenses.bsd3;
2237− }) {};
2238− "ieee754" = callPackage
2239− ({ mkDerivation, base }:
2240− mkDerivation {
2241− pname = "ieee754";
2242− version = "0.8.0";
2243− sha256 = "1lcs521g9lzy9d7337vg4w7q7s8500rfqy7rcifcz6pm6yfgyb8f";
2244− libraryHaskellDepends = [ base ];
2245− homepage = "http://github.com/patperry/hs-ieee754";
2246− description = "Utilities for dealing with IEEE floating point numbers";
2247− license = stdenv.lib.licenses.bsd3;
2248− }) {};
2249− "inflections" = callPackage
2250− ({ mkDerivation, base, containers, exceptions, hspec
2251− , hspec-megaparsec, megaparsec, QuickCheck, text
2252− , unordered-containers
2253− }:
2254− mkDerivation {
2255− pname = "inflections";
2256− version = "0.4.0.3";
2257− sha256 = "028dj9pgs5g6qb9x1hc8r4rn0rznr1ynn79vln48k2llyf2r38dx";
2258− libraryHaskellDepends = [
2259− base exceptions megaparsec text unordered-containers
2260− ];
2261− testHaskellDepends = [
2262− base containers hspec hspec-megaparsec megaparsec QuickCheck text
2263− ];
2264− homepage = "https://github.com/stackbuilders/inflections-hs";
2265− description = "Inflections library for Haskell";
2266− license = stdenv.lib.licenses.mit;
2267− }) {};
2268− "ini" = callPackage
2269− ({ mkDerivation, attoparsec, base, text, unordered-containers }:
2270− mkDerivation {
2271− pname = "ini";
2272− version = "0.3.6";
2273− sha256 = "1n9wsl7nz910bc8jx9ps7pvpql4hlnryjkqbdpfq0phjb9sf7fzw";
2274− revision = "1";
2275− editedCabalFile = "0gfikdal67aws20i5r4wg4r0lgn844glykcn3nnmbmyvwsks049l";
2276− libraryHaskellDepends = [
2277− attoparsec base text unordered-containers
2278− ];
2279− homepage = "http://github.com/chrisdone/ini";
2280− description = "Quick and easy configuration files in the INI format";
2281− license = stdenv.lib.licenses.bsd3;
2282− }) {};
2283− "integer-logarithms" = callPackage
2284− ({ mkDerivation, array, base, ghc-prim, integer-gmp }:
2285− mkDerivation {
2286− pname = "integer-logarithms";
2287− version = "1.0.2.1";
2288− sha256 = "1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j";
2289− libraryHaskellDepends = [ array base ghc-prim integer-gmp ];
2290− doCheck = false;
2291− homepage = "https://github.com/phadej/integer-logarithms";
2292− description = "Integer logarithms";
2293− license = stdenv.lib.licenses.mit;
2294− }) {};
2295− "interpolate" = callPackage
2296− ({ mkDerivation, base, base-compat, bytestring, haskell-src-meta
2297− , hspec, QuickCheck, quickcheck-instances, template-haskell, text
2298− }:
2299− mkDerivation {
2300− pname = "interpolate";
2301− version = "0.2.0";
2302− sha256 = "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf";
2303− libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
2304− testHaskellDepends = [
2305− base base-compat bytestring haskell-src-meta hspec QuickCheck
2306− quickcheck-instances template-haskell text
2307− ];
2308− homepage = "https://github.com/sol/interpolate#readme";
2309− description = "String interpolation done right";
2310− license = stdenv.lib.licenses.mit;
2311− }) {};
2312− "invariant" = callPackage
2313− ({ mkDerivation, array, base, bifunctors, comonad, containers
2314− , contravariant, ghc-prim, hspec, hspec-discover, profunctors
2315− , QuickCheck, semigroups, StateVar, stm, tagged, template-haskell
2316− , th-abstraction, transformers, transformers-compat
2317− , unordered-containers
2318− }:
2319− mkDerivation {
2320− pname = "invariant";
2321− version = "0.5.1";
2322− sha256 = "0aqj7z55632qdg45074kgn9qfdxzb0a2f8lgjzr0l0i4mm2rr37b";
2323− libraryHaskellDepends = [
2324− array base bifunctors comonad containers contravariant ghc-prim
2325− profunctors semigroups StateVar stm tagged template-haskell
2326− th-abstraction transformers transformers-compat
2327− unordered-containers
2328− ];
2329− testHaskellDepends = [ base hspec QuickCheck template-haskell ];
2330− testToolDepends = [ hspec-discover ];
2331− homepage = "https://github.com/nfrisby/invariant-functors";
2332− description = "Haskell98 invariant functors";
2333− license = stdenv.lib.licenses.bsd2;
2334− }) {};
2335− "iproute" = callPackage
2336− ({ mkDerivation, appar, base, byteorder, containers, doctest, hspec
2337− , network, QuickCheck, safe
2338− }:
2339− mkDerivation {
2340− pname = "iproute";
2341− version = "1.7.5";
2342− sha256 = "1vw1nm3s8vz1hqnjnqd3wh5rr4q3m2r4izn5ynhf93h9185qwqzd";
2343− libraryHaskellDepends = [
2344− appar base byteorder containers network
2345− ];
2346− testHaskellDepends = [
2347− appar base byteorder containers doctest hspec network QuickCheck
2348− safe
2349− ];
2350− homepage = "http://www.mew.org/~kazu/proj/iproute/";
2351− description = "IP Routing Table";
2352− license = stdenv.lib.licenses.bsd3;
2353− }) {};
2354− "js-flot" = callPackage
2355− ({ mkDerivation, base, HTTP }:
2356− mkDerivation {
2357− pname = "js-flot";
2358− version = "0.8.3";
2359− sha256 = "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv";
2360− enableSeparateDataOutput = true;
2361− libraryHaskellDepends = [ base ];
2362− testHaskellDepends = [ base HTTP ];
2363− homepage = "https://github.com/ndmitchell/js-flot#readme";
2364− description = "Obtain minified flot code";
2365− license = stdenv.lib.licenses.mit;
2366− }) {};
2367− "js-jquery" = callPackage
2368− ({ mkDerivation, base, HTTP }:
2369− mkDerivation {
2370− pname = "js-jquery";
2371− version = "3.3.1";
2372− sha256 = "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70";
2373− enableSeparateDataOutput = true;
2374− libraryHaskellDepends = [ base ];
2375− testHaskellDepends = [ base HTTP ];
2376− homepage = "https://github.com/ndmitchell/js-jquery#readme";
2377− description = "Obtain minified jQuery code";
2378− license = stdenv.lib.licenses.mit;
2379− }) {};
2380− "kan-extensions" = callPackage
2381− ({ mkDerivation, adjunctions, array, base, comonad, containers
2382− , contravariant, distributive, free, invariant, mtl, profunctors
2383− , semigroupoids, tagged, transformers, transformers-compat
2384− }:
2385− mkDerivation {
2386− pname = "kan-extensions";
2387− version = "5.2";
2388− sha256 = "1lyvyiwwh962j2nnnsqzlvp5zq6z8p3spvhmji99cjvldxc7wwkb";
2389− libraryHaskellDepends = [
2390− adjunctions array base comonad containers contravariant
2391− distributive free invariant mtl profunctors semigroupoids tagged
2392− transformers transformers-compat
2393− ];
2394− homepage = "http://github.com/ekmett/kan-extensions/";
2395− description = "Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads";
2396− license = stdenv.lib.licenses.bsd3;
2397− }) {};
2398− "keys" = callPackage
2399− ({ mkDerivation, array, base, comonad, containers, free, hashable
2400− , semigroupoids, semigroups, tagged, transformers
2401− , transformers-compat, unordered-containers
2402− }:
2403− mkDerivation {
2404− pname = "keys";
2405− version = "3.12.1";
2406− sha256 = "1yqm4gpshsgswx6w78z64c83gpydh6jhgslx2lnc10nzhy0s9kkz";
2407− libraryHaskellDepends = [
2408− array base comonad containers free hashable semigroupoids
2409− semigroups tagged transformers transformers-compat
2410− unordered-containers
2411− ];
2412− homepage = "http://github.com/ekmett/keys/";
2413− description = "Keyed functors and containers";
2414− license = stdenv.lib.licenses.bsd3;
2415− }) {};
2416− "language-haskell-extract" = callPackage
2417− ({ mkDerivation, base, regex-posix, template-haskell }:
2418− mkDerivation {
2419− pname = "language-haskell-extract";
2420− version = "0.2.4";
2421− sha256 = "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl";
2422− libraryHaskellDepends = [ base regex-posix template-haskell ];
2423− homepage = "http://github.com/finnsson/template-helper";
2424− description = "Module to automatically extract functions from the local code";
2425− license = stdenv.lib.licenses.bsd3;
2426− }) {};
2427− "language-nix" = callPackage
2428− ({ mkDerivation, base, base-compat, Cabal, deepseq, doctest, lens
2429− , pretty, QuickCheck
2430− }:
2431− mkDerivation {
2432− pname = "language-nix";
2433− version = "2.1.0.1";
2434− sha256 = "1kqsw0hk03wdn7mszyjgi38nxk1wmhbxfv6di3irrhsaf807657h";
2435− revision = "1";
2436− editedCabalFile = "1zv12p4ralrks0517zs52rzmzmsxxkcxkqz7zijfgcsvh6bsmafi";
2437− libraryHaskellDepends = [
2438− base base-compat Cabal deepseq lens pretty QuickCheck
2439− ];
2440− testHaskellDepends = [
2441− base base-compat Cabal deepseq doctest lens pretty QuickCheck
2442− ];
2443− homepage = "https://github.com/peti/language-nix#readme";
2444− description = "Data types and useful functions to represent and manipulate the Nix language";
2445− license = stdenv.lib.licenses.bsd3;
2446− }) {};
2447− "lens" = callPackage
2448− ({ mkDerivation, array, base, base-orphans, bifunctors, bytestring
2449− , Cabal, cabal-doctest, call-stack, comonad, containers
2450− , contravariant, criterion, deepseq, directory, distributive
2451− , doctest, exceptions, filepath, free, generic-deriving, ghc-prim
2452− , hashable, HUnit, kan-extensions, mtl, nats, parallel, profunctors
2453− , QuickCheck, reflection, semigroupoids, semigroups, simple-reflect
2454− , tagged, template-haskell, test-framework, test-framework-hunit
2455− , test-framework-quickcheck2, test-framework-th, text
2456− , th-abstraction, transformers, transformers-compat
2457− , unordered-containers, vector, void
2458− }:
2459− mkDerivation {
2460− pname = "lens";
2461− version = "4.16.1";
2462− sha256 = "1im4drhbydbawd6i0jsrzpqihnmx4ywpkg7yg94ddwsw3mxwkgpm";
2463− revision = "2";
2464− editedCabalFile = "11h83lj5mba4grhz1qx3irz10ysm9c3k7k6i6xv2cr60q8xin3ri";
2465− setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
2466− libraryHaskellDepends = [
2467− array base base-orphans bifunctors bytestring call-stack comonad
2468− containers contravariant distributive exceptions filepath free
2469− ghc-prim hashable kan-extensions mtl parallel profunctors
2470− reflection semigroupoids semigroups tagged template-haskell text
2471− th-abstraction transformers transformers-compat
2472− unordered-containers vector void
2473− ];
2474− testHaskellDepends = [
2475− base bytestring containers deepseq directory doctest filepath
2476− generic-deriving HUnit mtl nats parallel QuickCheck semigroups
2477− simple-reflect test-framework test-framework-hunit
2478− test-framework-quickcheck2 test-framework-th text transformers
2479− unordered-containers vector
2480− ];
2481− benchmarkHaskellDepends = [
2482− base bytestring comonad containers criterion deepseq
2483− generic-deriving transformers unordered-containers vector
2484− ];
2485− homepage = "http://github.com/ekmett/lens/";
2486− description = "Lenses, Folds and Traversals";
2487− license = stdenv.lib.licenses.bsd2;
2488− }) {};
2489− "lifted-async" = callPackage
2490− ({ mkDerivation, async, base, constraints, criterion, deepseq
2491− , HUnit, lifted-base, monad-control, mtl, tasty
2492− , tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
2493− }:
2494− mkDerivation {
2495− pname = "lifted-async";
2496− version = "0.10.0.2";
2497− sha256 = "1073r512c1x2m1v0jar9bwqg656slg7jd1jhsyj6m8awgx1l1mwf";
2498− libraryHaskellDepends = [
2499− async base constraints lifted-base monad-control transformers-base
2500− ];
2501− testHaskellDepends = [
2502− async base HUnit lifted-base monad-control mtl tasty
2503− tasty-expected-failure tasty-hunit tasty-th
2504− ];
2505− benchmarkHaskellDepends = [ async base criterion deepseq ];
2506− homepage = "https://github.com/maoe/lifted-async";
2507− description = "Run lifted IO operations asynchronously and wait for their results";
2508− license = stdenv.lib.licenses.bsd3;
2509− }) {};
2510− "lifted-base" = callPackage
2511− ({ mkDerivation, base, criterion, HUnit, monad-control, monad-peel
2512− , test-framework, test-framework-hunit, transformers
2513− , transformers-base, transformers-compat
2514− }:
2515− mkDerivation {
2516− pname = "lifted-base";
2517− version = "0.2.3.12";
2518− sha256 = "1i8p8d3rkdh21bhgjjh32vd7qqjr7jq7p59qds0aw2kmargsjd61";
2519− libraryHaskellDepends = [ base monad-control transformers-base ];
2520− testHaskellDepends = [
2521− base HUnit monad-control test-framework test-framework-hunit
2522− transformers transformers-base transformers-compat
2523− ];
2524− benchmarkHaskellDepends = [
2525− base criterion monad-control monad-peel transformers
2526− ];
2527− homepage = "https://github.com/basvandijk/lifted-base";
2528− description = "lifted IO operations from the base library";
2529− license = stdenv.lib.licenses.bsd3;
2530− }) {};
2531− "logging-facade" = callPackage
2532− ({ mkDerivation, base, call-stack, hspec, transformers }:
2533− mkDerivation {
2534− pname = "logging-facade";
2535− version = "0.3.0";
2536− sha256 = "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf";
2537− libraryHaskellDepends = [ base call-stack transformers ];
2538− testHaskellDepends = [ base hspec ];
2539− homepage = "https://github.com/sol/logging-facade#readme";
2540− description = "Simple logging abstraction that allows multiple back-ends";
2541− license = stdenv.lib.licenses.mit;
2542− }) {};
2543− "logict" = callPackage
2544− ({ mkDerivation, base, mtl }:
2545− mkDerivation {
2546− pname = "logict";
2547− version = "0.6.0.2";
2548− sha256 = "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi";
2549− libraryHaskellDepends = [ base mtl ];
2550− homepage = "http://code.haskell.org/~dolio/";
2551− description = "A backtracking logic-programming monad";
2552− license = stdenv.lib.licenses.bsd3;
2553− }) {};
2554− "lucid" = callPackage
2555− ({ mkDerivation, base, bifunctors, blaze-builder, bytestring
2556− , containers, criterion, deepseq, hashable, hspec, HUnit, mmorph
2557− , mtl, parsec, text, transformers, unordered-containers
2558− }:
2559− mkDerivation {
2560− pname = "lucid";
2561− version = "2.9.10";
2562− sha256 = "14238cnrvkbr81hpaqg1r342sryj8k0p6igkwf140s9phfpdzry0";
2563− revision = "1";
2564− editedCabalFile = "0n94x2havrvks85z8azsa4pvz33amhb444cias3kfxmkyvypn5ah";
2565− libraryHaskellDepends = [
2566− base blaze-builder bytestring containers hashable mmorph mtl text
2567− transformers unordered-containers
2568− ];
2569− testHaskellDepends = [
2570− base bifunctors hspec HUnit mtl parsec text
2571− ];
2572− benchmarkHaskellDepends = [
2573− base blaze-builder bytestring criterion deepseq text transformers
2574− ];
2575− homepage = "https://github.com/chrisdone/lucid";
2576− description = "Clear to write, read and edit DSL for HTML";
2577− license = stdenv.lib.licenses.bsd3;
2578− }) {};
2579− "math-functions" = callPackage
2580− ({ mkDerivation, base, deepseq, erf, HUnit, primitive, QuickCheck
2581− , test-framework, test-framework-hunit, test-framework-quickcheck2
2582− , vector, vector-th-unbox
2583− }:
2584− mkDerivation {
2585− pname = "math-functions";
2586− version = "0.2.1.0";
2587− sha256 = "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp";
2588− libraryHaskellDepends = [
2589− base deepseq primitive vector vector-th-unbox
2590− ];
2591− testHaskellDepends = [
2592− base deepseq erf HUnit primitive QuickCheck test-framework
2593− test-framework-hunit test-framework-quickcheck2 vector
2594− vector-th-unbox
2595− ];
2596− doCheck = false;
2597− homepage = "https://github.com/bos/math-functions";
2598− description = "Special functions and Chebyshev polynomials";
2599− license = stdenv.lib.licenses.bsd3;
2600− }) {};
2601− "megaparsec" = callPackage
2602− ({ mkDerivation, base, bytestring, case-insensitive, containers
2603− , criterion, deepseq, hspec, hspec-discover, hspec-expectations
2604− , mtl, parser-combinators, QuickCheck, scientific, text
2605− , transformers, weigh
2606− }:
2607− mkDerivation {
2608− pname = "megaparsec";
2609− version = "6.5.0";
2610− sha256 = "12iggy7qpf8x93jm64zf0g215xwy779bqyfyjk2bhmxqqr1yzgdy";
2611− revision = "2";
2612− editedCabalFile = "0ahvqr29ym3g46yv2jxniccyn1ng1yqicqdbamkzm89gjnxd9n25";
2613− libraryHaskellDepends = [
2614− base bytestring case-insensitive containers deepseq mtl
2615− parser-combinators scientific text transformers
2616− ];
2617− testHaskellDepends = [
2618− base bytestring containers hspec hspec-expectations mtl QuickCheck
2619− scientific text transformers
2620− ];
2621− testToolDepends = [ hspec-discover ];
2622− benchmarkHaskellDepends = [ base criterion deepseq text weigh ];
2623− homepage = "https://github.com/mrkkrp/megaparsec";
2624− description = "Monadic parser combinators";
2625− license = stdenv.lib.licenses.bsd2;
2626− }) {};
2627− "memory" = callPackage
2628− ({ mkDerivation, base, basement, bytestring, deepseq, foundation
2629− , ghc-prim
2630− }:
2631− mkDerivation {
2632− pname = "memory";
2633− version = "0.14.16";
2634− sha256 = "03rbszi5d4z9rlbfv8ydrl1xf84xsh8z57g07f7j9qccn9587c3v";
2635− libraryHaskellDepends = [
2636− base basement bytestring deepseq foundation ghc-prim
2637− ];
2638− testHaskellDepends = [ base basement bytestring foundation ];
2639− homepage = "https://github.com/vincenthz/hs-memory";
2640− description = "memory and related abstraction stuff";
2641− license = stdenv.lib.licenses.bsd3;
2642− }) {};
2643− "microstache" = callPackage
2644− ({ mkDerivation, aeson, base, bytestring, containers, deepseq
2645− , directory, filepath, hspec, parsec, text, transformers
2646− , unordered-containers, vector
2647− }:
2648− mkDerivation {
2649− pname = "microstache";
2650− version = "1.0.1.1";
2651− sha256 = "0851sqr1ppdj6m822635pa3j6qzdf25gyrhkjs25zdry6518bsax";
2652− revision = "2";
2653− editedCabalFile = "0rl6vgmjnf1a14kiynh4gnmy6n6kkik9hqj9k5vqw68h4f110i4b";
2654− libraryHaskellDepends = [
2655− aeson base bytestring containers deepseq directory filepath parsec
2656− text transformers unordered-containers vector
2657− ];
2658− testHaskellDepends = [
2659− aeson base bytestring containers hspec parsec text
2660− ];
2661− homepage = "https://github.com/phadej/microstache";
2662− description = "Mustache templates for Haskell";
2663− license = stdenv.lib.licenses.bsd3;
2664− }) {};
2665− "mime-types" = callPackage
2666− ({ mkDerivation, base, bytestring, containers, text }:
2667− mkDerivation {
2668− pname = "mime-types";
2669− version = "0.1.0.8";
2670− sha256 = "14ccl2842ya17zyj0bpc7vzklbyqvvydpbypn69h2fmhgji192x8";
2671− libraryHaskellDepends = [ base bytestring containers text ];
2672− homepage = "https://github.com/yesodweb/wai";
2673− description = "Basic mime-type handling types and functions";
2674− license = stdenv.lib.licenses.mit;
2675− }) {};
2676− "mmorph" = callPackage
2677− ({ mkDerivation, base, mtl, transformers, transformers-compat }:
2678− mkDerivation {
2679− pname = "mmorph";
2680− version = "1.1.2";
2681− sha256 = "1gjz1ib968lqybma7my1n19qq6cdj6a7nskrlnwy4jy9jrwzs2n9";
2682− libraryHaskellDepends = [
2683− base mtl transformers transformers-compat
2684− ];
2685− description = "Monad morphisms";
2686− license = stdenv.lib.licenses.bsd3;
2687− }) {};
2688− "mockery" = callPackage
2689− ({ mkDerivation, base, base-compat, bytestring, directory, filepath
2690− , hspec, logging-facade, temporary
2691− }:
2692− mkDerivation {
2693− pname = "mockery";
2694− version = "0.3.5";
2695− sha256 = "09ypgm3z69gq8mj6y66ss58kbjnk15r8frwcwbqcfbfksfnfv8dp";
2696− libraryHaskellDepends = [
2697− base base-compat bytestring directory filepath logging-facade
2698− temporary
2699− ];
2700− testHaskellDepends = [
2701− base base-compat bytestring directory filepath hspec logging-facade
2702− temporary
2703− ];
2704− description = "Support functions for automated testing";
2705− license = stdenv.lib.licenses.mit;
2706− }) {};
2707− "monad-control" = callPackage
2708− ({ mkDerivation, base, stm, transformers, transformers-base
2709− , transformers-compat
2710− }:
2711− mkDerivation {
2712− pname = "monad-control";
2713− version = "1.0.2.3";
2714− sha256 = "1c92833gr6cadidjdp8mlznkpp8lyxl0w3y7d19y8yi3klc3843c";
2715− libraryHaskellDepends = [
2716− base stm transformers transformers-base transformers-compat
2717− ];
2718− homepage = "https://github.com/basvandijk/monad-control";
2719− description = "Lift control operations, like exception catching, through monad transformers";
2720− license = stdenv.lib.licenses.bsd3;
2721− }) {};
2722− "monad-loops" = callPackage
2723− ({ mkDerivation, base, tasty, tasty-hunit }:
2724− mkDerivation {
2725− pname = "monad-loops";
2726− version = "0.4.3";
2727− sha256 = "062c2sn3hc8h50p1mhqkpyv6x8dydz2zh3ridvlfjq9nqimszaky";
2728− libraryHaskellDepends = [ base ];
2729− testHaskellDepends = [ base tasty tasty-hunit ];
2730− homepage = "https://github.com/mokus0/monad-loops";
2731− description = "Monadic loops";
2732− license = stdenv.lib.licenses.publicDomain;
2733− }) {};
2734− "monad-par" = callPackage
2735− ({ mkDerivation, abstract-deque, abstract-par, array, base
2736− , containers, deepseq, HUnit, monad-par-extras, mtl, mwc-random
2737− , parallel, QuickCheck, test-framework, test-framework-hunit
2738− , test-framework-quickcheck2, test-framework-th, time
2739− }:
2740− mkDerivation {
2741− pname = "monad-par";
2742− version = "0.3.4.8";
2743− sha256 = "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q";
2744− libraryHaskellDepends = [
2745− abstract-deque abstract-par array base containers deepseq
2746− monad-par-extras mtl mwc-random parallel
2747− ];
2748− testHaskellDepends = [
2749− abstract-deque abstract-par array base containers deepseq HUnit
2750− monad-par-extras mtl mwc-random QuickCheck test-framework
2751− test-framework-hunit test-framework-quickcheck2 test-framework-th
2752− time
2753− ];
2754− homepage = "https://github.com/simonmar/monad-par";
2755− description = "A library for parallel programming based on a monad";
2756− license = stdenv.lib.licenses.bsd3;
2757− }) {};
2758− "monad-par-extras" = callPackage
2759− ({ mkDerivation, abstract-par, base, cereal, deepseq, mtl, random
2760− , transformers
2761− }:
2762− mkDerivation {
2763− pname = "monad-par-extras";
2764− version = "0.3.3";
2765− sha256 = "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2";
2766− libraryHaskellDepends = [
2767− abstract-par base cereal deepseq mtl random transformers
2768− ];
2769− homepage = "https://github.com/simonmar/monad-par";
2770− description = "Combinators and extra features for Par monads";
2771− license = stdenv.lib.licenses.bsd3;
2772− }) {};
2773− "monad-peel" = callPackage
2774− ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework
2775− , test-framework-hunit, transformers
2776− }:
2777− mkDerivation {
2778− pname = "monad-peel";
2779− version = "0.2.1.2";
2780− sha256 = "1x1kr5pk8ksw8xcm19c50jx8m0crf3m3qp73k31dnl9r1w4ykm9d";
2781− libraryHaskellDepends = [
2782− base extensible-exceptions transformers
2783− ];
2784− testHaskellDepends = [
2785− base extensible-exceptions HUnit test-framework
2786− test-framework-hunit transformers
2787− ];
2788− homepage = "http://andersk.mit.edu/haskell/monad-peel/";
2789− description = "Lift control operations like exception catching through monad transformers";
2790− license = stdenv.lib.licenses.bsd3;
2791− }) {};
2792− "mono-traversable" = callPackage
2793− ({ mkDerivation, base, bytestring, containers, foldl, gauge
2794− , hashable, hspec, HUnit, mwc-random, QuickCheck, semigroups, split
2795− , text, transformers, unordered-containers, vector
2796− , vector-algorithms
2797− }:
2798− mkDerivation {
2799− pname = "mono-traversable";
2800− version = "1.0.8.1";
2801− sha256 = "0d9r6z3a8gkhl1j5yq8hjg5wcndi5yixxm9xwbrf4z6pgdwr04lr";
2802− libraryHaskellDepends = [
2803− base bytestring containers hashable split text transformers
2804− unordered-containers vector vector-algorithms
2805− ];
2806− testHaskellDepends = [
2807− base bytestring containers foldl hspec HUnit QuickCheck semigroups
2808− text transformers unordered-containers vector
2809− ];
2810− benchmarkHaskellDepends = [ base gauge mwc-random vector ];
2811− homepage = "https://github.com/snoyberg/mono-traversable#readme";
2812− description = "Type classes for mapping, folding, and traversing monomorphic containers";
2813− license = stdenv.lib.licenses.mit;
2814− }) {};
2815− "mono-traversable-instances" = callPackage
2816− ({ mkDerivation, base, comonad, containers, dlist, dlist-instances
2817− , mono-traversable, semigroupoids, semigroups, transformers
2818− , vector-instances
2819− }:
2820− mkDerivation {
2821− pname = "mono-traversable-instances";
2822− version = "0.1.0.0";
2823− sha256 = "0zh81hvqnracil2nvkx14xzwv9vavsnx739acp6gycdyrs5jpzxm";
2824− libraryHaskellDepends = [
2825− base comonad containers dlist dlist-instances mono-traversable
2826− semigroupoids semigroups transformers vector-instances
2827− ];
2828− homepage = "https://github.com/snoyberg/mono-traversable#readme";
2829− description = "Extra typeclass instances for mono-traversable";
2830− license = stdenv.lib.licenses.mit;
2831− }) {};
2832− "mtl" = callPackage
2833− ({ mkDerivation, base, transformers }:
2834− mkDerivation {
2835− pname = "mtl";
2836− version = "2.2.2";
2837− sha256 = "1xmy5741h8cyy0d91ahvqdz2hykkk20l8br7lg1rccnkis5g80w8";
2838− libraryHaskellDepends = [ base transformers ];
2839− homepage = "http://github.com/haskell/mtl";
2840− description = "Monad classes, using functional dependencies";
2841− license = stdenv.lib.licenses.bsd3;
2842− }) {};
2843− "mutable-containers" = callPackage
2844− ({ mkDerivation, base, containers, gauge, ghc-prim, hspec
2845− , mono-traversable, primitive, QuickCheck, vector
2846− }:
2847− mkDerivation {
2848− pname = "mutable-containers";
2849− version = "0.3.4";
2850− sha256 = "0zhkhlvg9yw45fg3srvzx7j81547djpkfw7higdvlj7fmph6c6b4";
2851− libraryHaskellDepends = [
2852− base containers ghc-prim mono-traversable primitive vector
2853− ];
2854− testHaskellDepends = [
2855− base containers hspec primitive QuickCheck vector
2856− ];
2857− benchmarkHaskellDepends = [ base containers gauge vector ];
2858− homepage = "https://github.com/snoyberg/mono-traversable#readme";
2859− description = "Abstactions and concrete implementations of mutable containers";
2860− license = stdenv.lib.licenses.mit;
2861− }) {};
2862− "mwc-random" = callPackage
2863− ({ mkDerivation, base, math-functions, primitive, time, vector }:
2864− mkDerivation {
2865− pname = "mwc-random";
2866− version = "0.13.6.0";
2867− sha256 = "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6";
2868− libraryHaskellDepends = [
2869− base math-functions primitive time vector
2870− ];
2871− homepage = "https://github.com/bos/mwc-random";
2872− description = "Fast, high quality pseudo random number generation";
2873− license = stdenv.lib.licenses.bsd3;
2874− }) {};
2875− "nanospec" = callPackage
2876− ({ mkDerivation, base, hspec, silently }:
2877− mkDerivation {
2878− pname = "nanospec";
2879− version = "0.2.2";
2880− sha256 = "1rcmhl9bhyfvanalnf1r86wkx6rq6wdvagnw1h011jcnnb1cq56g";
2881− libraryHaskellDepends = [ base ];
2882− testHaskellDepends = [ base hspec silently ];
2883− homepage = "https://github.com/hspec/nanospec#readme";
2884− description = "A lightweight implementation of a subset of Hspec's API";
2885− license = stdenv.lib.licenses.mit;
2886− }) {};
2887− "nats" = callPackage
2888− ({ mkDerivation }:
2889− mkDerivation {
2890− pname = "nats";
2891− version = "1.1.2";
2892− sha256 = "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr";
2893− revision = "1";
2894− editedCabalFile = "1jzyysf758lfindlclqpzqcd0lrgrdv0rnz2lg8g1rvv07x2n7zh";
2895− doHaddock = false;
2896− homepage = "http://github.com/ekmett/nats/";
2897− description = "Natural numbers";
2898− license = stdenv.lib.licenses.bsd3;
2899− }) {};
2900− "network" = callPackage
2901− ({ mkDerivation, base, bytestring, doctest, hspec, HUnit, unix }:
2902− mkDerivation {
2903− pname = "network";
2904− version = "2.6.3.6";
2905− sha256 = "198mam7ahny48p9fajznbqq16a8ya2gw0xm3gnm1si1rmc4hdplv";
2906− libraryHaskellDepends = [ base bytestring unix ];
2907− testHaskellDepends = [ base bytestring doctest hspec HUnit ];
2908− doCheck = false;
2909− homepage = "https://github.com/haskell/network";
2910− description = "Low-level networking interface";
2911− license = stdenv.lib.licenses.bsd3;
2912− }) {};
2913− "network-uri" = callPackage
2914− ({ mkDerivation, base, deepseq, HUnit, parsec, test-framework
2915− , test-framework-hunit, test-framework-quickcheck2
2916− }:
2917− mkDerivation {
2918− pname = "network-uri";
2919− version = "2.6.1.0";
2920− sha256 = "1w27zkvn39kjr9lmw9421y8w43h572ycsfafsb7kyvr3a4ihlgj2";
2921− revision = "1";
2922− editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32";
2923− libraryHaskellDepends = [ base deepseq parsec ];
2924− testHaskellDepends = [
2925− base HUnit test-framework test-framework-hunit
2926− test-framework-quickcheck2
2927− ];
2928− homepage = "https://github.com/haskell/network-uri";
2929− description = "URI manipulation";
2930− license = stdenv.lib.licenses.bsd3;
2931− }) {};
2932− "old-locale" = callPackage
2933− ({ mkDerivation, base }:
2934− mkDerivation {
2935− pname = "old-locale";
2936− version = "1.0.0.7";
2937− sha256 = "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv";
2938− revision = "2";
2939− editedCabalFile = "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs";
2940− libraryHaskellDepends = [ base ];
2941− description = "locale library";
2942− license = stdenv.lib.licenses.bsd3;
2943− }) {};
2944− "old-time" = callPackage
2945− ({ mkDerivation, base, old-locale }:
2946− mkDerivation {
2947− pname = "old-time";
2948− version = "1.1.0.3";
2949− sha256 = "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw";
2950− revision = "2";
2951− editedCabalFile = "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9";
2952− libraryHaskellDepends = [ base old-locale ];
2953− description = "Time library";
2954− license = stdenv.lib.licenses.bsd3;
2955− }) {};
2956− "optparse-applicative" = callPackage
2957− ({ mkDerivation, ansi-wl-pprint, base, bytestring, process
2958− , QuickCheck, transformers, transformers-compat
2959− }:
2960− mkDerivation {
2961− pname = "optparse-applicative";
2962− version = "0.14.2.0";
2963− sha256 = "0c3z1mvynlyv1garjbdmdd3npm40dabgm75js4r07cf766c1wd71";
2964− libraryHaskellDepends = [
2965− ansi-wl-pprint base process transformers transformers-compat
2966− ];
2967− testHaskellDepends = [ base bytestring QuickCheck ];
2968− homepage = "https://github.com/pcapriotti/optparse-applicative";
2969− description = "Utilities and combinators for parsing command line options";
2970− license = stdenv.lib.licenses.bsd3;
2971− }) {};
2972− "optparse-simple" = callPackage
2973− ({ mkDerivation, base, bytestring, directory, gitrev
2974− , optparse-applicative, template-haskell, transformers
2975− }:
2976− mkDerivation {
2977− pname = "optparse-simple";
2978− version = "0.1.0";
2979− sha256 = "1g2cf4pcf1fa001z77g8gwnx0cxdpqs1iw9xp0kb9qrxm9gpk3c3";
2980− libraryHaskellDepends = [
2981− base gitrev optparse-applicative template-haskell transformers
2982− ];
2983− testHaskellDepends = [ base bytestring directory ];
2984− homepage = "https://github.com/fpco/optparse-simple#readme";
2985− description = "Simple interface to optparse-applicative";
2986− license = stdenv.lib.licenses.bsd3;
2987− }) {};
2988− "parallel" = callPackage
2989− ({ mkDerivation, array, base, containers, deepseq, ghc-prim }:
2990− mkDerivation {
2991− pname = "parallel";
2992− version = "3.2.2.0";
2993− sha256 = "1xkfi96w6yfpppd0nw1rnszdxmvifwzm699ilv6332ra3akm610p";
2994− libraryHaskellDepends = [ array base containers deepseq ghc-prim ];
2995− description = "Parallel programming library";
2996− license = stdenv.lib.licenses.bsd3;
2997− }) {};
2998− "parsec" = callPackage
2999− ({ mkDerivation, base, bytestring, HUnit, mtl, test-framework
3000− , test-framework-hunit, text
3001− }:
3002− mkDerivation {
3003− pname = "parsec";
3004− version = "3.1.13.0";
3005− sha256 = "1wc09pyn70p8z6llink10c8pqbh6ikyk554911yfwxv1g91swqbq";
3006− revision = "1";
3007− editedCabalFile = "1dpr1wfpykkl6kayp4wnyn0n1zv7pvqksax2i54dhdgjijj8qynd";
3008− libraryHaskellDepends = [ base bytestring mtl text ];
3009− testHaskellDepends = [
3010− base HUnit mtl test-framework test-framework-hunit
3011− ];
3012− homepage = "https://github.com/hvr/parsec";
3013− description = "Monadic parser combinators";
3014− license = stdenv.lib.licenses.bsd3;
3015− }) {};
3016− "parser-combinators" = callPackage
3017− ({ mkDerivation, base }:
3018− mkDerivation {
3019− pname = "parser-combinators";
3020− version = "1.0.0";
3021− sha256 = "1pwfdsklqwvaynwpdzmx1bs35mp6dpsyaqdnzxnqcrxwf5h8sk75";
3022− libraryHaskellDepends = [ base ];
3023− homepage = "https://github.com/mrkkrp/parser-combinators";
3024− description = "Lightweight package providing commonly useful parser combinators";
3025− license = stdenv.lib.licenses.bsd3;
3026− }) {};
3027− "pcre-light" = callPackage
3028− ({ mkDerivation, base, bytestring, pcre }:
3029− mkDerivation {
3030− pname = "pcre-light";
3031− version = "0.4.0.4";
3032− sha256 = "0xcyi1fivwg7a92mch5bcqzmrfxzqj42rmb3m8kgs61x4qwpxj82";
3033− libraryHaskellDepends = [ base bytestring ];
3034− libraryPkgconfigDepends = [ pcre ];
3035− homepage = "https://github.com/Daniel-Diaz/pcre-light";
3036− description = "Portable regex library for Perl 5 compatible regular expressions";
3037− license = stdenv.lib.licenses.bsd3;
3038− }) {inherit (pkgs) pcre;};
3039− "pem" = callPackage
3040− ({ mkDerivation, base, basement, bytestring, HUnit, memory
3041− , QuickCheck, test-framework, test-framework-hunit
3042− , test-framework-quickcheck2
3043− }:
3044− mkDerivation {
3045− pname = "pem";
3046− version = "0.2.4";
3047− sha256 = "1m7qjsxrd8m88cvkqmr8kscril500j2a9y0iynvksjyjkhdlq33p";
3048− libraryHaskellDepends = [ base basement bytestring memory ];
3049− testHaskellDepends = [
3050− base bytestring HUnit QuickCheck test-framework
3051− test-framework-hunit test-framework-quickcheck2
3052− ];
3053− homepage = "http://github.com/vincenthz/hs-pem";
3054− description = "Privacy Enhanced Mail (PEM) format reader and writer";
3055− license = stdenv.lib.licenses.bsd3;
3056− }) {};
3057− "pointed" = callPackage
3058− ({ mkDerivation, base, comonad, containers, data-default-class
3059− , hashable, kan-extensions, semigroupoids, semigroups, stm, tagged
3060− , transformers, transformers-compat, unordered-containers
3061− }:
3062− mkDerivation {
3063− pname = "pointed";
3064− version = "5.0.1";
3065− sha256 = "1p91a762xglckscnhpflxzav8byf49a02mli3983i4kpr2jkaimr";
3066− revision = "1";
3067− editedCabalFile = "1ccjmzz3jf5ybrzv7qdwm3qb8rz0yskvi4ackrixyhdk8bg5f3nc";
3068− libraryHaskellDepends = [
3069− base comonad containers data-default-class hashable kan-extensions
3070− semigroupoids semigroups stm tagged transformers
3071− transformers-compat unordered-containers
3072− ];
3073− homepage = "http://github.com/ekmett/pointed/";
3074− description = "Pointed and copointed data";
3075− license = stdenv.lib.licenses.bsd3;
3076− }) {};
3077− "polyparse" = callPackage
3078− ({ mkDerivation, base, bytestring, text }:
3079− mkDerivation {
3080− pname = "polyparse";
3081− version = "1.12";
3082− sha256 = "05dya1vdvq29hkhkdlsglzhw7bdn51rvs1javs0q75nf99c66k7m";
3083− libraryHaskellDepends = [ base bytestring text ];
3084− homepage = "http://code.haskell.org/~malcolm/polyparse/";
3085− description = "A variety of alternative parser combinator libraries";
3086− license = "LGPL";
3087− }) {};
3088− "pretty-hex" = callPackage
3089− ({ mkDerivation, base, bytestring }:
3090− mkDerivation {
3091− pname = "pretty-hex";
3092− version = "1.0";
3093− sha256 = "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz";
3094− libraryHaskellDepends = [ base bytestring ];
3095− description = "A library for hex dumps of ByteStrings";
3096− license = stdenv.lib.licenses.bsd3;
3097− }) {};
3098− "pretty-show" = callPackage
3099− ({ mkDerivation, array, base, filepath, ghc-prim, happy
3100− , haskell-lexer, pretty, text
3101− }:
3102− mkDerivation {
3103− pname = "pretty-show";
3104− version = "1.7";
3105− sha256 = "0br7pkxqqqhby2j2v1g847lgqsrasx56g1jw3dhmjh4flzs6warq";
3106− isLibrary = true;
3107− isExecutable = true;
3108− enableSeparateDataOutput = true;
3109− libraryHaskellDepends = [
3110− array base filepath ghc-prim haskell-lexer pretty text
3111− ];
3112− libraryToolDepends = [ happy ];
3113− executableHaskellDepends = [ base ];
3114− homepage = "http://wiki.github.com/yav/pretty-show";
3115− description = "Tools for working with derived `Show` instances and generic inspection of values";
3116− license = stdenv.lib.licenses.mit;
3117− }) {};
3118− "primitive" = callPackage
3119− ({ mkDerivation, base, ghc-prim, transformers }:
3120− mkDerivation {
3121− pname = "primitive";
3122− version = "0.6.3.0";
3123− sha256 = "0mcmbnj08wd6zfwn7xk6zf5hy5zwbla5v78pw0dpymqg9s0gzpnd";
3124− libraryHaskellDepends = [ base ghc-prim transformers ];
3125− testHaskellDepends = [ base ghc-prim ];
3126− homepage = "https://github.com/haskell/primitive";
3127− description = "Primitive memory-related operations";
3128− license = stdenv.lib.licenses.bsd3;
3129− }) {};
3130− "profunctors" = callPackage
3131− ({ mkDerivation, base, base-orphans, bifunctors, comonad
3132− , contravariant, distributive, semigroups, tagged, transformers
3133− }:
3134− mkDerivation {
3135− pname = "profunctors";
3136− version = "5.2.2";
3137− sha256 = "0s1pwjidbn761xk43pmzyvn99hm3psdifjd78ylki7f97aiyd0g9";
3138− revision = "2";
3139− editedCabalFile = "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq";
3140− libraryHaskellDepends = [
3141− base base-orphans bifunctors comonad contravariant distributive
3142− semigroups tagged transformers
3143− ];
3144− homepage = "http://github.com/ekmett/profunctors/";
3145− description = "Profunctors";
3146− license = stdenv.lib.licenses.bsd3;
3147− }) {};
3148− "psqueues" = callPackage
3149− ({ mkDerivation, array, base, deepseq, ghc-prim, hashable, HUnit
3150− , QuickCheck, tagged, test-framework, test-framework-hunit
3151− , test-framework-quickcheck2
3152− }:
3153− mkDerivation {
3154− pname = "psqueues";
3155− version = "0.2.7.0";
3156− sha256 = "1sjgc9bxh63kkdp59nbirx3xazr02ia5yhp4f4a0jnq1hj465wsc";
3157− libraryHaskellDepends = [ base deepseq ghc-prim hashable ];
3158− testHaskellDepends = [
3159− array base deepseq ghc-prim hashable HUnit QuickCheck tagged
3160− test-framework test-framework-hunit test-framework-quickcheck2
3161− ];
3162− description = "Pure priority search queues";
3163− license = stdenv.lib.licenses.bsd3;
3164− }) {};
3165− "pureMD5" = callPackage
3166− ({ mkDerivation, base, binary, bytestring, cereal, crypto-api
3167− , crypto-api-tests, pretty-hex, QuickCheck, tagged, test-framework
3168− , test-framework-quickcheck2
3169− }:
3170− mkDerivation {
3171− pname = "pureMD5";
3172− version = "2.1.3";
3173− sha256 = "0zdilz41cla2ck7mcw1a9702gyg2abq94mqahr4vci9sbs53bwxy";
3174− libraryHaskellDepends = [
3175− base binary bytestring cereal crypto-api tagged
3176− ];
3177− testHaskellDepends = [
3178− base binary bytestring cereal crypto-api-tests pretty-hex
3179− QuickCheck test-framework test-framework-quickcheck2
3180− ];
3181− description = "A Haskell-only implementation of the MD5 digest (hash) algorithm";
3182− license = stdenv.lib.licenses.bsd3;
3183− }) {};
3184− "quickcheck-instances" = callPackage
3185− ({ mkDerivation, array, base, base-compat, bytestring
3186− , case-insensitive, containers, hashable, old-time, QuickCheck
3187− , scientific, tagged, text, time, transformers, transformers-compat
3188− , unordered-containers, uuid-types, vector
3189− }:
3190− mkDerivation {
3191− pname = "quickcheck-instances";
3192− version = "0.3.18";
3193− sha256 = "1bh1pzz5fdcqvzdcirqxna6fnjms02min5md716299g5niz46w55";
3194− revision = "1";
3195− editedCabalFile = "1sngfq3v71bvgjsl8cj5kh65m3fziwy8dkvwjzs0kxfrzr87faly";
3196− libraryHaskellDepends = [
3197− array base base-compat bytestring case-insensitive containers
3198− hashable old-time QuickCheck scientific tagged text time
3199− transformers transformers-compat unordered-containers uuid-types
3200− vector
3201− ];
3202− testHaskellDepends = [
3203− base containers QuickCheck tagged uuid-types
3204− ];
3205− homepage = "https://github.com/phadej/qc-instances";
3206− description = "Common quickcheck instances";
3207− license = stdenv.lib.licenses.bsd3;
3208− }) {};
3209− "quickcheck-io" = callPackage
3210− ({ mkDerivation, base, HUnit, QuickCheck }:
3211− mkDerivation {
3212− pname = "quickcheck-io";
3213− version = "0.2.0";
3214− sha256 = "08k4v7pkgjf30pv5j2dfv1gqv6hclxlniyq2sps8zq4zswcr2xzv";
3215− libraryHaskellDepends = [ base HUnit QuickCheck ];
3216− homepage = "https://github.com/hspec/quickcheck-io#readme";
3217− description = "Use HUnit assertions as QuickCheck properties";
3218− license = stdenv.lib.licenses.mit;
3219− }) {};
3220− "quickcheck-unicode" = callPackage
3221− ({ mkDerivation, base, QuickCheck }:
3222− mkDerivation {
3223− pname = "quickcheck-unicode";
3224− version = "1.0.1.0";
3225− sha256 = "0s43s1bzbg3gwsjgm7fpyksd1339f0m26dlw2famxwyzgvm0a80k";
3226− libraryHaskellDepends = [ base QuickCheck ];
3227− homepage = "https://github.com/bos/quickcheck-unicode";
3228− description = "Generator and shrink functions for testing Unicode-related software";
3229− license = stdenv.lib.licenses.bsd2;
3230− }) {};
3231− "random" = callPackage
3232− ({ mkDerivation, base, time }:
3233− mkDerivation {
3234− pname = "random";
3235− version = "1.1";
3236− sha256 = "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p";
3237− revision = "1";
3238− editedCabalFile = "1pv5d7bm2rgap7llp5vjsplrg048gvf0226y0v19gpvdsx7n4rvv";
3239− libraryHaskellDepends = [ base time ];
3240− testHaskellDepends = [ base ];
3241− description = "random number library";
3242− license = stdenv.lib.licenses.bsd3;
3243− }) {};
3244− "reflection" = callPackage
3245− ({ mkDerivation, base, template-haskell }:
3246− mkDerivation {
3247− pname = "reflection";
3248− version = "2.1.4";
3249− sha256 = "0kf4a5ijw6jfnfibjcrpdy9vzh1n6v2pxia8dhyyqdissiwc8bzj";
3250− libraryHaskellDepends = [ base template-haskell ];
3251− homepage = "http://github.com/ekmett/reflection";
3252− description = "Reifies arbitrary terms into types that can be reflected back into terms";
3253− license = stdenv.lib.licenses.bsd3;
3254− }) {};
3255− "regex-base" = callPackage
3256− ({ mkDerivation, array, base, bytestring, containers, mtl }:
3257− mkDerivation {
3258− pname = "regex-base";
3259− version = "0.93.2";
3260− sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10";
3261− libraryHaskellDepends = [ array base bytestring containers mtl ];
3262− homepage = "http://sourceforge.net/projects/lazy-regex";
3263− description = "Replaces/Enhances Text.Regex";
3264− license = stdenv.lib.licenses.bsd3;
3265− }) {};
3266− "regex-posix" = callPackage
3267− ({ mkDerivation, array, base, bytestring, containers, regex-base }:
3268− mkDerivation {
3269− pname = "regex-posix";
3270− version = "0.95.2";
3271− sha256 = "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an";
3272− libraryHaskellDepends = [
3273− array base bytestring containers regex-base
3274− ];
3275− homepage = "http://sourceforge.net/projects/lazy-regex";
3276− description = "Replaces/Enhances Text.Regex";
3277− license = stdenv.lib.licenses.bsd3;
3278− }) {};
3279− "resourcet" = callPackage
3280− ({ mkDerivation, base, containers, exceptions, hspec, mtl
3281− , primitive, transformers, unliftio-core
3282− }:
3283− mkDerivation {
3284− pname = "resourcet";
3285− version = "1.2.1";
3286− sha256 = "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7";
3287− libraryHaskellDepends = [
3288− base containers exceptions mtl primitive transformers unliftio-core
3289− ];
3290− testHaskellDepends = [ base exceptions hspec transformers ];
3291− homepage = "http://github.com/snoyberg/conduit";
3292− description = "Deterministic allocation and freeing of scarce resources";
3293− license = stdenv.lib.licenses.bsd3;
3294− }) {};
3295− "retry" = callPackage
3296− ({ mkDerivation, base, data-default-class, exceptions, ghc-prim
3297− , hedgehog, HUnit, mtl, random, stm, tasty, tasty-hedgehog
3298− , tasty-hunit, time, transformers
3299− }:
3300− mkDerivation {
3301− pname = "retry";
3302− version = "0.7.6.2";
3303− sha256 = "0bmrp2h6pf43hr7sd6562qixw755h2xgszj700157pk2hxcz16ad";
3304− libraryHaskellDepends = [
3305− base data-default-class exceptions ghc-prim random transformers
3306− ];
3307− testHaskellDepends = [
3308− base data-default-class exceptions ghc-prim hedgehog HUnit mtl
3309− random stm tasty tasty-hedgehog tasty-hunit time transformers
3310− ];
3311− homepage = "http://github.com/Soostone/retry";
3312− description = "Retry combinators for monadic actions that may fail";
3313− license = stdenv.lib.licenses.bsd3;
3314− }) {};
3315− "safe" = callPackage
3316− ({ mkDerivation, base, deepseq, QuickCheck }:
3317− mkDerivation {
3318− pname = "safe";
3319− version = "0.3.17";
3320− sha256 = "0p3yaf5slvyz1cyy51jq64c5rlp8yzwim8iy2dlnk42if4gc9ibr";
3321− libraryHaskellDepends = [ base ];
3322− testHaskellDepends = [ base deepseq QuickCheck ];
3323− homepage = "https://github.com/ndmitchell/safe#readme";
3324− description = "Library of safe (exception free) functions";
3325− license = stdenv.lib.licenses.bsd3;
3326− }) {};
3327− "say" = callPackage
3328− ({ mkDerivation, base, bytestring, criterion, hspec, temporary
3329− , text, transformers
3330− }:
3331− mkDerivation {
3332− pname = "say";
3333− version = "0.1.0.0";
3334− sha256 = "0h7w49v9manw7yml2bms11sf6znsfkmdr87c7d8ax8l1xnadnvzj";
3335− libraryHaskellDepends = [ base bytestring text transformers ];
3336− testHaskellDepends = [ base bytestring hspec temporary text ];
3337− benchmarkHaskellDepends = [
3338− base bytestring criterion temporary text
3339− ];
3340− homepage = "https://github.com/fpco/say#readme";
3341− description = "Initial project template from stack";
3342− license = stdenv.lib.licenses.mit;
3343− }) {};
3344− "scientific" = callPackage
3345− ({ mkDerivation, base, binary, bytestring, containers, criterion
3346− , deepseq, hashable, integer-gmp, integer-logarithms, primitive
3347− , QuickCheck, smallcheck, tasty, tasty-ant-xml, tasty-hunit
3348− , tasty-quickcheck, tasty-smallcheck, text
3349− }:
3350− mkDerivation {
3351− pname = "scientific";
3352− version = "0.3.6.2";
3353− sha256 = "03ql2f0ac8bsl524idy9xxa3kxisb2sj3avflzw580j5hzy0m397";
3354− libraryHaskellDepends = [
3355− base binary bytestring containers deepseq hashable integer-gmp
3356− integer-logarithms primitive text
3357− ];
3358− testHaskellDepends = [
3359− base binary bytestring QuickCheck smallcheck tasty tasty-ant-xml
3360− tasty-hunit tasty-quickcheck tasty-smallcheck text
3361− ];
3362− benchmarkHaskellDepends = [ base criterion ];
3363− homepage = "https://github.com/basvandijk/scientific";
3364− description = "Numbers represented using scientific notation";
3365− license = stdenv.lib.licenses.bsd3;
3366− }) {};
3367− "semigroupoids" = callPackage
3368− ({ mkDerivation, base, base-orphans, bifunctors, Cabal
3369− , cabal-doctest, comonad, containers, contravariant, distributive
3370− , doctest, hashable, semigroups, tagged, template-haskell
3371− , transformers, transformers-compat, unordered-containers
3372− }:
3373− mkDerivation {
3374− pname = "semigroupoids";
3375− version = "5.2.2";
3376− sha256 = "17i96y4iqj8clcs090lf6k0ij3j16nj14vsfwz0mm9nd6i4gbpp4";
3377− revision = "4";
3378− editedCabalFile = "0pqfrxzypjq6z8lgdkzq4vhcyqkpk5326hny0r6snpc3gm78r4ij";
3379− setupHaskellDepends = [ base Cabal cabal-doctest ];
3380− libraryHaskellDepends = [
3381− base base-orphans bifunctors comonad containers contravariant
3382− distributive hashable semigroups tagged template-haskell
3383− transformers transformers-compat unordered-containers
3384− ];
3385− testHaskellDepends = [ base doctest ];
3386− homepage = "http://github.com/ekmett/semigroupoids";
3387− description = "Semigroupoids: Category sans id";
3388− license = stdenv.lib.licenses.bsd3;
3389− }) {};
3390− "semigroups" = callPackage
3391− ({ mkDerivation, base }:
3392− mkDerivation {
3393− pname = "semigroups";
3394− version = "0.18.5";
3395− sha256 = "17g29h62g1k51ghhvzkw72zksjgi6vs6bfipkj81pqw1dsprcamb";
3396− libraryHaskellDepends = [ base ];
3397− homepage = "http://github.com/ekmett/semigroups/";
3398− description = "Anything that associates";
3399− license = stdenv.lib.licenses.bsd3;
3400− }) {};
3401− "setenv" = callPackage
3402− ({ mkDerivation, base, unix }:
3403− mkDerivation {
3404− pname = "setenv";
3405− version = "0.1.1.3";
3406− sha256 = "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73";
3407− revision = "1";
3408− editedCabalFile = "0ny4g3kjys0hqg41mnwrsymy1bwhl8l169kis4y4fa58sb06m4f5";
3409− libraryHaskellDepends = [ base unix ];
3410− description = "A cross-platform library for setting environment variables";
3411− license = stdenv.lib.licenses.mit;
3412− }) {};
3413− "shakespeare" = callPackage
3414− ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
3415− , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
3416− , process, scientific, template-haskell, text, time, transformers
3417− , unordered-containers, vector
3418− }:
3419− mkDerivation {
3420− pname = "shakespeare";
3421− version = "2.0.15";
3422− sha256 = "1vk4b19zvwy4mpwaq9z3l3kfmz75gfyf7alhh0y112gspgpccm23";
3423− libraryHaskellDepends = [
3424− aeson base blaze-html blaze-markup bytestring containers directory
3425− exceptions ghc-prim parsec process scientific template-haskell text
3426− time transformers unordered-containers vector
3427− ];
3428− testHaskellDepends = [
3429− aeson base blaze-html blaze-markup bytestring containers directory
3430− exceptions ghc-prim hspec HUnit parsec process template-haskell
3431− text time transformers
3432− ];
3433− homepage = "http://www.yesodweb.com/book/shakespearean-templates";
3434− description = "A toolkit for making compile-time interpolated templates";
3435− license = stdenv.lib.licenses.mit;
3436− }) {};
3437− "silently" = callPackage
3438− ({ mkDerivation, base, deepseq, directory, nanospec, temporary }:
3439− mkDerivation {
3440− pname = "silently";
3441− version = "1.2.5";
3442− sha256 = "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf";
3443− libraryHaskellDepends = [ base deepseq directory ];
3444− testHaskellDepends = [ base deepseq directory nanospec temporary ];
3445− homepage = "https://github.com/hspec/silently";
3446− description = "Prevent or capture writing to stdout and other handles";
3447− license = stdenv.lib.licenses.bsd3;
3448− }) {};
3449− "simple-reflect" = callPackage
3450− ({ mkDerivation, base }:
3451− mkDerivation {
3452− pname = "simple-reflect";
3453− version = "0.3.3";
3454− sha256 = "0ayvrx5cm8n6db21jiyjmk5h93pw7cz1707hih09hlhk9jh5x0h7";
3455− libraryHaskellDepends = [ base ];
3456− homepage = "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions";
3457− description = "Simple reflection of expressions containing variables";
3458− license = stdenv.lib.licenses.bsd3;
3459− }) {};
3460− "simple-sendfile" = callPackage
3461− ({ mkDerivation, base, bytestring, conduit, conduit-extra
3462− , directory, hspec, HUnit, network, process, resourcet, unix
3463− }:
3464− mkDerivation {
3465− pname = "simple-sendfile";
3466− version = "0.2.27";
3467− sha256 = "1bwwqzcm56m2w4ymsa054sxmpbj76h9pvb0jf8zxp8lr41cp51gn";
3468− libraryHaskellDepends = [ base bytestring network unix ];
3469− testHaskellDepends = [
3470− base bytestring conduit conduit-extra directory hspec HUnit network
3471− process resourcet unix
3472− ];
3473− description = "Cross platform library for the sendfile system call";
3474− license = stdenv.lib.licenses.bsd3;
3475− }) {};
3476− "siphash" = callPackage
3477− ({ mkDerivation, base, bytestring, cpu, QuickCheck, test-framework
3478− , test-framework-quickcheck2
3479− }:
3480− mkDerivation {
3481− pname = "siphash";
3482− version = "1.0.3";
3483− sha256 = "1wq5dan30ggjgmravy92ylqjvjv1q7mxrmddr7zc8h6aqr0wx0fg";
3484− revision = "1";
3485− editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn";
3486− enableSeparateDataOutput = true;
3487− libraryHaskellDepends = [ base bytestring cpu ];
3488− testHaskellDepends = [
3489− base bytestring QuickCheck test-framework
3490− test-framework-quickcheck2
3491− ];
3492− homepage = "http://github.com/vincenthz/hs-siphash";
3493− description = "siphash: a fast short input PRF";
3494− license = stdenv.lib.licenses.bsd3;
3495− }) {};
3496− "smallcheck" = callPackage
3497− ({ mkDerivation, base, ghc-prim, logict, mtl, pretty }:
3498− mkDerivation {
3499− pname = "smallcheck";
3500− version = "1.1.5";
3501− sha256 = "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h";
3502− libraryHaskellDepends = [ base ghc-prim logict mtl pretty ];
3503− homepage = "https://github.com/feuerbach/smallcheck";
3504− description = "A property-based testing library";
3505− license = stdenv.lib.licenses.bsd3;
3506− }) {};
3507− "socks" = callPackage
3508− ({ mkDerivation, base, bytestring, cereal, network }:
3509− mkDerivation {
3510− pname = "socks";
3511− version = "0.5.6";
3512− sha256 = "0f44qy74i0n6ll3jym0a2ipafkpw1h67amcpqmj8iq95h21wsqzs";
3513− libraryHaskellDepends = [ base bytestring cereal network ];
3514− homepage = "http://github.com/vincenthz/hs-socks";
3515− description = "Socks proxy (ver 5)";
3516− license = stdenv.lib.licenses.bsd3;
3517− }) {};
3518− "split" = callPackage
3519− ({ mkDerivation, base, QuickCheck }:
3520− mkDerivation {
3521− pname = "split";
3522− version = "0.2.3.3";
3523− sha256 = "04qlmkcyklznl03gsjg95b4nzb6i96gdapqg60rny9szgi7ngk8x";
3524− libraryHaskellDepends = [ base ];
3525− testHaskellDepends = [ base QuickCheck ];
3526− description = "Combinator library for splitting lists";
3527− license = stdenv.lib.licenses.bsd3;
3528− }) {};
3529− "statistics" = callPackage
3530− ({ mkDerivation, aeson, base, base-orphans, binary, deepseq, erf
3531− , HUnit, ieee754, math-functions, monad-par, mwc-random, primitive
3532− , QuickCheck, test-framework, test-framework-hunit
3533− , test-framework-quickcheck2, vector, vector-algorithms
3534− , vector-binary-instances, vector-th-unbox
3535− }:
3536− mkDerivation {
3537− pname = "statistics";
3538− version = "0.14.0.2";
3539− sha256 = "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l";
3540− revision = "2";
3541− editedCabalFile = "1bx70yqkn62ii17fjv3pig4hklrzkqd09zj67zzjiyjzmn04fir3";
3542− libraryHaskellDepends = [
3543− aeson base base-orphans binary deepseq erf math-functions monad-par
3544− mwc-random primitive vector vector-algorithms
3545− vector-binary-instances vector-th-unbox
3546− ];
3547− testHaskellDepends = [
3548− aeson base binary erf HUnit ieee754 math-functions mwc-random
3549− primitive QuickCheck test-framework test-framework-hunit
3550− test-framework-quickcheck2 vector vector-algorithms
3551− ];
3552− doCheck = false;
3553− homepage = "https://github.com/bos/statistics";
3554− description = "A library of statistical types, data, and functions";
3555− license = stdenv.lib.licenses.bsd2;
3556− }) {};
3557− "stm" = callPackage
3558− ({ mkDerivation, array, base }:
3559− mkDerivation {
3560− pname = "stm";
3561− version = "2.4.5.0";
3562− sha256 = "19sr11a0hqikhvf561b38phz6k3zg9s157a0f5ffvghk7wcdpmri";
3563− libraryHaskellDepends = [ array base ];
3564− homepage = "https://wiki.haskell.org/Software_transactional_memory";
3565− description = "Software Transactional Memory";
3566− license = stdenv.lib.licenses.bsd3;
3567− }) {};
3568− "stm-chans" = callPackage
3569− ({ mkDerivation, base, Cabal, stm }:
3570− mkDerivation {
3571− pname = "stm-chans";
3572− version = "3.0.0.4";
3573− sha256 = "0f27sp09yha43xk9q55sc185jyjs5h7gq2dhsyx6bm9kz9dzqi13";
3574− revision = "1";
3575− editedCabalFile = "0v9axxcfszqdmf3dhjxy34ybh22x3r5c48mdnbvjh5i5lp7g7vp2";
3576− setupHaskellDepends = [ base Cabal ];
3577− libraryHaskellDepends = [ base stm ];
3578− homepage = "http://code.haskell.org/~wren/";
3579− description = "Additional types of channels for STM";
3580− license = stdenv.lib.licenses.bsd3;
3581− }) {};
3582− "stm-conduit" = callPackage
3583− ({ mkDerivation, async, base, cereal, cereal-conduit, conduit
3584− , conduit-extra, directory, doctest, exceptions, HUnit, monad-loops
3585− , QuickCheck, resourcet, stm, stm-chans, test-framework
3586− , test-framework-hunit, test-framework-quickcheck2, transformers
3587− , unliftio
3588− }:
3589− mkDerivation {
3590− pname = "stm-conduit";
3591− version = "4.0.0";
3592− sha256 = "0paapljn7nqfzrx889y0n8sszci38mdiaxkgr0bb00ph9246rr7z";
3593− libraryHaskellDepends = [
3594− async base cereal cereal-conduit conduit conduit-extra directory
3595− exceptions monad-loops resourcet stm stm-chans transformers
3596− unliftio
3597− ];
3598− testHaskellDepends = [
3599− base conduit directory doctest HUnit QuickCheck resourcet stm
3600− stm-chans test-framework test-framework-hunit
3601− test-framework-quickcheck2 transformers unliftio
3602− ];
3603− homepage = "https://github.com/cgaebel/stm-conduit";
3604− description = "Introduces conduits to channels, and promotes using conduits concurrently";
3605− license = stdenv.lib.licenses.bsd3;
3606− }) {};
3607− "store" = callPackage
3608− ({ mkDerivation, array, async, base, base-orphans
3609− , base64-bytestring, bifunctors, bytestring, containers
3610− , contravariant, criterion, cryptohash, deepseq, directory
3611− , filepath, free, ghc-prim, hashable, hspec, hspec-smallcheck
3612− , integer-gmp, lifted-base, monad-control, mono-traversable
3613− , network, primitive, resourcet, safe, semigroups, smallcheck
3614− , store-core, syb, template-haskell, text, th-lift
3615− , th-lift-instances, th-orphans, th-reify-many, th-utilities, time
3616− , transformers, unordered-containers, vector, void
3617− }:
3618− mkDerivation {
3619− pname = "store";
3620− version = "0.5.0";
3621− sha256 = "1ivr2pvfja2plhp625wjv9lbd47vmydp33f31ljwdyzqik2j7vij";
3622− libraryHaskellDepends = [
3623− array async base base-orphans base64-bytestring bifunctors
3624− bytestring containers contravariant cryptohash deepseq directory
3625− filepath free ghc-prim hashable hspec hspec-smallcheck integer-gmp
3626− lifted-base monad-control mono-traversable network primitive
3627− resourcet safe semigroups smallcheck store-core syb
3628− template-haskell text th-lift th-lift-instances th-orphans
3629− th-reify-many th-utilities time transformers unordered-containers
3630− vector void
3631− ];
3632− benchmarkHaskellDepends = [
3633− array async base base-orphans base64-bytestring bifunctors
3634− bytestring containers contravariant criterion cryptohash deepseq
3635− directory filepath free ghc-prim hashable hspec hspec-smallcheck
3636− integer-gmp lifted-base monad-control mono-traversable network
3637− primitive resourcet safe semigroups smallcheck store-core syb
3638− template-haskell text th-lift th-lift-instances th-orphans
3639− th-reify-many th-utilities time transformers unordered-containers
3640− vector void
3641− ];
3642− doCheck = false;
3643− homepage = "https://github.com/fpco/store#readme";
3644− description = "Fast binary serialization";
3645− license = stdenv.lib.licenses.mit;
3646− }) {};
3647− "store-core" = callPackage
3648− ({ mkDerivation, base, bytestring, ghc-prim, primitive, text
3649− , transformers
3650− }:
3651− mkDerivation {
3652− pname = "store-core";
3653− version = "0.4.4";
3654− sha256 = "1489ydwmq3vd9lz193m5w277wvb9g74ssc1ncfjdry2g0y6czbjv";
3655− libraryHaskellDepends = [
3656− base bytestring ghc-prim primitive text transformers
3657− ];
3658− homepage = "https://github.com/fpco/store#readme";
3659− description = "Fast and lightweight binary serialization";
3660− license = stdenv.lib.licenses.mit;
3661− }) {};
3662− "streaming-commons" = callPackage
3663− ({ mkDerivation, array, async, base, bytestring, deepseq, directory
3664− , gauge, hspec, network, process, QuickCheck, random, stm, text
3665− , transformers, unix, zlib
3666− }:
3667− mkDerivation {
3668− pname = "streaming-commons";
3669− version = "0.2.1.0";
3670− sha256 = "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq";
3671− libraryHaskellDepends = [
3672− array async base bytestring directory network process random stm
3673− text transformers unix zlib
3674− ];
3675− testHaskellDepends = [
3676− array async base bytestring deepseq hspec network QuickCheck text
3677− unix zlib
3678− ];
3679− benchmarkHaskellDepends = [ base bytestring deepseq gauge text ];
3680− homepage = "https://github.com/fpco/streaming-commons";
3681− description = "Common lower-level functions needed by various streaming data libraries";
3682− license = stdenv.lib.licenses.mit;
3683− }) {};
3684− "stringbuilder" = callPackage
3685− ({ mkDerivation, base, hspec, QuickCheck }:
3686− mkDerivation {
3687− pname = "stringbuilder";
3688− version = "0.5.1";
3689− sha256 = "1fh3csx1wcssn8xyvl4ip4aprh9l4qyz2kk8mgjvqvc0vb2bsy6q";
3690− libraryHaskellDepends = [ base ];
3691− testHaskellDepends = [ base hspec QuickCheck ];
3692− description = "A writer monad for multi-line string literals";
3693− license = stdenv.lib.licenses.mit;
3694− }) {};
3695− "syb" = callPackage
3696− ({ mkDerivation, base, containers, HUnit, mtl }:
3697− mkDerivation {
3698− pname = "syb";
3699− version = "0.7";
3700− sha256 = "1da2zz7gqm4xbkx5vpd74dayx1svaxyl145fl14mq15lbb77sxdq";
3701− libraryHaskellDepends = [ base ];
3702− testHaskellDepends = [ base containers HUnit mtl ];
3703− homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
3704− description = "Scrap Your Boilerplate";
3705− license = stdenv.lib.licenses.bsd3;
3706− }) {};
3707− "tagged" = callPackage
3708− ({ mkDerivation, base, deepseq, template-haskell, transformers
3709− , transformers-compat
3710− }:
3711− mkDerivation {
3712− pname = "tagged";
3713− version = "0.8.5";
3714− sha256 = "16cdzh0bw16nvjnyyy5j9s60malhz4nnazw96vxb0xzdap4m2z74";
3715− revision = "2";
3716− editedCabalFile = "0r2knfcq0b4s652vlvlnfwxlc2mkc2ra9kl8bp4zdn1awmfy0ia5";
3717− libraryHaskellDepends = [
3718− base deepseq template-haskell transformers transformers-compat
3719− ];
3720− homepage = "http://github.com/ekmett/tagged";
3721− description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
3722− license = stdenv.lib.licenses.bsd3;
3723− }) {};
3724− "tar" = callPackage
3725− ({ mkDerivation, array, base, bytestring, containers, criterion
3726− , deepseq, directory, filepath, time
3727− }:
3728− mkDerivation {
3729− pname = "tar";
3730− version = "0.5.1.0";
3731− sha256 = "0s2brvaxg5fki2jdkccmnpssiy6a3wjh24p6a3dkkdvjcixnk7f8";
3732− configureFlags = [ "-f-old-time" ];
3733− libraryHaskellDepends = [
3734− array base bytestring containers deepseq directory filepath time
3735− ];
3736− benchmarkHaskellDepends = [
3737− array base bytestring containers criterion deepseq directory
3738− filepath time
3739− ];
3740− doCheck = false;
3741− description = "Reading, writing and manipulating \".tar\" archive files.";
3742− license = stdenv.lib.licenses.bsd3;
3743− }) {};
3744− "tasty" = callPackage
3745− ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl
3746− , optparse-applicative, stm, tagged, unbounded-delays, unix
3747− , wcwidth
3748− }:
3749− mkDerivation {
3750− pname = "tasty";
3751− version = "1.1.0.2";
3752− sha256 = "1q3hsy1a6q8xng3m04hp1m10bwamihani30zi25cjhkhmyl4ads7";
3753− libraryHaskellDepends = [
3754− ansi-terminal async base clock containers mtl optparse-applicative
3755− stm tagged unbounded-delays unix wcwidth
3756− ];
3757− homepage = "https://github.com/feuerbach/tasty";
3758− description = "Modern and extensible testing framework";
3759− license = stdenv.lib.licenses.mit;
3760− }) {};
3761− "tasty-ant-xml" = callPackage
3762− ({ mkDerivation, base, containers, directory, filepath
3763− , generic-deriving, ghc-prim, mtl, stm, tagged, tasty, transformers
3764− , xml
3765− }:
3766− mkDerivation {
3767− pname = "tasty-ant-xml";
3768− version = "1.1.4";
3769− sha256 = "0v0gsb90kh6hwlgxbclzawsskywc6yf7n8xhiifia97l4y0yx2m8";
3770− libraryHaskellDepends = [
3771− base containers directory filepath generic-deriving ghc-prim mtl
3772− stm tagged tasty transformers xml
3773− ];
3774− homepage = "http://github.com/ocharles/tasty-ant-xml";
3775− description = "Render tasty output to XML for Jenkins";
3776− license = stdenv.lib.licenses.bsd3;
3777− }) {};
3778− "tasty-expected-failure" = callPackage
3779− ({ mkDerivation, base, tagged, tasty }:
3780− mkDerivation {
3781− pname = "tasty-expected-failure";
3782− version = "0.11.1.1";
3783− sha256 = "1i2s809m644b7hgiblqay9j364r3fjj1rwbrahsn1pgr5q6mr6ji";
3784− libraryHaskellDepends = [ base tagged tasty ];
3785− homepage = "http://github.com/nomeata/tasty-expected-failure";
3786− description = "Mark tasty tests as failure expected";
3787− license = stdenv.lib.licenses.mit;
3788− }) {};
3789− "tasty-golden" = callPackage
3790− ({ mkDerivation, async, base, bytestring, containers, deepseq
3791− , directory, filepath, mtl, optparse-applicative, process, tagged
3792− , tasty, tasty-hunit, temporary, temporary-rc
3793− }:
3794− mkDerivation {
3795− pname = "tasty-golden";
3796− version = "2.3.2";
3797− sha256 = "0k3ibjhjc9vcwzrjnl4rnwvfm8l81q347nb7dgvcib6n5wm3s404";
3798− libraryHaskellDepends = [
3799− async base bytestring containers deepseq directory filepath mtl
3800− optparse-applicative process tagged tasty temporary
3801− ];
3802− testHaskellDepends = [
3803− base directory filepath process tasty tasty-hunit temporary-rc
3804− ];
3805− homepage = "https://github.com/feuerbach/tasty-golden";
3806− description = "Golden tests support for tasty";
3807− license = stdenv.lib.licenses.mit;
3808− }) {};
3809− "tasty-hedgehog" = callPackage
3810− ({ mkDerivation, base, hedgehog, tagged, tasty
3811− , tasty-expected-failure
3812− }:
3813− mkDerivation {
3814− pname = "tasty-hedgehog";
3815− version = "0.2.0.0";
3816− sha256 = "10m1akbiblnjq9ljk469725k30b254d36d267rk51z2f171py42s";
3817− revision = "4";
3818− editedCabalFile = "04d7lhn0dlqna0pqz7wxmz2y6vq7qar2m2g432z38cvm5na9w4y0";
3819− libraryHaskellDepends = [ base hedgehog tagged tasty ];
3820− testHaskellDepends = [
3821− base hedgehog tasty tasty-expected-failure
3822− ];
3823− homepage = "https://github.com/qfpl/tasty-hedgehog";
3824− description = "Integration for tasty and hedgehog";
3825− license = stdenv.lib.licenses.bsd3;
3826− }) {};
3827− "tasty-hunit" = callPackage
3828− ({ mkDerivation, base, call-stack, tasty }:
3829− mkDerivation {
3830− pname = "tasty-hunit";
3831− version = "0.10.0.1";
3832− sha256 = "0j3hgga6c3s8h5snzivb8a75h96207ia2rlbxzj07xbf4zpkp44g";
3833− libraryHaskellDepends = [ base call-stack tasty ];
3834− homepage = "https://github.com/feuerbach/tasty";
3835− description = "HUnit support for the Tasty test framework";
3836− license = stdenv.lib.licenses.mit;
3837− }) {};
3838− "tasty-kat" = callPackage
3839− ({ mkDerivation, base, bytestring, mtl, tasty, tasty-hunit
3840− , tasty-quickcheck
3841− }:
3842− mkDerivation {
3843− pname = "tasty-kat";
3844− version = "0.0.3";
3845− sha256 = "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7";
3846− libraryHaskellDepends = [ base bytestring tasty ];
3847− testHaskellDepends = [
3848− base bytestring mtl tasty tasty-hunit tasty-quickcheck
3849− ];
3850− homepage = "https://github.com/vincenthz/tasty-kat";
3851− description = "Known Answer Tests (KAT) framework for tasty";
3852− license = stdenv.lib.licenses.mit;
3853− }) {};
3854− "tasty-quickcheck" = callPackage
3855− ({ mkDerivation, base, optparse-applicative, pcre-light, QuickCheck
3856− , random, tagged, tasty, tasty-hunit
3857− }:
3858− mkDerivation {
3859− pname = "tasty-quickcheck";
3860− version = "0.10";
3861− sha256 = "0vr6szbbz3s5461i0zr8zpq347zfvidfzv5gf3xwxhm0yk731z8h";
3862− revision = "1";
3863− editedCabalFile = "1ndkkywcqgb2wj339vgckjv5915da5kd4ixlkaww9fsba3qsrnwx";
3864− libraryHaskellDepends = [
3865− base optparse-applicative QuickCheck random tagged tasty
3866− ];
3867− testHaskellDepends = [ base pcre-light tasty tasty-hunit ];
3868− homepage = "https://github.com/feuerbach/tasty";
3869− description = "QuickCheck support for the Tasty test framework";
3870− license = stdenv.lib.licenses.mit;
3871− }) {};
3872− "tasty-smallcheck" = callPackage
3873− ({ mkDerivation, async, base, smallcheck, tagged, tasty }:
3874− mkDerivation {
3875− pname = "tasty-smallcheck";
3876− version = "0.8.1";
3877− sha256 = "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri";
3878− libraryHaskellDepends = [ async base smallcheck tagged tasty ];
3879− homepage = "http://documentup.com/feuerbach/tasty";
3880− description = "SmallCheck support for the Tasty test framework";
3881− license = stdenv.lib.licenses.mit;
3882− }) {};
3883− "tasty-th" = callPackage
3884− ({ mkDerivation, base, haskell-src-exts, tasty, tasty-hunit
3885− , template-haskell
3886− }:
3887− mkDerivation {
3888− pname = "tasty-th";
3889− version = "0.1.7";
3890− sha256 = "0b2ivrw2257m4cy4rjnkwqlarh83j1y3zywnmaqqqbvy667sqnj3";
3891− libraryHaskellDepends = [
3892− base haskell-src-exts tasty template-haskell
3893− ];
3894− testHaskellDepends = [ base tasty-hunit ];
3895− homepage = "http://github.com/bennofs/tasty-th";
3896− description = "Automatic tasty test case discovery using TH";
3897− license = stdenv.lib.licenses.bsd3;
3898− }) {};
3899− "temporary" = callPackage
3900− ({ mkDerivation, base, base-compat, directory, exceptions, filepath
3901− , random, tasty, tasty-hunit, transformers, unix
3902− }:
3903− mkDerivation {
3904− pname = "temporary";
3905− version = "1.3";
3906− sha256 = "144qhwfwg37l3k313raf4ssiz16jbgwlm1nf4flgqpsbd69jji4c";
3907− libraryHaskellDepends = [
3908− base directory exceptions filepath random transformers unix
3909− ];
3910− testHaskellDepends = [
3911− base base-compat directory filepath tasty tasty-hunit unix
3912− ];
3913− homepage = "https://github.com/feuerbach/temporary";
3914− description = "Portable temporary file and directory support";
3915− license = stdenv.lib.licenses.bsd3;
3916− }) {};
3917− "temporary-rc" = callPackage
3918− ({ mkDerivation, base, directory, exceptions, filepath
3919− , transformers, unix
3920− }:
3921− mkDerivation {
3922− pname = "temporary-rc";
3923− version = "1.2.0.3";
3924− sha256 = "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs";
3925− libraryHaskellDepends = [
3926− base directory exceptions filepath transformers unix
3927− ];
3928− homepage = "http://www.github.com/feuerbach/temporary";
3929− description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal";
3930− license = stdenv.lib.licenses.bsd3;
3931− }) {};
3932− "terminal-size" = callPackage
3933− ({ mkDerivation, base }:
3934− mkDerivation {
3935− pname = "terminal-size";
3936− version = "0.3.2.1";
3937− sha256 = "0n4nvj3dbj9gxfnprgish45asn9z4dipv9j98s8i7g2n8yb3xhmm";
3938− libraryHaskellDepends = [ base ];
3939− description = "Get terminal window height and width";
3940− license = stdenv.lib.licenses.bsd3;
3941− }) {};
3942− "test-framework" = callPackage
3943− ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, containers
3944− , hostname, old-locale, random, regex-posix, time, xml
3945− }:
3946− mkDerivation {
3947− pname = "test-framework";
3948− version = "0.8.2.0";
3949− sha256 = "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm";
3950− libraryHaskellDepends = [
3951− ansi-terminal ansi-wl-pprint base containers hostname old-locale
3952− random regex-posix time xml
3953− ];
3954− doCheck = false;
3955− homepage = "http://haskell.github.io/test-framework/";
3956− description = "Framework for running and organising tests, with HUnit and QuickCheck support";
3957− license = stdenv.lib.licenses.bsd3;
3958− }) {};
3959− "test-framework-hunit" = callPackage
3960− ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework
3961− }:
3962− mkDerivation {
3963− pname = "test-framework-hunit";
3964− version = "0.3.0.2";
3965− sha256 = "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm";
3966− revision = "3";
3967− editedCabalFile = "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z";
3968− libraryHaskellDepends = [
3969− base extensible-exceptions HUnit test-framework
3970− ];
3971− homepage = "https://batterseapower.github.io/test-framework/";
3972− description = "HUnit support for the test-framework package";
3973− license = stdenv.lib.licenses.bsd3;
3974− }) {};
3975− "test-framework-quickcheck2" = callPackage
3976− ({ mkDerivation, base, extensible-exceptions, QuickCheck, random
3977− , test-framework
3978− }:
3979− mkDerivation {
3980− pname = "test-framework-quickcheck2";
3981− version = "0.3.0.4";
3982− sha256 = "0vj834337r6jzr3258cv68ly2sv5999mklpsrfngyk51kywsyqyp";
3983− revision = "1";
3984− editedCabalFile = "147ngmfdkskyg7mwsp5w73a4dbx3rp5s38bci3z03kn1m093lxff";
3985− libraryHaskellDepends = [
3986− base extensible-exceptions QuickCheck random test-framework
3987− ];
3988− homepage = "http://haskell.github.io/test-framework/";
3989− description = "QuickCheck-2 support for the test-framework package";
3990− license = stdenv.lib.licenses.bsd3;
3991− }) {};
3992− "test-framework-th" = callPackage
3993− ({ mkDerivation, base, haskell-src-exts, language-haskell-extract
3994− , regex-posix, template-haskell, test-framework
3995− }:
3996− mkDerivation {
3997− pname = "test-framework-th";
3998− version = "0.2.4";
3999− sha256 = "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b";
4000− libraryHaskellDepends = [
4001− base haskell-src-exts language-haskell-extract regex-posix
4002− template-haskell test-framework
4003− ];
4004− homepage = "http://github.com/finnsson/test-generator";
4005− description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell";
4006− license = stdenv.lib.licenses.bsd3;
4007− }) {};
4008− "text" = callPackage
4009− ({ mkDerivation, array, base, binary, bytestring, deepseq, ghc-prim
4010− , integer-gmp
4011− }:
4012− mkDerivation {
4013− pname = "text";
4014− version = "1.2.3.0";
4015− sha256 = "06iir7q99rnffzxi8gagn8w1k9m49368sbidgz634fv1gxib3q10";
4016− configureFlags = [ "-f-integer-simple" ];
4017− libraryHaskellDepends = [
4018− array base binary bytestring deepseq ghc-prim integer-gmp
4019− ];
4020− doCheck = false;
4021− homepage = "https://github.com/haskell/text";
4022− description = "An efficient packed Unicode text type";
4023− license = stdenv.lib.licenses.bsd2;
4024− }) {};
4025− "text-icu" = callPackage
4026− ({ mkDerivation, array, base, bytestring, deepseq, directory
4027− , ghc-prim, HUnit, icu, QuickCheck, random, test-framework
4028− , test-framework-hunit, test-framework-quickcheck2, text
4029− }:
4030− mkDerivation {
4031− pname = "text-icu";
4032− version = "0.7.0.1";
4033− sha256 = "0y3z5jda7v2iyll2148ivxfd2yhp27d3ryxrspp0cdq394klqxp2";
4034− libraryHaskellDepends = [ base bytestring deepseq text ];
4035− librarySystemDepends = [ icu ];
4036− testHaskellDepends = [
4037− array base bytestring deepseq directory ghc-prim HUnit QuickCheck
4038− random test-framework test-framework-hunit
4039− test-framework-quickcheck2 text
4040− ];
4041− doCheck = false;
4042− homepage = "https://github.com/bos/text-icu";
4043− description = "Bindings to the ICU library";
4044− license = stdenv.lib.licenses.bsd3;
4045− }) {inherit (pkgs) icu;};
4046− "text-short" = callPackage
4047− ({ mkDerivation, base, binary, bytestring, deepseq, ghc-prim
4048− , hashable, text
4049− }:
4050− mkDerivation {
4051− pname = "text-short";
4052− version = "0.1.2";
4053− sha256 = "0rqiwgjkgyfy8596swl0s0x2jqk6ddh2h02qxa32az2cs5kviwmk";
4054− libraryHaskellDepends = [
4055− base binary bytestring deepseq ghc-prim hashable text
4056− ];
4057− doCheck = false;
4058− description = "Memory-efficient representation of Unicode text strings";
4059− license = stdenv.lib.licenses.bsd3;
4060− }) {};
4061− "tf-random" = callPackage
4062− ({ mkDerivation, base, primitive, random, time }:
4063− mkDerivation {
4064− pname = "tf-random";
4065− version = "0.5";
4066− sha256 = "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f";
4067− libraryHaskellDepends = [ base primitive random time ];
4068− description = "High-quality splittable pseudorandom number generator";
4069− license = stdenv.lib.licenses.bsd3;
4070− }) {};
4071− "th-abstraction" = callPackage
4072− ({ mkDerivation, base, containers, ghc-prim, template-haskell }:
4073− mkDerivation {
4074− pname = "th-abstraction";
4075− version = "0.2.8.0";
4076− sha256 = "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya";
4077− revision = "1";
4078− editedCabalFile = "0yr4bj9ypbls0ysmwrgn2nsjb1xpsb12bjaiwbkzp6nf3kljwnnv";
4079− libraryHaskellDepends = [
4080− base containers ghc-prim template-haskell
4081− ];
4082− testHaskellDepends = [ base containers template-haskell ];
4083− homepage = "https://github.com/glguy/th-abstraction";
4084− description = "Nicer interface for reified information about data types";
4085− license = stdenv.lib.licenses.isc;
4086− }) {};
4087− "th-expand-syns" = callPackage
4088− ({ mkDerivation, base, containers, syb, template-haskell }:
4089− mkDerivation {
4090− pname = "th-expand-syns";
4091− version = "0.4.4.0";
4092− sha256 = "01prlvh3py5hq5ccjidfyp9ixq2zd88dkbsidyjrpkja6v8m43yc";
4093− libraryHaskellDepends = [ base containers syb template-haskell ];
4094− testHaskellDepends = [ base template-haskell ];
4095− homepage = "https://github.com/DanielSchuessler/th-expand-syns";
4096− description = "Expands type synonyms in Template Haskell ASTs";
4097− license = stdenv.lib.licenses.bsd3;
4098− }) {};
4099− "th-lift" = callPackage
4100− ({ mkDerivation, base, ghc-prim, template-haskell, th-abstraction
4101− }:
4102− mkDerivation {
4103− pname = "th-lift";
4104− version = "0.7.10";
4105− sha256 = "13c89mr9g4jwrmqxx882ygr1lkvj1chw29p80qv2f3g5wnhlgkmr";
4106− libraryHaskellDepends = [
4107− base ghc-prim template-haskell th-abstraction
4108− ];
4109− testHaskellDepends = [ base ghc-prim template-haskell ];
4110− homepage = "http://github.com/mboes/th-lift";
4111− description = "Derive Template Haskell's Lift class for datatypes";
4112− license = stdenv.lib.licenses.bsd3;
4113− }) {};
4114− "th-lift-instances" = callPackage
4115− ({ mkDerivation, base, bytestring, containers, QuickCheck
4116− , template-haskell, text, th-lift, vector
4117− }:
4118− mkDerivation {
4119− pname = "th-lift-instances";
4120− version = "0.1.11";
4121− sha256 = "1f56cp6ckcalld5jchv0kxpjkwcsixd7smd0g7r8cg67ppx6m90x";
4122− libraryHaskellDepends = [
4123− base bytestring containers template-haskell text th-lift vector
4124− ];
4125− testHaskellDepends = [
4126− base bytestring containers QuickCheck template-haskell text vector
4127− ];
4128− homepage = "http://github.com/bennofs/th-lift-instances/";
4129− description = "Lift instances for template-haskell for common data types";
4130− license = stdenv.lib.licenses.bsd3;
4131− }) {};
4132− "th-orphans" = callPackage
4133− ({ mkDerivation, base, hspec, hspec-discover, mtl, template-haskell
4134− , th-lift, th-lift-instances, th-reify-many
4135− }:
4136− mkDerivation {
4137− pname = "th-orphans";
4138− version = "0.13.6";
4139− sha256 = "0sfl3pn9kq9da3ji3lsgzgzy82vz6yvsg80dmakc1jvk7awycibp";
4140− libraryHaskellDepends = [
4141− base mtl template-haskell th-lift th-lift-instances th-reify-many
4142− ];
4143− testHaskellDepends = [ base hspec template-haskell ];
4144− testToolDepends = [ hspec-discover ];
4145− description = "Orphan instances for TH datatypes";
4146− license = stdenv.lib.licenses.bsd3;
4147− }) {};
4148− "th-reify-many" = callPackage
4149− ({ mkDerivation, base, containers, mtl, safe, template-haskell
4150− , th-expand-syns
4151− }:
4152− mkDerivation {
4153− pname = "th-reify-many";
4154− version = "0.1.8";
4155− sha256 = "0hzy6hvhvcd6i60vx5cp2b7ggmnnjh9rx4h8bm8xw4grglcaxjnf";
4156− libraryHaskellDepends = [
4157− base containers mtl safe template-haskell th-expand-syns
4158− ];
4159− testHaskellDepends = [ base template-haskell ];
4160− homepage = "http://github.com/mgsloan/th-reify-many";
4161− description = "Recurseively reify template haskell datatype info";
4162− license = stdenv.lib.licenses.bsd3;
4163− }) {};
4164− "th-utilities" = callPackage
4165− ({ mkDerivation, base, bytestring, containers, directory, filepath
4166− , hspec, primitive, syb, template-haskell, text, th-orphans, vector
4167− }:
4168− mkDerivation {
4169− pname = "th-utilities";
4170− version = "0.2.0.1";
4171− sha256 = "1mki2s821b1zpdn5463qz5vl3kvxxam90iax1n6vznf0d7p4rik5";
4172− libraryHaskellDepends = [
4173− base bytestring containers directory filepath primitive syb
4174− template-haskell text th-orphans
4175− ];
4176− testHaskellDepends = [
4177− base bytestring containers directory filepath hspec primitive syb
4178− template-haskell text th-orphans vector
4179− ];
4180− homepage = "https://github.com/fpco/th-utilities#readme";
4181− description = "Collection of useful functions for use with Template Haskell";
4182− license = stdenv.lib.licenses.mit;
4183− }) {};
4184− "time-locale-compat" = callPackage
4185− ({ mkDerivation, base, time }:
4186− mkDerivation {
4187− pname = "time-locale-compat";
4188− version = "0.1.1.4";
4189− sha256 = "0qmyxf8nz0q6brvplc4s2wsb1bbpq7kb65b69m503g9bgranblgj";
4190− configureFlags = [ "-f-old-locale" ];
4191− libraryHaskellDepends = [ base time ];
4192− homepage = "https://github.com/khibino/haskell-time-locale-compat";
4193− description = "Compatibile module for time-format locale";
4194− license = stdenv.lib.licenses.bsd3;
4195− }) {};
4196− "tls" = callPackage
4197− ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring
4198− , cereal, criterion, cryptonite, data-default-class, hourglass
4199− , memory, mtl, network, QuickCheck, tasty, tasty-quickcheck
4200− , transformers, x509, x509-store, x509-validation
4201− }:
4202− mkDerivation {
4203− pname = "tls";
4204− version = "1.4.1";
4205− sha256 = "1y083724mym28n6xfaz7pcc7zqxdhjpaxpbvzxfbs25qq2px3smv";
4206− libraryHaskellDepends = [
4207− asn1-encoding asn1-types async base bytestring cereal cryptonite
4208− data-default-class memory mtl network transformers x509 x509-store
4209− x509-validation
4210− ];
4211− testHaskellDepends = [
4212− asn1-types base bytestring cereal cryptonite data-default-class
4213− hourglass mtl QuickCheck tasty tasty-quickcheck x509
4214− x509-validation
4215− ];
4216− benchmarkHaskellDepends = [
4217− asn1-types base bytestring criterion cryptonite data-default-class
4218− hourglass mtl QuickCheck tasty-quickcheck x509 x509-validation
4219− ];
4220− doCheck = false;
4221− homepage = "http://github.com/vincenthz/hs-tls";
4222− description = "TLS/SSL protocol native implementation (Server and Client)";
4223− license = stdenv.lib.licenses.bsd3;
4224− }) {};
4225− "tls-session-manager" = callPackage
4226− ({ mkDerivation, auto-update, base, clock, psqueues, tls }:
4227− mkDerivation {
4228− pname = "tls-session-manager";
4229− version = "0.0.0.2";
4230− sha256 = "0rvmln545vghsx8zhxp44f0f6pzma8cylarmfhhysy55ipywr1n5";
4231− libraryHaskellDepends = [ auto-update base clock psqueues tls ];
4232− description = "In-memory TLS session manager";
4233− license = stdenv.lib.licenses.bsd3;
4234− }) {};
4235− "transformers-base" = callPackage
4236− ({ mkDerivation, base, base-orphans, stm, transformers
4237− , transformers-compat
4238− }:
4239− mkDerivation {
4240− pname = "transformers-base";
4241− version = "0.4.5.2";
4242− sha256 = "1s256bi0yh0x2hp2gwd30f3mg1cv53zz397dv1yhfsnfzmihrj6h";
4243− libraryHaskellDepends = [
4244− base base-orphans stm transformers transformers-compat
4245− ];
4246− homepage = "https://github.com/mvv/transformers-base";
4247− description = "Lift computations from the bottom of a transformer stack";
4248− license = stdenv.lib.licenses.bsd3;
4249− }) {};
4250− "transformers-compat" = callPackage
4251− ({ mkDerivation, base, ghc-prim, transformers }:
4252− mkDerivation {
4253− pname = "transformers-compat";
4254− version = "0.6.2";
4255− sha256 = "1gp4a8kvniwgm8947ghb4iwv4b7wd6ry4kvv4nfnym4agf5j41nw";
4256− configureFlags = [ "-ffive-three" ];
4257− libraryHaskellDepends = [ base ghc-prim transformers ];
4258− homepage = "http://github.com/ekmett/transformers-compat/";
4259− description = "A small compatibility shim for the transformers library";
4260− license = stdenv.lib.licenses.bsd3;
4261− }) {};
4262− "typed-process" = callPackage
4263− ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec
4264− , process, stm, temporary, transformers
4265− }:
4266− mkDerivation {
4267− pname = "typed-process";
4268− version = "0.2.2.0";
4269− sha256 = "0c6gvgvjyncbni9a5bvpbglknd4yclr3d3hfg9bhgahmkj40dva2";
4270− libraryHaskellDepends = [
4271− async base bytestring process stm transformers
4272− ];
4273− testHaskellDepends = [
4274− async base base64-bytestring bytestring hspec process stm temporary
4275− transformers
4276− ];
4277− homepage = "https://haskell-lang.org/library/typed-process";
4278− description = "Run external processes, with strong typing of streams";
4279− license = stdenv.lib.licenses.mit;
4280− }) {};
4281− "unbounded-delays" = callPackage
4282− ({ mkDerivation, base }:
4283− mkDerivation {
4284− pname = "unbounded-delays";
4285− version = "0.1.1.0";
4286− sha256 = "1ir9fghbrc214c97bwafk5ck6cacxz1pdnq4i18p604d1b8zg9wa";
4287− libraryHaskellDepends = [ base ];
4288− homepage = "https://github.com/basvandijk/unbounded-delays";
4289− description = "Unbounded thread delays and timeouts";
4290− license = stdenv.lib.licenses.bsd3;
4291− }) {};
4292− "unix-compat" = callPackage
4293− ({ mkDerivation, base, unix }:
4294− mkDerivation {
4295− pname = "unix-compat";
4296− version = "0.5.0.1";
4297− sha256 = "1gdf3h2knbymkivm784vq51mbcyj5y91r480awyxj5cw8gh9kwn2";
4298− libraryHaskellDepends = [ base unix ];
4299− homepage = "http://github.com/jystic/unix-compat";
4300− description = "Portable POSIX-compatibility layer";
4301− license = stdenv.lib.licenses.bsd3;
4302− }) {};
4303− "unix-time" = callPackage
4304− ({ mkDerivation, base, binary, bytestring, doctest, hspec
4305− , old-locale, old-time, QuickCheck, time
4306− }:
4307− mkDerivation {
4308− pname = "unix-time";
4309− version = "0.3.8";
4310− sha256 = "051slgpid5cxiaw203ky0ql3823h28fcjs08axkzd4265wrvv8fw";
4311− libraryHaskellDepends = [ base binary bytestring old-time ];
4312− testHaskellDepends = [
4313− base bytestring doctest hspec old-locale old-time QuickCheck time
4314− ];
4315− description = "Unix time parser/formatter and utilities";
4316− license = stdenv.lib.licenses.bsd3;
4317− }) {};
4318− "unliftio" = callPackage
4319− ({ mkDerivation, async, base, deepseq, directory, filepath, hspec
4320− , process, stm, time, transformers, unix, unliftio-core
4321− }:
4322− mkDerivation {
4323− pname = "unliftio";
4324− version = "0.2.7.0";
4325− sha256 = "0qql93lq5w7qghl454cc3s1i8v1jb4h08n82fqkw0kli4g3g9njs";
4326− libraryHaskellDepends = [
4327− async base deepseq directory filepath process stm time transformers
4328− unix unliftio-core
4329− ];
4330− testHaskellDepends = [
4331− async base deepseq directory filepath hspec process stm time
4332− transformers unix unliftio-core
4333− ];
4334− homepage = "https://github.com/fpco/unliftio/tree/master/unliftio#readme";
4335− description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
4336− license = stdenv.lib.licenses.mit;
4337− }) {};
4338− "unliftio-core" = callPackage
4339− ({ mkDerivation, base, transformers }:
4340− mkDerivation {
4341− pname = "unliftio-core";
4342− version = "0.1.1.0";
4343− sha256 = "1193fplsjm1lcr05xwvkj1rsyzx74i755f6kw3ikmxbsv0bv0l3m";
4344− revision = "1";
4345− editedCabalFile = "16bjwcsaghqqmyi69rq65dn3ydifyfaabq3ns37apdm00mwqbcj2";
4346− libraryHaskellDepends = [ base transformers ];
4347− homepage = "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme";
4348− description = "The MonadUnliftIO typeclass for unlifting monads to IO";
4349− license = stdenv.lib.licenses.mit;
4350− }) {};
4351− "unordered-containers" = callPackage
4352− ({ mkDerivation, base, ChasingBottoms, containers, deepseq
4353− , hashable, HUnit, QuickCheck, test-framework, test-framework-hunit
4354− , test-framework-quickcheck2
4355− }:
4356− mkDerivation {
4357− pname = "unordered-containers";
4358− version = "0.2.9.0";
4359− sha256 = "0l4264p0av12cc6i8gls13q8y27x12z2ar4x34n3x59y99fcnc37";
4360− libraryHaskellDepends = [ base deepseq hashable ];
4361− testHaskellDepends = [
4362− base ChasingBottoms containers hashable HUnit QuickCheck
4363− test-framework test-framework-hunit test-framework-quickcheck2
4364− ];
4365− homepage = "https://github.com/tibbe/unordered-containers";
4366− description = "Efficient hashing-based container types";
4367− license = stdenv.lib.licenses.bsd3;
4368− }) {};
4369− "utf8-string" = callPackage
4370− ({ mkDerivation, base, bytestring }:
4371− mkDerivation {
4372− pname = "utf8-string";
4373− version = "1.0.1.1";
4374− sha256 = "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv";
4375− revision = "3";
4376− editedCabalFile = "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38";
4377− libraryHaskellDepends = [ base bytestring ];
4378− homepage = "http://github.com/glguy/utf8-string/";
4379− description = "Support for reading and writing UTF8 Strings";
4380− license = stdenv.lib.licenses.bsd3;
4381− }) {};
4382− "uuid-types" = callPackage
4383− ({ mkDerivation, base, binary, bytestring, deepseq, hashable
4384− , random, text
4385− }:
4386− mkDerivation {
4387− pname = "uuid-types";
4388− version = "1.0.3";
4389− sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj";
4390− revision = "1";
4391− editedCabalFile = "0iwwj07gp28g357hv76k4h8pvlzamvchnw003cv3qk778pcpx201";
4392− libraryHaskellDepends = [
4393− base binary bytestring deepseq hashable random text
4394− ];
4395− doCheck = false;
4396− homepage = "https://github.com/aslatter/uuid";
4397− description = "Type definitions for Universally Unique Identifiers";
4398− license = stdenv.lib.licenses.bsd3;
4399− }) {};
4400− "vault" = callPackage
4401− ({ mkDerivation, base, containers, hashable, semigroups
4402− , unordered-containers
4403− }:
4404− mkDerivation {
4405− pname = "vault";
4406− version = "0.3.1.1";
4407− sha256 = "0a1fir7gvbj2w894daac5c4c3gy36r6c74yci78lb2nvk431b95j";
4408− libraryHaskellDepends = [
4409− base containers hashable semigroups unordered-containers
4410− ];
4411− homepage = "https://github.com/HeinrichApfelmus/vault";
4412− description = "a persistent store for values of arbitrary types";
4413− license = stdenv.lib.licenses.bsd3;
4414− }) {};
4415− "vector" = callPackage
4416− ({ mkDerivation, base, deepseq, ghc-prim, primitive }:
4417− mkDerivation {
4418− pname = "vector";
4419− version = "0.12.0.1";
4420− sha256 = "0yrx2ypiaxahvaz84af5bi855hd3107kxkbqc8km29nsp5wyw05i";
4421− revision = "3";
4422− editedCabalFile = "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x";
4423− libraryHaskellDepends = [ base deepseq ghc-prim primitive ];
4424− doCheck = false;
4425− homepage = "https://github.com/haskell/vector";
4426− description = "Efficient Arrays";
4427− license = stdenv.lib.licenses.bsd3;
4428− }) {};
4429− "vector-algorithms" = callPackage
4430− ({ mkDerivation, base, bytestring, containers, primitive
4431− , QuickCheck, vector
4432− }:
4433− mkDerivation {
4434− pname = "vector-algorithms";
4435− version = "0.7.0.1";
4436− sha256 = "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd";
4437− revision = "1";
4438− editedCabalFile = "1996aj239vasr4hd5c0pi9i0bd08r6clzr76nqvf3hc5kjs7vml2";
4439− isLibrary = true;
4440− isExecutable = true;
4441− libraryHaskellDepends = [ base bytestring primitive vector ];
4442− testHaskellDepends = [
4443− base bytestring containers QuickCheck vector
4444− ];
4445− doCheck = false;
4446− homepage = "http://code.haskell.org/~dolio/";
4447− description = "Efficient algorithms for vector arrays";
4448− license = stdenv.lib.licenses.bsd3;
4449− }) {};
4450− "vector-binary-instances" = callPackage
4451− ({ mkDerivation, base, binary, bytestring, criterion, deepseq
4452− , tasty, tasty-quickcheck, vector
4453− }:
4454− mkDerivation {
4455− pname = "vector-binary-instances";
4456− version = "0.2.4";
4457− sha256 = "1y236jb72iab9ska1mc48z6yb0xgwmj45laaqdyjxksd84z7hbrb";
4458− revision = "1";
4459− editedCabalFile = "196frl4akhfk7xf1nxzn8lmq99dxhzhsimanswn9yy7ym8zhki4i";
4460− libraryHaskellDepends = [ base binary vector ];
4461− testHaskellDepends = [ base binary tasty tasty-quickcheck vector ];
4462− benchmarkHaskellDepends = [
4463− base binary bytestring criterion deepseq vector
4464− ];
4465− homepage = "https://github.com/bos/vector-binary-instances";
4466− description = "Instances of Data.Binary and Data.Serialize for vector";
4467− license = stdenv.lib.licenses.bsd3;
4468− }) {};
4469− "vector-builder" = callPackage
4470− ({ mkDerivation, base, base-prelude, semigroups, vector }:
4471− mkDerivation {
4472− pname = "vector-builder";
4473− version = "0.3.4.1";
4474− sha256 = "1dzbcm6br9cay28hz804n15bwdhbzhysd4hj0fa6ijfwmfb90r6i";
4475− libraryHaskellDepends = [ base base-prelude semigroups vector ];
4476− doCheck = false;
4477− homepage = "https://github.com/nikita-volkov/vector-builder";
4478− description = "Vector builder";
4479− license = stdenv.lib.licenses.mit;
4480− }) {};
4481− "vector-instances" = callPackage
4482− ({ mkDerivation, base, comonad, hashable, keys, pointed
4483− , semigroupoids, semigroups, vector
4484− }:
4485− mkDerivation {
4486− pname = "vector-instances";
4487− version = "3.4";
4488− sha256 = "10akvpa5w9bp0d8hflab63r9laa9gy2hv167smhjsdzq1kplc0hv";
4489− libraryHaskellDepends = [
4490− base comonad hashable keys pointed semigroupoids semigroups vector
4491− ];
4492− homepage = "http://github.com/ekmett/vector-instances";
4493− description = "Orphan Instances for 'Data.Vector'";
4494− license = stdenv.lib.licenses.bsd3;
4495− }) {};
4496− "vector-th-unbox" = callPackage
4497− ({ mkDerivation, base, data-default, template-haskell, vector }:
4498− mkDerivation {
4499− pname = "vector-th-unbox";
4500− version = "0.2.1.6";
4501− sha256 = "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy";
4502− libraryHaskellDepends = [ base template-haskell vector ];
4503− testHaskellDepends = [ base data-default vector ];
4504− description = "Deriver for Data.Vector.Unboxed using Template Haskell";
4505− license = stdenv.lib.licenses.bsd3;
4506− }) {};
4507− "void" = callPackage
4508− ({ mkDerivation, base }:
4509− mkDerivation {
4510− pname = "void";
4511− version = "0.7.2";
4512− sha256 = "0aygw0yb1h3yhmfl3bkwh5d3h0l4mmsxz7j53vdm6jryl1kgxzyk";
4513− libraryHaskellDepends = [ base ];
4514− homepage = "http://github.com/ekmett/void";
4515− description = "A Haskell 98 logically uninhabited data type";
4516− license = stdenv.lib.licenses.bsd3;
4517− }) {};
4518− "wai" = callPackage
4519− ({ mkDerivation, base, bytestring, hspec, hspec-discover
4520− , http-types, network, text, transformers, vault
4521− }:
4522− mkDerivation {
4523− pname = "wai";
4524− version = "3.2.1.2";
4525− sha256 = "0jr3b2789wa4m6mxkz12ynz4lfsqmgbrcy0am8karyqr3x3528r8";
4526− libraryHaskellDepends = [
4527− base bytestring http-types network text transformers vault
4528− ];
4529− testHaskellDepends = [ base bytestring hspec ];
4530− testToolDepends = [ hspec-discover ];
4531− homepage = "https://github.com/yesodweb/wai";
4532− description = "Web Application Interface";
4533− license = stdenv.lib.licenses.mit;
4534− }) {};
4535− "wai-conduit" = callPackage
4536− ({ mkDerivation, base, bytestring, conduit, http-types
4537− , transformers, wai
4538− }:
4539− mkDerivation {
4540− pname = "wai-conduit";
4541− version = "3.0.0.4";
4542− sha256 = "07yn41rn2skd5p3wqqa09wa761vj7ibl8l19gh4bi4i8slxhk417";
4543− libraryHaskellDepends = [
4544− base bytestring conduit http-types transformers wai
4545− ];
4546− homepage = "https://github.com/yesodweb/wai";
4547− description = "conduit wrappers for WAI";
4548− license = stdenv.lib.licenses.mit;
4549− }) {};
4550− "warp" = callPackage
4551− ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked
4552− , bytestring, case-insensitive, containers, directory, doctest
4553− , gauge, ghc-prim, hashable, hspec, http-client, http-date
4554− , http-types, http2, HUnit, iproute, lifted-base, network, process
4555− , QuickCheck, silently, simple-sendfile, stm, streaming-commons
4556− , text, time, transformers, unix, unix-compat, vault, wai, word8
4557− }:
4558− mkDerivation {
4559− pname = "warp";
4560− version = "3.2.23";
4561− sha256 = "12v9qhi4hyp0sb90yddsax16jj7x47nmqwn53sv7b5nszcxgzam0";
4562− libraryHaskellDepends = [
4563− array async auto-update base bsb-http-chunked bytestring
4564− case-insensitive containers ghc-prim hashable http-date http-types
4565− http2 iproute network simple-sendfile stm streaming-commons text
4566− unix unix-compat vault wai word8
4567− ];
4568− testHaskellDepends = [
4569− array async auto-update base bsb-http-chunked bytestring
4570− case-insensitive containers directory doctest ghc-prim hashable
4571− hspec http-client http-date http-types http2 HUnit iproute
4572− lifted-base network process QuickCheck silently simple-sendfile stm
4573− streaming-commons text time transformers unix unix-compat vault wai
4574− word8
4575− ];
4576− benchmarkHaskellDepends = [
4577− auto-update base bytestring containers gauge hashable http-date
4578− http-types network unix unix-compat
4579− ];
4580− homepage = "http://github.com/yesodweb/wai";
4581− description = "A fast, light-weight web server for WAI applications";
4582− license = stdenv.lib.licenses.mit;
4583− }) {};
4584− "warp-tls" = callPackage
4585− ({ mkDerivation, base, bytestring, cryptonite, data-default-class
4586− , network, streaming-commons, tls, tls-session-manager, wai, warp
4587− }:
4588− mkDerivation {
4589− pname = "warp-tls";
4590− version = "3.2.4.3";
4591− sha256 = "17gj295fr98l7mkz2gdz6kahdnmja0sql3kvy2zab6q168g53kc4";
4592− libraryHaskellDepends = [
4593− base bytestring cryptonite data-default-class network
4594− streaming-commons tls tls-session-manager wai warp
4595− ];
4596− homepage = "http://github.com/yesodweb/wai";
4597− description = "HTTP over TLS support for Warp via the TLS package";
4598− license = stdenv.lib.licenses.mit;
4599− }) {};
4600− "wcwidth" = callPackage
4601− ({ mkDerivation, base, containers }:
4602− mkDerivation {
4603− pname = "wcwidth";
4604− version = "0.0.2";
4605− sha256 = "1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz";
4606− isLibrary = true;
4607− isExecutable = true;
4608− libraryHaskellDepends = [ base containers ];
4609− homepage = "http://github.com/solidsnack/wcwidth/";
4610− description = "Native wcwidth";
4611− license = stdenv.lib.licenses.bsd3;
4612− }) {};
4613− "weigh" = callPackage
4614− ({ mkDerivation, base, deepseq, mtl, process, split, temporary }:
4615− mkDerivation {
4616− pname = "weigh";
4617− version = "0.0.12";
4618− sha256 = "0zw2a997gxgdzqmd7j730kxgynzmjvvlkw84dajmfzf1v9pbij7x";
4619− libraryHaskellDepends = [
4620− base deepseq mtl process split temporary
4621− ];
4622− testHaskellDepends = [ base deepseq ];
4623− homepage = "https://github.com/fpco/weigh#readme";
4624− description = "Measure allocations of a Haskell functions/values";
4625− license = stdenv.lib.licenses.bsd3;
4626− }) {};
4627− "with-location" = callPackage
4628− ({ mkDerivation, base, hspec }:
4629− mkDerivation {
4630− pname = "with-location";
4631− version = "0.1.0";
4632− sha256 = "1rzxvsyh8x3ql3zh7gyw9hjx9bl4v73h0y5kzgaxcfcdn86dg49c";
4633− libraryHaskellDepends = [ base ];
4634− testHaskellDepends = [ base hspec ];
4635− homepage = "https://github.com/sol/with-location#readme";
4636− description = "Use ImplicitParams-based source locations in a backward compatible way";
4637− license = stdenv.lib.licenses.mit;
4638− }) {};
4639− "wl-pprint-annotated" = callPackage
4640− ({ mkDerivation, base, containers, deepseq, tasty, tasty-hunit
4641− , text
4642− }:
4643− mkDerivation {
4644− pname = "wl-pprint-annotated";
4645− version = "0.1.0.0";
4646− sha256 = "0c2996x5gdrif1l0lfwlqnka7xp5diac74rckv0jasv2i0333kmp";
4647− libraryHaskellDepends = [ base containers deepseq text ];
4648− testHaskellDepends = [
4649− base containers deepseq tasty tasty-hunit text
4650− ];
4651− homepage = "https://github.com/minad/wl-pprint-annotated#readme";
4652− description = "Wadler/Leijen pretty printer with annotations and slightly modernized API";
4653− license = stdenv.lib.licenses.bsd3;
4654− }) {};
4655− "word8" = callPackage
4656− ({ mkDerivation, base, bytestring, criterion, hspec }:
4657− mkDerivation {
4658− pname = "word8";
4659− version = "0.1.3";
4660− sha256 = "12jx7f13d2h1djq4fh4dyrab61sm49mj1w61j3rzp2vjfm696c16";
4661− libraryHaskellDepends = [ base ];
4662− testHaskellDepends = [ base hspec ];
4663− benchmarkHaskellDepends = [ base bytestring criterion ];
4664− description = "Word8 library";
4665− license = stdenv.lib.licenses.bsd3;
4666− }) {};
4667− "x509" = callPackage
4668− ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
4669− , bytestring, containers, cryptonite, hourglass, memory, mtl, pem
4670− , tasty, tasty-quickcheck
4671− }:
4672− mkDerivation {
4673− pname = "x509";
4674− version = "1.7.3";
4675− sha256 = "0mkk29g32fs70bqkikg83v45h9jig9c8aail3mrdqwxpkfa0yx21";
4676− revision = "1";
4677− editedCabalFile = "06zzirygvzp0ssdg9blipdwmd0b41p4gxh3ldai7ngjyjsdclwsx";
4678− libraryHaskellDepends = [
4679− asn1-encoding asn1-parse asn1-types base bytestring containers
4680− cryptonite hourglass memory mtl pem
4681− ];
4682− testHaskellDepends = [
4683− asn1-types base bytestring cryptonite hourglass mtl tasty
4684− tasty-quickcheck
4685− ];
4686− homepage = "http://github.com/vincenthz/hs-certificate";
4687− description = "X509 reader and writer";
4688− license = stdenv.lib.licenses.bsd3;
4689− }) {};
4690− "x509-store" = callPackage
4691− ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
4692− , containers, cryptonite, directory, filepath, mtl, pem, tasty
4693− , tasty-hunit, x509
4694− }:
4695− mkDerivation {
4696− pname = "x509-store";
4697− version = "1.6.6";
4698− sha256 = "0dbndqmnmyixxc7308nyq3zlkhz9dff4rbcw2a49c77rbicny9va";
4699− libraryHaskellDepends = [
4700− asn1-encoding asn1-types base bytestring containers cryptonite
4701− directory filepath mtl pem x509
4702− ];
4703− testHaskellDepends = [ base bytestring tasty tasty-hunit x509 ];
4704− homepage = "http://github.com/vincenthz/hs-certificate";
4705− description = "X.509 collection accessing and storing methods";
4706− license = stdenv.lib.licenses.bsd3;
4707− }) {};
4708− "x509-system" = callPackage
4709− ({ mkDerivation, base, bytestring, containers, directory, filepath
4710− , mtl, pem, process, x509, x509-store
4711− }:
4712− mkDerivation {
4713− pname = "x509-system";
4714− version = "1.6.6";
4715− sha256 = "06a4m9c7vlr9nhp9gmqbb46arf0yj1dkdm4nip03hzy67spdmp20";
4716− libraryHaskellDepends = [
4717− base bytestring containers directory filepath mtl pem process x509
4718− x509-store
4719− ];
4720− homepage = "http://github.com/vincenthz/hs-certificate";
4721− description = "Handle per-operating-system X.509 accessors and storage";
4722− license = stdenv.lib.licenses.bsd3;
4723− }) {};
4724− "x509-validation" = callPackage
4725− ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
4726− , containers, cryptonite, data-default-class, hourglass, memory
4727− , mtl, pem, tasty, tasty-hunit, x509, x509-store
4728− }:
4729− mkDerivation {
4730− pname = "x509-validation";
4731− version = "1.6.10";
4732− sha256 = "1ms51scawldgyfcim5a2qlgyn3rnrclyh205d6djaa1569vrs73n";
4733− revision = "1";
4734− editedCabalFile = "1isap8v1gh31q4pj3gn155ya8nd1da0a5a3cryqh4yhf0ivbwl0w";
4735− libraryHaskellDepends = [
4736− asn1-encoding asn1-types base bytestring containers cryptonite
4737− data-default-class hourglass memory mtl pem x509 x509-store
4738− ];
4739− testHaskellDepends = [
4740− asn1-encoding asn1-types base bytestring cryptonite
4741− data-default-class hourglass tasty tasty-hunit x509 x509-store
4742− ];
4743− homepage = "http://github.com/vincenthz/hs-certificate";
4744− description = "X.509 Certificate and CRL validation";
4745− license = stdenv.lib.licenses.bsd3;
4746− }) {};
4747− "xml" = callPackage
4748− ({ mkDerivation, base, bytestring, text }:
4749− mkDerivation {
4750− pname = "xml";
4751− version = "1.3.14";
4752− sha256 = "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j";
4753− libraryHaskellDepends = [ base bytestring text ];
4754− homepage = "http://code.galois.com";
4755− description = "A simple XML library";
4756− license = stdenv.lib.licenses.bsd3;
4757− }) {};
4758− "xml-conduit" = callPackage
4759− ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
4760− , bytestring, conduit, conduit-extra, containers
4761− , data-default-class, deepseq, hspec, HUnit, monad-control
4762− , resourcet, text, transformers, xml-types
4763− }:
4764− mkDerivation {
4765− pname = "xml-conduit";
4766− version = "1.8.0";
4767− sha256 = "0di0ll2p4ykqnlipf2jrlalirxdf9wkli292245rgr3vcb9vz0h3";
4768− libraryHaskellDepends = [
4769− attoparsec base blaze-html blaze-markup bytestring conduit
4770− conduit-extra containers data-default-class deepseq monad-control
4771− resourcet text transformers xml-types
4772− ];
4773− testHaskellDepends = [
4774− base blaze-markup bytestring conduit containers hspec HUnit
4775− resourcet text transformers xml-types
4776− ];
4777− homepage = "http://github.com/snoyberg/xml";
4778− description = "Pure-Haskell utilities for dealing with XML with the conduit package";
4779− license = stdenv.lib.licenses.mit;
4780− }) {};
4781− "xml-types" = callPackage
4782− ({ mkDerivation, base, deepseq, text }:
4783− mkDerivation {
4784− pname = "xml-types";
4785− version = "0.3.6";
4786− sha256 = "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr";
4787− libraryHaskellDepends = [ base deepseq text ];
4788− homepage = "https://john-millikin.com/software/haskell-xml/";
4789− description = "Basic types for representing XML";
4790− license = stdenv.lib.licenses.mit;
4791− }) {};
4792− "yaml" = callPackage
4793− ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
4794− , conduit, containers, directory, filepath, hspec, HUnit, mockery
4795− , resourcet, scientific, semigroups, template-haskell, temporary
4796− , text, transformers, unordered-containers, vector
4797− }:
4798− mkDerivation {
4799− pname = "yaml";
4800− version = "0.8.32";
4801− sha256 = "0cbsyh4ilvjzq1q7pxls43k6pdqxg1l85xzibcwpbvmlvrizh86w";
4802− isLibrary = true;
4803− isExecutable = true;
4804− libraryHaskellDepends = [
4805− aeson attoparsec base bytestring conduit containers directory
4806− filepath resourcet scientific semigroups template-haskell text
4807− transformers unordered-containers vector
4808− ];
4809− testHaskellDepends = [
4810− aeson attoparsec base base-compat bytestring conduit containers
4811− directory filepath hspec HUnit mockery resourcet scientific
4812− semigroups template-haskell temporary text transformers
4813− unordered-containers vector
4814− ];
4815− homepage = "https://github.com/snoyberg/yaml#readme";
4816− description = "Support for parsing and rendering YAML documents";
4817− license = stdenv.lib.licenses.bsd3;
4818− }) {};
4819− "zlib" = callPackage
4820− ({ mkDerivation, base, bytestring, zlib }:
4821− mkDerivation {
4822− pname = "zlib";
4823− version = "0.6.2";
4824− sha256 = "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d";
4825− libraryHaskellDepends = [ base bytestring ];
4826− librarySystemDepends = [ zlib ];
4827− doCheck = false;
4828− description = "Compression and decompression in the gzip and zlib formats";
4829− license = stdenv.lib.licenses.bsd3;
4830− }) {inherit (pkgs) zlib;};
4831−
4832−}
nix/lib.nixdeleted−60
@@ -1,60 +0,0 @@
1−{ stdenv, cacert, git, curl, lndir, runCommand
2−, _cacheVersion ? "0" }:
3−
4−rec {
5− hackage-db = stdenv.mkDerivation {
6− name = "hackage-db";
7− version = _cacheVersion;
8− phases = [ "installPhase" ];
9− buildInputs = [ curl ];
10− installPhase = ''
11− mkdir -p $out
12− pushd $out
13− curl -o 01-index.tar.gz https://hackage.haskell.org/01-index.tar.gz
14− gunzip --keep 01-index.tar.gz
15− popd
16− '';
17− SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
18− };
19− all-cabal-hashes = stdenv.mkDerivation rec {
20− name = "all-cabal-hashes";
21− version = _cacheVersion;
22− phases = [ "installPhase" ];
23− buildInputs = [ git ];
24− installPhase = ''
25− mkdir -p $out
26− git clone --bare --branch hackage https://github.com/commercialhaskell/all-cabal-hashes.git $out
27− '';
28− SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
29− };
30− stackage-lts = stdenv.mkDerivation {
31− name = "stackage-lts";
32− version = _cacheVersion;
33− phases = [ "installPhase" ];
34− buildInputs = [ git ];
35− installPhase = ''
36− mkdir -p $out
37− git clone --depth 1 https://github.com/fpco/lts-haskell.git $out
38− '';
39− SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
40− };
41− stackage-nightly = stdenv.mkDerivation {
42− name = "stackage-nightly";
43− version = _cacheVersion;
44− phases = [ "installPhase" ];
45− buildInputs = [ git ];
46− installPhase = ''
47− mkdir -p $out
48− git clone --depth 1 https://github.com/fpco/stackage-nightly.git $out
49− '';
50− SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt";
51− };
52− stackage-all = runCommand "stackage-all"
53− {nativeBuildInputs = [ stackage-nightly stackage-lts lndir ];}
54− ''
55− mkdir $out
56− for i in ${stackage-nightly} ${stackage-lts}; do
57− lndir -silent $i $out
58− done
59− '';
60−}
nix/stackage2nix/default.nixdeleted−22
@@ -1,22 +0,0 @@
1−{ nixpkgs ? import <nixpkgs> {} }:
2−
3−with nixpkgs;
4−let
5− lib = callPackage ../lib.nix {};
6− haskellPackages = import ../haskell-packages { inherit nixpkgs; };
7−in stdenv.mkDerivation rec {
8− name = "stackage2nix-${version}";
9− version = haskellPackages.stackage2nix.version;
10− phases = [ "installPhase" "fixupPhase" ];
11− buildInputs = [ makeWrapper ];
12−
13− installPhase = ''
14− mkdir -p $out/bin
15− makeWrapper ${haskellPackages.stackage2nix}/bin/stackage2nix $out/bin/stackage2nix \
16− --add-flags "--all-cabal-hashes ${lib.all-cabal-hashes}" \
17− --add-flags "--lts-haskell ${lib.stackage-all}" \
18− --add-flags "--hackage-db ${lib.hackage-db}/01-index.tar" \
19− --prefix PATH ":" "${nix}/bin" \
20− --prefix PATH ":" "${nix-prefetch-scripts}/bin"
21− '';
22−}
src/AllCabalHashes.hs+21−27
@@ -3,14 +3,14 @@ module AllCabalHashes where
33import Control.Lens hiding ((<.>))
44import Data.Aeson as A
55import Data.ByteString as BS
6−import Data.ByteString.Char8 as B8
6+import Data.ByteString.Lazy as BSL
77import Data.Map as M
8−import Data.Tagged (Tagged(..))
98import Data.Text as T
9+import Data.Text.Encoding as T
1010import Distribution.Nixpkgs.Hashes as NH
1111import Distribution.Package
1212import Distribution.PackageDescription
13−import Distribution.PackageDescription.Parsec
13+import Distribution.PackageDescription.Parse
1414import Distribution.Text ( display )
1515import Git
1616import Git.Libgit2 as Libgit2
@@ -41,34 +41,28 @@ readPackageByHash repoDir sha1Hash = do
4141 let repoOpts = defaultRepositoryOptions { repoPath = repoDir }
4242 repo <- openLgRepository repoOpts
4343 buf <- runLgRepository repo $ do
44− oid <- parseOid sha1Hash
45− catBlob (Tagged oid)
46− parseCabal ("Git SHA1 " ++ show sha1Hash) buf
44+ BlobObj (Blob _ contents) <- lookupObject =<< parseOid sha1Hash
45+ case contents of
46+ BlobString bs -> return bs
47+ BlobStringLazy bsl -> return $ BSL.toStrict bsl
48+ _ -> fail $ "Git SHA1 " ++ show sha1Hash ++ ": expected single Blob"
49+ cabal <- case parseGenericPackageDescription (T.unpack $ T.decodeUtf8 buf) of
50+ ParseOk _ a -> return a
51+ ParseFailed err -> fail ("Git SHA1 " ++ show sha1Hash ++ ": " ++ show err)
52+ let
53+ hash = printSHA256 (digest (digestByName "sha256") buf)
54+ pkg = setCabalFileHash hash cabal
55+ return (pkg, hash)
4756
4857readPackageByName :: FilePath -> PackageIdentifier -> IO (GenericPackageDescription, SHA256Hash)
4958readPackageByName repoDir (PackageIdentifier name version) = do
50− let cabalFile = unPackageName name </> display version </> unPackageName name <.> "cabal"
51− let repoOpts = defaultRepositoryOptions { repoPath = repoDir }
52− repo <- openLgRepository repoOpts
53− buf <- runLgRepository repo $ do
54− headCommit <- resolveReference "HEAD" >>= \case
55− Nothing -> fail "Failed to parse HEAD ref"
56− Just oid -> lookupCommit $ Tagged oid
57− blobOid <- commitTreeEntry headCommit (B8.pack cabalFile) >>= \case
58− Nothing -> fail (cabalFile ++ ": no such file at HEAD")
59− Just (BlobEntry oid PlainBlob) -> pure oid
60− Just (BlobEntry _ _) -> fail (cabalFile ++ " is not a plain blob")
61− _ -> fail (cabalFile ++ " points to a non-blob!")
62− catBlob blobOid
63− parseCabal cabalFile buf
64−
65−parseCabal :: String -> BS.ByteString -> IO (GenericPackageDescription, SHA256Hash)
66−parseCabal what blob = do
67− cabal <- let (_, res) = runParseResult (parseGenericPackageDescription blob)
68− in case res of Right a -> return a
69− Left (_, err) -> fail (what ++ ": " ++ show err)
59+ let cabalFile = repoDir </> unPackageName name </> display version </> unPackageName name <.> "cabal"
60+ buf <- BS.readFile cabalFile
61+ cabal <- case parseGenericPackageDescription (T.unpack $ T.decodeUtf8 buf) of
62+ ParseOk _ a -> return a
63+ ParseFailed err -> fail (cabalFile ++ ": " ++ show err)
7064 let
71− hash = NH.printSHA256 (SSL.digest (SSL.digestByName "sha256") blob)
65+ hash = NH.printSHA256 (SSL.digest (SSL.digestByName "sha256") buf)
7266 pkg = setCabalFileHash hash cabal
7367 return (pkg, hash)
7468
src/Distribution/Nixpkgs/Haskell/FromStack.hs+12−22
@@ -26,22 +26,19 @@ data PackageSetConfig = PackageSetConfig
2626 , targetCompiler :: CompilerInfo }
2727
2828data PackageConfig = PackageConfig
29− { enableCheck :: Bool
30− , enableHaddock :: Bool }
29+ { enableCheck :: Bool
30+ , enableHaddock :: Bool }
3131
3232removeTests :: GenericPackageDescription -> GenericPackageDescription
3333removeTests gd = gd { condTestSuites = [] }
3434
35−removeBenches :: GenericPackageDescription -> GenericPackageDescription
36−removeBenches gd = gd { condBenchmarks = [] }
37−
3835planDependencies :: PackagePlan -> [Dependency]
3936planDependencies = map makeDependency . Map.toList . sdPackages . ppDesc
4037 where
4138 makeDependency (name, depInfo) = Dependency name (diRange depInfo)
4239
43−buildNode :: PackageSetConfig -> PackageConfig -> PackageName -> PackagePlan -> IO Node
44−buildNode conf pconf name plan = do
40+buildNodeM :: PackageSetConfig -> PackageConfig -> PackageName -> PackagePlan -> IO Node
41+buildNodeM conf pconf name plan = do
4542 let
4643 cabalHashes = maybe mempty cfiHashes $ ppCabalFileInfo plan
4744 mGitSha1 = Map.lookup "GitSHA1" cabalHashes
@@ -53,29 +50,28 @@ fromPackage conf pconf plan pkg =
5350 let
5451 constraints = ppConstraints plan
5552 testsEnabled =
53+ enableCheck pconf &&
5654 pcTests constraints == ExpectSuccess
5755 haddocksEnabled =
56+ enableHaddock pconf &&
5857 pcHaddocks constraints == ExpectSuccess &&
5958 not (Set.null (sdModules (ppDesc plan)))
6059 configureTests
6160 | pcTests constraints == Don'tBuild = removeTests
6261 | otherwise = id
63− configureBenches
64− | pcBenches constraints == Don'tBuild = removeBenches
65− | otherwise = id
6662 flags = Map.toList (pcFlagOverrides constraints)
6763 (descr, missingDeps) = finalizeGenericPackageDescription
6864 (haskellResolver conf)
6965 (targetPlatform conf)
7066 (targetCompiler conf)
71− (mkFlagAssignment flags)
67+ flags
7268 (planDependencies plan)
73− (configureBenches . configureTests $ pkgCabal pkg)
69+ (configureTests (pkgCabal pkg))
7470 genericDrv = fromPackageDescription
7571 (haskellResolver conf)
7672 (nixpkgsResolver conf)
7773 missingDeps
78− (mkFlagAssignment flags)
74+ flags
7975 descr
8076 depName (Dependency name _) = name
8177 testDeps = setOf
@@ -87,15 +83,9 @@ fromPackage conf pconf plan pkg =
8783 testsEnabled &&
8884 not (null missingDeps) &&
8985 setOf (folded . to depName) missingDeps `hasIntersection` testDeps descr
90− in finalizePackage pkg pconf
91− $ genericDrv
86+ in
87+ genericDrv
88+ & src .~ pkgSource pkg
9289 & doCheck .~ testsEnabled
9390 & runHaddock .~ haddocksEnabled
9491 & metaSection . Nix.broken .~ brokenEnabled
95−
96−finalizePackage :: Package -> PackageConfig -> Derivation -> Derivation
97−finalizePackage pkg pconf drv = drv
98− & src .~ pkgSource pkg
99− & doCheck &&~ enableCheck pconf
100− & testDepends %~ (if enableCheck pconf then id else const mempty)
101− & runHaddock &&~ enableHaddock pconf
src/Distribution/Nixpkgs/Haskell/FromStack/Package.hs+12−32
@@ -1,10 +1,10 @@
11module Distribution.Nixpkgs.Haskell.FromStack.Package where
22
33import Control.Lens
4−import Data.Foldable as F
5−import Data.Function (on)
64import Data.Graph (Graph, Vertex)
5+import Data.Foldable as F
76import Data.Maybe
7+import Data.Monoid
88import Data.Ord as O
99import Distribution.Text (display, disp)
1010import Distribution.Package (unPackageName, packageName)
@@ -21,21 +21,12 @@ import qualified Data.Map as Map
2121import qualified Data.Set as Set
2222
2323data Node = Node
24− { _nodeDerivation :: Derivation
25− , _nodeTestDepends :: Set.Set String
26− , _nodeBenchmarkDepends :: Set.Set String
27− , _nodeExecutableDepends :: Set.Set String
28− , _nodeSetupDepends :: Set.Set String
29− , _nodeOtherDepends :: Set.Set String }
24+ { _nodeDerivation :: Derivation
25+ , _nodeTestDepends :: Set.Set String
26+ , _nodeOtherDepends :: Set.Set String }
3027
3128makeLenses ''Node
3229
33−instance Eq Node where
34− (==) = (==) `on` nodeName
35−
36−instance Ord Node where
37− compare = compare `on` nodeName
38−
3930mkNode :: Derivation -> Node
4031mkNode _nodeDerivation = Node{..}
4132 where
@@ -43,27 +34,17 @@ mkNode _nodeDerivation = Node{..}
4334 . Set.filter isFromHackage
4435 $ view (s . (haskell <> tool)) _nodeDerivation
4536 _nodeTestDepends = haskellDependencies testDepends
46− _nodeBenchmarkDepends = haskellDependencies benchmarkDepends
47− _nodeExecutableDepends = haskellDependencies executableDepends
48− _nodeSetupDepends = haskellDependencies setupDepends
4937 _nodeOtherDepends = haskellDependencies (executableDepends <> libraryDepends)
5038
5139nodeName :: Node -> String
5240nodeName = unPackageName . packageName . view (nodeDerivation . pkgid)
5341
54−nodeCycleDepends :: Node -> Set.Set String
55−nodeCycleDepends = _nodeTestDepends <> _nodeOtherDepends
56−
5742nodeDepends :: Node -> Set.Set String
58−nodeDepends = _nodeTestDepends
59− <> _nodeOtherDepends
60− <> _nodeBenchmarkDepends
61− <> _nodeExecutableDepends
62− <> _nodeSetupDepends
43+nodeDepends = _nodeTestDepends <> _nodeOtherDepends
6344
6445findCycles :: [Node] -> [[Node]]
6546findCycles nodes = mapMaybe cyclic $
66− Graph.stronglyConnComp [(node, nodeName node, Set.toList $ nodeCycleDepends node) | node <- nodes]
47+ Graph.stronglyConnComp [(node, nodeName node, Set.toList $ nodeDepends node) | node <- nodes]
6748 where
6849 cyclic (Graph.AcyclicSCC _) = Nothing
6950 cyclic (Graph.CyclicSCC c) = Just c
@@ -87,13 +68,12 @@ buildNodeGraph :: [Node] -> (Graph, FromVertex, FromKey)
8768buildNodeGraph nodes = Graph.graphFromEdges
8869 [(node, nodeName node, Set.toList $ nodeDepends node) | node <- nodes]
8970
90−reachableDependencies :: [Node] -> [Node] -> Set.Set Node
91−reachableDependencies keyNodes nodes = Set.map (view _1 . fromVertex) reachableVerticesS
71+reachableDependencies :: [Node] -> [Node] -> [Node]
72+reachableDependencies keyNodes nodes = view _1 . fromVertex <$> reachableVertices
9273 where
9374 (graph, fromVertex, fromKey) = buildNodeGraph nodes
9475 keys = mapMaybe (fromKey . nodeName) keyNodes
95− reachableVerticesS = F.foldr1 Set.union
96− $ (Set.fromList . F.toList) <$> Graph.dfs graph keys
76+ reachableVertices = concatMap F.toList $ Graph.dfs graph keys
9777
9878-- pretty printing
9979
@@ -105,9 +85,9 @@ isFromHackage b = case view (reference . Nix.path) b of
10585
10686pPrintOutConfig :: SystemInfo -> [Node] -> Doc
10787pPrintOutConfig systemInfo nodes = vcat
108− [ "{ pkgs, haskellLib }:"
88+ [ "{ pkgs }:"
10989 , ""
110− , "with haskellLib; self: super: {"
90+ , "with pkgs.haskell.lib; self: super: {"
11191 , ""
11292 , " # core packages"
11393 , nest 2 $ vcat $
src/Distribution/Nixpkgs/Haskell/Packages/PrettyPrinting.hs−2
@@ -2,8 +2,6 @@ module Distribution.Nixpkgs.Haskell.Packages.PrettyPrinting where
22
33import Language.Nix.PrettyPrinting
44
5−import Prelude hiding ((<>))
6−
75compilerConfig :: Doc -> Doc
86compilerConfig body =
97 funargsCurried ["self", "super"] <+> body
src/Distribution/Nixpkgs/Haskell/Stack.hs+46−43
@@ -1,14 +1,11 @@
11module Distribution.Nixpkgs.Haskell.Stack where
22
33import Control.Lens
4−import Data.Maybe (fromMaybe)
54import Data.Text as T
65import Distribution.Compiler as Compiler
76import Distribution.Nixpkgs.Fetch
87import Distribution.Nixpkgs.Haskell.Derivation
98import Distribution.Nixpkgs.Haskell.FromCabal as FromCabal
10−import Distribution.Nixpkgs.Haskell.FromStack as FromStack
11−import Distribution.Nixpkgs.Haskell.Hackage as DB
129import Distribution.Nixpkgs.Haskell.PackageSourceSpec as PackageSourceSpec
1310import Distribution.PackageDescription as PackageDescription
1411import Distribution.System as System
@@ -16,69 +13,75 @@ import Network.URI as URI
1613import Stack.Config
1714
1815
16+newtype HackageDb = HackageDb { fromHackageDB :: T.Text }
17+ deriving (Eq, Ord, Show)
18+
19+makePrisms ''HackageDb
20+
21+unHackageDb :: HackageDb -> String
22+unHackageDb = T.unpack . fromHackageDB
1923
2024data StackPackagesConfig = StackPackagesConfig
21− { _spcHaskellResolver :: HaskellResolver
22− , _spcNixpkgsResolver :: NixpkgsResolver
23− , _spcTargetPlatform :: Platform
24− , _spcTargetCompiler :: CompilerInfo
25− , _spcFlagAssignment :: FlagAssignment
26− , _spcDoCheckPackages :: Bool
27− , _spcDoHaddockPackages :: Bool
25+ { _spcHaskellResolver :: !HaskellResolver
26+ , _spcNixpkgsResolver :: !NixpkgsResolver
27+ , _spcTargetPlatform :: !Platform
28+ , _spcTargetCompiler :: !CompilerInfo
29+ , _spcFlagAssignment :: !FlagAssignment
30+ , _spcDoCheckPackages :: !Bool
31+ , _spcDoHaddockPackages :: !Bool
32+ , _spcDoCheckStackage :: !Bool
33+ , _spcDoHaddockStackage :: !Bool
2834 }
2935
3036makeLenses ''StackPackagesConfig
3137
32−getStackPackageFromDb :: DB.HackageDB -> StackPackage -> IO Package
33−getStackPackageFromDb hackageDb stackPackage = do
34− PackageSourceSpec.getPackage'
35− False
36− (pure hackageDb)
37− (stackLocationToSource (stackPackage ^. spLocation) (stackPackage ^. spDir))
38+getStackPackageFromDb
39+ :: Maybe HackageDb
40+ -> StackPackage
41+ -> IO Package
42+getStackPackageFromDb optHackageDb stackPackage =
43+ PackageSourceSpec.getPackage
44+ (unHackageDb <$> optHackageDb)
45+ (stackLocationToSource $ stackPackage ^. spLocation)
3846
39−stackLocationToSource
40− :: PackageLocation
41− -- ^ Subdirectory in the package containing cabal file.
42− -> Maybe FilePath
43− -> Source
44−stackLocationToSource pl mCabalDir = case pl of
45− PlIndex p -> Source
46− { sourceUrl = "cabal://" ++ T.unpack (p ^. piNameVersion)
47+stackLocationToSource :: PackageLocation -> Source
48+stackLocationToSource = \case
49+ HackagePackage p -> Source
50+ { sourceUrl = "cabal://" ++ T.unpack p
4751 , sourceRevision = mempty
4852 , sourceHash = UnknownHash
49− , sourceCabalDir = cabalDir }
50− PlFilePath p -> Source
53+ , sourceCabalDir = mempty }
54+ StackFilePath p -> Source
5155 { sourceUrl = p
5256 , sourceRevision = mempty
5357 , sourceHash = UnknownHash
54− , sourceCabalDir = cabalDir }
55− PlUri uri -> Source
58+ , sourceCabalDir = mempty }
59+ StackUri uri -> Source
5660 { sourceUrl = URI.uriToString id uri mempty
5761 , sourceRevision = mempty
5862 , sourceHash = UnknownHash
59− , sourceCabalDir = cabalDir }
60− PlRepo r -> Source
63+ , sourceCabalDir = mempty }
64+ StackRepo r -> Source
6165 { sourceUrl = T.unpack $ r ^. rUri
6266 , sourceRevision = T.unpack $ r ^. rCommit
6367 , sourceHash = UnknownHash
64− , sourceCabalDir = cabalDir }
65− where
66− cabalDir = fromMaybe mempty mCabalDir
68+ , sourceCabalDir = mempty }
6769
6870packageDerivation
6971 :: StackPackagesConfig
70− -> DB.HackageDB
72+ -> Maybe HackageDb
7173 -> StackPackage
7274 -> IO Derivation
73−packageDerivation conf hackageDb stackPackage = do
74− pkg <- getStackPackageFromDb hackageDb stackPackage
75− let
76− drv = genericPackageDerivation conf pkg
77− & subpath %~ flip fromMaybe (stackPackage ^. spDir)
78− pconf = PackageConfig
79− { enableCheck = conf ^. spcDoCheckPackages
80− , enableHaddock = conf ^. spcDoHaddockPackages }
81− return $ finalizePackage pkg pconf drv
75+packageDerivation conf optHackageDb stackPackage = do
76+ pkg <- getStackPackageFromDb optHackageDb stackPackage
77+ let drv = genericPackageDerivation conf pkg & src .~ pkgSource pkg
78+ return $ if stackPackage ^. spExtraDep
79+ then drv
80+ & doCheck &&~ conf ^. spcDoCheckStackage
81+ & runHaddock &&~ conf ^. spcDoHaddockStackage
82+ else drv
83+ & doCheck &&~ conf ^. spcDoCheckPackages
84+ & runHaddock &&~ conf ^. spcDoHaddockPackages
8285
8386genericPackageDerivation
8487 :: StackPackagesConfig
src/Distribution/Nixpkgs/Haskell/Stack/PrettyPrinting.hs+25−107
@@ -15,28 +15,17 @@ import Distribution.Text
1515import Distribution.Version (Version)
1616import qualified Language.Nix.FilePath as Nix
1717import Language.Nix.PrettyPrinting as PP
18−import Stack.Config (StackResolver, unStackResolver)
19−
20−import Prelude hiding ((<>))
2118
2219
2320data OverrideConfig = OverrideConfig
24− { _ocGhc :: Version
25− , _ocStackagePackages :: FilePath
26− , _ocStackageConfig :: FilePath
27− , _ocNixpkgs :: FilePath
21+ { _ocGhc :: !Version
22+ , _ocStackagePackages :: !FilePath
23+ , _ocStackageConfig :: !FilePath
24+ , _ocNixpkgs :: !FilePath
2825 }
2926
3027makeLenses ''OverrideConfig
3128
32−systemNixpkgs :: Doc
33−systemNixpkgs = "<nixpkgs>"
34−
35−renderNixpkgs :: FilePath -> Doc
36−renderNixpkgs nixpkgsPath
37− | fromString nixpkgsPath == systemNixpkgs = systemNixpkgs
38− | otherwise = disp $ (fromString nixpkgsPath :: Nix.FilePath)
39−
4029hasField :: Lens' a (Maybe b) -> a -> Bool
4130hasField p = views p isJust
4231
@@ -50,25 +39,29 @@ overridePackages = PP.packageSetConfig . PP.cat . F.toList . fmap callPackage
5039
5140importStackagePackages :: FilePath -> Doc
5241importStackagePackages path = hsep
53− ["import", disp (fromString path :: Nix.FilePath)]
42+ [ funarg "self", "import", disp (fromString path :: Nix.FilePath), "{"
43+ , "inherit pkgs stdenv;"
44+ , "inherit (self) callPackage;"
45+ , "}"
46+ ]
5447
55−importStackageConfig :: FilePath -> Doc
56−importStackageConfig path = hsep
57− ["import ", disp (fromString path :: Nix.FilePath), "{ inherit pkgs haskellLib; }"]
48+callStackageConfig :: FilePath -> Doc
49+callStackageConfig path = hsep
50+ [ "callPackage", disp (fromString path :: Nix.FilePath), "{}"]
5851
5952overrideHaskellPackages :: OverrideConfig -> NonEmpty Derivation -> Doc
6053overrideHaskellPackages oc packages = vcat
61− [ funargs
62− [ "nixpkgs ? import " <> renderNixpkgs (oc ^. ocNixpkgs) <> " {}"
63− ]
54+ [ funargs ["nixpkgs ? import "
55+ <> disp (fromString (oc ^. ocNixpkgs) :: Nix.FilePath)
56+ <> " {}"
57+ ]
6458 , ""
6559 , "with nixpkgs;"
6660 , "let"
6761 , nest 2 "inherit (stdenv.lib) extends;"
6862 , nest 2 $ vcat
69− [ attr "haskellLib" "callPackage (nixpkgs.path + \"/pkgs/development/haskell-modules/lib.nix\") {}"
70− , attr "stackagePackages" . importStackagePackages $ oc ^. ocStackagePackages
71− , attr "stackageConfig" . importStackageConfig $ oc ^. ocStackageConfig ]
63+ [ attr "stackagePackages" . importStackagePackages $ oc ^. ocStackagePackages
64+ , attr "stackageConfig" . callStackageConfig $ oc ^. ocStackageConfig ]
7265 , nest 2 $ vcat
7366 [ "stackPackages ="
7467 , nest 2 $ overridePackages packages <> semi
@@ -77,92 +70,17 @@ overrideHaskellPackages oc packages = vcat
7770 , nest 2 "inherit pkgs stdenv;"
7871 , nest 2 "inherit (self) callPackage;"
7972 , "};"
80− ]
73+ , ""
74+ ]
8175 , "in callPackage (nixpkgs.path + \"/pkgs/development/haskell-modules\") {"
8276 , nest 2 $ vcat
83− [ attr "ghc" ("pkgs.haskell.compiler." <> nixGhc)
84− , attr "buildHaskellPackages" ("buildPackages.haskell.packages." <> nixGhc)
85− , attr "compilerConfig" "self: extends pkgOverrides (stackageConfig self)"
86− , attr "initialPackages" "stackagePackages"
87− , attr "configurationCommon" "args: self: super: {}"
88− , "inherit haskellLib;"
77+ [ attr "ghc" ("pkgs.haskell.compiler." <> toNixGhcVersion (oc ^. ocGhc))
78+ , attr "compilerConfig" "self: extends pkgOverrides (extends stackageConfig (stackagePackages self))"
79+ , attr "haskellLib" "callPackage (nixpkgs.path + \"/pkgs/development/haskell-modules/lib.nix\") {}"
8980 ]
9081 , "}"
9182 ]
92− where
93− nixGhc = toNixGhcVersion (oc ^. ocGhc)
94−
95−overrideStackage :: StackResolver -> FilePath -> NonEmpty Derivation -> Doc
96−overrideStackage stackResolver nixpkgsPath packages = vcat
97− [ funargs
98− [ "nixpkgs ? import " <> renderNixpkgs nixpkgsPath <> " {}"
99− ]
100− , ""
101− , "let"
102− , nest 2 $ vcat
103− [ "stackPackages ="
104− , nest 2 $ overridePackages packages <> semi
105− ]
106− , "in nixpkgs.haskell.packages.stackage." <> toNixStackResolver stackResolver <> ".override {"
107− , nest 2
108− $ attr "packageSetConfig" "self: super: stackPackages { inherit (nixpkgs) pkgs stdenv; inherit (self) callPackage; } super"
109− , "}"
110− ]
111−
112−pPrintHaskellPackages :: OverrideConfig -> Doc
113−pPrintHaskellPackages oc = vcat
114− [ funargs
115− [ "callPackage"
116− , "buildPackages"
117− , "pkgs"
118− , "stdenv"
119− , "lib"
120− , "overrides ? (self: super: {})"
121− , "packageSetConfig ? (self: super: {})"
122− ]
123− , ""
124− , "let"
125− , nest 2 $ vcat
126− [ "inherit (lib) extends makeExtensible;"
127− , attr "haskellLib" "pkgs.haskell.lib"
128− , "inherit (haskellLib) makePackageSet;"
129− , ""
130− , attr "haskellPackages" $ vcat
131− [ "pkgs.callPackage makePackageSet {"
132− , nest 2 $ vcat
133− [ attr "ghc" ("buildPackages.haskell.compiler." <> toNixGhcVersion (oc ^. ocGhc))
134− , attr "buildHaskellPackages" ("buildPackages.haskell.packages." <> toNixGhcVersion (oc ^. ocGhc))
135− , attr "package-set" . importStackagePackages $ oc ^. ocStackagePackages
136− , "inherit stdenv haskellLib extensible-self;"
137− ]
138− , "}"
139− ]
140− , ""
141− , attr "compilerConfig" . importStackageConfig $ oc ^. ocStackageConfig
142− , ""
143− , attr "configurationCommon" "if builtins.pathExists ./configuration-common.nix then import ./configuration-common.nix { inherit pkgs haskellLib; } else self: super: {}"
144− , attr "configurationNix" "import (pkgs.path + \"/pkgs/development/haskell-modules/configuration-nix.nix\") { inherit pkgs haskellLib; }"
145− , ""
146− , attr "extensible-self" "makeExtensible (extends overrides (extends configurationCommon (extends packageSetConfig (extends compilerConfig (extends configurationNix haskellPackages)))))"
147− ]
148− , ""
149− , "in extensible-self"
150− ]
151−
152−stackYamlPackages :: NonEmpty Derivation -> Doc
153−stackYamlPackages packages = hcat
154− [ "self: { "
155− , "inherit (self) "
156− , text . intercalate " " $ NE.toList packageNames
157− , "; }" ]
158− where
159− packageNames = unPackageName . pkgName . packageId <$> packages
16083
16184toNixGhcVersion :: Version -> Doc
162−toNixGhcVersion = (<>) "ghc" . toNixVersion . show . disp
163−
164−toNixStackResolver :: StackResolver -> Doc
165−toNixStackResolver = toNixVersion . unStackResolver
166−
167−toNixVersion :: String -> Doc
168−toNixVersion = text . L.filter (/= '.')
85+toNixGhcVersion =
86+ (<>) "ghc" . text . L.filter (/= '.') . show . disp
src/Language/Nix/FilePath.hs+6−6
@@ -11,7 +11,7 @@ import Distribution.Compat.ReadP as ReadP
1111import Distribution.Text
1212import GHC.Generics (Generic)
1313import Prelude hiding (FilePath)
14−import qualified System.FilePath as FP
14+import qualified System.FilePath.Posix as Posix
1515import Test.QuickCheck as QC
1616import Text.PrettyPrint as PP
1717
@@ -25,7 +25,7 @@ instance NFData FilePath where
2525 rnf = rnf . unFilePath
2626
2727instance Arbitrary FilePath where
28− arbitrary = FilePath <$> QC.suchThat arbitrary FP.isValid
28+ arbitrary = FilePath <$> QC.suchThat arbitrary Posix.isValid
2929 shrink = fmap FilePath . shrink . unFilePath
3030
3131instance Text FilePath where
@@ -38,12 +38,12 @@ instance IsString FilePath where
3838parseFilePath :: ReadP r FilePath
3939parseFilePath = do
4040 path <- ReadP.munch (const True)
41− if FP.isValid path
41+ if Posix.isValid path
4242 then pure (FilePath path)
4343 else pfail
4444
4545renderFilePath :: FilePath -> String
46−renderFilePath = FP.combine "."
47− . FP.normalise
48− . FP.dropTrailingPathSeparator
46+renderFilePath = Posix.combine "."
47+ . Posix.normalise
48+ . Posix.dropTrailingPathSeparator
4949 . unFilePath
src/LtsHaskell.hs+13−43
@@ -1,29 +1,23 @@
11module LtsHaskell where
22
33import AllCabalHashes
4−import Control.Lens
5−import Control.Monad.Catch
6−import Data.Maybe
7−import Data.Text as T
8−import Distribution.Text as Text (display)
4+import Stackage.BuildPlan
5+import Stackage.Types (SystemInfo(..))
6+import Distribution.Text (display)
97import Control.Monad
108import Distribution.Compiler (CompilerInfo(..), AbiTag(NoAbiTag), CompilerId(..), CompilerFlavor(GHC))
119import Distribution.System (Platform(..))
1210import Distribution.Package (PackageName, PackageIdentifier(..), Dependency(..))
13−import Distribution.Nixpkgs.Haskell.PackageSourceSpec as PackageSourceSpec
11+import Distribution.Nixpkgs.Haskell.PackageSourceSpec
1412import Distribution.Nixpkgs.Haskell.FromStack
15−import Distribution.Nixpkgs.Haskell.Stack
1613import Distribution.Nixpkgs.Fetch
1714import Distribution.Nixpkgs.PackageMap (readNixpkgPackageMap, resolve)
1815import Distribution.Version (Version, withinRange)
1916import Language.Haskell.Extension (Language(Haskell98, Haskell2010))
2017import Language.Nix
21−import Stack.Config
22−import Stackage.BuildPlan
23−import Stackage.Types (SystemInfo(..))
24−import System.FilePath as Path
18+import Control.Lens
19+import Data.Maybe
2520
26−import qualified Distribution.Nixpkgs.Haskell.Hackage as DB
2721import qualified Data.Yaml as Yaml
2822import qualified Data.Map as Map
2923import qualified Data.Set as Set
@@ -34,12 +28,10 @@ loadBuildPlan = Yaml.decodeFileEither >=> \case
3428 Left err -> fail $ "Failed to parse stackage build plan: " ++ show err
3529 Right bp -> return bp
3630
37−getPackageFromRepo :: FilePath -> Maybe SHA1Hash -> PackageIdentifier -> IO Package
38−getPackageFromRepo allCabalHashesPath mSha1Hash pkgId = do
31+loadPackage :: FilePath -> Maybe SHA1Hash -> PackageIdentifier -> IO Package
32+loadPackage allCabalHashesPath mSha1Hash pkgId = do
3933 (pkgDesc, _) <- case mSha1Hash of
40− Just sha1 ->
41− readPackageByHash allCabalHashesPath sha1
42− `catchAll` const (readPackageByName allCabalHashesPath pkgId)
34+ Just sha1 -> readPackageByHash allCabalHashesPath sha1
4335 Nothing -> readPackageByName allCabalHashesPath pkgId
4436 meta <- readPackageMeta allCabalHashesPath pkgId
4537 let
@@ -47,17 +39,7 @@ getPackageFromRepo allCabalHashesPath mSha1Hash pkgId = do
4739 (error (display pkgId ++ ": meta data has no SHA256 hash for the tarball"))
4840 (view (mHashes . at "SHA256") meta)
4941 source = DerivationSource "url" ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") "" tarballSHA256
50− return $ Package source False pkgDesc
51−
52−getPackageFromDb :: DB.HackageDB -> PackageIdentifier -> IO Package
53−getPackageFromDb hackageDb pkgId =
54− getStackPackageFromDb hackageDb
55− $ StackPackage (PlIndex $ PackageIndex (T.pack $ Text.display pkgId) Nothing) True Nothing
56−
57−loadPackage :: DB.HackageDB -> FilePath -> Maybe SHA1Hash -> PackageIdentifier -> IO Package
58−loadPackage hackageDb allCabalHashesPath mSha1Hash pkgId =
59− getPackageFromRepo allCabalHashesPath mSha1Hash pkgId
60− `catchIOError` const (getPackageFromDb hackageDb pkgId)
42+ return $ Package source pkgDesc
6143
6244ghcCompilerInfo :: Version -> CompilerInfo
6345ghcCompilerInfo v = CompilerInfo
@@ -72,27 +54,15 @@ buildPlanContainsDependency :: Map.Map PackageName Version -> Dependency -> Bool
7254buildPlanContainsDependency packageVersions (Dependency depName versionRange) =
7355 maybe False (`withinRange` versionRange) $ Map.lookup depName packageVersions
7456
75−buildPackageSetConfig
76− :: DB.HackageDB
77− -> FilePath
78− -> FilePath
79− -> BuildPlan
80− -> IO PackageSetConfig
81−buildPackageSetConfig hackageDb optAllCabalHashes optNixpkgsRepository buildPlan = do
57+buildPackageSetConfig :: FilePath -> FilePath -> BuildPlan -> IO PackageSetConfig
58+buildPackageSetConfig optAllCabalHashes optNixpkgsRepository buildPlan = do
8259 nixpkgs <- readNixpkgPackageMap optNixpkgsRepository Nothing
8360 let
8461 systemInfo = bpSystemInfo buildPlan
8562 packageVersions = fmap ppVersion (bpPackages buildPlan) `Map.union` siCorePackages systemInfo
8663 return PackageSetConfig
87− { packageLoader = loadPackage hackageDb optAllCabalHashes
64+ { packageLoader = loadPackage optAllCabalHashes
8865 , targetPlatform = Platform (siArch systemInfo) (siOS systemInfo)
8966 , targetCompiler = ghcCompilerInfo (siGhcVersion systemInfo)
9067 , nixpkgsResolver = resolve (Map.map (Set.map (over path ("pkgs":))) nixpkgs)
9168 , haskellResolver = buildPlanContainsDependency packageVersions }
92−
93−-- Path to Yaml build definition file in lts-haskell repository
94−buildPlanFilePath :: FilePath -> StackResolver -> FilePath
95−buildPlanFilePath ltsRepoDir resolver =
96− ltsRepoDir Path.</>
97− (resolver ^. to unStackResolver) Path.<.>
98− ".yaml"
src/Runner.hs+47−150
@@ -2,182 +2,77 @@ module Runner ( run ) where
22
33import Control.Lens
44import Data.Foldable as F
5−import Data.List as L
6−import Data.Maybe (fromMaybe)
7−import Data.Semigroup ((<>))
5+import Data.Functor
86import Distribution.Nixpkgs.Haskell.FromStack
97import Distribution.Nixpkgs.Haskell.FromStack.Package
10−import Distribution.Nixpkgs.Haskell.Hackage as DB
11−import Distribution.Nixpkgs.Haskell.PackageSourceSpec (loadHackageDB)
128import Distribution.Nixpkgs.Haskell.Stack
139import Distribution.Nixpkgs.Haskell.Stack.PrettyPrinting as PP
1410import Distribution.Version (Version)
1511import Distribution.Compiler (AbiTag(..), unknownCompilerInfo)
16−import Distribution.Package (PackageName, mkPackageName, pkgName)
17−import Distribution.Text as Text (display)
12+import Distribution.Package (mkPackageName, pkgName)
1813import Language.Nix as Nix
1914import Options.Applicative
20−import Paths_stackage2nix ( version )
2115import Runner.Cli
2216import Stack.Config
2317import Stack.Types
2418import Stackage.Types
25−import System.IO (withFile, IOMode(..), hPutStrLn)
26−import Text.PrettyPrint.HughesPJClass (Doc, render)
19+import System.FilePath as Path
20+import System.IO (withFile, IOMode(..), hPutStrLn, hPrint)
21+import Text.PrettyPrint.HughesPJClass (render)
2722
28−import qualified Data.List.NonEmpty as NE
29−import qualified Data.Map as Map
3023import qualified Data.Set as Set
24+import qualified Data.Map as Map
3125import qualified LtsHaskell as LH
3226
27+
3328run :: IO ()
3429run = do
3530 opts <- execParser pinfo
36− hackageDb <- loadHackageDB (opts ^. optHackageDb) Nothing
31+ stackYaml <- envStackYaml >>= \case
32+ Just p -> putStrLn "Getting project config file from STACK_YAML environment" $> p
33+ Nothing -> pure $ opts ^. optStackYaml
34+ stackConf <- either fail pure =<< readStackConfig stackYaml
3735 let
38− -- With optparse-applicative it seems there's no way to make
39− -- 'StackageOptions' optional for Stackage override and required in
40− -- other cases
41− missingErr = error . ("Missing required parameter: " <>)
42− sopts = StackageOptions
43− (fromMaybe (missingErr "--all-cabal-hashes") (opts ^. optAllCabalHashesRepo) )
44− (fromMaybe (missingErr "--lts-haskell") (opts ^. optLtsHaskellRepo))
45−
46− case opts ^. optConfigOrigin of
47− -- Generate Stackage packages from stack.yaml resolver
48− OriginStackYaml stackYaml buildTarget -> do
49− stackConf <- either fail pure =<< readStackConfig stackYaml
50− let
51− stackResolver = stackConf ^. scResolver
52− stackPackagesConfig = mkStackPackagesConfig opts
53− stackExtraDepsConfig = stackPackagesConfig
54− & spcDoCheckPackages .~ False
55− & spcDoHaddockPackages .~ False
56− stackConfPackages <- traverse (fmap mkNode . packageDerivation stackPackagesConfig hackageDb)
57− $ stackConf ^. scPackages
58− stackConfExtraDeps <- traverse (fmap mkNode . packageDerivation stackExtraDepsConfig hackageDb)
59− $ stackConf ^. scExtraDeps
60− let
61− stackConfAllPackages = maybe stackConfPackages ((<>) stackConfPackages)
62− $ NE.nonEmpty stackConfExtraDeps
63−
64− case buildTarget of
65− TargetStackageClosure -> do
66− (buildPlanFile, buildPlan, packageSetConfig) <- loadStackageBuildPlan hackageDb stackResolver opts sopts
67− let
68− overrideConfig = mkOverrideConfig opts (siGhcVersion $ bpSystemInfo buildPlan)
69− stackageSetConfig = if opts ^. optTweaks . tExtraDepsRevisionLatest
70− then extraDepsLatestConfig stackConfAllPackages packageSetConfig
71− else packageSetConfig
72− stackagePackages <- buildStackagePackages stackageSetConfig buildPlan
73− let
74− reachable = reachableDeps stackConfAllPackages
75− -- Nixpkgs generic-builder puts hscolour on path for all libraries
76− withHscolour pkgs =
77− let hscolour = F.find ((== "hscolour") . nodeName) stackagePackages
78− in maybe pkgs (`Set.insert` pkgs) hscolour
79− -- Find all reachable dependencies in stackage set to stick into
80− -- stackage packages file. This is performed on the full stackage
81− -- set rather than pruning stackage packages beforehand because
82− -- stackage does not concern itself with build tools while cabal2nix
83− -- does: pruning only after generating full set of packages allows
84− -- us to make sure all those extra dependencies are explicitly
85− -- listed as well.
86− nodes = Set.toAscList
87− $ withHscolour
88− $ flip reachableDependencies stackagePackages
89− -- Originally reachable nodes are root nodes
90− $ L.filter (\n -> mkPackageName (nodeName n) `Set.member` reachable) stackagePackages
91− writeOutFile buildPlanFile (opts ^. optOutStackagePackages)
92− $ pPrintOutPackages (view nodeDerivation <$> nodes)
93− writeOutFile buildPlanFile (opts ^. optOutStackageConfig)
94− $ pPrintOutConfig (bpSystemInfo buildPlan) nodes
95− writeOutFile (stackYaml ^. syFilePath) (opts ^. optOutDerivation)
96− $ PP.overrideHaskellPackages overrideConfig (view nodeDerivation <$> stackConfAllPackages)
97−
98− TargetStackagePackages -> do
99− (buildPlanFile, buildPlan, packageSetConfig) <- loadStackageBuildPlan hackageDb stackResolver opts sopts
100− let
101− overrideConfig = mkOverrideConfig opts (siGhcVersion $ bpSystemInfo buildPlan)
102− stackageSetConfig = if opts ^. optTweaks . tExtraDepsRevisionLatest
103− then extraDepsLatestConfig stackConfAllPackages packageSetConfig
104− else packageSetConfig
105− -- stackageLoader mHash pkgId =
106− -- if pkgName pkgId `Set.member` reachable
107− -- then packageLoader packageSetConfig Nothing pkgId
108− -- else packageLoader packageSetConfig mHash pkgId
109− -- stackageSetConfig = packageSetConfig { packageLoader = stackageLoader }
110− nodes <- buildStackagePackages stackageSetConfig buildPlan
111− writeOutFile buildPlanFile (opts ^. optOutStackagePackages)
112− $ pPrintOutPackages (view nodeDerivation <$> nodes)
113− writeOutFile buildPlanFile (opts ^. optOutStackageConfig)
114− $ pPrintOutConfig (bpSystemInfo buildPlan) nodes
115− writeOutFile (stackYaml ^. syFilePath) (opts ^. optOutDerivation)
116− $ PP.overrideHaskellPackages overrideConfig (view nodeDerivation <$> stackConfAllPackages)
117−
118− TargetStackageOverride -> do
119− writeOutFile (stackYaml ^. syFilePath) (opts ^. optOutDerivation)
120− $ PP.overrideStackage
121− (stackConf ^. scResolver)
122− (opts ^. optNixpkgsRepository)
123− (view nodeDerivation <$> stackConfAllPackages)
124− writeOutFile (stackYaml ^. syFilePath) (opts ^. optOutStackYamlPackages)
125− $ PP.stackYamlPackages (view nodeDerivation <$> stackConfPackages)
126−
127− -- Generate Stackage packages from resolver
128− OriginResolver stackResolver -> do
129− (buildPlanFile, buildPlan, packageSetConfig) <- loadStackageBuildPlan hackageDb stackResolver opts sopts
130− nodes <- buildStackagePackages packageSetConfig buildPlan
131− let overrideConfig = mkOverrideConfig opts (siGhcVersion $ bpSystemInfo buildPlan)
132− writeOutFile buildPlanFile (opts ^. optOutStackagePackages)
133− $ pPrintOutPackages (view nodeDerivation <$> nodes)
134− writeOutFile buildPlanFile (opts ^. optOutStackageConfig)
135− $ pPrintOutConfig (bpSystemInfo buildPlan) nodes
136− writeOutFile buildPlanFile (opts ^. optOutDerivation)
137− $ PP.pPrintHaskellPackages overrideConfig
138−
139−loadStackageBuildPlan :: DB.HackageDB -> StackResolver -> Options -> StackageOptions -> IO (FilePath, BuildPlan, PackageSetConfig)
140−loadStackageBuildPlan hackageDb stackResolver opts sopts = do
141− let buildPlanFile = LH.buildPlanFilePath (sopts ^. soptLtsHaskellRepo) stackResolver
36+ buildPlanFile =
37+ (opts ^. optLtsHaskellRepo) Path.</>
38+ (stackConf ^. scResolver . to unStackResolver) Path.<.>
39+ ".yaml"
14240 buildPlan <- LH.loadBuildPlan buildPlanFile
14341 packageSetConfig <- LH.buildPackageSetConfig
144− hackageDb
145− (sopts ^. soptAllCabalHashesRepo)
42+ (opts ^. optAllCabalHashesRepo)
14643 (opts ^. optNixpkgsRepository)
14744 buildPlan
148− return (buildPlanFile, buildPlan, packageSetConfig)
149−
150−buildStackagePackages :: PackageSetConfig -> BuildPlan -> IO [Node]
151−buildStackagePackages packageSetConfig buildPlan = do
45+ -- generate haskell packages override
15246 let
153− stackagePackageConfig = PackageConfig
154− { enableCheck = True
155− , enableHaddock = True }
156− traverse (uncurry (buildNode packageSetConfig stackagePackageConfig))
157− $ Map.toAscList (bpPackages buildPlan)
158−
159−reachableDeps :: Traversable t => t Node -> Set.Set PackageName
160−reachableDeps = Set.map mkPackageName
161− . F.foldr1 Set.union
162− . fmap nodeDepends
163−
164−-- Return 'PackageSetConfig' with package loader that loads latest Hackage
165−-- revison for direct (reachable) dependencies of input packages
166−extraDepsLatestConfig :: Traversable t => t Node -> PackageSetConfig -> PackageSetConfig
167−extraDepsLatestConfig packages packageSetConfig =
47+ overrideConfig = mkOverrideConfig opts (siGhcVersion $ bpSystemInfo buildPlan)
48+ stackPackagesConfig = mkStackPackagesConfig opts
49+ packages <- traverse (packageDerivation stackPackagesConfig (opts ^. optHackageDb))
50+ $ stackConf ^. scPackages
51+ let out = PP.overrideHaskellPackages overrideConfig packages
52+ withFile (opts ^. optOutDerivation) WriteMode $ \h -> do
53+ hPutStrLn h ("# Generated by stack2nix from " ++ stackYaml ^. syFilePath)
54+ hPrint h out
16855 let
169− reachable = reachableDeps packages
170− stackageLoader mHash pkgId =
171− if pkgName pkgId `Set.member` reachable
56+ reachable = fmap mkPackageName
57+ $ F.toList . F.foldr1 Set.union
58+ $ nodeDepends . mkNode <$> packages
59+ s2nLoader mHash pkgId =
60+ if pkgName pkgId `elem` reachable
17261 then packageLoader packageSetConfig Nothing pkgId
17362 else packageLoader packageSetConfig mHash pkgId
174− in packageSetConfig { packageLoader = stackageLoader }
175−
176−writeOutFile :: Show source => source -> FilePath -> Doc -> IO ()
177−writeOutFile source filePath contents =
178− withFile filePath WriteMode $ \h -> do
179− hPutStrLn h ("# Generated by stackage2nix " ++ Text.display version ++ " from " ++ show source)
180− hPutStrLn h $ render contents
63+ s2nPackageSetConfig = packageSetConfig { packageLoader = s2nLoader }
64+ s2nPackageConfig = PackageConfig
65+ { enableCheck = opts ^. optDoCheckStackage
66+ , enableHaddock = opts ^. optDoHaddockStackage }
67+ -- generate stackage packages
68+ nodes <- traverse (uncurry (buildNodeM s2nPackageSetConfig s2nPackageConfig))
69+ $ Map.toList (bpPackages buildPlan)
70+ withFile (opts ^. optOutStackagePackages) WriteMode $ \h -> do
71+ hPutStrLn h ("# Generated by stack2nix from " ++ buildPlanFile)
72+ hPutStrLn h $ render $ pPrintOutPackages (view nodeDerivation <$> nodes)
73+ withFile (opts ^. optOutStackageConfig) WriteMode $ \h -> do
74+ hPutStrLn h ("# Generated by stack2nix from " ++ buildPlanFile)
75+ hPutStrLn h $ render $ pPrintOutConfig (bpSystemInfo buildPlan) nodes
18176
18277mkOverrideConfig :: Options -> Version -> OverrideConfig
18378mkOverrideConfig opts ghcVersion = OverrideConfig
@@ -192,6 +87,8 @@ mkStackPackagesConfig opts = StackPackagesConfig
19287 , _spcNixpkgsResolver = \i -> Just (Nix.binding # (i, Nix.path # [i]))
19388 , _spcTargetPlatform = opts ^. optPlatform
19489 , _spcTargetCompiler = unknownCompilerInfo (opts ^. optCompilerId) NoAbiTag
195− , _spcFlagAssignment = mempty
90+ , _spcFlagAssignment = []
19691 , _spcDoCheckPackages = opts ^. optDoCheckPackages
197− , _spcDoHaddockPackages = opts ^. optDoHaddockPackages }
92+ , _spcDoHaddockPackages = opts ^. optDoHaddockPackages
93+ , _spcDoCheckStackage = opts ^. optDoCheckStackage
94+ , _spcDoHaddockStackage = opts ^. optDoHaddockStackage }
src/Runner/Cli.hs+50−109
@@ -5,98 +5,70 @@ import Data.Monoid ( (<>) )
55import Data.Text as T
66import qualified Distribution.Compat.ReadP as P
77import Distribution.Compiler as Compiler
8+import Distribution.Nixpkgs.Haskell.Stack
89import Distribution.System as System
910import qualified Distribution.Text as Text
1011import Options.Applicative as Opts
11−import Paths_stackage2nix ( version )
12−import Stack.Config
1312import Stack.Types
13+import System.Environment
1414import System.FilePath
1515
16−data Tweaks = Tweaks
17− { _tExtraDepsRevisionLatest :: Bool
18− } deriving (Show)
19−
20−makeLenses ''Tweaks
21−
22−-- | What will be generated
23−data Target
24− = TargetStackagePackages
25− | TargetStackageClosure
26− | TargetStackageOverride
27− deriving (Show)
28−
29−makePrisms ''Target
30−
31−-- | Source that would be used to produce target derivation
32−data ConfigOrigin
33− = OriginResolver StackResolver
34− -- ^ Resolver to generate Stackage LTS
35− | OriginStackYaml StackYaml Target
36− -- ^ Stack config to generate build derivation
37− deriving (Show)
38−
39−makePrisms ''ConfigOrigin
40−
41−data StackageOptions = StackageOptions
42− { _soptAllCabalHashesRepo :: FilePath
43− , _soptLtsHaskellRepo :: FilePath
44− } deriving (Show)
45−
46−makeLenses ''StackageOptions
4716
4817data Options = Options
49− { _optAllCabalHashesRepo :: Maybe FilePath
50− , _optLtsHaskellRepo :: Maybe FilePath
51− , _optOutStackagePackages :: FilePath
52− , _optOutStackageConfig :: FilePath
53− , _optOutDerivation :: FilePath
54− , _optOutStackYamlPackages :: FilePath
55− , _optDoCheckPackages :: Bool
56− , _optDoHaddockPackages :: Bool
57− , _optTweaks :: Tweaks
58− , _optHackageDb :: Maybe FilePath
59− , _optNixpkgsRepository :: FilePath
60− , _optCompilerId :: CompilerId
61− , _optPlatform :: Platform
62− , _optConfigOrigin :: ConfigOrigin
18+ { _optAllCabalHashesRepo :: !FilePath
19+ , _optLtsHaskellRepo :: !FilePath
20+ , _optOutStackagePackages :: !FilePath
21+ , _optOutStackageConfig :: !FilePath
22+ , _optOutDerivation :: !FilePath
23+ , _optDoCheckPackages :: !Bool
24+ , _optDoHaddockPackages :: !Bool
25+ , _optDoCheckStackage :: !Bool
26+ , _optDoHaddockStackage :: !Bool
27+ , _optHackageDb :: !(Maybe HackageDb)
28+ , _optNixpkgsRepository :: !FilePath
29+ , _optCompilerId :: !CompilerId
30+ , _optPlatform :: !Platform
31+ , _optStackYamlArg :: !FilePath
6332 } deriving (Show)
6433
6534makeLenses ''Options
6635
36+envStackYaml :: IO (Maybe StackYaml)
37+envStackYaml = fmap mkStackYaml <$> lookupEnv "STACK_YAML"
38+
39+optStackYaml :: Getter Options StackYaml
40+optStackYaml = optStackYamlArg . to mkStackYaml
41+
6742mkStackYaml :: FilePath -> StackYaml
6843mkStackYaml p = case splitFileName p of
6944 (dir, "") -> StackYaml dir "stack.yaml"
7045 (dir, ".") -> StackYaml dir "stack.yaml"
7146 (_ , "..") -> StackYaml p "stack.yaml"
72− (dir, file) -> case splitExtension file of
73− (_, "") -> StackYaml p "stack.yaml"
74− _ -> StackYaml dir file
47+ (dir, file) -> StackYaml dir file
7548
7649options :: Parser Options
7750options = Options
78− <$> optional allCabalHashesRepo
79− <*> optional ltsHaskellRepo
51+ <$> allCabalHashesRepo
52+ <*> ltsHaskellRepo
8053 <*> outStackagePackages
8154 <*> outStackageConfig
8255 <*> outDerivation
83− <*> outStackYamlPackages
8456 <*> doCheckPackages
8557 <*> doHaddockPackages
86− <*> tweaks
87− <*> optional optionHackageDb
58+ <*> doCheckStackage
59+ <*> doHaddockStackage
60+ <*> optional hackageDb
8861 <*> nixpkgsRepository
8962 <*> compilerId
9063 <*> platform
91− <*> configOrigin
64+ <*> stackYamlArg
9265
9366pinfo :: ParserInfo Options
9467pinfo = info
95− ( helper
96− <*> infoOption ("stackage2nix " ++ Text.display version) (long "version" <> help "Show version")
97− <*> options )
98− ( fullDesc
99− <> header "stackage2nix converts Stack files into build instructions for Nix." )
68+ ( helper
69+ <*> options )
70+ ( fullDesc
71+ <> header "stack2nix converts Stack files into build instructions for Nix." )
10072
10173nixpkgsRepository :: Parser FilePath
10274nixpkgsRepository = option str
@@ -142,14 +114,6 @@ outDerivation = option str
142114 <> value "default.nix"
143115 <> showDefaultWith id )
144116
145−outStackYamlPackages :: Parser FilePath
146−outStackYamlPackages = option str
147− ( long "out-stack-yaml-packages"
148− <> metavar "NIX_FILE"
149− <> help "path to output stackage.yaml packages list"
150− <> value "stack-yaml-packages.nix"
151− <> showDefaultWith id )
152−
153117doCheckPackages :: Parser Bool
154118doCheckPackages = flag True False
155119 ( long "no-check"
@@ -160,52 +124,29 @@ doHaddockPackages = flag True False
160124 ( long "no-haddock"
161125 <> help "disable haddock for project packages")
162126
163−withStackage :: Parser ()
164−withStackage = flag' ()
165− ( long "with-stackage"
166− <> help "generate full Stackage" )
167−
168−withStackageClosure :: Parser ()
169−withStackageClosure = flag' ()
170− ( long "with-stackage-closure"
171− <> help "generate Stackage subset containing only build dependencies" )
127+doCheckStackage :: Parser Bool
128+doCheckStackage = switch
129+ ( long "do-check-stackage"
130+ <> help "enable tests for Stackage packages" )
172131
173−extraDepsRevisionLatest :: Parser Bool
174−extraDepsRevisionLatest = switch
175− ( long "extra-deps-revision-latest"
176− <> help "Changes algorithm for the dependencies generation of the stack.yaml extra-deps. Default one is to generate exact revision defined in the Stackage config. With this flag enabled, direct dependencies of the stack.yaml extra-deps will be generated with the latest revision available on Hackage. This may help when Cabal fails to resolve dependencies of extra-deps, and dependences are fixed in the latest revision" )
132+doHaddockStackage :: Parser Bool
133+doHaddockStackage = switch
134+ ( long "do-haddock-stackage"
135+ <> help "enable haddock for Stackage packages" )
177136
178−tweaks :: Parser Tweaks
179−tweaks = Tweaks <$> extraDepsRevisionLatest
180−
181−resolver :: Parser StackResolver
182−resolver = StackResolver <$> option text
183− ( long "resolver"
184− <> help "stackage LTS resolver" )
185−
186−stackYamlArg :: Parser StackYaml
187−stackYamlArg = mkStackYaml <$> Opts.argument str
137+stackYamlArg :: Parser FilePath
138+stackYamlArg = Opts.argument str
188139 ( metavar "STACK_YAML"
189140 <> help "path to stack.yaml file or directory" )
190141
191−target :: Parser Target
192−target =
193− withStackage *> pure TargetStackagePackages <|>
194− withStackageClosure *> pure TargetStackageClosure <|>
195− pure TargetStackageOverride
196−
197−configOrigin :: Parser ConfigOrigin
198−configOrigin =
199− OriginStackYaml <$> stackYamlArg <*> target <|>
200− OriginResolver <$> resolver
142+-- inherited from cabal2nix
201143
202−-- required for cabal2nix
203−
204−optionHackageDb :: Parser FilePath
205−optionHackageDb = option str
206− ( long "hackage-db"
207− <> metavar "HACKAGE_DB"
208− <> help "path to the local hackage db in tar format" )
144+hackageDb :: Parser HackageDb
145+hackageDb = HackageDb <$>
146+ option text
147+ ( long "hackage-db"
148+ <> metavar "HACKAGE_DB"
149+ <> help "path to the local hackage db in tar format" )
209150
210151cabalFlag :: Parser CabalFlag
211152cabalFlag = CabalFlag <$>
src/Stack/Config.hs+47−130
@@ -3,9 +3,10 @@
33module Stack.Config where
44
55import Control.Lens
6+import Data.Bifunctor
67import Data.ByteString as BS
78import Data.Coerce
8−import Data.List as L
9+import Data.Foldable as F
910import Data.List.NonEmpty as NE
1011import Data.Maybe
1112import Data.Text as T
@@ -13,7 +14,7 @@ import Data.Yaml
1314import Network.URI
1415import Stack.Config.Yaml as Yaml
1516import Stack.Types
16−import System.FilePath as FilePath
17+import System.FilePath
1718
1819
1920newtype StackResolver = StackResolver { fromStackResolver :: Text }
@@ -28,166 +29,82 @@ newtype Vcs = Vcs { fromVcs :: Text }
2829 deriving (Eq, Ord, Show)
2930
3031data Repo = Repo
31− { _rVcs :: Vcs
32− , _rUri :: Text
33− , _rCommit :: Text
32+ { _rVcs :: !Vcs
33+ , _rUri :: !Text
34+ , _rCommit :: !Text
3435 } deriving (Eq, Ord, Show)
3536
3637makeLenses ''Repo
3738
38−data PackageRevision
39− = PrSha256 Text
40− | PrRev Text
41− deriving (Eq, Ord, Show)
42−
43−makePrisms ''PackageRevision
44−
45−data PackageIndex = PackageIndex
46− { _piNameVersion :: Text
47− , _piRevision :: Maybe PackageRevision
48− } deriving (Eq, Ord, Show)
49−
50−makeLenses ''PackageIndex
51−
5239data PackageLocation
53− = PlIndex PackageIndex
54− | PlFilePath FilePath
55− | PlUri URI
56− | PlRepo Repo
40+ = HackagePackage Text
41+ | StackFilePath FilePath
42+ | StackUri URI
43+ | StackRepo Repo
5744 deriving (Eq, Ord, Show)
5845
5946makePrisms ''PackageLocation
6047
6148data StackPackage = StackPackage
62− { _spLocation :: PackageLocation
63− , _spExtraDep :: Bool
64− -- | Subdirectory containing the cabal file if any specified.
65− , _spDir :: Maybe FilePath
49+ { _spLocation :: !PackageLocation
50+ , _spExtraDep :: !Bool
6651 } deriving (Eq, Ord, Show)
6752
6853makeLenses ''StackPackage
6954
7055data StackConfig = StackConfig
71− { _scResolver :: StackResolver
72− , _scPackages :: NonEmpty StackPackage
73− , _scExtraDeps :: [StackPackage]
56+ { _scResolver :: !StackResolver
57+ , _scPackages :: !(NonEmpty StackPackage)
7458 } deriving (Eq, Ord, Show)
7559
7660makeLenses ''StackConfig
7761
78−scAllPackages :: Getter StackConfig (NonEmpty StackPackage)
79−scAllPackages = to allPs
80− where
81− allPs sc = maybe ps ((<>) ps) (NE.nonEmpty ed)
82− where
83− ps = sc ^. scPackages
84− ed = sc ^. scExtraDeps
85−
8662fromYamlConfig :: Yaml.Config -> StackConfig
8763fromYamlConfig c = StackConfig{..}
8864 where
89− _scResolver = coerce $ c ^. cResolver
90− -- 'nub' replicates Stack behavior of having a Set of packages rather than list
91− _scPackages = NE.nub nePackages
92− _scExtraDeps = L.nub $ extraDeps ++ yamlExtraDeps
93− nePackages = fromMaybe (pure defaultPackage)
94− $ NE.nonEmpty packages
95− -- yaml packages section can contain extra-deps
96− (extraDeps, packages) = L.partition (view spExtraDep) yamlPackages
97− yamlPackages = L.concatMap NE.toList
98− $ fromYamlPackage packagesSimplePath False
99− <$> fromMaybe mempty (c ^. cPackages)
100− yamlExtraDeps = L.concatMap NE.toList
101− $ fromYamlPackage extraDepsSimplePath True
102− <$> fromMaybe mempty (c ^. cExtraDeps)
103− defaultPackage = StackPackage (PlFilePath ".") False Nothing
104−
105−-- | Simple string in a packages section can be an URI or FilePath location
106−packagesSimplePath :: Text -> StackPackage
107−packagesSimplePath t = StackPackage (parseSimplePath t) False Nothing
108−
109−-- | Parse location as URI or a FilePath
110−parseSimplePath :: Text -> PackageLocation
111−parseSimplePath (T.unpack -> p) = maybe (PlFilePath p) PlUri $ parseURI p
112−
113−-- | Simple string in an extra-deps section can be an URI or FilePath or PackageIndex name-version
114−extraDepsSimplePath :: Text -> StackPackage
115−extraDepsSimplePath t = StackPackage loc True Nothing
116− where
117− loc = maybe (parsePackageIndex t) PlUri $ parseURI (T.unpack t)
118−
119−-- TODO: support new package index format with hash and revision
120−parsePackageIndex :: Text -> PackageLocation
121−parsePackageIndex t = if isFilePath t
122− then PlFilePath (T.unpack t)
123− else PlIndex $ PackageIndex t Nothing
124−
125−-- Determine wether package is file path
126−isFilePath :: Text -> Bool
127−isFilePath = T.any (== FilePath.pathSeparator)
128−
129−-- | A single 'Yaml.Package' can result in multiple actual
130−-- packages if it has multiple subdirs specified.
131−fromYamlPackage
132− :: (Text -> StackPackage)
133− -> Bool
134− -> Yaml.Package
135− -> NonEmpty StackPackage
136−fromYamlPackage fromSimple isExtraDep = \case
137− Yaml.PSimple p ->
138− pure (fromSimple p)
139− Yaml.PLocationSimple (Location p extraDep ms) ->
140− unroll ms $ StackPackage (parseSimplePath p) (fromMaybe False extraDep)
141− Yaml.PLocationGit loc ->
142− mkStackPackageRepo fromYamlGit loc
143− Yaml.PLocationHg loc ->
144− mkStackPackageRepo fromYamlHg loc
145− Yaml.PArchive a ->
146− unroll (a ^. aSubdirs) $ StackPackage (a ^. aArchive . to parseSimplePath) isExtraDep
147− Yaml.PNewGit ng -> unroll (ng ^. ngSubdirs)
148− $ StackPackage (PlRepo $ fromYamlNewGit ng) isExtraDep
149− Yaml.PNewHg nh -> unroll (nh ^. nhSubdirs)
150− $ StackPackage (PlRepo $ fromYamlNewHg nh) isExtraDep
65+ _scResolver = coerce $ c ^. cResolver
66+ _scPackages = F.foldr (NE.<|) neYamlPackages yamlExtraDeps
67+ neYamlPackages = fromMaybe (pure defaultPackage) $ NE.nonEmpty yamlPackages
68+ yamlPackages = fromYamlPackage <$> fromMaybe mempty (c ^. cPackages)
69+ yamlExtraDeps = fromYamlExtraDep <$> fromMaybe mempty (c ^. cExtraDeps)
70+ defaultPackage = StackPackage (StackFilePath ".") False
71+
72+fromYamlPackage :: Yaml.Package -> StackPackage
73+fromYamlPackage = \case
74+ Yaml.Simple p ->
75+ StackPackage (parseSimplePath p) False
76+ Yaml.LocationSimple (Yaml.Location p extraDep) ->
77+ StackPackage (parseSimplePath p) (fromMaybe False extraDep)
78+ Yaml.LocationGit (Location git extraDep) ->
79+ StackPackage (StackRepo $ fromYamlGit git) (fromMaybe False extraDep)
80+ Yaml.LocationHg (Location hg extraDep) ->
81+ StackPackage (StackRepo $ fromYamlHg hg) (fromMaybe False extraDep)
15182 where
152− mkStackPackageRepo f loc = unroll (loc ^. lSubdirs)
153− $ StackPackage (PlRepo (loc ^. lLocation . to f)) (fromMaybe isExtraDep $ loc ^. lExtraDep)
154− -- Each package gets a single directory with cabal file in it. If
155− -- it's not specified, path is empty.
156− unroll subs p = case subs of
157− Just (x : xs) -> NE.map (p . Just) (x :| xs)
158− _ -> p Nothing :| []
83+ parseSimplePath (T.unpack -> p) = maybe (StackFilePath p) StackUri $ parseURI p
84+
85+fromYamlExtraDep :: Text -> StackPackage
86+fromYamlExtraDep = flip StackPackage True . HackagePackage
15987
16088fromYamlGit :: Yaml.Git -> Repo
161−fromYamlGit yg = Repo
162− { _rVcs = Vcs "git"
163− , _rUri = yg ^. gGit
164− , _rCommit = yg ^. gCommit }
89+fromYamlGit yg = Repo{..}
90+ where
91+ _rVcs = Vcs "git"
92+ _rUri = yg ^. gGit
93+ _rCommit = yg ^. gCommit
16594
16695fromYamlHg :: Yaml.Hg -> Repo
167−fromYamlHg yh = Repo
168− { _rVcs = Vcs "hg"
169− , _rUri = yh ^. hHg
170− , _rCommit = yh ^. hCommit }
171−
172−fromYamlNewGit :: NewGit -> Repo
173−fromYamlNewGit ng = Repo
174− { _rVcs = Vcs "git"
175− , _rUri = ng ^. ngGit
176− , _rCommit = ng ^. ngCommit }
177−
178−fromYamlNewHg :: NewHg -> Repo
179−fromYamlNewHg nh = Repo
180− { _rVcs = Vcs "hg"
181− , _rUri = nh ^. nhHg
182− , _rCommit = nh ^. nhCommit }
96+fromYamlHg yh = Repo{..}
97+ where
98+ _rVcs = Vcs "hg"
99+ _rUri = yh ^. hHg
100+ _rCommit = yh ^. hCommit
183101
184102readStackConfig :: StackYaml -> IO (Either String StackConfig)
185103readStackConfig stackYaml = do
186104 let
187105 relativeToStackYaml = \case
188− PlFilePath p -> PlFilePath $ stackYaml ^. syDirName </> p
106+ StackFilePath p -> StackFilePath $ stackYaml ^. syDirName </> p
189107 packageLocation -> packageLocation
190108 mkStackConfig = over (scPackages . traversed . spLocation) relativeToStackYaml
191− . over (scExtraDeps . traversed . spLocation) relativeToStackYaml
192109 . fromYamlConfig
193− bimap show mkStackConfig . decodeEither' <$> BS.readFile (stackYaml ^. syFilePath)
110+ second mkStackConfig . decodeEither <$> BS.readFile (stackYaml ^. syFilePath)
src/Stack/Config/Yaml.hs+25−63
@@ -8,97 +8,59 @@ import Data.Text as T
88import Stack.Config.TH
99
1010data Location a = Location
11− { _lLocation :: a
12− , _lExtraDep :: Maybe Bool
13− , _lSubdirs :: Maybe [FilePath]
11+ { _lLocation :: !a
12+ , _lExtraDep :: !(Maybe Bool)
1413 } deriving (Eq, Show)
1514
1615makeLenses ''Location
17−deriveJSON jsonOpts ''Location
18−
19−data Archive = Archive
20− { _aArchive :: Text
21− , _aSha256 :: Maybe Text
22− , _aSubdirs :: Maybe [FilePath]
23− } deriving (Eq, Show)
2416
25−makeLenses ''Archive
26−deriveJSON jsonOpts ''Archive
17+deriveJSON jsonOpts ''Location
2718
2819data Git = Git
29− { _gGit :: Text
30− , _gCommit :: Text
20+ { _gGit :: !Text
21+ , _gCommit :: !Text
3122 } deriving (Eq, Show)
3223
3324makeLenses ''Git
25+
3426deriveJSON jsonOpts ''Git
3527
3628data Hg = Hg
37− { _hHg :: Text
38− , _hCommit :: Text
29+ { _hHg :: !Text
30+ , _hCommit :: !Text
3931 } deriving (Eq, Show)
4032
4133makeLenses ''Hg
42−deriveJSON jsonOpts ''Hg
43−
44−-- New syntax
4534
46−data NewGit = NewGit
47− { _ngGit :: Text
48− , _ngCommit :: Text
49− , _ngSubdirs :: Maybe [FilePath]
50− } deriving (Eq, Show)
51−
52−makeLenses ''NewGit
53−deriveJSON jsonOpts ''NewGit
54−
55−data NewHg = NewHg
56− { _nhHg :: Text
57− , _nhCommit :: Text
58− , _nhSubdirs :: Maybe [FilePath]
59− } deriving (Eq, Show)
60−
61−makeLenses ''NewHg
62−deriveJSON jsonOpts ''NewHg
35+deriveJSON jsonOpts ''Hg
6336
6437data Package
65− = PSimple Text
66− | PLocationSimple (Location Text)
67− | PLocationGit (Location Git)
68− | PLocationHg (Location Hg)
69− | PArchive Archive
70− | PNewGit NewGit
71− | PNewHg NewHg
38+ = Simple Text
39+ | LocationSimple (Location Text)
40+ | LocationGit (Location Git)
41+ | LocationHg (Location Hg)
7242 deriving (Eq, Show)
7343
7444makePrisms ''Package
7545
7646instance FromJSON Package where
7747 parseJSON v =
78− (PSimple <$> parseJSON v) <|>
79− (PLocationSimple <$> parseJSON v) <|>
80− (PLocationGit <$> parseJSON v) <|>
81− (PLocationHg <$> parseJSON v) <|>
82− (PArchive <$> parseJSON v) <|>
83− (PNewGit <$> parseJSON v) <|>
84− (PNewHg <$> parseJSON v)
48+ (Simple <$> parseJSON v) <|>
49+ (LocationSimple <$> parseJSON v) <|>
50+ (LocationGit <$> parseJSON v) <|>
51+ (LocationHg <$> parseJSON v)
8552
8653instance ToJSON Package where
8754 toJSON = \case
88− PSimple t -> toJSON t
89− PLocationSimple t -> toJSON t
90− PLocationGit t -> toJSON t
91− PLocationHg t -> toJSON t
92− PArchive t -> toJSON t
93− PNewGit t -> toJSON t
94− PNewHg t -> toJSON t
95−
96−-- To support both old and new syntax, we allow all variants of package
97−-- definitions in "packages" and "extra-deps" sections
55+ Simple t -> toJSON t
56+ LocationSimple t -> toJSON t
57+ LocationGit t -> toJSON t
58+ LocationHg t -> toJSON t
59+
9860data Config = Config
99− { _cResolver :: Text
100− , _cPackages :: Maybe [Package]
101− , _cExtraDeps :: Maybe [Package]
61+ { _cResolver :: !Text
62+ , _cPackages :: !(Maybe [Package])
63+ , _cExtraDeps :: !(Maybe [Text])
10264 } deriving (Eq, Show)
10365
10466makeLenses ''Config
src/Stack/Types.hs+4−3
@@ -1,3 +1,5 @@
1+{-# LANGUAGE TemplateHaskell #-}
2+
13module Stack.Types where
24
35import Control.Lens
@@ -6,9 +8,8 @@ import System.FilePath
68
79
810data StackYaml = StackYaml
9− { _syDirName :: FilePath
10− , _syFileName :: FilePath }
11− deriving (Ord, Eq, Show)
11+ { _syDirName :: !FilePath
12+ , _syFileName :: !FilePath }
1213
1314makeLenses ''StackYaml
1415
stack.yaml+14−10
@@ -1,11 +1,15 @@
1−resolver: lts-12.2
1+resolver: lts-9.0
2+packages:
3+- '.'
4+- location:
5+ git: https://github.com/NixOS/cabal2nix.git
6+ commit: 53777ef45c45f397c1f56f9230ae494d2aefee86
7+ extra-dep: true
8+- location:
9+ git: https://github.com/fpco/stackage-curator.git
10+ commit: 3a3feeb6cc9e40bfbd7383c5e8975cd16420d822
11+ extra-dep: true
212extra-deps:
3− - yaml-0.8.31.1
4− - git: https://github.com/fpco/stackage-curator.git
5− commit: 73c5ed06602990c33d3fec1711e27875f283b6bf
6− - git: https://github.com/jwiegley/gitlib.git
7− commit: 70c99759b8b9377f67492fe29afb32f05882409d
8− subdirs:
9− - gitlib
10− - gitlib-libgit2
11−
13+- Cabal-2.0.0.2
14+nix:
15+ packages: [icu openssl zlib]
stack2nix-testnew file+22
@@ -0,0 +1,22 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+LTS_HASKELL_DIR=${LTS_HASKELL_DIR:-~/lts-haskell}
6+ALL_CABAL_HASHES_DIR=${ALL_CABAL_HASHES_DIR:-~/all-cabal-hashes}
7+
8+if [ ! -d "$LTS_HASKELL_DIR" ]; then
9+ git clone --depth 1 https://github.com/fpco/lts-haskell.git "$LTS_HASKELL_DIR"
10+fi
11+
12+if [ ! -d "$ALL_CABAL_HASHES_DIR" ]; then
13+ git clone --depth 1 --branch hackage https://github.com/commercialhaskell/all-cabal-hashes.git "$ALL_CABAL_HASHES_DIR"
14+fi
15+
16+set -x
17+stack exec -- stack2nix \
18+ --lts-haskell "$LTS_HASKELL_DIR" \
19+ --all-cabal-hashes "$ALL_CABAL_HASHES_DIR" \
20+ .
21+
22+nix-build -A stack2nix "$@"
stackage2nix.cabal → stack2nix.cabalrenamed+14−20
@@ -1,17 +1,15 @@
1−name: stackage2nix
2−version: 0.7.2
1+name: stack2nix
2+version: 0.2.0
33synopsis: Convert Stack files into Nix build instructions.
4−homepage: https://github.com/typeable/stackage2nix#readme
4+homepage: https://github.com/4e6/stack2nix#readme
55license: BSD3
66license-file: LICENSE
77author: Dmitry Bushev
8− , Benno Fünfstück
98maintainer: bushevdv@gmail.com
109category: Distribution, Nix
1110build-type: Simple
1211extra-source-files: README.md
1312cabal-version: >=1.10
14−extra-source-files: CHANGELOG.md
1513
1614library
1715 hs-source-dirs: src
@@ -29,29 +27,27 @@ library
2927 , Stack.Types
3028 other-modules: AllCabalHashes
3129 , LtsHaskell
32− , Paths_stackage2nix
30+ , Paths_stack2nix
3331 build-depends: base > 4.7 && < 5
34− , Cabal > 2.2
32+ , Cabal > 1.24
3533 , QuickCheck
3634 , aeson
3735 , bytestring
38− , cabal2nix >= 2.7.2
36+ , cabal2nix >= 2.3
3937 , containers
4038 , deepseq
4139 , distribution-nixpkgs >= 1.1
42− , exceptions > 0.8
4340 , filepath
4441 , gitlib > 3
4542 , gitlib-libgit2 > 3
4643 , hopenssl > 2.2
47− , inflections >= 0.3
44+ , inflections
4845 , language-nix
4946 , lens
5047 , network-uri
5148 , optparse-applicative
5249 , pretty
53− , stackage-curator >= 0.15
54− , tagged
50+ , stackage-curator
5551 , text
5652 , unordered-containers
5753 , yaml
@@ -60,14 +56,14 @@ library
6056 , RecordWildCards
6157 , TemplateHaskell
6258 default-language: Haskell2010
63− ghc-options: -Wall
59+ ghc-options: -Wall -funbox-strict-fields
6460
65−executable stackage2nix
66− hs-source-dirs: stackage2nix
61+executable stack2nix
62+ hs-source-dirs: stack2nix
6763 main-is: Main.hs
6864 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
6965 build-depends: base
70− , stackage2nix
66+ , stack2nix
7167 default-language: Haskell2010
7268
7369test-suite spec
@@ -78,20 +74,18 @@ test-suite spec
7874 , Cabal
7975 , bytestring
8076 , hspec
81− , network-uri
8277 , pretty
8378 , shakespeare
84− , stackage2nix
79+ , stack2nix
8580 , text
8681 , yaml
8782 default-extensions: OverloadedStrings
8883 other-modules: Language.Nix.FilePathSpec
8984 , PrettyPrintingSpec
9085 , Stack.Config.YamlSpec
91− , Stack.ConfigSpec
9286 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
9387 default-language: Haskell2010
9488
9589source-repository head
9690 type: git
97− location: https://github.com/typeable/stackage2nix
91+ location: https://github.com/4e6/stack2nix
stackage2nix/Main.hs → stack2nix/Main.hsrenamed

The content is the same.

test/Stack/Config/YamlSpec.hs+13−109
@@ -1,7 +1,7 @@
11{-# LANGUAGE OverloadedStrings #-}
22{-# LANGUAGE QuasiQuotes #-}
33
4−module Stack.Config.YamlSpec (spec) where
4+module Stack.Config.YamlSpec where
55
66import Data.ByteString
77import Data.Text.Encoding as T
@@ -28,59 +28,15 @@ packages:
2828 - location:
2929 git: git@github.com:commercialhaskell/stack.git
3030 commit: 6a86ee32e5b869a877151f74064572225e1a0398
31− - location:
32− git: git@github.com:example/mega-repo
33− commit: 6a86ee32e5b869a877151f74064572225e1a0000
34− subdirs:
35− - subdir1
36− - subdir2
3731# Comment
3832extra-deps:
3933- acme-missiles-0.3
4034|]
4135
42−-- | New yaml config support all package definitions in "extra-deps" section
43−configNewYaml :: ByteString
44−configNewYaml = T.encodeUtf8 [st|
45−resolver: lts-3.7
46−packages:
47− - .
48− - location: dir1/dir2
49− - location: https://example.com/foo/bar/baz-0.0.2.tar.gz
50− extra-dep: true
51− - location:
52− git: git@github.com:commercialhaskell/stack.git
53− commit: 6a86ee32e5b869a877151f74064572225e1a0398
54− - location:
55− git: git@github.com:example/mega-repo
56− commit: 6a86ee32e5b869a877151f74064572225e1a0000
57− subdirs:
58− - subdir1
59− - subdir2
60−# Comment
61−extra-deps:
62− - acme-missiles-0.3
63− - acme-missiles-hash-0.4@sha256:2ba66a092a32593880a87fb00f3213762d7bca65a687d45965778deb8694c5d1
64− - acme-missiles-rev-0.5@rev:0
65− - git: git@github.com:commercialhaskell/stack.git
66− commit: 6a86ee32e5b869a877151f74064572225e1a0398
67− - git: git@github.com:example/mega-repo
68− commit: 6a86ee32e5b869a877151f74064572225e1a0000
69− subdirs:
70− - subdir1
71− - subdir2
72− - archive: http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip
73− subdirs:
74− - wai
75− - warp
76− - archive: ../acme-missiles-0.3.tar.gz
77− sha256: e563d8b524017a06b32768c4db8eff1f822f3fb22a90320b7e414402647b735b
78−|]
79−
8036configMinimal :: Config
8137configMinimal = Config
8238 { _cResolver = "lts-8.15"
83− , _cPackages = Just [ PSimple "." ]
39+ , _cPackages = Just [ Simple "." ]
8440 , _cExtraDeps = Nothing
8541 }
8642
@@ -88,73 +44,21 @@ config :: Config
8844config = Config
8945 { _cResolver = "lts-3.7"
9046 , _cPackages = Just
91− [ PSimple "."
92− , PLocationSimple (Location "dir1/dir2" Nothing Nothing)
93− , PLocationSimple (Location "https://example.com/foo/bar/baz-0.0.2.tar.gz" (Just True) Nothing)
94− , PLocationGit $ Location
47+ [ Simple "."
48+ , LocationSimple (Location "dir1/dir2" Nothing)
49+ , LocationSimple (Location "https://example.com/foo/bar/baz-0.0.2.tar.gz" (Just True))
50+ , LocationGit $ Location
9551 (Git
9652 "git@github.com:commercialhaskell/stack.git"
9753 "6a86ee32e5b869a877151f74064572225e1a0398")
98− Nothing Nothing
99− , PLocationGit (Location
100− (Git
101− "git@github.com:example/mega-repo"
102− "6a86ee32e5b869a877151f74064572225e1a0000")
103− Nothing (Just ["subdir1", "subdir2"]))
104− ]
54+ Nothing]
10555 , _cExtraDeps = Just
106− [PSimple "acme-missiles-0.3"]
107− }
108−
109−configNew :: Config
110−configNew = Config
111− { _cResolver = "lts-3.7"
112− , _cPackages = Just
113− [ PSimple "."
114− , PLocationSimple (Location "dir1/dir2" Nothing Nothing)
115− , PLocationSimple (Location "https://example.com/foo/bar/baz-0.0.2.tar.gz" (Just True) Nothing)
116− , PLocationGit $ Location
117− (Git
118− "git@github.com:commercialhaskell/stack.git"
119− "6a86ee32e5b869a877151f74064572225e1a0398")
120− Nothing Nothing
121− , PLocationGit (Location
122− (Git
123− "git@github.com:example/mega-repo"
124− "6a86ee32e5b869a877151f74064572225e1a0000")
125− Nothing (Just ["subdir1", "subdir2"]))
126− ]
127− , _cExtraDeps = Just
128− [ PSimple "acme-missiles-0.3"
129− , PSimple "acme-missiles-hash-0.4@sha256:2ba66a092a32593880a87fb00f3213762d7bca65a687d45965778deb8694c5d1"
130− , PSimple "acme-missiles-rev-0.5@rev:0"
131− , PNewGit $ NewGit
132− "git@github.com:commercialhaskell/stack.git"
133− "6a86ee32e5b869a877151f74064572225e1a0398"
134− Nothing
135− , PNewGit $ NewGit
136− "git@github.com:example/mega-repo"
137− "6a86ee32e5b869a877151f74064572225e1a0000"
138− (Just ["subdir1", "subdir2"])
139− , PArchive $ Archive
140− "http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip"
141− Nothing
142− (Just ["wai", "warp"])
143− , PArchive $ Archive
144− "../acme-missiles-0.3.tar.gz"
145− (Just "e563d8b524017a06b32768c4db8eff1f822f3fb22a90320b7e414402647b735b")
146− Nothing
147− ]
56+ ["acme-missiles-0.3"]
14857 }
14958
15059spec :: Spec
151−spec = describe "Config" $ do
152− specify "minimal" $
153− (decodeMaybe configYamlMinimal :: Maybe Config) `shouldBe` Just configMinimal
154− specify "full" $
155− (decodeMaybe configYaml :: Maybe Config) `shouldBe` Just config
156− specify "new" $
157− (decodeMaybe configNewYaml :: Maybe Config) `shouldBe` Just configNew
158−
159−decodeMaybe :: ByteString -> Maybe Config
160−decodeMaybe = either (const Nothing) id . Y.decodeEither'
60+spec = describe "Parse" $ do
61+ specify "config-minimal" $
62+ (Y.decode configYamlMinimal :: Maybe Config) `shouldBe` Just configMinimal
63+ specify "config-full" $
64+ (Y.decode configYaml :: Maybe Config) `shouldBe` Just config
test/Stack/ConfigSpec.hsdeleted−191
@@ -1,191 +0,0 @@
1−{-# LANGUAGE OverloadedStrings #-}
2−{-# LANGUAGE QuasiQuotes #-}
3−
4−module Stack.ConfigSpec (spec) where
5−
6−import Data.ByteString
7−import Data.List.NonEmpty as NE
8−import Data.Text.Encoding as T
9−import Data.Yaml as Y
10−import Network.URI as URI
11−import Stack.Config
12−import Test.Hspec
13−import Text.Shakespeare.Text
14−
15−
16−spec :: Spec
17−spec = describe "StackConfig" $ do
18− specify "minimal"
19− $ checkYamlConfig minimalBs minimalConf
20− specify "packageDefault"
21− $ checkYamlConfig packageDefaultBs packageDefaultConf
22− specify "packageSimpleList"
23− $ checkYamlConfig packageSimpleListBs packageSimpleListConf
24− specify "packageLocations"
25− $ checkYamlConfig packageLocationsBs packageLocationsConf
26− specify "packageExtraDeps"
27− $ checkYamlConfig packageExtraDepsBs packageExtraDepsConf
28− specify "packageMixed"
29− $ checkYamlConfig packageMixedBs packageMixedConf
30− specify "packageExtraDepsNew"
31− $ checkYamlConfig packageExtraDepsNewBs packageExtraDepsNewConf
32−
33−parseYamlConfig :: ByteString -> Maybe StackConfig
34−parseYamlConfig = either (const Nothing) (Just . fromYamlConfig) . Y.decodeEither'
35−
36−checkYamlConfig :: ByteString -> StackConfig -> Expectation
37−checkYamlConfig bs sc = parseYamlConfig bs `shouldBe` Just sc
38−
39−stUri :: String -> URI
40−stUri s =
41− let Just uri = parseURI s
42− in uri
43−
44−minimalBs :: ByteString
45−minimalBs = T.encodeUtf8 [st|
46−resolver: lts-10.0
47−|]
48−
49−minimalConf :: StackConfig
50−minimalConf = StackConfig
51− { _scResolver = StackResolver "lts-10.0"
52− , _scPackages = NE.fromList
53− [ StackPackage (PlFilePath ".") False Nothing]
54− , _scExtraDeps = []
55− }
56−
57−packageDefaultBs :: ByteString
58−packageDefaultBs = T.encodeUtf8 [st|
59−resolver: lts-10.0
60−packages:
61− - .
62−|]
63−
64−packageDefaultConf :: StackConfig
65−packageDefaultConf = minimalConf
66−
67−packageSimpleListBs :: ByteString
68−packageSimpleListBs = T.encodeUtf8 [st|
69−resolver: lts-10.0
70−packages:
71− - client
72− - server
73−|]
74−
75−packageSimpleListConf :: StackConfig
76−packageSimpleListConf = StackConfig
77− { _scResolver = StackResolver "lts-10.0"
78− , _scPackages = NE.fromList
79− [ StackPackage (PlFilePath "client") False Nothing
80− , StackPackage (PlFilePath "server") False Nothing ]
81− , _scExtraDeps = []
82− }
83−
84−packageLocationsBs :: ByteString
85−packageLocationsBs = T.encodeUtf8 [st|
86−resolver: lts-10.0
87−packages:
88− - location: humble/package
89− subdirs:
90− - client
91− - server
92− - location: https://example.com/foo/bar/baz-0.0.2.tar.gz
93− extra-dep: true
94− subdirs:
95− - extra
96− - location:
97− git: git@github.com:example/mega-repo
98− commit: 6a86ee32e5b869a877151f74064572225e1a0000
99− subdirs:
100− - subdir1
101− - subdir2
102− extra-dep: true
103−|]
104−
105−packageLocationsConf :: StackConfig
106−packageLocationsConf = StackConfig
107− { _scResolver = StackResolver "lts-10.0"
108− , _scPackages = NE.fromList
109− [ StackPackage (PlFilePath "humble/package") False (Just "client")
110− , StackPackage (PlFilePath "humble/package") False (Just "server") ]
111− , _scExtraDeps =
112− [ StackPackage (PlUri $ stUri "https://example.com/foo/bar/baz-0.0.2.tar.gz") True (Just "extra")
113− , StackPackage (PlRepo $ Repo (Vcs "git") "git@github.com:example/mega-repo" "6a86ee32e5b869a877151f74064572225e1a0000") True (Just "subdir1")
114− , StackPackage (PlRepo $ Repo (Vcs "git") "git@github.com:example/mega-repo" "6a86ee32e5b869a877151f74064572225e1a0000") True (Just "subdir2")
115− ]
116− }
117−
118−packageExtraDepsBs :: ByteString
119−packageExtraDepsBs = T.encodeUtf8 [st|
120−resolver: lts-10.0
121−extra-deps:
122− - acme-missiles-0.3
123− - humble-package-1
124−|]
125−
126−packageExtraDepsConf :: StackConfig
127−packageExtraDepsConf = StackConfig
128− { _scResolver = StackResolver "lts-10.0"
129− , _scPackages = NE.fromList [ StackPackage (PlFilePath ".") False Nothing ]
130− , _scExtraDeps =
131− [ StackPackage (PlIndex $ PackageIndex "acme-missiles-0.3" Nothing) True Nothing
132− , StackPackage (PlIndex $ PackageIndex "humble-package-1" Nothing) True Nothing ]
133− }
134−
135−packageMixedBs :: ByteString
136−packageMixedBs = T.encodeUtf8 [st|
137−resolver: lts-10.0
138−packages:
139− - client
140− - server
141−extra-deps:
142− - acme-missiles-0.3
143− - humble-package-1
144−|]
145−
146−packageMixedConf :: StackConfig
147−packageMixedConf = StackConfig
148− { _scResolver = StackResolver "lts-10.0"
149− , _scPackages = NE.fromList
150− [ StackPackage (PlFilePath "client") False Nothing
151− , StackPackage (PlFilePath "server") False Nothing ]
152− , _scExtraDeps =
153− [ StackPackage (PlIndex $ PackageIndex "acme-missiles-0.3" Nothing) True Nothing
154− , StackPackage (PlIndex $ PackageIndex "humble-package-1" Nothing) True Nothing ]
155− }
156−
157−packageExtraDepsNewBs :: ByteString
158−packageExtraDepsNewBs = T.encodeUtf8 [st|
159−resolver: lts-10.0
160−extra-deps:
161− - vendor/lib
162− - acme-missiles-0.3
163− - git: git@github.com:yesodweb/wai
164− commit: 2f8a8e1b771829f4a8a77c0111352ce45a14c30f
165− subdirs:
166− - auto-update
167− - wai
168− - https://example.com/foo/bar/baz-0.0.2.tar.gz
169− - archive: http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip
170− subdirs:
171− - wai
172− - warp
173− - archive: ../acme-missiles-0.3.tar.gz
174− sha256: e563d8b524017a06b32768c4db8eff1f822f3fb22a90320b7e414402647b735b
175−|]
176−
177−packageExtraDepsNewConf :: StackConfig
178−packageExtraDepsNewConf = StackConfig
179− { _scResolver = StackResolver "lts-10.0"
180− , _scPackages = NE.fromList [ StackPackage (PlFilePath ".") False Nothing ]
181− , _scExtraDeps =
182− [ StackPackage (PlFilePath "vendor/lib") True Nothing
183− , StackPackage (PlIndex $ PackageIndex "acme-missiles-0.3" Nothing) True Nothing
184− , StackPackage (PlRepo $ Repo (Vcs "git") "git@github.com:yesodweb/wai" "2f8a8e1b771829f4a8a77c0111352ce45a14c30f") True (Just "auto-update")
185− , StackPackage (PlRepo $ Repo (Vcs "git") "git@github.com:yesodweb/wai" "2f8a8e1b771829f4a8a77c0111352ce45a14c30f") True (Just "wai")
186− , StackPackage (PlUri $ stUri "https://example.com/foo/bar/baz-0.0.2.tar.gz") True Nothing
187− , StackPackage (PlUri $ stUri "http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip") True (Just "wai")
188− , StackPackage (PlUri $ stUri "http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip") True (Just "warp")
189− , StackPackage (PlFilePath "../acme-missiles-0.3.tar.gz") True Nothing
190− ]
191− }