diff --git a/.circleci/config.yml b/.circleci/config.yml index febe6ed1155..03225ee128f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,7 +52,7 @@ jobs: build-archive: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 environment: CODA_DOCKER: true HASURA_PORT: 8080 @@ -98,7 +98,7 @@ jobs: command: ./scripts/archive/build-release-archives.sh lint: docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: @@ -127,9 +127,12 @@ jobs: command: ./scripts/require-ppx-coda.py lint-opt: docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout + - run: + name: Show USER + command: echo $USER - run: name: Update Submodules command: git submodule sync && git submodule update --init --recursive @@ -151,59 +154,6 @@ jobs: name: Update branch protection rule from test configuration command: ./scripts/test.py required-status >required_status && cat required_status && ./scripts/update_branch_rule.py required_status - build-auxiliary: - docker: - - image: nixos/nix - steps: - - checkout - - run: - name: Install tools - command: apk add patchelf dpkg tar - - run: - name: Install cachix - command: nix-env -iA cachix -f https://cachix.org/api/v1/install - - run: - name: Build libp2p_helper using cachix - command: | - cachix use codaprotocol - cd src/app/libp2p_helper - - if [ -z ${CACHIX_SIGNING_KEY+x} ]; then - echo "CACHIX_SIGNING_KEY is not set" - nix-build default.nix - else - nix-build default.nix | cachix push codaprotocol - fi - - run: - name: Create package dir - command: mkdir -p package - - run: - name: Collect and strip binary - command: | - cp src/app/libp2p_helper/result/bin/libp2p_helper package/coda-libp2p_helper - chmod +w package/coda-libp2p_helper - patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 package/coda-libp2p_helper - - run: - name: Create deb - command: | - mkdir -p package/deb/usr/local/sbin - cp package/coda-libp2p_helper package/deb/usr/local/sbin/. - mkdir -p package/deb/DEBIAN - cp src/app/libp2p_helper/build/DEBIAN/control package/deb/DEBIAN/control - DATE=$(date +%Y-%m-%d) - sed -i "s/DATE/${DATE}/" package/deb/DEBIAN/control - find src/app/libp2p_helper -type f -print0 | xargs -0 sha1sum | sort | sha1sum | cut -f 1 -d ' ' > /tmp/sha1sig - HASH=$(cat /tmp/sha1sig) - sed -i "s/HASH/${HASH}/" package/deb/DEBIAN/control - echo "------------------------------------" - cat package/deb/DEBIAN/control - echo "------------------------------------" - find package/deb/ - echo "------------------------------------" - dpkg-deb -v --build package/deb/ package/coda-discovery-${HASH}.deb - - store_artifacts: - path: package - build-macos: macos: xcode: "10.2.1" @@ -287,9 +237,9 @@ jobs: cd src/app/libp2p_helper if [ -z ${CACHIX_SIGNING_KEY+x} ]; then echo "CACHIX_SIGNING_KEY is not set" - nix-build default.nix + nix-build --option sandbox false default.nix else - nix-build default.nix | cachix push codaprotocol + nix-build --option sandbox false default.nix | cachix push codaprotocol fi ### dune @@ -351,7 +301,7 @@ jobs: build-artifacts--testnet_postake_medium_curves: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: @@ -364,6 +314,22 @@ jobs: - run: name: Pin external packages command: ./scripts/pin-external-packages.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Build OCaml command: ./scripts/skip_if_only_frontend.sh bash -c 'eval `opam config env` && make build 2>&1 | tee /tmp/artifacts/buildocaml.log' @@ -427,7 +393,7 @@ jobs: test-unit--test_postake_snarkless_unittest: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: ulimit -c unlimited @@ -456,6 +422,22 @@ jobs: #chmod -R 777 src/app/libp2p_helper #Do the build #sudo -H -u nix bash -c '. ~/.nix-profile/etc/profile.d/nix.sh && cachix use codaprotocol && cd src/app/libp2p_helper && nix-build default.nix' + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Run unit tests command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && dune build --profile=test_postake_snarkless_unittest -j8 && (dune runtest src/lib --profile=test_postake_snarkless_unittest -j8 || (./scripts/link-coredumps.sh && false))' @@ -465,7 +447,7 @@ jobs: test-unit--dev: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: ulimit -c unlimited @@ -494,6 +476,22 @@ jobs: #chmod -R 777 src/app/libp2p_helper #Do the build #sudo -H -u nix bash -c '. ~/.nix-profile/etc/profile.d/nix.sh && cachix use codaprotocol && cd src/app/libp2p_helper && nix-build default.nix' + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Run unit tests command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && dune build --profile=dev -j8 && (dune runtest src/lib --profile=dev -j8 || (./scripts/link-coredumps.sh && false))' @@ -503,13 +501,29 @@ jobs: test-unit--dev_medium_curves: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: ulimit -c unlimited - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Run unit tests command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && dune build --profile=dev_medium_curves -j8 && (dune runtest src/lib --profile=dev_medium_curves -j8 || (./scripts/link-coredumps.sh && false))' @@ -519,12 +533,28 @@ jobs: test--fake_hash: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- fake_hash:full-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "fake_hash:full-test"' @@ -533,12 +563,28 @@ jobs: test--test_postake: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake:full-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake:full-test"' @@ -550,12 +596,28 @@ jobs: test--test_postake_bootstrap: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_bootstrap:coda-bootstrap-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_bootstrap:coda-bootstrap-test"' @@ -567,12 +629,28 @@ jobs: test--test_postake_catchup: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_catchup:coda-restart-node-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_catchup:coda-restart-node-test"' @@ -581,12 +659,28 @@ jobs: test--test_postake_delegation: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_delegation:coda-delegation-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_delegation:coda-delegation-test"' @@ -595,12 +689,28 @@ jobs: test--test_postake_five_even_snarkless: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_five_even_snarkless:coda-shared-prefix-multiproducer-test -num-block-producers 5 command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_five_even_snarkless:coda-shared-prefix-multiproducer-test -num-block-producers 5"' @@ -609,12 +719,28 @@ jobs: test--test_postake_five_even_txns: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_five_even_txns:coda-shared-prefix-multiproducer-test -num-block-producers 5 -payments command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_five_even_txns:coda-shared-prefix-multiproducer-test -num-block-producers 5 -payments"' @@ -623,12 +749,28 @@ jobs: test--test_postake_snarkless: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_snarkless:full-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_snarkless:full-test"' @@ -640,12 +782,28 @@ jobs: test--test_postake_split: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_split:coda-shared-prefix-multiproducer-test -num-block-producers 2 command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_split:coda-shared-prefix-multiproducer-test -num-block-producers 2"' @@ -654,12 +812,28 @@ jobs: test--test_postake_split_snarkless: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_split_snarkless:coda-peers-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_split_snarkless:coda-peers-test"' @@ -686,12 +860,28 @@ jobs: test--test_postake_three_producers: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_three_producers:coda-txns-and-restart-non-producers command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_three_producers:coda-txns-and-restart-non-producers"' @@ -700,12 +890,28 @@ jobs: test--test_postake_txns: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_txns:coda-shared-state-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_txns:coda-shared-state-test"' @@ -717,12 +923,28 @@ jobs: test--test_postake_full_epoch: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_full_epoch:full-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_full_epoch:full-test"' @@ -731,12 +953,28 @@ jobs: test--test_postake_medium_curves: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_medium_curves:full-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_medium_curves:full-test"' @@ -750,12 +988,28 @@ jobs: test--test_postake_snarkless_medium_curves: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_snarkless_medium_curves:full-test command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_snarkless_medium_curves:full-test"' @@ -767,12 +1021,28 @@ jobs: test--test_postake_split_medium_curves: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Running test -- test_postake_split_medium_curves:coda-shared-prefix-multiproducer-test -num-block-producers 2 command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && ./scripts/test.py run "test_postake_split_medium_curves:coda-shared-prefix-multiproducer-test -num-block-producers 2"' @@ -785,7 +1055,6 @@ workflows: jobs: - lint - lint-opt - - build-auxiliary - update-branch-protection: filters: branches: diff --git a/.circleci/config.yml.jinja b/.circleci/config.yml.jinja index b5e1a1fccf7..9ba9cc38a73 100644 --- a/.circleci/config.yml.jinja +++ b/.circleci/config.yml.jinja @@ -52,7 +52,7 @@ jobs: build-archive: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 environment: CODA_DOCKER: true HASURA_PORT: 8080 @@ -98,7 +98,7 @@ jobs: command: ./scripts/archive/build-release-archives.sh lint: docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: @@ -127,9 +127,12 @@ jobs: command: ./scripts/require-ppx-coda.py lint-opt: docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout + - run: + name: Show USER + command: echo $USER - run: name: Update Submodules command: git submodule sync && git submodule update --init --recursive @@ -151,59 +154,6 @@ jobs: name: Update branch protection rule from test configuration command: ./scripts/test.py required-status >required_status && cat required_status && ./scripts/update_branch_rule.py required_status - build-auxiliary: - docker: - - image: nixos/nix - steps: - - checkout - - run: - name: Install tools - command: apk add patchelf dpkg tar - - run: - name: Install cachix - command: nix-env -iA cachix -f https://cachix.org/api/v1/install - - run: - name: Build libp2p_helper using cachix - command: | - cachix use codaprotocol - cd src/app/libp2p_helper - - if [ -z ${CACHIX_SIGNING_KEY+x} ]; then - echo "CACHIX_SIGNING_KEY is not set" - nix-build default.nix - else - nix-build default.nix | cachix push codaprotocol - fi - - run: - name: Create package dir - command: mkdir -p package - - run: - name: Collect and strip binary - command: | - cp src/app/libp2p_helper/result/bin/libp2p_helper package/coda-libp2p_helper - chmod +w package/coda-libp2p_helper - patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 package/coda-libp2p_helper - - run: - name: Create deb - command: | - mkdir -p package/deb/usr/local/sbin - cp package/coda-libp2p_helper package/deb/usr/local/sbin/. - mkdir -p package/deb/DEBIAN - cp src/app/libp2p_helper/build/DEBIAN/control package/deb/DEBIAN/control - DATE=$(date +%Y-%m-%d) - sed -i "s/DATE/${DATE}/" package/deb/DEBIAN/control - find src/app/libp2p_helper -type f -print0 | xargs -0 sha1sum | sort | sha1sum | cut -f 1 -d ' ' > /tmp/sha1sig - HASH=$(cat /tmp/sha1sig) - sed -i "s/HASH/${HASH}/" package/deb/DEBIAN/control - echo "------------------------------------" - cat package/deb/DEBIAN/control - echo "------------------------------------" - find package/deb/ - echo "------------------------------------" - dpkg-deb -v --build package/deb/ package/coda-discovery-${HASH}.deb - - store_artifacts: - path: package - build-macos: macos: xcode: "10.2.1" @@ -287,9 +237,9 @@ jobs: cd src/app/libp2p_helper if [ -z ${CACHIX_SIGNING_KEY+x} ]; then echo "CACHIX_SIGNING_KEY is not set" - nix-build default.nix + nix-build --option sandbox false default.nix else - nix-build default.nix | cachix push codaprotocol + nix-build --option sandbox false default.nix | cachix push codaprotocol fi ### dune @@ -353,7 +303,7 @@ jobs: build-artifacts--{{profile}}: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: @@ -366,6 +316,22 @@ jobs: - run: name: Pin external packages command: ./scripts/pin-external-packages.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Build OCaml command: ./scripts/skip_if_only_frontend.sh bash -c 'eval `opam config env` && make build 2>&1 | tee /tmp/artifacts/buildocaml.log' @@ -434,7 +400,7 @@ jobs: test-unit--{{profile}}: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: ulimit -c unlimited @@ -463,6 +429,22 @@ jobs: #chmod -R 777 src/app/libp2p_helper #Do the build #sudo -H -u nix bash -c '. ~/.nix-profile/etc/profile.d/nix.sh && cachix use codaprotocol && cd src/app/libp2p_helper && nix-build default.nix' + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Run unit tests command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && dune build --profile={{profile}} -j8 && (dune runtest src/lib --profile={{profile}} -j8 || (./scripts/link-coredumps.sh && false))' @@ -475,13 +457,29 @@ jobs: test-unit--{{profile}}: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: ulimit -c unlimited - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi - run: name: Run unit tests command: ./scripts/skip_if_only_frontend.sh bash -c 'source ~/.profile && dune build --profile={{profile}} -j8 && (dune runtest src/lib --profile={{profile}} -j8 || (./scripts/link-coredumps.sh && false))' @@ -494,12 +492,28 @@ jobs: test--{{profile}}: resource_class: large docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi {%- for test in small_curves_tests[profile] %} - run: name: Running test -- {{profile}}:{{test}} @@ -513,12 +527,28 @@ jobs: test--{{profile}}: resource_class: xlarge docker: - - image: codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e + - image: codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 steps: - checkout - run: name: Update OPAM command: ./scripts/update-opam-in-docker.sh + - run: + name: Install cachix + command: USER=opam . ~/.nix-profile/etc/profile.d/nix.sh && nix-env --option sandbox false -iA cachix -f https://cachix.org/api/v1/install + - run: + name: Build libp2p_helper using cachix + command: | + export USER=opam + . ~/.nix-profile/etc/profile.d/nix.sh + cachix use codaprotocol + cd src/app/libp2p_helper + if [ -z ${CACHIX_SIGNING_KEY+x} ]; then + echo "CACHIX_SIGNING_KEY is not set" + nix-build --option sandbox false default.nix + else + nix-build --option sandbox false default.nix | cachix push codaprotocol + fi {%- for test in medium_curves_and_other_tests[profile] %} - run: name: Running test -- {{profile}}:{{test}} @@ -537,7 +567,6 @@ workflows: jobs: - lint - lint-opt - - build-auxiliary - update-branch-protection: filters: branches: diff --git a/.dockerignore b/.dockerignore index d9cffdea4e3..b417e9ff682 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,7 @@ * !src/opam.export !coda.deb +!coda-discovery.deb !src/external/**/* -!src/app/kademlia-haskell !src/app/libp2p_helper !src/app/trace-tool diff --git a/.gitattributes b/.gitattributes index 15543004544..340b0ebb76a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,6 +11,5 @@ frontend/website/static/presskit.zip filter=lfs diff=lfs merge=lfs -text *.woff filter=lfs diff=lfs merge=lfs -text *.woff2 filter=lfs diff=lfs merge=lfs -text frontend/website/static/*.bc.js filter=lfs diff=lfs merge=lfs -text -src/app/kademlia-haskell/packages.nix linguist-generated=true src/app/archive/archive_graphql_schema.json linguist-generated=true docs/res/block_production_fsm.dot.png filter=lfs diff=lfs merge=lfs -text diff --git a/.github/labels.json b/.github/labels.json index 21c6efa25ff..22d406af0f8 100644 --- a/.github/labels.json +++ b/.github/labels.json @@ -32,7 +32,7 @@ "color": "#9791a0" }, { - "name": "area-kademlia", + "name": "area-libp2p", "color": "#9791a0" }, { diff --git a/.mergify.yml b/.mergify.yml index 43d94b4a2e5..b8860292f2c 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -2,7 +2,6 @@ pull_request_rules: - name: automatically merge approved PRs with the ready-to-merge label conditions: - "status-success=ci/circleci: build-artifacts--testnet_postake_medium_curves" - - "status-success=ci/circleci: build-auxiliary" - "status-success=ci/circleci: build-wallet" - "status-success=ci/circleci: lint" - "status-success=ci/circleci: test--fake_hash" diff --git a/CODEOWNERS b/CODEOWNERS index ae9cea71d13..8b10ad7551a 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -18,7 +18,6 @@ /src/app/cli/src/tests @emberian @bkase @ghost-not-in-the-shell @deepthiskumar /src/app/cli/src/coda.ml @nholland94 @bkase @emberian @imeckler /src/app/cli/src/init @nholland94 @bkase @emberian @imeckler -/src/app/kademlia-haskell/ @bkase @emberian @psteckler /src/app/libp2p_helper @emberian @bkase @nholland94 /src/app/reformat/ @bkase /src/app/trace-tool/ @emberian @mrmr1993 @@ -50,7 +49,6 @@ /src/lib/group_map/ @rbkhmrcr @vanishreerao @imeckler /src/lib/hash_prefixes/ @rbkhmrcr @vanishreerao @imeckler /src/lib/interruptible/ @bkase @nholland94 -/src/lib/kademlia @bkase @emberian @psteckler /src/lib/key_value_database/ @bkase @nholland94 @psteckler /src/lib/keys_lib/ @emberian @mrmr1993 @imeckler /src/lib/ledger_catchup/ @nholland94 @ghost-not-in-the-shell diff --git a/Makefile b/Makefile index 37ba1b320a4..392305780ea 100644 --- a/Makefile +++ b/Makefile @@ -8,8 +8,7 @@ GITLONGHASH = $(shell git rev-parse HEAD) MYUID = $(shell id -u) DOCKERNAME = codabuilder-$(MYUID) -# Unique signature of kademlia code tree -KADEMLIA_SIG = $(shell cd src/app/kademlia-haskell ; find . -type f -print0 | xargs -0 sha1sum | sort | sha1sum | cut -f 1 -d ' ') +# Unique signature of libp2p code tree LIBP2P_HELPER_SIG = $(shell cd src/app/libp2p_helper ; find . -type f -print0 | xargs -0 sha1sum | sort | sha1sum | cut -f 1 -d ' ') ifeq ($(DUNE_PROFILE),) @@ -61,15 +60,9 @@ clean: @rm -rf _build @rm -rf src/$(COVERAGE_DIR) -kademlia: - @# FIXME: Bash wrap here is awkward but required to get nix-env - bash -c "source ~/.profile && cd src/app/kademlia-haskell && nix-build release2.nix" - libp2p_helper: bash -c "source ~/.profile && cd src/app/libp2p_helper && nix-build default.nix" -# Alias -dht: kademlia libp2p_helper GENESIS_DIR := $(TMPDIR)/coda_cache_dir @@ -105,7 +98,7 @@ update-opam: macos-portable: @rm -rf _build/coda-daemon-macos/ @rm -rf _build/coda-daemon-macos.zip - @./scripts/macos-portable.sh src/_build/default/src/app/cli/src/coda.exe src/app/kademlia-haskell/result/bin/kademlia _build/coda-daemon-macos + @./scripts/macos-portable.sh src/_build/default/src/app/cli/src/coda.exe _build/coda-daemon-macos @zip -r _build/coda-daemon-macos.zip _build/coda-daemon-macos/ @echo Find coda-daemon-macos.zip inside _build/ @@ -177,15 +170,6 @@ docker-toolchain-rust: echo "Repo has uncommited changes, commit first to set hash." ;\ fi -# All in one step to build toolchain and binary for kademlia -# TODO: Rename to docker-toolchain-discovery -docker-toolchain-haskell: - @echo "Building codaprotocol/coda:toolchain-haskell-$(KADEMLIA_SIG)" ;\ - docker build --file dockerfiles/Dockerfile-toolchain-haskell --tag codaprotocol/coda:toolchain-haskell-$(KADEMLIA_SIG) . ;\ - echo 'Extracting deb package' ;\ - mkdir -p _build ;\ - docker run --rm --entrypoint cat codaprotocol/coda:toolchain-haskell-$(KADEMLIA_SIG) /src/coda-discovery.deb > _build/coda-discovery.deb - update-deps: ./scripts/update-toolchain-references.sh $(GITLONGHASH) make render-circleci @@ -316,4 +300,4 @@ ml-docs: # unless there is a reason not to. # https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html # HACK: cat Makefile | egrep '^\w.*' | sed 's/:/ /' | awk '{print $1}' | grep -v myprocs | sort | xargs -.PHONY: all base-docker base-googlecloud base-minikube build check-format ci-base-docker clean codaslim containerstart deb dev codabuilder kademlia coda-docker coda-googlecloud coda-minikube ocaml407-googlecloud pull-ocaml407-googlecloud reformat test test-all test-coda-block-production-sig test-coda-block-production-stake test-codapeers-sig test-codapeers-stake test-full-sig test-full-stake test-runtest test-transaction-snark-profiler-sig test-transaction-snark-profiler-stake update-deps render-circleci check-render-circleci docker-toolchain-rust toolchains doc_diagrams ml-docs macos-setup macos-setup-download macos-setup-compile \ No newline at end of file +.PHONY: all base-docker base-googlecloud base-minikube build check-format ci-base-docker clean codaslim containerstart deb dev codabuilder coda-docker coda-googlecloud coda-minikube ocaml407-googlecloud pull-ocaml407-googlecloud reformat test test-all test-coda-block-production-sig test-coda-block-production-stake test-codapeers-sig test-codapeers-stake test-full-sig test-full-stake test-runtest test-transaction-snark-profiler-sig test-transaction-snark-profiler-stake update-deps render-circleci check-render-circleci docker-toolchain-rust toolchains doc_diagrams ml-docs macos-setup macos-setup-download macos-setup-compile libp2p_helper diff --git a/README-dev.md b/README-dev.md index 02985128332..517681734d2 100644 --- a/README-dev.md +++ b/README-dev.md @@ -59,7 +59,7 @@ of the repo. * Pull down developer container image (~2GB download, go stretch your legs) -`docker pull codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e` +`docker pull codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9` * Create local builder image @@ -128,12 +128,12 @@ You should probably use `USEDOCKER=TRUE` unless you've done the [building withou These are the most important `make` targets: -* `libp2p_helper`: build the libp2p helper * `build`: build everything * `docker`: build the container * `container`: restart the development container (or start it if it's not yet) * `dev`: does `docker`, `container`, and `build` * `test`: run the tests +* `libp2p_helper`: build the libp2p helper * `web`: build the website, including the state explorer We use the [dune](https://github.com/ocaml/dune/) buildsystem for our OCaml code. diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index 26431d43aab..a41aadd3f2b 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -1,4 +1,4 @@ -FROM codaprotocol/coda:toolchain-54430467ba429af285ea937d1c1da7d4b4cbde3e +FROM codaprotocol/coda:toolchain-6728e849d78ccb9ca7c53d1b82609c8dd49b40f9 # same as in Dockerfile-toolchain ARG OCAML_VERSION=4.07.1 diff --git a/dockerfiles/Dockerfile-toolchain b/dockerfiles/Dockerfile-toolchain index 598e404d2da..e505c102011 100644 --- a/dockerfiles/Dockerfile-toolchain +++ b/dockerfiles/Dockerfile-toolchain @@ -117,15 +117,17 @@ RUN for pkg in ocaml-sodium rpc_parallel ocaml-extlib digestif async_kernel coda cd $EXTERNAL_PKG_DIR/$pkg && opam pin -y add . ; \ done +# Install nix + +RUN sudo apt-get install gnupg2 && curl -o install-nix-2.3.2 https://nixos.org/nix/install && \ + curl -o install-nix-2.3.2.sig https://nixos.org/nix/install.sig && \ + gpg2 --recv-keys B541D55301270E0BCF15CA5D8170B4726D7198DE && \ + gpg2 --verify ./install-nix-2.3.2.sig && \ + sh ./install-nix-2.3.2 + # repo no longer needed RUN sudo rm -rf /coda -# Get coda-kademlia from packages repo -RUN sudo apt-get install --yes apt-transport-https ca-certificates && \ - echo "deb [trusted=yes] https://packages.o1test.net unstable main" | sudo tee -a /etc/apt/sources.list.d/coda.list && \ - sudo apt-get update && \ - sudo apt-get install --yes coda-discovery - # The Ocaml images are set to London time for reason. UTC makes reading the logs # easier. RUN sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime diff --git a/dockerfiles/Dockerfile-toolchain-haskell b/dockerfiles/Dockerfile-toolchain-haskell deleted file mode 100644 index 74d093d0582..00000000000 --- a/dockerfiles/Dockerfile-toolchain-haskell +++ /dev/null @@ -1,51 +0,0 @@ -FROM nixos/nix:latest - -# Simple toolchain & build container that compiles and patches a kademlia binary for coda use - -# Add OS tools -RUN apk add patchelf dpkg tar - -# Update nixkgs -RUN nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs -RUN nix-channel --update && \ - nix-env -iA cachix -f https://cachix.org/api/v1/install - -# Source tree nix-built haskell kademlia -ADD /src/app/kademlia-haskell /src/kademlia -ADD /src/app/libp2p_helper /src/libp2p - -# Generate a unique signature for the source tree path -RUN cd /src ; find . -type f -print0 | xargs -0 sha1sum | sort | sha1sum | cut -f 1 -d ' ' > /tmp/sha1sig ; cat /tmp/sha1sig - -# Build -RUN cachix use codaprotocol \ - && cd /src/kademlia ; nix-build release2.nix \ - && ls -l /src/kademlia/result/bin \ - && cd /src/libp2p ; nix-build default.nix \ - && ls -l /src/libp2p/result/bin - -# Adjust elf headers (de-nix) -RUN patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 /src/kademlia/result/bin/kademlia -RUN patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 /src/libp2p/result/bin/libp2p_helper - -# Deb staging -RUN mkdir -p /src/build/DEBIAN -# bkase had a hard time finding the DEBIAN/control file, and believes it makes -# sense for that information to live here along with the other logic for -# populating the deb build. And so we can created it via echos -RUN echo "Package: coda-discovery" > /src/build/DEBIAN/control && \ - echo "Version: 0.1.$(date +%Y-%m-%d)-$(cat /tmp/sha1sig)" >> /src/build/DEBIAN/control && \ - echo "Section: base" >> /src/build/DEBIAN/control && \ - echo "Priority: optional" >> /src/build/DEBIAN/control && \ - echo "Architecture: amd64" >> /src/build/DEBIAN/control && \ - echo "License: BSD 3-Clause" >> /src/build/DEBIAN/control && \ - echo "Homepage: https://codaprotocol.com/" >> /src/build/DEBIAN/control && \ - echo "Maintainer: o\(1\)Labs " >> /src/build/DEBIAN/control && \ - echo "Description: Coda Protocol Discovery Tools" >> /src/build/DEBIAN/control && \ - echo " Coda Protocol Kademlia binary and libp2p helper" >> /src/build/DEBIAN/control -RUN mkdir -p /src/build/usr/local/bin -RUN cp /src/kademlia/result/bin/kademlia /src/build//usr/local/bin/coda-kademlia -RUN cp /src/libp2p/result/bin/libp2p_helper /src/build//usr/local/bin/coda-libp2p_helper - -# Build and copy deb -RUN cd /src ; dpkg-deb --build /src/build ; cp /src/build.deb /src/coda-discovery.deb diff --git a/frontend/website/pages/docs/developers/directory-structure.mdx b/frontend/website/pages/docs/developers/directory-structure.mdx index 2dc0a3a3741..0620f54dde2 100644 --- a/frontend/website/pages/docs/developers/directory-structure.mdx +++ b/frontend/website/pages/docs/developers/directory-structure.mdx @@ -66,8 +66,8 @@ files play: - `logproc/` This utility reads from `stdin` and can filter and pretty print the log messages emitted by the coda daemon. - - `kademlia-haskell/` - This is a simple wrapper around a Haskell implementation of the kademlia DHT. + - `libp2p_helper/` + This program uses go-libp2p to implement the peer-to-peer plumbing that Coda daemons need. - `external/` Local copies of external libraries which we've had to make some tweaks to. @@ -77,4 +77,4 @@ files play: The libraries here basically fall into two categories. 1. General purpose data-types and functionality. This includes `snarky`, `fold_lib`, `vrf_lib`, `sgn`, and others. 2. Application specific functionality, structured as a library. This includes `syncable_ledger`, `staged_ledger`, `transaction_snark`, and others. - \ No newline at end of file + diff --git a/frontend/website/pages/docs/glossary.mdx b/frontend/website/pages/docs/glossary.mdx index dc56b0d6fd2..4a07941dd79 100755 --- a/frontend/website/pages/docs/glossary.mdx +++ b/frontend/website/pages/docs/glossary.mdx @@ -64,6 +64,11 @@ A node is a machine running the coda daemon. Networking systems that rely on peer nodes to distribute information amongst each other are called peer-to-peer networks. These networks are often distributed in nature, and unlike client-server networking models, do not rely on any centralized resource broker. + +#### Libp2p + +A peer-to-peer networking library that provides things like message broadcast and filesharing. Coda uses this under the hood. + #### Private Key The other component in public-key cryptography - private keys are held private while public keys can be issued publicly. Only the holder of the a public key's corresponding private key can attest to ownership of the public key. This allows for signing transactions to prove that you are the honest holder of any funds associated with any given public key. diff --git a/rfcs/0005-issue-labels.md b/rfcs/0005-issue-labels.md index 6a834238ae5..0bcd45e0bba 100644 --- a/rfcs/0005-issue-labels.md +++ b/rfcs/0005-issue-labels.md @@ -20,7 +20,6 @@ name and the label name. For example, `area-snark` or `priority-critical`. - `daemon` - `docs` - `gossip` - - `kademlia` - `monitoring` - `proposer` - `protocol` diff --git a/scripts/debug-dist-coda.sh b/scripts/debug-dist-coda.sh index c496fb67eb2..4bdaf94255a 100755 --- a/scripts/debug-dist-coda.sh +++ b/scripts/debug-dist-coda.sh @@ -21,7 +21,7 @@ sysctl -n machdep.cpu.brand_string echo "=========" echo "== Verify static initilization works" echo "=========" -CODA_KADEMLIA_PATH=$PWD/kademlia ./coda.exe -help +./coda.exe -help # Re-enable if you want to debug illegal instructions # lldb -o run ./coda.exe transaction-snark-profiler @@ -36,5 +36,5 @@ rm -rf ~/.coda-config echo "=========" echo "== Verify full test" echo "=========" -CODA_KADEMLIA_PATH=$PWD/kademlia ./coda.exe integration-tests full-test +./coda.exe integration-tests full-test diff --git a/scripts/macos-portable.sh b/scripts/macos-portable.sh index 86d5888143d..47f277f5555 100755 --- a/scripts/macos-portable.sh +++ b/scripts/macos-portable.sh @@ -6,19 +6,16 @@ set -eou pipefail if [[ $# -ne 3 ]]; then - echo "Usage: $0 " + echo "Usage: $0 " exit 1 fi LOCAL_CODA_EXE="$(basename "$1")" -LOCAL_KADEMLIA="$(basename "$2")" DIST_DIR="$3" mkdir -p "$DIST_DIR" cp "$1" "$DIST_DIR/$LOCAL_CODA_EXE" -cp "$2" "$DIST_DIR/$LOCAL_KADEMLIA" -chmod +w "$DIST_DIR/$LOCAL_KADEMLIA" pushd "$DIST_DIR" @@ -57,13 +54,5 @@ fixup() { done } -# Start with coda.exe -fixup "$LOCAL_CODA_EXE" - -# Fixup kademlia -K_LIBS=$(otool -l kademlia | grep -E '\s+name' | grep '/nix' | grep -v '\-osx\-' | awk '{print $2}') -echo "$K_LIBS" | while read lib; do - # we already have all the libs from coda.exe thankfully - install_name_tool -change "$lib" "@executable_path/$(basename $lib)" "$LOCAL_KADEMLIA" -done - +# Fix coda.exe +fixup "$LOCAL_CODA_EXE" \ No newline at end of file diff --git a/scripts/rebuild-deb.sh b/scripts/rebuild-deb.sh index 6319685d3df..492ef7a283f 100755 --- a/scripts/rebuild-deb.sh +++ b/scripts/rebuild-deb.sh @@ -39,7 +39,8 @@ Version: ${VERSION} Section: base Priority: optional Architecture: amd64 -Depends: coda-discovery, libffi6, libgmp10, libgomp1, libjemalloc1, libprocps6, libssl1.1, miniupnpc +Depends: libffi6, libgmp10, libgomp1, libjemalloc1, libprocps6, libssl1.1, miniupnpc +Conflicts: coda-discovery License: Apache-2.0 Homepage: https://codaprotocol.com/ Maintainer: o(1)Labs @@ -56,6 +57,7 @@ echo "------------------------------------------------------------" # Binaries mkdir -p "${BUILDDIR}/usr/local/bin" cp ./default/src/app/cli/src/coda.exe "${BUILDDIR}/usr/local/bin/coda" +cp "${SCRIPTPATH}/../src/app/libp2p_helper/result/bin/libp2p_helper" "${BUILDDIR}/usr/local/bin/coda-libp2p_helper" cp ./default/src/app/logproc/logproc.exe "${BUILDDIR}/usr/local/bin/coda-logproc" cp ./default/src/app/runtime_genesis_ledger/runtime_genesis_ledger.exe "${BUILDDIR}/usr/local/bin/coda-create-genesis" @@ -145,7 +147,7 @@ Version: ${VERSION} Section: base Priority: optional Architecture: amd64 -Depends: coda-discovery, libffi6, libgmp10, libgomp1, libjemalloc1, libprocps6, libssl1.1, miniupnpc +Depends: libffi6, libgmp10, libgomp1, libjemalloc1, libprocps6, libssl1.1, miniupnpc License: Apache-2.0 Homepage: https://codaprotocol.com/ Maintainer: o(1)Labs diff --git a/scripts/test.py b/scripts/test.py index 56299b597b0..a0c88fe1763 100755 --- a/scripts/test.py +++ b/scripts/test.py @@ -87,7 +87,6 @@ extra_required_status_checks = [ "ci/circleci: lint", "ci/circleci: tracetool", - "ci/circleci: build-auxiliary", "ci/circleci: build-wallet", ] diff --git a/src/app/cli/src/coda.ml b/src/app/cli/src/coda.ml index 58d8bcbd29e..6bb72e662f7 100644 --- a/src/app/cli/src/coda.ml +++ b/src/app/cli/src/coda.ml @@ -64,11 +64,6 @@ let daemon logger = "Dir Directory that contains the genesis ledger and the genesis \ blockchain proof (default: /genesis-ledger)" (optional string) - and initial_peers_raw = - flag "kademlia-peer" - ~doc: - "HOST:PORT TCP daemon communications (can be given multiple times)" - (listed peer) and run_snark_worker_flag = flag "run-snark-worker" ~doc:"PUBLICKEY Run the SNARK worker with this public key" @@ -79,7 +74,7 @@ let daemon logger = "seq|rand Choose work sequentially (seq) or randomly (rand) \ (default: rand)" (optional work_selection_method) - and external_port = Flag.Port.Daemon.external_ + and libp2p_port = Flag.Port.Daemon.external_ and client_port = Flag.Port.Daemon.client and rest_server_port = Flag.Port.Daemon.rest_server and archive_process_location = Flag.Host_and_port.Daemon.archive @@ -96,7 +91,14 @@ let daemon logger = need to set this if auto-discovery fails for some reason." (optional string) and bind_ip_opt = - flag "bind-ip" ~doc:"IP IP of network interface to use" + flag "bind-ip" + ~doc:"IP IP of network interface to use for peer connections" + (optional string) + and working_dir = + flag "working-dir" + ~doc: + "PATH path to chdir into before starting (useful for background \ + mode, defaults to cwd, or / if -background)" (optional string) and is_background = flag "background" no_arg ~doc:"Run process on the background" @@ -128,12 +130,13 @@ let daemon logger = "Have REST server listen on all addresses, not just localhost \ (this is INSECURE, make sure your firewall is configured \ correctly!)" + (* FIXME #4095 and limit_connections = flag "limit-concurrent-connections" ~doc: "true|false Limit the number of concurrent connections per IP \ address (default: true)" - (optional bool) + (optional bool)*) (*TODO: This is being added to log all the snark works received for the beta-testnet challenge. We might want to remove this later?*) and log_received_snark_pool_diff = @@ -151,23 +154,17 @@ let daemon logger = "true|false Log transaction-pool diff received from peers \ (default: false)" (optional bool) - and disable_libp2p = - flag "disable-libp2p-discovery" no_arg ~doc:"Disable libp2p discovery" - and discovery_port = Flag.Port.Daemon.discovery - and enable_old_discovery = - flag "enable-old-discovery" no_arg - ~doc:"Enable the old Haskell Kademlia discovery" and libp2p_keypair = flag "discovery-keypair" (optional string) ~doc: - "PUBKEY,PRIVKEY,PEERID Keypair (generated from `coda advanced \ + "KEYFILE Keypair (generated from `coda advanced \ generate-libp2p-keypair`) to use with libp2p discovery (default: \ - generate new temporary keypair)" + generate per-run temporary keypair)" and libp2p_peers_raw = flag "peer" ~doc: "/ip4/IPADDR/tcp/PORT/ipfs/PEERID initial \"bootstrap\" peers for \ - libp2p discovery" + discovery" (listed string) in fun () -> @@ -187,9 +184,9 @@ let daemon logger = if is_background then ( Core.printf "Starting background coda daemon. (Log Dir: %s)\n%!" conf_dir ; - Daemon.daemonize ~redirect_stdout:`Dev_null + Daemon.daemonize ~redirect_stdout:`Dev_null ?cd:working_dir ~redirect_stderr:`Dev_null () ) - else () + else ignore (Option.map working_dir ~f:Caml.Sys.chdir) in Stdout_log.setup log_json log_level ; (* 512MB logrotate max size = 1GB max filesystem usage *) @@ -223,16 +220,30 @@ let daemon logger = () ) ; Logger.info ~module_:__MODULE__ ~location:__LOC__ logger "Booting may take several seconds, please wait" ; - let libp2p_keypair = - Option.map libp2p_keypair ~f:(fun s -> - match Coda_net2.Keypair.of_string s with - | Ok kp -> - kp - | Error e -> - Logger.fatal logger "failed to parse -libp2p-keypair: $err" - ~module_:__MODULE__ ~location:__LOC__ - ~metadata:[("err", `String (Error.to_string_hum e))] ; - Core.exit 19 ) + let%bind libp2p_keypair = + let libp2p_keypair_old_format = + Option.bind libp2p_keypair ~f:(fun s -> + match Coda_net2.Keypair.of_string s with + | Ok kp -> + Some kp + | Error _ -> + if String.contains s ',' then + Logger.warn logger + "I think -discovery-keypair is in the old format, but \ + I failed to parse it! Using it as a path..." + ~module_:__MODULE__ ~location:__LOC__ ; + None ) + in + match libp2p_keypair_old_format with + | Some kp -> + return (Some kp) + | None -> ( + match libp2p_keypair with + | None -> + return None + | Some s -> + Secrets.Libp2p_keypair.Terminal_stdin.read_exn s + |> Deferred.map ~f:Option.some ) in (* Check if the config files are for the current version. * WARNING: Deleting ALL the files in the config directory if there is @@ -393,10 +404,9 @@ let daemon logger = let get_port {Flag.Types.value; default; name} = or_from_config YJ.Util.to_int_option name ~default value in - let external_port = get_port external_port in - let client_port = get_port client_port in + let libp2p_port = get_port libp2p_port in let rest_server_port = get_port rest_server_port in - let discovery_port = get_port discovery_port in + let client_port = get_port client_port in let snark_work_fee_flag = let json_to_currency_fee_option json = YJ.Util.to_int_option json |> Option.map ~f:Currency.Fee.of_int @@ -404,12 +414,14 @@ let daemon logger = or_from_config json_to_currency_fee_option "snark-worker-fee" ~default:Cli_lib.Default.snark_worker_fee snark_work_fee in - let max_concurrent_connections = - if + (* FIXME #4095: pass this through to Gossip_net.Libp2p *) + let _max_concurrent_connections = + (*if or_from_config YJ.Util.to_bool_option "max-concurrent-connections" ~default:true limit_connections then Some 40 - else None + else *) + None in let work_selection_method = or_from_config @@ -442,55 +454,6 @@ let daemon logger = ; transaction_pool_diff= log_transaction_pool_diff ; new_state= log_received_blocks } in - let initial_peers_raw = - List.concat - [ initial_peers_raw - ; List.map ~f:Host_and_port.of_string - @@ or_from_config - (Fn.compose Option.some - (YJ.Util.convert_each YJ.Util.to_string)) - "peers" None ~default:[] ] - in - let old_discovery_port = external_port + 1 in - if enable_tracing then Coda_tracing.start conf_dir |> don't_wait_for ; - let%bind initial_peers_cleaned_lists = - (* for each provided peer, lookup all its addresses *) - Deferred.List.filter_map ~how:(`Max_concurrent_jobs 8) - initial_peers_raw ~f:(fun addr -> - let host = Host_and_port.host addr in - match%map - Monitor.try_with_or_error (fun () -> - Async.Unix.Host.getbyname_exn host ) - with - | Ok unix_host -> - (* assume addresses is nonempty *) - let addresses = Array.to_list unix_host.addresses in - let port = Host_and_port.port addr in - Some - (List.map addresses ~f:(fun inet_addr -> - Host_and_port.create - ~host:(Unix.Inet_addr.to_string inet_addr) - ~port )) - | Error e -> - Logger.trace logger ~module_:__MODULE__ ~location:__LOC__ - "Error on getbyname: $error" - ~metadata:[("error", `String (Error.to_string_mach e))] ; - Logger.error logger ~module_:__MODULE__ ~location:__LOC__ - "Failed to get addresses for host $host, skipping" - ~metadata:[("host", `String host)] ; - None ) - in - (* flatten list of lists of host-and-ports *) - let initial_peers_cleaned = List.concat initial_peers_cleaned_lists in - let%bind () = - if - List.length initial_peers_raw <> 0 - && List.length initial_peers_cleaned = 0 - then ( - eprintf "Error: failed to connect to any peers\n" ; - exit 10 ) - else Deferred.unit - in let%bind external_ip = match external_ip_opt with | None -> @@ -502,13 +465,8 @@ let daemon logger = Option.value bind_ip_opt ~default:"0.0.0.0" |> Unix.Inet_addr.of_string in - let addrs_and_ports : Kademlia.Node_addrs_and_ports.t = - { external_ip - ; bind_ip - ; discovery_port= old_discovery_port - ; communication_port= external_port - ; client_port - ; libp2p_port= discovery_port } + let addrs_and_ports : Node_addrs_and_ports.t = + {external_ip; bind_ip; peer= None; client_port; libp2p_port} in let%bind block_production_keypair = match block_production_key with @@ -584,22 +542,28 @@ let daemon logger = in trace_database_initialization "consensus local state" __LOC__ trust_dir ; + let initial_peers = + List.concat + [ List.map ~f:Coda_net2.Multiaddr.of_string libp2p_peers_raw + ; List.map ~f:Coda_net2.Multiaddr.of_string + @@ or_from_config + (Fn.compose Option.some + (YJ.Util.convert_each YJ.Util.to_string)) + "peers" None ~default:[] ] + in + if enable_tracing then Coda_tracing.start conf_dir |> don't_wait_for ; + let is_seed = List.is_empty initial_peers in let gossip_net_params = - Gossip_net.Real.Config. + Gossip_net.Libp2p.Config. { timeout= Time.Span.of_sec 3. ; logger - ; target_peer_count= 8 ; conf_dir ; chain_id= chain_id ~genesis_state_hash - ; initial_peers= initial_peers_cleaned + ; unsafe_no_trust_ip= false + ; initial_peers ; addrs_and_ports ; trust_system - ; enable_libp2p= not disable_libp2p - ; disable_haskell= not enable_old_discovery - ; libp2p_keypair - ; libp2p_peers= - List.map ~f:Coda_net2.Multiaddr.of_string libp2p_peers_raw - ; max_concurrent_connections } + ; keypair= libp2p_keypair } in let net_config = { Coda_networking.Config.logger @@ -608,10 +572,11 @@ let daemon logger = ; consensus_local_state ; genesis_ledger_hash ; log_gossip_heard + ; is_seed ; creatable_gossip_net= Coda_networking.Gossip_net.( - Any.Creatable ((module Real), Real.create gossip_net_params)) - } + Any.Creatable + ((module Libp2p), Libp2p.create gossip_net_params)) } in let receipt_chain_dir_name = conf_dir ^/ "receipt_chain" in let%bind () = Async.Unix.mkdir ~p:() receipt_chain_dir_name in diff --git a/src/app/cli/src/dune b/src/app/cli/src/dune index 74a0037c20c..bf331743fde 100644 --- a/src/app/cli/src/dune +++ b/src/app/cli/src/dune @@ -5,7 +5,7 @@ (name coda) (public_name coda) (modes native) - (libraries init tests child_processes jemalloc genesis_ledger_helper) + (libraries init tests child_processes node_addrs_and_ports jemalloc genesis_ledger_helper) (preprocessor_deps ../../../config.mlh) (preprocess (pps ppx_coda ppx_let ppx_sexp_conv ppx_optcomp)) (flags -short-paths -g -w @a-4-29-40-41-42-44-45-48-58-59-60)) diff --git a/src/app/cli/src/init/client.ml b/src/app/cli/src/init/client.ml index e3a8f9e9cd8..4260a3eeb48 100644 --- a/src/app/cli/src/init/client.ml +++ b/src/app/cli/src/init/client.ml @@ -867,11 +867,7 @@ let dump_keypair = Cli_lib.Exceptions.handle_nicely @@ fun () -> let open Deferred.Let_syntax in - let%map kp = - Secrets.Keypair.read_exn ~privkey_path - ~password: - (lazy (Secrets.Password.read "Password for private key file: ")) - in + let%map kp = Secrets.Keypair.Terminal_stdin.read_exn privkey_path in printf "Public key: %s\nPrivate key: %s\n" ( kp.public_key |> Public_key.compress |> Public_key.Compressed.to_base58_check ) @@ -1278,7 +1274,8 @@ let create_account = (Cli_lib.Background_daemon.graphql_init (return ()) ~f:(fun graphql_endpoint () -> let%bind password = - Secrets.Keypair.prompt_password "Password for new account: " + Secrets.Keypair.Terminal_stdin.prompt_password + "Password for new account: " in let%map response = Graphql_client.query_exn @@ -1305,7 +1302,8 @@ let unlock_account = let open Deferred.Or_error.Let_syntax in let%map password = Deferred.map ~f:Or_error.return - (Secrets.Password.read "Password to unlock account: ") + (Secrets.Password.hidden_line_or_env + "Password to unlock account: " ~env:Secrets.Keypair.env) in password in @@ -1353,30 +1351,31 @@ let lock_account = let generate_libp2p_keypair = Command.async - ~summary: - "Generate a new libp2p keypair and print it out (this contains the \ - secret key!)" - (Command.Param.return - ( Cli_lib.Exceptions.handle_nicely - @@ fun () -> - Deferred.ignore - (let open Deferred.Let_syntax in - (* FIXME: I'd like to accumulate messages into this logger and only dump them out in failure paths. *) - let logger = Logger.null () in - (* Using the helper only for keypair generation requires no state. *) - File_system.with_temp_dir "coda-generate-libp2p-keypair" - ~f:(fun tmpd -> - match%bind Coda_net2.create ~logger ~conf_dir:tmpd with - | Ok net -> - let%bind me = Coda_net2.Keypair.random net in - let%map () = Coda_net2.shutdown net in - printf "libp2p keypair:\n%s\n" - (Coda_net2.Keypair.to_string me) - | Error e -> - Logger.fatal logger "failed to generate libp2p keypair: $err" - ~module_:__MODULE__ ~location:__LOC__ - ~metadata:[("err", `String (Error.to_string_hum e))] ; - exit 20 )) )) + ~summary:"Generate a new libp2p keypair and print out the peer ID" + (let open Command.Let_syntax in + let%map_open privkey_path = Cli_lib.Flag.privkey_write_path in + Cli_lib.Exceptions.handle_nicely + @@ fun () -> + Deferred.ignore + (let open Deferred.Let_syntax in + (* FIXME: I'd like to accumulate messages into this logger and only dump them out in failure paths. *) + let logger = Logger.null () in + (* Using the helper only for keypair generation requires no state. *) + File_system.with_temp_dir "coda-generate-libp2p-keypair" ~f:(fun tmpd -> + match%bind Coda_net2.create ~logger ~conf_dir:tmpd with + | Ok net -> + let%bind me = Coda_net2.Keypair.random net in + let%bind () = Coda_net2.shutdown net in + let%map () = + Secrets.Libp2p_keypair.Terminal_stdin.write_exn ~privkey_path + me + in + printf "libp2p keypair:\n%s\n" (Coda_net2.Keypair.to_string me) + | Error e -> + Logger.fatal logger "failed to generate libp2p keypair: $err" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata:[("err", `String (Error.to_string_hum e))] ; + exit 20 ))) let trustlist_ip_flag = Command.Param.( diff --git a/src/app/cli/src/init/coda_run.ml b/src/app/cli/src/init/coda_run.ml index dc878e8506f..30e35e581c2 100644 --- a/src/app/cli/src/init/coda_run.ml +++ b/src/app/cli/src/init/coda_run.ml @@ -108,9 +108,11 @@ let summary exn_str = let coda_status coda_ref = Option.value_map coda_ref - ~default:(`String "Shutdown before Coda instance was created") ~f:(fun t -> + ~default: + (Deferred.return (`String "Shutdown before Coda instance was created")) + ~f:(fun t -> Coda_commands.get_status ~flag:`Performance t - |> Daemon_rpcs.Types.Status.to_yojson ) + >>| Daemon_rpcs.Types.Status.to_yojson ) let make_report exn_str ~conf_dir ~top_logger coda_ref = let _ = remove_prev_crash_reports ~conf_dir in @@ -122,7 +124,7 @@ let make_report exn_str ~conf_dir ~top_logger coda_ref = let report_file = temp_config ^ ".tar.gz" in (*Coda status*) let status_file = temp_config ^/ "coda_status.json" in - let status = coda_status !coda_ref in + let%map status = coda_status !coda_ref in Yojson.Safe.to_file status_file status ; (*coda logs*) let coda_log = conf_dir ^/ "coda.log" in @@ -252,9 +254,9 @@ let setup_local_server ?(client_trustlist = []) ?rest_server_port coda pk |> Participating_state.active_error ) ) ; implement_notrace Daemon_rpcs.Get_status.rpc (fun () flag -> - return (Coda_commands.get_status ~flag coda) ) + Coda_commands.get_status ~flag coda ) ; implement Daemon_rpcs.Clear_hist_status.rpc (fun () flag -> - return (Coda_commands.clear_hist_status ~flag coda) ) + Coda_commands.clear_hist_status ~flag coda ) ; implement Daemon_rpcs.Get_ledger.rpc (fun () lh -> Coda_lib.get_ledger coda lh ) ; implement Daemon_rpcs.Stop_daemon.rpc (fun () () -> @@ -362,9 +364,9 @@ let setup_local_server ?(client_trustlist = []) ?rest_server_port (fun ~body _sock req -> let uri = Cohttp.Request.uri req in let status flag = + let%bind status = Coda_commands.get_status ~flag coda in Server.respond_string - ( Coda_commands.get_status ~flag coda - |> Daemon_rpcs.Types.Status.to_yojson + ( status |> Daemon_rpcs.Types.Status.to_yojson |> Yojson.Safe.pretty_to_string ) in let lift x = `Response x in @@ -458,7 +460,7 @@ let coda_crash_message ~log_issue ~action ~error = %s %!|err} error followup -let no_report exn_str coda_ref = +let no_report exn_str status = sprintf "include the last 20 lines from .coda-config/coda.log and then paste the \ following:\n\ @@ -466,7 +468,7 @@ let no_report exn_str coda_ref = %s\n\ Status:\n\ %s\n" - (Yojson.Safe.to_string (coda_status !coda_ref)) + (Yojson.Safe.to_string status) (Yojson.Safe.to_string (summary exn_str)) let handle_crash e ~conf_dir ~top_logger coda_ref = @@ -474,10 +476,11 @@ let handle_crash e ~conf_dir ~top_logger coda_ref = Logger.fatal top_logger ~module_:__MODULE__ ~location:__LOC__ "Unhandled top-level exception: $exn\nGenerating crash report" ~metadata:[("exn", `String exn_str)] ; - let action_string = - match - try Ok (make_report exn_str ~conf_dir coda_ref ~top_logger) - with exn -> Error (Error.of_exn exn) + let%bind status = coda_status !coda_ref in + let%map action_string = + match%map + try make_report exn_str ~conf_dir coda_ref ~top_logger >>| fun k -> Ok k + with exn -> return (Error (Error.of_exn exn)) with | Ok (Some (report_file, temp_config)) -> ( try Core.Sys.command (sprintf "rm -rf %s" temp_config) |> ignore @@ -485,12 +488,12 @@ let handle_crash e ~conf_dir ~top_logger coda_ref = sprintf "attach the crash report %s" report_file | Ok None -> (*TODO: tar failed, should we ask people to zip the temp directory themselves?*) - no_report exn_str coda_ref + no_report exn_str status | Error e -> Logger.fatal top_logger ~module_:__MODULE__ ~location:__LOC__ "Exception when generating crash report: $exn" ~metadata:[("exn", `String (Error.to_string_hum e))] ; - no_report exn_str coda_ref + no_report exn_str status in let message = coda_crash_message ~error:"crashed" ~action:action_string ~log_issue:true @@ -499,27 +502,34 @@ let handle_crash e ~conf_dir ~top_logger coda_ref = let handle_shutdown ~monitor ~conf_dir ~top_logger coda_ref = Monitor.detach_and_iter_errors monitor ~f:(fun exn -> - ( match Monitor.extract_exn exn with - | Coda_networking.No_initial_peers -> - let message = - coda_crash_message ~error:"failed to connect to any initial peers" - ~action: - "You might be trying to connect to a different network \ - version, or need to troubleshoot your configuration. See \ - https://codaprotocol.com/docs/troubleshooting/ for details." - ~log_issue:false - in - Core.print_string message - | Genesis_ledger_helper.Genesis_state_initialization_error -> - let message = - coda_crash_message ~error:"failed to initialize the genesis state" - ~action:"include the last 50 lines from .coda-config/coda.log" - ~log_issue:true - in - Core.print_string message - | _ -> - handle_crash exn ~conf_dir ~top_logger coda_ref ) ; - Stdlib.exit 1 ) ; + don't_wait_for + (let%bind () = + match Monitor.extract_exn exn with + | Coda_networking.No_initial_peers -> + let message = + coda_crash_message + ~error:"failed to connect to any initial peers" + ~action: + "You might be trying to connect to a different network \ + version, or need to troubleshoot your configuration. \ + See https://codaprotocol.com/docs/troubleshooting/ for \ + details." + ~log_issue:false + in + Core.print_string message ; Deferred.unit + | Genesis_ledger_helper.Genesis_state_initialization_error -> + let message = + coda_crash_message + ~error:"failed to initialize the genesis state" + ~action: + "include the last 50 lines from .coda-config/coda.log" + ~log_issue:true + in + Core.print_string message ; Deferred.unit + | _ -> + handle_crash exn ~conf_dir ~top_logger coda_ref + in + Stdlib.exit 1) ) ; Async_unix.Signal.( handle terminating ~f:(fun signal -> log_shutdown ~conf_dir ~top_logger coda_ref ; diff --git a/src/app/cli/src/tests/coda_archive_node_test.ml b/src/app/cli/src/tests/coda_archive_node_test.ml index f59e269bee5..423a340cecb 100644 --- a/src/app/cli/src/tests/coda_archive_node_test.ml +++ b/src/app/cli/src/tests/coda_archive_node_test.ml @@ -20,7 +20,7 @@ let main () = in let is_archive_rocksdb i = i = 1 in let%bind testnet = - Coda_worker_testnet.test logger n block_production_keys + Coda_worker_testnet.test ~name logger n block_production_keys snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None ~is_archive_rocksdb in diff --git a/src/app/cli/src/tests/coda_batch_payment_test.ml b/src/app/cli/src/tests/coda_batch_payment_test.ml index da5d5eb3204..4fb48a92de2 100644 --- a/src/app/cli/src/tests/coda_batch_payment_test.ml +++ b/src/app/cli/src/tests/coda_batch_payment_test.ml @@ -23,7 +23,7 @@ let main () = in let num_nodes = 3 in let%bind testnet = - Coda_worker_testnet.test logger num_nodes block_production_keys + Coda_worker_testnet.test ~name logger num_nodes block_production_keys snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_block_production_test.ml b/src/app/cli/src/tests/coda_block_production_test.ml index a7024433141..73bd5db726f 100644 --- a/src/app/cli/src/tests/coda_block_production_test.ml +++ b/src/app/cli/src/tests/coda_block_production_test.ml @@ -8,7 +8,7 @@ let main () = let n = 1 in let snark_work_public_keys _ = None in let%bind testnet = - Coda_worker_testnet.test logger n Option.some snark_work_public_keys + Coda_worker_testnet.test ~name logger n Option.some snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_bootstrap_test.ml b/src/app/cli/src/tests/coda_bootstrap_test.ml index 0995de185f2..8bb88d18ccb 100644 --- a/src/app/cli/src/tests/coda_bootstrap_test.ml +++ b/src/app/cli/src/tests/coda_bootstrap_test.ml @@ -16,7 +16,7 @@ let main () = else None in let%bind testnet = - Coda_worker_testnet.test logger n block_production_keys + Coda_worker_testnet.test ~name logger n block_production_keys snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_change_snark_worker_test.ml b/src/app/cli/src/tests/coda_change_snark_worker_test.ml index 00cea74062f..ce9ec1bf4d4 100644 --- a/src/app/cli/src/tests/coda_change_snark_worker_test.ml +++ b/src/app/cli/src/tests/coda_change_snark_worker_test.ml @@ -22,7 +22,7 @@ let main () = else None in let%bind testnet = - Coda_worker_testnet.test logger n block_production_keys + Coda_worker_testnet.test ~name logger n block_production_keys snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_delegation_test.ml b/src/app/cli/src/tests/coda_delegation_test.ml index 395666b631a..b1e5ad1755b 100644 --- a/src/app/cli/src/tests/coda_delegation_test.ml +++ b/src/app/cli/src/tests/coda_delegation_test.ml @@ -16,7 +16,7 @@ let main () = |> fun (_, acct) -> Some (Account.public_key acct) in let%bind testnet = - Coda_worker_testnet.test logger num_block_producers Option.some + Coda_worker_testnet.test ~name logger num_block_producers Option.some snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_five_nodes_test.ml b/src/app/cli/src/tests/coda_five_nodes_test.ml index 9c32d3ab79e..6b18c4327d2 100644 --- a/src/app/cli/src/tests/coda_five_nodes_test.ml +++ b/src/app/cli/src/tests/coda_five_nodes_test.ml @@ -16,7 +16,7 @@ let main () = None in let%bind testnet = - Coda_worker_testnet.test logger n Option.some snark_work_public_keys + Coda_worker_testnet.test ~name logger n Option.some snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_long_fork.ml b/src/app/cli/src/tests/coda_long_fork.ml index 4d35b504395..ecb9bc61b7e 100644 --- a/src/app/cli/src/tests/coda_long_fork.ml +++ b/src/app/cli/src/tests/coda_long_fork.ml @@ -16,7 +16,7 @@ let main n waiting_time () = |> Signature_lib.Public_key.compress ) in let%bind testnet = - Coda_worker_testnet.test logger n Option.some snark_work_public_keys + Coda_worker_testnet.test ~name logger n Option.some snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_peers_test.ml b/src/app/cli/src/tests/coda_peers_test.ml index 9fbd1fe88cc..ad5ea65cc87 100644 --- a/src/app/cli/src/tests/coda_peers_test.ml +++ b/src/app/cli/src/tests/coda_peers_test.ml @@ -18,32 +18,35 @@ let main () = Cli_lib.Arg_type.Work_selection_method.Sequence in Coda_processes.init () ; - let configs = + let%bind configs = Coda_processes.local_configs n ~program_dir ~block_production_interval - ~acceptable_delay ~snark_worker_public_keys:None + ~acceptable_delay ~chain_id:name ~snark_worker_public_keys:None ~block_production_keys:(Fn.const None) ~work_selection_method ~trace_dir:(Unix.getenv "CODA_TRACING") ~max_concurrent_connections:None in let%bind workers = Coda_processes.spawn_local_processes_exn configs in - let _, expected_peers = Coda_processes.net_configs n in - let%bind _ = after (Time.Span.of_sec 10.) in + let _, expected_peers = (List.hd_exn configs).net_configs in + let%bind _ = after (Time.Span.of_sec 60.) in let%bind () = Deferred.all_unit (List.map2_exn workers expected_peers ~f:(fun worker expected_peers -> + let expected_peer_ports = + List.map expected_peers ~f:(fun p -> p.libp2p_port) + in let%map peers = Coda_process.peers_exn worker in Logger.debug logger ~module_:__MODULE__ ~location:__LOC__ - !"got peers %{sexp: Network_peer.Peer.t list} %{sexp: \ - Host_and_port.t list}\n" - peers expected_peers ; - let module S = Host_and_port.Set in + !"got peers %{sexp: Network_peer.Peer.t list} %{sexp: int list}\n" + peers expected_peer_ports ; + let module S = Int.Set in assert ( - S.equal - (S.of_list - ( peers - |> List.map ~f:Network_peer.Peer.to_discovery_host_and_port - )) - (S.of_list expected_peers) ) )) + S.is_subset + ~of_: + (S.of_list + ( peers + |> List.map ~f:(fun p -> p.Network_peer.Peer.libp2p_port) + )) + (S.of_list expected_peer_ports) ) )) in Deferred.List.iter workers ~f:(Coda_process.disconnect ~logger) diff --git a/src/app/cli/src/tests/coda_process.ml b/src/app/cli/src/tests/coda_process.ml index dc9df0374aa..b226f497c5c 100644 --- a/src/app/cli/src/tests/coda_process.ml +++ b/src/app/cli/src/tests/coda_process.ml @@ -18,7 +18,8 @@ let spawn_exn (config : Coda_worker.Input.t) = File_system.dup_stderr process ; return (conn, process, config) -let local_config ?block_production_interval:_ ~peers ~addrs_and_ports +let local_config ?block_production_interval:_ ~peers ~addrs_and_ports ~chain_id + ~libp2p_keypair ~net_configs:(addrs_and_ports_list, all_peers_list) ~acceptable_delay ~program_dir ~block_production_key ~snark_worker_key ~work_selection_method ~offset ~trace_dir ~max_concurrent_connections ~is_archive_rocksdb () = @@ -28,6 +29,14 @@ let local_config ?block_production_interval:_ ~peers ~addrs_and_ports in let config = { Coda_worker.Input.addrs_and_ports + ; libp2p_keypair + ; net_configs= + ( List.map + ~f:(fun (na, kp) -> (Node_addrs_and_ports.to_display na, kp)) + addrs_and_ports_list + , List.map + ~f:(List.map ~f:Node_addrs_and_ports.to_display) + all_peers_list ) ; env= ( "CODA_TIME_OFFSET" , Time.Span.to_int63_seconds_round_down_exn offset @@ -43,8 +52,9 @@ let local_config ?block_production_interval:_ ~peers ~addrs_and_ports ; block_production_key ; snark_worker_key ; work_selection_method - ; peers ; conf_dir + ; chain_id + ; peers ; trace_dir ; program_dir ; acceptable_delay diff --git a/src/app/cli/src/tests/coda_processes.ml b/src/app/cli/src/tests/coda_processes.ml index c1e326d08f0..acaf8f141e6 100644 --- a/src/app/cli/src/tests/coda_processes.ml +++ b/src/app/cli/src/tests/coda_processes.ml @@ -9,33 +9,38 @@ let init () = Parallel.init_master () type ports = {communication_port: int; discovery_port: int; libp2p_port: int} let net_configs n = - let ips = - List.init n ~f:(fun i -> - Unix.Inet_addr.of_string @@ sprintf "127.0.0.1%i" i ) - in - let addrs_and_ports_list = - List.mapi ips ~f:(fun i ip -> - let base = 23000 + (i * 3) in - let communication_port = base in - let discovery_port = base + 1 in - let libp2p_port = base + 2 in - let client_port = 20000 + i in - { Kademlia.Node_addrs_and_ports.external_ip= ip - ; bind_ip= ip - ; discovery_port - ; communication_port - ; libp2p_port - ; client_port } ) - in - let all_peers = - List.map addrs_and_ports_list - ~f:Kademlia.Node_addrs_and_ports.to_discovery_host_and_port - in - let peers = - List.init n ~f:(fun i -> List.take all_peers i @ List.drop all_peers (i + 1) - ) - in - (addrs_and_ports_list, peers) + File_system.with_temp_dir "coda-processes-generate-keys" ~f:(fun tmpd -> + let%bind net = + Coda_net2.create ~logger:(Logger.create ()) ~conf_dir:tmpd + in + let net = Or_error.ok_exn net in + let ips = + List.init n ~f:(fun i -> + Unix.Inet_addr.of_string @@ sprintf "127.0.0.1%i" i ) + in + let%bind addrs_and_ports_list = + Deferred.List.mapi ips ~f:(fun i ip -> + let%map key = Coda_net2.Keypair.random net in + let base = 23000 + (i * 2) in + let libp2p_port = base in + let client_port = base + 1 in + ( { Node_addrs_and_ports.external_ip= ip + ; bind_ip= ip + ; peer= + Some + (Network_peer.Peer.create ip ~libp2p_port + ~peer_id:(Coda_net2.Keypair.to_peer_id key)) + ; libp2p_port + ; client_port } + , key ) ) + in + let all_peers = addrs_and_ports_list in + let peers = + List.init n ~f:(fun i -> + List.take all_peers i @ List.drop all_peers (i + 1) ) + in + let%map () = Coda_net2.shutdown net in + (addrs_and_ports_list, List.map ~f:(List.map ~f:fst) peers) ) let offset = lazy @@ -46,20 +51,26 @@ let offset = let local_configs ?block_production_interval ?(block_production_keys = Fn.const None) - ?(is_archive_rocksdb = Fn.const false) n ~acceptable_delay ~program_dir - ~snark_worker_public_keys ~work_selection_method ~trace_dir + ?(is_archive_rocksdb = Fn.const false) n ~acceptable_delay ~chain_id + ~program_dir ~snark_worker_public_keys ~work_selection_method ~trace_dir ~max_concurrent_connections = - let addrs_and_ports_list, peers = net_configs n in + let%map net_configs = net_configs n in + let addrs_and_ports_list, peers = net_configs in let peers = [] :: List.drop peers 1 in let args = List.zip_exn addrs_and_ports_list peers in let configs = - List.mapi args ~f:(fun i (addrs_and_ports, peers) -> + List.mapi args ~f:(fun i ((addrs_and_ports, libp2p_keypair), peers) -> let public_key = Option.bind snark_worker_public_keys ~f:(fun keys -> List.nth_exn keys i ) in + let addrs_and_ports = + Node_addrs_and_ports.to_display addrs_and_ports + in + let peers = List.map ~f:Node_addrs_and_ports.to_multiaddr_exn peers in Coda_process.local_config ?block_production_interval ~addrs_and_ports - ~peers ~snark_worker_key:public_key ~program_dir ~acceptable_delay + ~libp2p_keypair ~net_configs ~peers ~snark_worker_key:public_key + ~program_dir ~acceptable_delay ~chain_id ~block_production_key:(block_production_keys i) ~work_selection_method ~trace_dir ~is_archive_rocksdb:(is_archive_rocksdb i) @@ -67,7 +78,7 @@ let local_configs ?block_production_interval in configs -let stabalize_and_start_or_timeout ?(timeout_ms = 10000.) nodes = +let stabalize_and_start_or_timeout ?(timeout_ms = 20000.) nodes = let ready () = let check_ready node = let%map peers = Coda_process.peers_exn node in @@ -75,7 +86,7 @@ let stabalize_and_start_or_timeout ?(timeout_ms = 10000.) nodes = in let rec go () = if%bind Deferred.List.for_all nodes ~f:check_ready then return () - else go () + else after (Time.Span.of_ms 100.) >>= go in go () in diff --git a/src/app/cli/src/tests/coda_receipt_chain_test.ml b/src/app/cli/src/tests/coda_receipt_chain_test.ml index e2cb4b41eb9..9a2cbaa9131 100644 --- a/src/app/cli/src/tests/coda_receipt_chain_test.ml +++ b/src/app/cli/src/tests/coda_receipt_chain_test.ml @@ -40,9 +40,9 @@ let main () = Cli_lib.Arg_type.Work_selection_method.Sequence in Parallel.init_master () ; - let configs = + let%bind configs = Coda_processes.local_configs n ~program_dir ~block_production_interval - ~acceptable_delay ~snark_worker_public_keys:None + ~acceptable_delay ~chain_id:name ~snark_worker_public_keys:None ~block_production_keys:(Fn.const None) ~work_selection_method ~trace_dir:(Unix.getenv "CODA_TRACING") ~max_concurrent_connections:None diff --git a/src/app/cli/src/tests/coda_restart_node_test.ml b/src/app/cli/src/tests/coda_restart_node_test.ml index c58fe8d5d25..66f71c96499 100644 --- a/src/app/cli/src/tests/coda_restart_node_test.ml +++ b/src/app/cli/src/tests/coda_restart_node_test.ml @@ -19,7 +19,7 @@ let main () = else None in let%bind testnet = - Coda_worker_testnet.test logger n block_production_keys + Coda_worker_testnet.test ~name logger n block_production_keys snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_restarts_and_txns_holy_grail.ml b/src/app/cli/src/tests/coda_restarts_and_txns_holy_grail.ml index a6b00655d83..296a89b3bc3 100644 --- a/src/app/cli/src/tests/coda_restarts_and_txns_holy_grail.ml +++ b/src/app/cli/src/tests/coda_restarts_and_txns_holy_grail.ml @@ -14,7 +14,7 @@ let main n () = in let block_production_keys n = if n < 3 then Some n else None in let%bind testnet = - Coda_worker_testnet.test logger n block_production_keys + Coda_worker_testnet.test ~name logger n block_production_keys snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_shared_prefix_multiproducer_test.ml b/src/app/cli/src/tests/coda_shared_prefix_multiproducer_test.ml index f1f00aad493..88be92d197e 100644 --- a/src/app/cli/src/tests/coda_shared_prefix_multiproducer_test.ml +++ b/src/app/cli/src/tests/coda_shared_prefix_multiproducer_test.ml @@ -15,7 +15,7 @@ let main n enable_payments () = Some ((List.nth_exn keypairs i).public_key |> Public_key.compress) in let%bind testnet = - Coda_worker_testnet.test logger n Option.some snark_work_public_keys + Coda_worker_testnet.test ~name logger n Option.some snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_shared_prefix_test.ml b/src/app/cli/src/tests/coda_shared_prefix_test.ml index 75498deb127..53ae4120a65 100644 --- a/src/app/cli/src/tests/coda_shared_prefix_test.ml +++ b/src/app/cli/src/tests/coda_shared_prefix_test.ml @@ -9,8 +9,8 @@ let main who_produces () = let block_producers i = if i = who_produces then Some i else None in let snark_work_public_keys _ = None in let%bind testnet = - Coda_worker_testnet.test logger n block_producers snark_work_public_keys - Cli_lib.Arg_type.Work_selection_method.Sequence + Coda_worker_testnet.test ~name logger n block_producers + snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in let%bind () = after (Time.Span.of_sec 60.) in diff --git a/src/app/cli/src/tests/coda_shared_state_test.ml b/src/app/cli/src/tests/coda_shared_state_test.ml index a57300a89a5..922e26b41d7 100644 --- a/src/app/cli/src/tests/coda_shared_state_test.ml +++ b/src/app/cli/src/tests/coda_shared_state_test.ml @@ -16,7 +16,7 @@ let main () = Some ((List.nth_exn keypairs i).public_key |> Public_key.compress) in let%bind testnet = - Coda_worker_testnet.test logger n Option.some snark_work_public_keys + Coda_worker_testnet.test ~name logger n Option.some snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_transitive_peers_test.ml b/src/app/cli/src/tests/coda_transitive_peers_test.ml index cfb1ce39220..e3dbd796968 100644 --- a/src/app/cli/src/tests/coda_transitive_peers_test.ml +++ b/src/app/cli/src/tests/coda_transitive_peers_test.ml @@ -20,38 +20,58 @@ let main () = Coda_processes.init () ; let trace_dir = Unix.getenv "CODA_TRACING" in let max_concurrent_connections = None in - let configs = + let%bind configs = Coda_processes.local_configs n ~program_dir ~block_production_interval - ~acceptable_delay ~snark_worker_public_keys:None + ~acceptable_delay ~chain_id:name ~snark_worker_public_keys:None ~block_production_keys:(Fn.const None) ~work_selection_method ~trace_dir ~max_concurrent_connections in let%bind workers = Coda_processes.spawn_local_processes_exn configs in - let addrs_and_ports_list, peers = Coda_processes.net_configs (n + 1) in + let%bind net_configs = Coda_processes.net_configs (n + 1) in + let addrs_and_ports_list, peers = net_configs in let expected_peers = List.nth_exn peers n in - let peers = [List.hd_exn expected_peers] in - let addrs_and_ports = List.nth_exn addrs_and_ports_list n in + let peers = + List.map ~f:Node_addrs_and_ports.to_multiaddr_exn + [List.hd_exn expected_peers] + in + let addrs_and_ports = + List.nth_exn addrs_and_ports_list n + |> fst |> Node_addrs_and_ports.to_display + in + let libp2p_keypair = List.nth_exn addrs_and_ports_list n |> snd in Logger.debug logger ~module_:__MODULE__ ~location:__LOC__ - !"connecting to peers %{sexp: Host_and_port.t list}\n" + !"connecting to peers %{sexp: string list}\n" peers ; let config = Coda_process.local_config ~peers ~addrs_and_ports ~acceptable_delay - ~snark_worker_key:None ~block_production_key:None ~program_dir - ~work_selection_method ~trace_dir ~offset:Time.Span.zero () - ~max_concurrent_connections ~is_archive_rocksdb:false + ~chain_id:name ~libp2p_keypair ~net_configs ~snark_worker_key:None + ~block_production_key:None ~program_dir ~work_selection_method ~trace_dir + ~offset:Time.Span.zero () ~max_concurrent_connections + ~is_archive_rocksdb:false in let%bind worker = Coda_process.spawn_exn config in let%bind _ = after (Time.Span.of_sec 10.) in let%bind peers = Coda_process.peers_exn worker in Logger.debug logger ~module_:__MODULE__ ~location:__LOC__ - !"got peers %{sexp: Network_peer.Peer.t list} %{sexp: Host_and_port.t list}\n" + !"got peers %{sexp: Network_peer.Peer.t list} %{sexp: \ + Node_addrs_and_ports.t list}\n" peers expected_peers ; let module S = Host_and_port.Set in assert ( S.equal (S.of_list - (peers |> List.map ~f:Network_peer.Peer.to_discovery_host_and_port)) - (S.of_list expected_peers) ) ; + ( peers + |> List.map ~f:(fun p -> + Host_and_port.create + ~host:(Unix.Inet_addr.to_string p.Network_peer.Peer.host) + ~port:p.libp2p_port ) )) + (S.of_list + (List.map + ~f:(fun p -> + Host_and_port.create + ~host:(Unix.Inet_addr.to_string p.external_ip) + ~port:p.libp2p_port ) + expected_peers)) ) ; let%bind () = Coda_process.disconnect worker ~logger in Deferred.List.iter workers ~f:(Coda_process.disconnect ~logger) diff --git a/src/app/cli/src/tests/coda_txns_and_restart_non_producers.ml b/src/app/cli/src/tests/coda_txns_and_restart_non_producers.ml index 06ecec8612f..1fb1a4dfa55 100644 --- a/src/app/cli/src/tests/coda_txns_and_restart_non_producers.ml +++ b/src/app/cli/src/tests/coda_txns_and_restart_non_producers.ml @@ -13,7 +13,7 @@ let main () = in let producers n = if n < 3 then Some n else None in let%bind testnet = - Coda_worker_testnet.test logger 5 producers snark_work_public_keys + Coda_worker_testnet.test ~name logger 5 producers snark_work_public_keys Cli_lib.Arg_type.Work_selection_method.Sequence ~max_concurrent_connections:None in diff --git a/src/app/cli/src/tests/coda_worker.ml b/src/app/cli/src/tests/coda_worker.ml index 7186664b734..1434390db73 100644 --- a/src/app/cli/src/tests/coda_worker.ml +++ b/src/app/cli/src/tests/coda_worker.ml @@ -8,7 +8,13 @@ open Init module Input = struct type t = - { addrs_and_ports: Kademlia.Node_addrs_and_ports.t + { addrs_and_ports: Node_addrs_and_ports.Display.Stable.V1.t + ; libp2p_keypair: Coda_net2.Keypair.Stable.V1.t + ; net_configs: + ( Node_addrs_and_ports.Display.Stable.V1.t + * Coda_net2.Keypair.Stable.Latest.t ) + list + * Node_addrs_and_ports.Display.Stable.V1.t list list ; snark_worker_key: Public_key.Compressed.Stable.V1.t option ; env: (string * string) list ; block_production_key: int option @@ -17,7 +23,8 @@ module Input = struct ; trace_dir: string option ; program_dir: string ; acceptable_delay: Time.Span.t - ; peers: Host_and_port.t list + ; chain_id: string + ; peers: string list ; max_concurrent_connections: int option ; is_archive_rocksdb: bool } [@@deriving bin_io] @@ -397,22 +404,22 @@ module T = struct let init_worker_state { addrs_and_ports + ; libp2p_keypair ; block_production_key ; snark_worker_key ; work_selection_method ; conf_dir ; trace_dir + ; chain_id ; peers - ; max_concurrent_connections + ; max_concurrent_connections= _ (* FIXME #4095: use this *) ; is_archive_rocksdb ; _ } = let logger = Logger.create ~metadata: - [ ( "host" - , `String (Unix.Inet_addr.to_string addrs_and_ports.external_ip) - ) - ; ("port", `Int addrs_and_ports.communication_port) ] + [ ("host", `String addrs_and_ports.external_ip) + ; ("port", `Int addrs_and_ports.libp2p_port) ] () in let pids = Child_processes.Termination.create_pid_table () in @@ -481,36 +488,34 @@ module T = struct ~genesis_ledger:Test_genesis_ledger.t in let gossip_net_params = - Gossip_net.Real.Config. + Gossip_net.Libp2p.Config. { timeout= Time.Span.of_sec 3. - ; target_peer_count= 8 + ; initial_peers= List.map ~f:Coda_net2.Multiaddr.of_string peers + ; addrs_and_ports= + Node_addrs_and_ports.of_display addrs_and_ports ; conf_dir - ; initial_peers= peers - ; chain_id= "bogus chain id for testing" - ; addrs_and_ports + ; chain_id ; logger + ; unsafe_no_trust_ip= true ; trust_system - ; enable_libp2p= false - ; disable_haskell= false - ; libp2p_keypair= None - ; libp2p_peers= [] - ; max_concurrent_connections } + ; keypair= Some libp2p_keypair } in let net_config = { Coda_networking.Config.logger ; trust_system ; time_controller ; consensus_local_state + ; is_seed= List.is_empty peers ; genesis_ledger_hash= Ledger.merkle_root (Lazy.force Test_genesis_ledger.t) ; log_gossip_heard= - { snark_pool_diff= false - ; transaction_pool_diff= false - ; new_state= false } + { snark_pool_diff= true + ; transaction_pool_diff= true + ; new_state= true } ; creatable_gossip_net= Coda_networking.Gossip_net.( - Any.Creatable ((module Real), Real.create gossip_net_params)) - } + Any.Creatable + ((module Libp2p), Libp2p.create gossip_net_params)) } in let monitor = Async.Monitor.create ~name:"coda" () in let with_monitor f input = @@ -561,7 +566,7 @@ module T = struct in Logger.info logger "Worker finish setting up coda" ~module_:__MODULE__ ~location:__LOC__ ; - let coda_peers () = return (Coda_lib.peers coda) in + let coda_peers () = Coda_lib.peers coda in let coda_start () = Coda_lib.start coda in let coda_get_all_transitions pk = let external_transition_database = diff --git a/src/app/cli/src/tests/coda_worker_testnet.ml b/src/app/cli/src/tests/coda_worker_testnet.ml index 15255449339..6a4e81ddc3e 100644 --- a/src/app/cli/src/tests/coda_worker_testnet.ml +++ b/src/app/cli/src/tests/coda_worker_testnet.ml @@ -445,7 +445,7 @@ let start_checks logger (workers : Coda_process.t array) start_reader testnet * implement stop/start * change live whether nodes are producing, snark producing * change network connectivity *) -let test ?is_archive_rocksdb logger n block_production_keys +let test ?is_archive_rocksdb ~name logger n block_production_keys snark_work_public_keys work_selection_method ~max_concurrent_connections = let logger = Logger.extend logger [("worker_testnet", `Bool true)] in let block_production_interval = @@ -457,9 +457,9 @@ let test ?is_archive_rocksdb logger n block_production_keys in let%bind program_dir = Unix.getcwd () in Coda_processes.init () ; - let configs = + let%bind configs = Coda_processes.local_configs n ~block_production_interval ~program_dir - ~block_production_keys ~acceptable_delay + ~block_production_keys ~acceptable_delay ~chain_id:name ~snark_worker_public_keys:(Some (List.init n ~f:snark_work_public_keys)) ~work_selection_method ~trace_dir:(Unix.getenv "CODA_TRACING") diff --git a/src/app/cli/src/tests/dune b/src/app/cli/src/tests/dune index 2ad868ee9a6..410b6bc99f0 100644 --- a/src/app/cli/src/tests/dune +++ b/src/app/cli/src/tests/dune @@ -5,8 +5,8 @@ ; opam deps async core ; libs - coda_base coda_graphql coda_lib coda_state - coda_transition coda_version parallel + coda_base coda_graphql coda_lib coda_state coda_net2 + coda_transition coda_version parallel node_addrs_and_ports transition_frontier ; internal deps init) diff --git a/src/app/cli/src/tests/full_test.ml b/src/app/cli/src/tests/full_test.ml index b7e30489342..32ca32dcdca 100644 --- a/src/app/cli/src/tests/full_test.ml +++ b/src/app/cli/src/tests/full_test.ml @@ -136,31 +136,24 @@ let run_test () : unit Deferred.t = (Public_key.Compressed.Set.singleton (Public_key.compress keypair.public_key)) in - let discovery_port = 8001 in - let communication_port = 8000 in let client_port = 8123 in let libp2p_port = 8002 in let gossip_net_params = - Gossip_net.Real.Config. + Gossip_net.Libp2p.Config. { timeout= Time.Span.of_sec 3. ; logger - ; target_peer_count= 8 ; initial_peers= [] + ; unsafe_no_trust_ip= true ; conf_dir= temp_conf_dir ; chain_id= "bogus chain id for testing" ; addrs_and_ports= { external_ip= Unix.Inet_addr.localhost ; bind_ip= Unix.Inet_addr.localhost - ; discovery_port - ; communication_port + ; peer= None ; libp2p_port ; client_port } ; trust_system - ; enable_libp2p= false - ; disable_haskell= false - ; libp2p_keypair= None - ; libp2p_peers= [] - ; max_concurrent_connections= Some 10 } + ; keypair= None } in let net_config = Coda_networking.Config. @@ -168,6 +161,7 @@ let run_test () : unit Deferred.t = ; trust_system ; time_controller ; consensus_local_state + ; is_seed= true ; genesis_ledger_hash= Ledger.merkle_root (Lazy.force Test_genesis_ledger.t) ; log_gossip_heard= @@ -176,7 +170,7 @@ let run_test () : unit Deferred.t = ; new_state= false } ; creatable_gossip_net= Coda_networking.Gossip_net.( - Any.Creatable ((module Real), Real.create gossip_net_params)) + Any.Creatable ((module Libp2p), Libp2p.create gossip_net_params)) } in Core.Backtrace.elide := false ; diff --git a/src/app/kademlia-haskell/ChangeLog.md b/src/app/kademlia-haskell/ChangeLog.md deleted file mode 100644 index 71a75183eb5..00000000000 --- a/src/app/kademlia-haskell/ChangeLog.md +++ /dev/null @@ -1,3 +0,0 @@ -# Changelog for kademlia-haskell - -## Unreleased changes diff --git a/src/app/kademlia-haskell/LICENSE b/src/app/kademlia-haskell/LICENSE deleted file mode 100644 index 16fe87b06e8..00000000000 --- a/src/app/kademlia-haskell/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/src/app/kademlia-haskell/README.md b/src/app/kademlia-haskell/README.md deleted file mode 100644 index 058799239d2..00000000000 --- a/src/app/kademlia-haskell/README.md +++ /dev/null @@ -1 +0,0 @@ -# kademlia-haskell diff --git a/src/app/kademlia-haskell/Setup.hs b/src/app/kademlia-haskell/Setup.hs deleted file mode 100644 index 9a994af677b..00000000000 --- a/src/app/kademlia-haskell/Setup.hs +++ /dev/null @@ -1,2 +0,0 @@ -import Distribution.Simple -main = defaultMain diff --git a/src/app/kademlia-haskell/app/Main.hs b/src/app/kademlia-haskell/app/Main.hs deleted file mode 100644 index 762308e8b8a..00000000000 --- a/src/app/kademlia-haskell/app/Main.hs +++ /dev/null @@ -1,183 +0,0 @@ -{- - -Derived from examples in https://github.com/serokell/kademlia - -Copyright (c) 2015, fro_ozen -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -} - -import Control.Exception (finally) -import Control.Monad (when, foldM) -import Control.Monad.Random (Rand, RandomGen, evalRand, getRandom) -import Data.Binary (Binary (..), decodeOrFail, encode, getWord8, - putWord8) -import qualified Data.Bool as BOOL -import qualified Data.ByteString as B -import qualified Data.ByteString.Char8 as C -import Data.ByteString.Lazy (fromStrict, toStrict) -import qualified Data.ByteString.Base64 as B64 -import Data.Hashable as H -import Data.List ((\\)) -import Data.Tuple (fst) -import GHC.Conc (threadDelay) -import Network (PortNumber) -import qualified Network.Kademlia as K -import qualified Network.Kademlia.HashNodeId as KH -import System.Environment (getArgs) -import System.Exit (exitSuccess, die) -import System.Random (mkStdGen) -import System.IO (stdout, hFlush) - -data Pong = Pong - deriving (Eq, Show) - -instance K.Serialize Pong where - toBS = toBSBinary - fromBS = fromBSBinary - -type KademliaValue = Pong -type KademliaID = KH.HashId - -type KademliaInstance = K.KademliaInstance KademliaID KademliaValue - -instance Binary Pong where - put _ = putWord8 1 - get = do - w <- getWord8 - if w == 1 - then pure Pong - else fail "no parse pong" - -{- The nonce for the HashId is 14 bytes as described in - - https://cardanodocs.com/technical/protocols/p2p/ -} -nonceSize :: Int -nonceSize = 14 - -makeSeed :: (H.Hashable h, Integral a) => h -> a -makeSeed h = fromIntegral (H.hash h) - -toBSBinary :: Binary b => b -> B.ByteString -toBSBinary = toStrict . encode - -fromBSBinary :: Binary b => B.ByteString -> Either String (b, B.ByteString) -fromBSBinary bs = - case decodeOrFail $ fromStrict bs of - Left (_, _, errMsg) -> Left errMsg - Right (rest, _, res) -> Right (res, toStrict rest) - -generateByteString :: (RandomGen g) => Int -> Rand g B.ByteString -generateByteString len = C.pack <$> sequence (replicate len getRandom) - -connectToPeer :: KademliaInstance -> String -> PortNumber -> KademliaID -> IO K.JoinResult -connectToPeer inst peerIp peerPort _ = K.joinNetwork inst (K.Peer peerIp peerPort) - -whileM :: Monad m => (a -> Bool) -> (a -> m a) -> a -> m () -whileM test act a = when (test a) $ (act a) >>= whileM test act - -foreverM :: Monad m => (a -> m a) -> a -> m () -foreverM = whileM (const True) - -data Event = Live | Dead -dumpEvt :: Event -> String -dumpEvt Live = "on" -dumpEvt Dead = "off" - -dumpFormat :: Event -> K.Node KH.HashId -> String -dumpFormat evt K.Node{peer=peer,nodeId=(KH.HashId bs)} = show peer ++ " " ++ (show $ B64.encode bs) ++ " " ++ dumpEvt evt - -hasPeers :: K.KademliaInstance KH.HashId KademliaValue -> IO Bool -hasPeers inst = do - peers <- K.dumpPeers inst - return $ not $ null peers - -formatAddress :: (Show a, Show b) => a -> b -> B.ByteString -> String -formatAddress ip port key = show ip ++ ":" ++ show port ++ ", " ++ show (B64.encode key) - -{- Usage: ./$0 test 0.0.0.0 '("127.0.0.1", 3000)' '("127.0.0.1", 3001)' -} -main :: IO () -main = do - (state : bindIp : rest) <- getArgs - {- TODO: When we implement (state == "prod"): - - 1. Don't just cycle through all the peers in order - - 2. Make sure that nonces are securely randomly generated - - 3. Make the ping time WAY slower (use the kDefaultConfig raw -- ala - - Cardano) ~1hour heartbeats - -} - when (state == "test" || state == "dump-peers") $ do - let ((externalIp, myPort) : peers) = map read rest - let - nonceGen = \x -> KH.Nonce $ evalRand (generateByteString nonceSize) (mkStdGen $ makeSeed x) - myKey = KH.hashAddress $ nonceGen (externalIp, myPort) - peerKeys = (KH.hashAddress . nonceGen) <$> peers - config = K.defaultConfig { K.pingTime = 2, K.storeValues = False } - - let logError = putStrLn . ("EROR: " ++) - let logInfo = putStrLn . ("DBUG: " ++) - let logData = putStrLn . ("DATA: " ++) - {- don't log trace if dumping peers only -} - let logTrace = if (state == "dump-peers") then \_ -> return () else putStrLn . ("TRAC: " ++) - - logInfo $ "Creating instance" - kInstance <- K.createL (bindIp, myPort) (externalIp, myPort) myKey config logTrace logError - - {- If no peers given, don't check that the instance has peers -} - () <- if null peers then return () else do - {- Try to join all of the peers in the peer list -} - r <- foldM (\acc -> \((peerIp,peerPort), peerKey) -> do - let KH.HashId peerKeyBytes = peerKey - when (BOOL.not $ KH.verifyAddress peerKeyBytes) $ do - die $ "Invalid address on initial peer: " ++ formatAddress peerIp peerPort peerKeyBytes - logInfo $ "Attempting to connecting to peer: " ++ formatAddress peerIp peerPort peerKeyBytes - r <- connectToPeer kInstance peerIp (fromIntegral peerPort) peerKey - when (r /= K.JoinSuccess) $ - logError . ("Connection to peer failed "++) . show $ r - return $ if (acc == K.JoinSuccess) then acc else r) - K.NodeDown (zip peers peerKeys) - - hFlush stdout - - {- If someone connected to us, while we were in the process of handshaking we're in the network -} - didGetPeers <- hasPeers kInstance - - when (not didGetPeers && r /= K.JoinSuccess) $ - die "All peers failed to respond!" - - logInfo $ "Dumping initial live peers" - {- Dump all live peers first, after joining the network -} - firstDump <- K.dumpPeers kInstance - let peersFromDump d = fst <$> d - let initialPeers = peersFromDump firstDump - when (length initialPeers /= 0) $ - mapM_ logData $ (dumpFormat Live) <$> initialPeers - - hFlush stdout - - {- finish if just dumping peers -} - when (state == "dump-peers") - exitSuccess - - {- Forever, once a second, check to see if anything changed, and dump it -} - finally - (foreverM (\oldPeers -> do - _ <- threadDelay 1000000 - currDump <- K.dumpPeers kInstance - let currPeers = peersFromDump currDump - let (newLives, newDeads) = (currPeers \\ oldPeers, oldPeers \\ currPeers) - when (length newLives /= 0) $ do - mapM_ logData $ (dumpFormat Live) <$> newLives - when (length newDeads /= 0) $ do - mapM_ logData $ (dumpFormat Dead) <$> newDeads - hFlush stdout - return currPeers) initialPeers) - (K.close kInstance) diff --git a/src/app/kademlia-haskell/build/DEBIAN/control b/src/app/kademlia-haskell/build/DEBIAN/control deleted file mode 100644 index 52f55b165c6..00000000000 --- a/src/app/kademlia-haskell/build/DEBIAN/control +++ /dev/null @@ -1,10 +0,0 @@ -Package: coda-kademlia -Version: 0.1.DATE-HASH -Section: base -Priority: optional -Architecture: amd64 -License: BSD 3-Clause -Homepage: https://codaprotocol.com/ -Maintainer: o(1)Labs -Description: Coda Protocol Kademlia Tool - Coda Protocol Kademlia Utility diff --git a/src/app/kademlia-haskell/kademlia-haskell.cabal b/src/app/kademlia-haskell/kademlia-haskell.cabal deleted file mode 100644 index 1e982421290..00000000000 --- a/src/app/kademlia-haskell/kademlia-haskell.cabal +++ /dev/null @@ -1,53 +0,0 @@ -cabal-version: 1.12 - --- This file has been generated from package.yaml by hpack version 0.31.1. --- --- see: https://github.com/sol/hpack --- --- hash: c0613d88d086d1c6437114f21a39b8f4a55f0128250e8e443667f99da80a8242 - -name: kademlia-haskell -version: 0.1.0.0 -homepage: https://github.com/o1labs/kademlia-haskell#readme -bug-reports: https://github.com/o1labs/kademlia-haskell/issues -author: Brandon Kase -maintainer: bkase@o1labs.org -copyright: 2018 O(1) Labs -license: MIT -license-file: LICENSE -build-type: Simple -extra-source-files: - ChangeLog.md - README.md - -source-repository head - type: git - location: https://github.com/o1labs/kademlia-haskell - -executable kademlia - main-is: Main.hs - other-modules: - Paths_kademlia_haskell - hs-source-dirs: - app - default-extensions: DeriveDataTypeable DeriveGeneric GeneralizedNewtypeDeriving OverloadedStrings RecordWildCards TypeApplications - ghc-options: -Wall -fno-warn-orphans -O2 - build-depends: - MonadRandom - , base >=4.7 && <5 - , base64-bytestring >=1.0.0.1 - , binary >=0.8.3 - , bytestring >=0.10.2 && <0.11 - , containers >=0.5.5.1 - , data-default >=0.7 - , extra >=1.4 - , hashable >=1.2.5.0 - , kademlia >=1.1.0.1 - , mtl >=2.1.3.1 - , network >=2.8 && <2.9 - , random - , random-shuffle - , transformers >=0.3 - , transformers-compat >=0.3.3 - , unix >=2.7.2.1 - default-language: Haskell2010 diff --git a/src/app/kademlia-haskell/package.yaml b/src/app/kademlia-haskell/package.yaml deleted file mode 100644 index 78ebb8c7ecf..00000000000 --- a/src/app/kademlia-haskell/package.yaml +++ /dev/null @@ -1,46 +0,0 @@ -name: kademlia-haskell -version: 0.1.0.0 -github: "o1labs/kademlia-haskell" -license: MIT -author: "Brandon Kase" -maintainer: "bkase@o1labs.org" -copyright: "2018 O(1) Labs" - -extra-source-files: -- ChangeLog.md -- README.md - -dependencies: -- base >= 4.7 && < 5 -- base64-bytestring >= 1.0.0.1 -- binary >= 0.8.3 -- bytestring >= 0.10.2 && < 0.11 -- containers >= 0.5.5.1 -- data-default >= 0.7 -- extra >= 1.4 -- kademlia >= 1.1.0.1 -- MonadRandom -- hashable >= 1.2.5.0 -- mtl >= 2.1.3.1 -- network >= 2.8 && < 2.9 -- random -- random-shuffle -- transformers >= 0.3 -- transformers-compat >= 0.3.3 -- unix >= 2.7.2.1 - -executables: - kademlia: - main: Main.hs - source-dirs: app - ghc-options: - - -Wall - - -fno-warn-orphans - - -O2 - default-extensions: - - DeriveDataTypeable - - DeriveGeneric - - GeneralizedNewtypeDeriving - - OverloadedStrings - - RecordWildCards - - TypeApplications diff --git a/src/app/kademlia-haskell/packages.nix b/src/app/kademlia-haskell/packages.nix deleted file mode 100644 index 932944e896b..00000000000 --- a/src/app/kademlia-haskell/packages.nix +++ /dev/null @@ -1,39291 +0,0 @@ -# Generated using stack2nix 0.2.3. - -{ pkgs ? (import {}) -, compiler ? pkgs.haskell.packages.ghc864 -}: - -with pkgs.haskell.lib; - -let - stackPackages = { pkgs, stdenv, callPackage }: - self: { - array = null; - base = null; - bin-package-db = null; - binary = null; - bytestring = null; - containers = null; - deepseq = null; - directory = null; - filepath = null; - ghc-boot = null; - ghc-boot-th = null; - ghc-prim = null; - ghci = null; - hoopl = null; - hpc = null; - integer-gmp = null; - pretty = null; - process = null; - rts = null; - template-haskell = null; - terminfo = null; - time = null; - transformers = null; - unix = null; - "ALUT" = callPackage - ({ mkDerivation, base, freealut, OpenAL, StateVar, stdenv - , transformers - }: - mkDerivation { - pname = "ALUT"; - version = "2.4.0.2"; - sha256 = "b8364da380f5f1d85d13e427851a153be2809e1838d16393e37566f34b384b87"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base OpenAL StateVar transformers ]; - librarySystemDepends = [ freealut ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-openal/ALUT"; - description = "A binding for the OpenAL Utility Toolkit"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) freealut;}; - "ANum" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ANum"; - version = "0.2.0.2"; - sha256 = "f6ae0d1b663100a2aa3dfdab12f4af0851408659eb5c2f78b8b443b0d29dbb1a"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanBurton/ANum#readme"; - description = "Num instance for Applicatives provided via the ANum newtype"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Boolean" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "Boolean"; - version = "0.2.4"; - sha256 = "67216013b02b8ac5b534a1ef25f409f930eea1a85eae801933a01ad43145eef8"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Generalized booleans and numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "BoundedChan" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "BoundedChan"; - version = "1.0.3.0"; - sha256 = "531ceaed7f62844c2a63a7cbfdcab332ea5eaa218e9922ca3305580438adc46d"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - description = "Implementation of bounded channels"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Cabal" = callPackage - ({ mkDerivation, array, base, binary, bytestring, containers - , deepseq, directory, filepath, mtl, parsec, pretty, process - , stdenv, text, time, transformers, unix - }: - mkDerivation { - pname = "Cabal"; - version = "2.4.1.0"; - sha256 = "736a902da9fb2c826e75e9f7b4b591983bf58a6a62c8cae9866f6a9d5ace3594"; - revision = "1"; - editedCabalFile = "1dvs2i0kfk8rji9wbrv7y0iydbif9jzg4c7rmaa6lxg8hp7mij2n"; - setupHaskellDepends = [ mtl parsec ]; - libraryHaskellDepends = [ - array base binary bytestring containers deepseq directory filepath - mtl parsec pretty process text time transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/cabal/"; - description = "A framework for packaging Haskell software"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ChannelT" = callPackage - ({ mkDerivation, base, free, mmorph, mtl, stdenv, transformers-base - }: - mkDerivation { - pname = "ChannelT"; - version = "0.0.0.7"; - sha256 = "3e215d425e3cfccf2e4d84b1402fb39a2081cb33b6556059db616e722a7c77a0"; - libraryHaskellDepends = [ base free mmorph mtl transformers-base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pthariensflame/ChannelT"; - description = "Generalized stream processors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Clipboard" = callPackage - ({ mkDerivation, base, directory, stdenv, unix, utf8-string, X11 }: - mkDerivation { - pname = "Clipboard"; - version = "2.3.2.0"; - sha256 = "3f82c8183a599025c5199ba50d0661512683e9cf29e6054858f1abe2ab8b25b7"; - libraryHaskellDepends = [ base directory unix utf8-string X11 ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell.org/haskellwiki/Clipboard"; - description = "System clipboard interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "DAV" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, containers - , data-default, exceptions, haskeline, http-client, http-client-tls - , http-types, lens, mtl, network, network-uri, optparse-applicative - , stdenv, transformers, transformers-base, transformers-compat - , utf8-string, xml-conduit, xml-hamlet - }: - mkDerivation { - pname = "DAV"; - version = "1.3.3"; - sha256 = "24f49c63bd603b7757569ac0f5842ac30dea2bfcce64d157162a952e576e3991"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring case-insensitive containers data-default exceptions - http-client http-client-tls http-types lens mtl transformers - transformers-base transformers-compat utf8-string xml-conduit - xml-hamlet - ]; - executableHaskellDepends = [ - base bytestring case-insensitive containers data-default exceptions - haskeline http-client http-client-tls http-types lens mtl network - network-uri optparse-applicative transformers transformers-base - transformers-compat utf8-string xml-conduit xml-hamlet - ]; - doHaddock = false; - doCheck = false; - homepage = "http://floss.scru.org/hDAV"; - description = "RFC 4918 WebDAV support"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "DBFunctor" = callPackage - ({ mkDerivation, base, bytestring, cassava, cereal, containers - , deepseq, either, MissingH, stdenv, text, time, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "DBFunctor"; - version = "0.1.1.0"; - sha256 = "8ae860a437cee40c232c58a1def5bb5b05ba1530b6e3b2a3c319538bb4b452c2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring cassava cereal containers deepseq either MissingH - text time transformers unordered-containers vector - ]; - executableHaskellDepends = [ - base bytestring cassava cereal containers deepseq either MissingH - text time transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nkarag/DBFunctor#readme"; - description = "DBFunctor - Functional Data Management => ETL/ELT Data Processing in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Decimal" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "Decimal"; - version = "0.5.1"; - sha256 = "575ca5c65a8ea5a5bf2cd7b794a0d16622082cb501bf4b0327c5895c0b80f34c"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/PaulJohnson/Haskell-Decimal"; - description = "Decimal numbers with variable precision"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Diff" = callPackage - ({ mkDerivation, array, base, pretty, stdenv }: - mkDerivation { - pname = "Diff"; - version = "0.3.4"; - sha256 = "77b7daec5a79ade779706748f11b4d9b8f805e57a68e7406c3b5a1dee16e0c2f"; - libraryHaskellDepends = [ array base pretty ]; - doHaddock = false; - doCheck = false; - description = "O(ND) diff algorithm in haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Earley" = callPackage - ({ mkDerivation, base, ListLike, stdenv }: - mkDerivation { - pname = "Earley"; - version = "0.13.0.0"; - sha256 = "0f50ec9bd2f612ed0d1da74741081930031000cdce82775b257f77d30a4bd25f"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ListLike ]; - doHaddock = false; - doCheck = false; - description = "Parsing all context-free grammars using Earley's algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Ebnf2ps" = callPackage - ({ mkDerivation, array, base, containers, directory, happy - , old-time, stdenv, unix - }: - mkDerivation { - pname = "Ebnf2ps"; - version = "1.0.15"; - sha256 = "0ecce7d721d6c8993fa6ba6cfb16f1101d85e00bbaf0b6941d36a00badea2b4b"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - array base containers directory old-time unix - ]; - executableToolDepends = [ happy ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/FranklinChen/Ebnf2ps"; - description = "Peter's Syntax Diagram Drawing Tool"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "FenwickTree" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv, template-haskell }: - mkDerivation { - pname = "FenwickTree"; - version = "0.1.2.1"; - sha256 = "9c172d62b24365e663a0355e8eaa34362a1a769c18a64391939a9b50e384f03c"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base QuickCheck template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mgajda/FenwickTree"; - description = "Data structure for fast query and update of cumulative sums"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "FindBin" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv }: - mkDerivation { - pname = "FindBin"; - version = "0.0.5"; - sha256 = "279c7967e0803ca3b9a0a1956ce7ba9b9a2294eb9f971bea8a557b5f80ddfda4"; - libraryHaskellDepends = [ base directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/audreyt/findbin"; - description = "Locate directory of original program"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "FloatingHex" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "FloatingHex"; - version = "0.4"; - sha256 = "b277054db48d2dec62e3831586f218cbe0a056dec44dbc032e9a73087425a24c"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - description = "Read and write hexadecimal floating point numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "FontyFruity" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, deepseq - , directory, filepath, stdenv, text, vector, xml - }: - mkDerivation { - pname = "FontyFruity"; - version = "0.5.3.4"; - sha256 = "43d3878154d543a337b0cc45f40dcd57153e47fca39122bac0e5ed81b6bc5b3d"; - libraryHaskellDepends = [ - base binary bytestring containers deepseq directory filepath text - vector xml - ]; - doHaddock = false; - doCheck = false; - description = "A true type file format loader"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "GLFW-b" = callPackage - ({ mkDerivation, base, bindings-GLFW, deepseq, stdenv }: - mkDerivation { - pname = "GLFW-b"; - version = "3.2.1.0"; - sha256 = "31c022e0ad63f259ff9fa582a235924786e929a95b52efae10a3d29fef7cb6a6"; - revision = "2"; - editedCabalFile = "0xlby7483dv33c13f44kkvmai186g72jhxmcq8749s1hyxi6fqnb"; - libraryHaskellDepends = [ base bindings-GLFW deepseq ]; - doHaddock = false; - doCheck = false; - description = "Bindings to GLFW OpenGL library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "GLURaw" = callPackage - ({ mkDerivation, base, libGL, libGLU, OpenGLRaw, stdenv - , transformers - }: - mkDerivation { - pname = "GLURaw"; - version = "2.0.0.4"; - sha256 = "b863fd5cb26b1a37afb66ef8a81c0335bc073d33b0a67ec5190dfc62cb885dc4"; - libraryHaskellDepends = [ base OpenGLRaw transformers ]; - librarySystemDepends = [ libGL libGLU ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Opengl"; - description = "A raw binding for the OpenGL graphics system"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) libGL; inherit (pkgs) libGLU;}; - "GLUT" = callPackage - ({ mkDerivation, array, base, containers, OpenGL, StateVar, stdenv - , transformers - }: - mkDerivation { - pname = "GLUT"; - version = "2.7.0.14"; - sha256 = "5cf8f7700a6b6ac33e39b2d7bd300679a245ff7c1498eb423901134f9d302106"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base containers OpenGL StateVar transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Opengl"; - description = "A binding for the OpenGL Utility Toolkit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "GenericPretty" = callPackage - ({ mkDerivation, base, ghc-prim, pretty, stdenv }: - mkDerivation { - pname = "GenericPretty"; - version = "1.2.2"; - sha256 = "eeea7ae7081f866de6a83ab8c4c335806b8cbb679d85e416e6224384ffcdae3c"; - libraryHaskellDepends = [ base ghc-prim pretty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RazvanRanca/GenericPretty"; - description = "A generic, derivable, haskell pretty printer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Glob" = callPackage - ({ mkDerivation, base, containers, directory, dlist, filepath - , stdenv, transformers, transformers-compat - }: - mkDerivation { - pname = "Glob"; - version = "0.9.3"; - sha256 = "3a77853eba3700c5346cd6d4008302e70dca93a7e8ac0d679cf41b16c7a4c9e8"; - libraryHaskellDepends = [ - base containers directory dlist filepath transformers - transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://iki.fi/matti.niemenmaa/glob/"; - description = "Globbing library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HCodecs" = callPackage - ({ mkDerivation, array, base, bytestring, QuickCheck, random - , semigroups, stdenv - }: - mkDerivation { - pname = "HCodecs"; - version = "0.5.1"; - sha256 = "a724616b79ac12c2d661dc3f54cfa0e7d530d1ba3eafa1e6c3e7116e035a3143"; - libraryHaskellDepends = [ - array base bytestring QuickCheck random semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www-db.informatik.uni-tuebingen.de/team/giorgidze"; - description = "A library to read, write and manipulate MIDI, WAVE, and SoundFont2 files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HDBC" = callPackage - ({ mkDerivation, base, bytestring, containers, convertible, mtl - , old-time, stdenv, text, time, utf8-string - }: - mkDerivation { - pname = "HDBC"; - version = "2.4.0.2"; - sha256 = "670757fd674b6caf2f456034bdcb54812af2cdf2a32465d7f4b7f0baa377db5a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers convertible mtl old-time text time - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hdbc/hdbc"; - description = "Haskell Database Connectivity"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HDBC-mysql" = callPackage - ({ mkDerivation, base, bytestring, Cabal, HDBC, mysqlclient - , openssl, stdenv, time, utf8-string, zlib - }: - mkDerivation { - pname = "HDBC-mysql"; - version = "0.7.1.0"; - sha256 = "81c985d4a243c965930fb412b3175ca799ba66985f8b6844014fd600df1da7cf"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base bytestring HDBC time utf8-string ]; - librarySystemDepends = [ mysqlclient openssl zlib ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ryantm/hdbc-mysql"; - description = "MySQL driver for HDBC"; - license = "LGPL"; - }) {inherit (pkgs) mysqlclient; inherit (pkgs) openssl; -inherit (pkgs) zlib;}; - "HDBC-session" = callPackage - ({ mkDerivation, base, HDBC, stdenv }: - mkDerivation { - pname = "HDBC-session"; - version = "0.1.2.0"; - sha256 = "aa057f18bbc9d2f9876152246682f546c9cf140192515c7c23b5be2fccc296e3"; - libraryHaskellDepends = [ base HDBC ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "Bracketed connection for HDBC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HSet" = callPackage - ({ mkDerivation, base, containers, hashable, hashtables, stdenv }: - mkDerivation { - pname = "HSet"; - version = "0.0.1"; - sha256 = "eba93be5a76581585ae33af6babe9c2718fae307d41989cd36a605d9b0e8d16a"; - libraryHaskellDepends = [ base containers hashable hashtables ]; - doHaddock = false; - doCheck = false; - description = "Faux heterogeneous sets"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HSlippyMap" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "HSlippyMap"; - version = "3.0.1"; - sha256 = "27eb37f3b1e70780173e732a949776fc0b0ecc5b1ba515c2e239d6545a2beb0d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/apeyroux/HSlippyMap"; - description = "OpenStreetMap Slippy Map"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HStringTemplate" = callPackage - ({ mkDerivation, array, base, blaze-builder, bytestring, containers - , deepseq, directory, filepath, mtl, old-locale, parsec, pretty - , semigroups, stdenv, syb, template-haskell, text, time, void - }: - mkDerivation { - pname = "HStringTemplate"; - version = "0.8.7"; - sha256 = "4f4ea4aa2e45e7c45821b87b0105c201fbadebc2f2d00c211e728403a0af6b0e"; - libraryHaskellDepends = [ - array base blaze-builder bytestring containers deepseq directory - filepath mtl old-locale parsec pretty semigroups syb - template-haskell text time void - ]; - doHaddock = false; - doCheck = false; - description = "StringTemplate implementation in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HSvm" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "HSvm"; - version = "0.1.0.3.22"; - sha256 = "8dac8a583c762675f2d64138303618f017d6be95d59e60774ea7cbfc040dab04"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "Haskell Bindings for libsvm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HTF" = callPackage - ({ mkDerivation, aeson, array, base, base64-bytestring, bytestring - , containers, cpphs, Diff, directory, haskell-src, HUnit - , lifted-base, monad-control, mtl, old-time, pretty, process - , QuickCheck, random, regex-compat, stdenv, text, time, unix - , vector, xmlgen - }: - mkDerivation { - pname = "HTF"; - version = "0.13.2.5"; - sha256 = "365af323c6254ec5c33745e1d42ceeba0940992a43f523608c4dc64d7c49aece"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson array base base64-bytestring bytestring containers cpphs Diff - directory haskell-src HUnit lifted-base monad-control mtl old-time - pretty process QuickCheck random regex-compat text time unix vector - xmlgen - ]; - executableHaskellDepends = [ - array base cpphs directory HUnit mtl old-time random text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/skogsbaer/HTF/"; - description = "The Haskell Test Framework"; - license = stdenv.lib.licenses.lgpl21; - }) {}; - "HTTP" = callPackage - ({ mkDerivation, array, base, bytestring, mtl, network, network-uri - , parsec, stdenv, time - }: - mkDerivation { - pname = "HTTP"; - version = "4000.3.12"; - sha256 = "a3ff6a9c93771079121083f1691188fe45f84380118e0f76bc4578153c361990"; - revision = "2"; - editedCabalFile = "1gw6xzp1n4gsqwnbfr29ds8v4wpk78b2bha8i108dqav97viwm8c"; - libraryHaskellDepends = [ - array base bytestring mtl network network-uri parsec time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/HTTP"; - description = "A library for client-side HTTP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HUnit" = callPackage - ({ mkDerivation, base, call-stack, deepseq, stdenv }: - mkDerivation { - pname = "HUnit"; - version = "1.6.0.0"; - sha256 = "7448e6b966e98e84b7627deba23f71b508e9a61e7bc571d74304a25d30e6d0de"; - libraryHaskellDepends = [ base call-stack deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/HUnit#readme"; - description = "A unit testing framework for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HUnit-approx" = callPackage - ({ mkDerivation, base, call-stack, HUnit, stdenv }: - mkDerivation { - pname = "HUnit-approx"; - version = "1.1.1.1"; - sha256 = "4a4327d328bb8b944c73ec211dd29e953e477f99fd3f9e28fe5200f02fa62baf"; - libraryHaskellDepends = [ base call-stack HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/goldfirere/HUnit-approx"; - description = "Approximate equality for floating point numbers with HUnit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HandsomeSoup" = callPackage - ({ mkDerivation, base, containers, HTTP, hxt, hxt-http, mtl - , network, network-uri, parsec, stdenv, transformers - }: - mkDerivation { - pname = "HandsomeSoup"; - version = "0.4.2"; - sha256 = "0ae2dad3fbde1efee9e45b84b2aeb5b526cc7b3ea2cbc5715494f7bde3ceeefb"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base containers HTTP hxt hxt-http mtl network network-uri parsec - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/egonSchiele/HandsomeSoup"; - description = "Work with HTML more easily in HXT"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HaskellNet" = callPackage - ({ mkDerivation, array, base, base64-string, bytestring, cryptohash - , mime-mail, mtl, network, old-time, pretty, stdenv, text - }: - mkDerivation { - pname = "HaskellNet"; - version = "0.5.1"; - sha256 = "3245d31ad76f9f9013a2f6e2285d73ed37376eeb073c100b9a6d19e87f0ca838"; - libraryHaskellDepends = [ - array base base64-string bytestring cryptohash mime-mail mtl - network old-time pretty text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jtdaugherty/HaskellNet"; - description = "Client support for POP3, SMTP, and IMAP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Hoed" = callPackage - ({ mkDerivation, array, base, bytestring, cereal, cereal-text - , cereal-vector, clock, containers, deepseq, directory, hashable - , libgraph, open-browser, primitive, process, QuickCheck - , regex-tdfa, regex-tdfa-text, semigroups, stdenv, strict - , template-haskell, terminal-size, text, transformers, uniplate - , unordered-containers, vector, vector-th-unbox - }: - mkDerivation { - pname = "Hoed"; - version = "0.5.1"; - sha256 = "a8f6dc9717e15642f00cd84a8d1030ac6a7c7870f7015e380bd728a843c3f4e7"; - libraryHaskellDepends = [ - array base bytestring cereal cereal-text cereal-vector clock - containers deepseq directory hashable libgraph open-browser - primitive process QuickCheck regex-tdfa regex-tdfa-text semigroups - strict template-haskell terminal-size text transformers uniplate - unordered-containers vector vector-th-unbox - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MaartenFaddegon/Hoed"; - description = "Lightweight algorithmic debugging"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HsOpenSSL" = callPackage - ({ mkDerivation, base, bytestring, Cabal, network, openssl, stdenv - , time - }: - mkDerivation { - pname = "HsOpenSSL"; - version = "0.11.4.16"; - sha256 = "29e84933c5f55d2fb9ebd72d44a542fcc8950a3db06c1e1ea0c10fba17cc6bc9"; - revision = "2"; - editedCabalFile = "1cg28q793cg4w8c574yzzfxcn1r8595vs77mlrkw68j8hzgs6lj3"; - configureFlags = [ "-f-fast-bignum" ]; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base bytestring network time ]; - librarySystemDepends = [ openssl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vshabanov/HsOpenSSL"; - description = "Partial OpenSSL binding for Haskell"; - license = stdenv.lib.licenses.publicDomain; - }) {inherit (pkgs) openssl;}; - "HsOpenSSL-x509-system" = callPackage - ({ mkDerivation, base, bytestring, HsOpenSSL, stdenv, unix }: - mkDerivation { - pname = "HsOpenSSL-x509-system"; - version = "0.1.0.3"; - sha256 = "5bdcb7ae2faba07a374109fea0a1431ae09d080f8574e60ab7a351b46f931f92"; - libraryHaskellDepends = [ base bytestring HsOpenSSL unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/HsOpenSSL-x509-system"; - description = "Use the system's native CA certificate store with HsOpenSSL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "HsYAML" = callPackage - ({ mkDerivation, base, bytestring, containers, mtl, parsec, stdenv - , text - }: - mkDerivation { - pname = "HsYAML"; - version = "0.1.1.3"; - sha256 = "5dd03c26c4d82e9cebab4ba6104389790aa0dbd411eafcd56245c7b65ae5932b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers mtl parsec text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/HsYAML"; - description = "Pure Haskell YAML 1.2 parser"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "IPv6Addr" = callPackage - ({ mkDerivation, aeson, attoparsec, base, iproute, network - , network-info, random, stdenv, text - }: - mkDerivation { - pname = "IPv6Addr"; - version = "1.1.2"; - sha256 = "8bf3f9f1367f193552213473481d92440e3e8038cf375bbfe942fb404894f27e"; - libraryHaskellDepends = [ - aeson attoparsec base iproute network network-info random text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MichelBoucey/IPv6Addr"; - description = "Library to deal with IPv6 address text representations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Imlib" = callPackage - ({ mkDerivation, array, base, imlib2, stdenv, X11 }: - mkDerivation { - pname = "Imlib"; - version = "0.1.2"; - sha256 = "3ed318a7777a3b0752327b7b128edb3a1d562202b480a6d6b793b79ed90ebd1c"; - libraryHaskellDepends = [ array base X11 ]; - librarySystemDepends = [ imlib2 ]; - doHaddock = false; - doCheck = false; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) imlib2;}; - "IntervalMap" = callPackage - ({ mkDerivation, base, containers, deepseq, stdenv }: - mkDerivation { - pname = "IntervalMap"; - version = "0.6.1.0"; - sha256 = "133676b9e01008b9d9bfeb5dbf3f51aabdc53b3a334588e68a8b6f5089ab873c"; - libraryHaskellDepends = [ base containers deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.chr-breitkopf.de/comp/IntervalMap"; - description = "Containers for intervals, with efficient search"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "JuicyPixels" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, deepseq, mtl - , primitive, stdenv, transformers, vector, zlib - }: - mkDerivation { - pname = "JuicyPixels"; - version = "3.3.3"; - sha256 = "2c04b5b6504a780e9363dc8894837976e18ce0623182e38aab6bc5e76c40b3c4"; - revision = "1"; - editedCabalFile = "1q8xyxn1a4ldaa1grmr7dywdbf4vqjw65v52h6z7ssz12hgjx0gq"; - libraryHaskellDepends = [ - base binary bytestring containers deepseq mtl primitive - transformers vector zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Twinside/Juicy.Pixels"; - description = "Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "JuicyPixels-extra" = callPackage - ({ mkDerivation, base, JuicyPixels, stdenv }: - mkDerivation { - pname = "JuicyPixels-extra"; - version = "0.4.0"; - sha256 = "0cbff986501adc734742b41414e5d0bb414a02cd2d6ee19be037700e90168ca6"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base JuicyPixels ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/JuicyPixels-extra"; - description = "Efficiently scale, crop, flip images with JuicyPixels"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "JuicyPixels-scale-dct" = callPackage - ({ mkDerivation, base, base-compat, carray, fft, JuicyPixels - , stdenv - }: - mkDerivation { - pname = "JuicyPixels-scale-dct"; - version = "0.1.2"; - sha256 = "f7381b88446224897e6677692bbdc39cb5b755216212f0ad8050046865cd3013"; - revision = "2"; - editedCabalFile = "0pp67ygrd3m6q8ry5229m1b2rhy401gb74368h09bqc6wa3g7ygv"; - libraryHaskellDepends = [ - base base-compat carray fft JuicyPixels - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/JuicyPixels-scale-dct#readme"; - description = "Scale JuicyPixels images with DCT"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "LibZip" = callPackage - ({ mkDerivation, base, bindings-libzip, bytestring, filepath, mtl - , stdenv, time, utf8-string - }: - mkDerivation { - pname = "LibZip"; - version = "1.0.1"; - sha256 = "a636e0202d2a3f60d894a814bd9834cf8c62313b67ccc48c295f02a4bebe425f"; - libraryHaskellDepends = [ - base bindings-libzip bytestring filepath mtl time utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://bitbucket.org/astanin/hs-libzip/"; - description = "Bindings to libzip, a library for manipulating zip archives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "List" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "List"; - version = "0.6.2"; - sha256 = "c4b92be1202fc59112018f76d5b17cd3a659ebc36384a46e000ab2fbaf99b878"; - revision = "1"; - editedCabalFile = "11ws93cdzz7k4nvcld2d74155mdgcvyi6f6an7gpf9z4k523c11n"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yairchu/generator"; - description = "List monad transformer and class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ListLike" = callPackage - ({ mkDerivation, array, base, bytestring, containers, deepseq - , dlist, fmlist, stdenv, text, utf8-string, vector - }: - mkDerivation { - pname = "ListLike"; - version = "4.6"; - sha256 = "c1cdec79a5f585a5839eea26a2afe6a37aab5ed2f402a16e7d59fe9a4e925a9a"; - revision = "2"; - editedCabalFile = "1mca2r4gjznqdh4kck5cjkn53isgkhvkf3ri09qsn7nsssvgki0g"; - libraryHaskellDepends = [ - array base bytestring containers deepseq dlist fmlist text - utf8-string vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/JohnLato/listlike"; - description = "Generic support for list-like structures"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ListTree" = callPackage - ({ mkDerivation, base, directory, filepath, List, stdenv - , transformers - }: - mkDerivation { - pname = "ListTree"; - version = "0.2.3"; - sha256 = "0b3aa1d34193d9f7f90b4afeea681a79ab1595e8e651cae093f8fca3c50f60cc"; - libraryHaskellDepends = [ - base directory filepath List transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yairchu/generator/tree"; - description = "Trees and monadic trees expressed as monadic lists where the underlying monad is a list"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "MemoTrie" = callPackage - ({ mkDerivation, base, newtype-generics, stdenv }: - mkDerivation { - pname = "MemoTrie"; - version = "0.6.9"; - sha256 = "1d6045b8fdf7b89ed6b495e535613f5091cdfc9cdfe05a862207e76ce205f794"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base newtype-generics ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/conal/MemoTrie"; - description = "Trie-based memo functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "MissingH" = callPackage - ({ mkDerivation, array, base, containers, directory, filepath - , hslogger, HUnit, mtl, network, old-locale, old-time, parsec - , process, random, regex-compat, stdenv, time, unix - }: - mkDerivation { - pname = "MissingH"; - version = "1.4.1.0"; - sha256 = "49ecd2df3ad45d6da64a984e506cd0e2ca02c238a743d757feeea8c4cddce0ca"; - libraryHaskellDepends = [ - array base containers directory filepath hslogger HUnit mtl network - old-locale old-time parsec process random regex-compat time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://software.complete.org/missingh"; - description = "Large utility library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "MonadPrompt" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "MonadPrompt"; - version = "1.0.0.5"; - sha256 = "b012cbbe83650f741c7b7f6eafcc89dec299b0ac74a758b6f3a8cdfc5d3bbeda"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - description = "MonadPrompt, implementation & examples"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "MonadRandom" = callPackage - ({ mkDerivation, base, mtl, primitive, random, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "MonadRandom"; - version = "0.5.1.1"; - sha256 = "abda4a297acf197e664695b839b4fb70f53e240f5420489dc21bcf6103958470"; - revision = "2"; - editedCabalFile = "0l6a39vmqxig7jpr6snync4sli77wm6lwzypmmvx103d65p17k8k"; - libraryHaskellDepends = [ - base mtl primitive random transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - description = "Random-number generation monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "MusicBrainz" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, conduit-extra - , HTTP, http-conduit, http-types, monad-control, resourcet, stdenv - , text, time, time-locale-compat, transformers, unliftio-core - , vector, xml-conduit, xml-types - }: - mkDerivation { - pname = "MusicBrainz"; - version = "0.4.1"; - sha256 = "262c29f630a761356454c2a382d149230ea2e621c95102b3d3b30427d7c0cd57"; - libraryHaskellDepends = [ - aeson base bytestring conduit conduit-extra HTTP http-conduit - http-types monad-control resourcet text time time-locale-compat - transformers unliftio-core vector xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://floss.scru.org/hMusicBrainz"; - description = "interface to MusicBrainz XML2 and JSON web services"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "NineP" = callPackage - ({ mkDerivation, base, binary, bytestring, stdenv }: - mkDerivation { - pname = "NineP"; - version = "0.0.2.1"; - sha256 = "4bb1516b9fb340118960043e0c72aa62316be8ff3f78cc8c1354e2fac96dd8cc"; - configureFlags = [ "-f-bytestring-in-base" ]; - libraryHaskellDepends = [ base binary bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://9ph.googlecode.com"; - description = "9P2000 in pure Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "NoHoed" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "NoHoed"; - version = "0.1.1"; - sha256 = "9b663a234c034e0049126ae7f06d1756dc496012177bf18548c6d8caeec43b3d"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pepeiborra/NoHoed"; - description = "Placeholder package to preserve debug ability via conditional builds"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "NumInstances" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "NumInstances"; - version = "1.4"; - sha256 = "cbdb2a49346f59ceb5ab38592d7bc52e5205580d431d0ac6d852fd9880e59679"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/conal/NumInstances"; - description = "Instances of numeric classes for functions and tuples"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ObjectName" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "ObjectName"; - version = "1.1.0.1"; - sha256 = "72dbef237580fd4e8567de2de752835bbadd3629f486d1586486d49a49aad210"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/svenpanne/ObjectName"; - description = "Explicitly handled object names"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "OneTuple" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "OneTuple"; - version = "0.2.2"; - sha256 = "d82e702485bcbdefbda0d12b6a250d318a269572ee58d63b60eee531e56624dc"; - revision = "1"; - editedCabalFile = "07jd23glblzmnlw7sn565sk9gm7vj9h459j46bkbcrrxnp0n0myq"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Singleton Tuple"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Only" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "Only"; - version = "0.1"; - sha256 = "ab7aa193e8c257d3bda6b0b3c1cbcf74cdaa85ab08cb20c2dd62ba248c1ab265"; - revision = "1"; - editedCabalFile = "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - description = "The 1-tuple type or single-value \"collection\""; - license = stdenv.lib.licenses.bsd3; - }) {}; - "OpenAL" = callPackage - ({ mkDerivation, base, ObjectName, openal, OpenGL, StateVar, stdenv - , transformers - }: - mkDerivation { - pname = "OpenAL"; - version = "1.7.0.4"; - sha256 = "3989f6c4fe437843551004dd011c4308bf63d787ae4fbb8ce71d44b1b0b1f118"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base ObjectName OpenGL StateVar transformers - ]; - librarySystemDepends = [ openal ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-openal/ALUT"; - description = "A binding to the OpenAL cross-platform 3D audio API"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) openal;}; - "OpenGL" = callPackage - ({ mkDerivation, base, bytestring, containers, GLURaw, ObjectName - , OpenGLRaw, StateVar, stdenv, text, transformers - }: - mkDerivation { - pname = "OpenGL"; - version = "3.0.2.2"; - sha256 = "4cba40fe8eecee67c8251556b4c05d9e98256c11d49c20e914f8232bfae67da7"; - libraryHaskellDepends = [ - base bytestring containers GLURaw ObjectName OpenGLRaw StateVar - text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Opengl"; - description = "A binding for the OpenGL graphics system"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "OpenGLRaw" = callPackage - ({ mkDerivation, base, bytestring, containers, fixed, half, libGL - , stdenv, text, transformers - }: - mkDerivation { - pname = "OpenGLRaw"; - version = "3.3.2.0"; - sha256 = "f24e23a49a9f11aa264f36f95795811580baf534648d238f7f5bcf8a2f0ec4e3"; - libraryHaskellDepends = [ - base bytestring containers fixed half text transformers - ]; - librarySystemDepends = [ libGL ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Opengl"; - description = "A raw binding for the OpenGL graphics system"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) libGL;}; - "ParsecTools" = callPackage - ({ mkDerivation, base, parsec, stdenv }: - mkDerivation { - pname = "ParsecTools"; - version = "0.0.2.0"; - sha256 = "ef4843353127aa3e6f6ab0aece9f4245225d375802921e151a1751d797857a87"; - libraryHaskellDepends = [ base parsec ]; - doHaddock = false; - doCheck = false; - description = "Parsec combinators for more complex objects"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "QuasiText" = callPackage - ({ mkDerivation, attoparsec, base, haskell-src-meta, stdenv - , template-haskell, text, th-lift-instances - }: - mkDerivation { - pname = "QuasiText"; - version = "0.1.2.6"; - sha256 = "e801d269e25263645ee66fc090040fe9b9c8a8e5bf10485801dd7a5a30e0f119"; - libraryHaskellDepends = [ - attoparsec base haskell-src-meta template-haskell text - th-lift-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mikeplus64/QuasiText"; - description = "A QuasiQuoter for Text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "QuickCheck" = callPackage - ({ mkDerivation, base, containers, deepseq, erf, random, stdenv - , template-haskell, tf-random, transformers - }: - mkDerivation { - pname = "QuickCheck"; - version = "2.12.6.1"; - sha256 = "0b2aa7f5c625b5875c36f5f548926fcdaedf4311bd3a4c291fcf10b8d7faa170"; - revision = "1"; - editedCabalFile = "0w5gygp6pmyjzjjx5irfflcbx586zfnqidq669ssqqfsadf944xv"; - libraryHaskellDepends = [ - base containers deepseq erf random template-haskell tf-random - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nick8325/quickcheck"; - description = "Automatic testing of Haskell programs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "RSA" = callPackage - ({ mkDerivation, base, binary, bytestring, crypto-api - , crypto-pubkey-types, SHA, stdenv - }: - mkDerivation { - pname = "RSA"; - version = "2.3.1"; - sha256 = "5c929c14de467a9f032641e1b79cbb31a796615c89bf90d059aee5b04eb3671a"; - libraryHaskellDepends = [ - base binary bytestring crypto-api crypto-pubkey-types SHA - ]; - doHaddock = false; - doCheck = false; - description = "Implementation of RSA, using the padding schemes of PKCS#1 v2.1."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Rasterific" = callPackage - ({ mkDerivation, base, bytestring, containers, dlist, FontyFruity - , free, JuicyPixels, mtl, primitive, stdenv, transformers, vector - , vector-algorithms - }: - mkDerivation { - pname = "Rasterific"; - version = "0.7.4.2"; - sha256 = "811b41ac7af262d58ae5bd1fe51d4e2cacbd6dd0ef163b7b5e8f98c5361be6e9"; - libraryHaskellDepends = [ - base bytestring containers dlist FontyFruity free JuicyPixels mtl - primitive transformers vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - description = "A pure haskell drawing engine"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "RefSerialize" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, hashtables - , stdenv, stringsearch - }: - mkDerivation { - pname = "RefSerialize"; - version = "0.4.0"; - sha256 = "05b25eb1ab943d96119aa2acca678fc8f194c3411af521e3835f4de5c752bbb2"; - libraryHaskellDepends = [ - base binary bytestring containers hashtables stringsearch - ]; - doHaddock = false; - doCheck = false; - description = "Write to and read from ByteStrings maintaining internal memory references"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "SHA" = callPackage - ({ mkDerivation, array, base, binary, bytestring, stdenv }: - mkDerivation { - pname = "SHA"; - version = "1.6.4.4"; - sha256 = "6bd950df6b11a3998bb1452d875d2da043ee43385459afc5f16d471d25178b44"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ array base binary bytestring ]; - doHaddock = false; - doCheck = false; - description = "Implementations of the SHA suite of message digest functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "SVGFonts" = callPackage - ({ mkDerivation, attoparsec, base, blaze-markup, blaze-svg - , bytestring, cereal, cereal-vector, containers, data-default-class - , diagrams-core, diagrams-lib, directory, parsec, split, stdenv - , text, vector, xml - }: - mkDerivation { - pname = "SVGFonts"; - version = "1.7.0.1"; - sha256 = "30b1eb325312b6dda99da23997197cda9dbc93e0829e2b795849a790e7bc761b"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base blaze-markup blaze-svg bytestring cereal - cereal-vector containers data-default-class diagrams-core - diagrams-lib directory parsec split text vector xml - ]; - doHaddock = false; - doCheck = false; - description = "Fonts from the SVG-Font format"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "SafeSemaphore" = callPackage - ({ mkDerivation, base, containers, stdenv, stm }: - mkDerivation { - pname = "SafeSemaphore"; - version = "0.10.1"; - sha256 = "21e5b737a378cae9e1faf85cab015316d4c84d4b37e6d9d202111cef8c4cef66"; - revision = "1"; - editedCabalFile = "1k61gqgfh6n3sj8ni8sfvpcm39nqc2msjfxk2pgmhfabvv48w5hv"; - libraryHaskellDepends = [ base containers stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChrisKuklewicz/SafeSemaphore"; - description = "Much safer replacement for QSemN, QSem, and SampleVar"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Spintax" = callPackage - ({ mkDerivation, attoparsec, base, extra, mtl, mwc-random, stdenv - , text - }: - mkDerivation { - pname = "Spintax"; - version = "0.3.3"; - sha256 = "21df2193bf1216d55a0d43691182125993eeadc6f097eaf5eb995c23f2016b13"; - libraryHaskellDepends = [ - attoparsec base extra mtl mwc-random text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MichelBoucey/spintax"; - description = "Random text generation based on spintax"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "StateVar" = callPackage - ({ mkDerivation, base, stdenv, stm, transformers }: - mkDerivation { - pname = "StateVar"; - version = "1.1.1.1"; - sha256 = "eb6436516ab2d5e3d3e070b5a1595c4dceea760a58a9cc8d23dad5f6008f2223"; - libraryHaskellDepends = [ base stm transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-opengl/StateVar"; - description = "State variables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "Strafunski-StrategyLib" = callPackage - ({ mkDerivation, base, directory, mtl, stdenv, syb, transformers }: - mkDerivation { - pname = "Strafunski-StrategyLib"; - version = "5.0.1.0"; - sha256 = "a018c7420289a381d2b491a753f685b9d691be07cea99855cc5c8e05d5a9a295"; - revision = "1"; - editedCabalFile = "1hngxq1f7fybg6ixkdhmvgsw608mhnxkwbw04ql5zspcfl78v6l2"; - libraryHaskellDepends = [ base directory mtl syb transformers ]; - doHaddock = false; - doCheck = false; - description = "Library for strategic programming"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "TCache" = callPackage - ({ mkDerivation, base, bytestring, containers, directory - , hashtables, mtl, old-time, RefSerialize, stdenv, stm, text - }: - mkDerivation { - pname = "TCache"; - version = "0.12.1"; - sha256 = "f134b45fcdd127fa1a4214f01d44dc34e994fed137cec63f4c4ea632363ab7bd"; - libraryHaskellDepends = [ - base bytestring containers directory hashtables mtl old-time - RefSerialize stm text - ]; - doHaddock = false; - doCheck = false; - description = "A Transactional cache with user-defined persistence"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "TotalMap" = callPackage - ({ mkDerivation, adjunctions, base, distributive, generics-sop - , lens, stdenv - }: - mkDerivation { - pname = "TotalMap"; - version = "0.1.0.0"; - sha256 = "6de8ad8ff44848473ab8bd2fed776de1dfe043dca6ca81ff4877a9a98a2c894c"; - libraryHaskellDepends = [ - adjunctions base distributive generics-sop lens - ]; - doHaddock = false; - doCheck = false; - description = "A total map datatype"; - license = stdenv.lib.licenses.mit; - }) {}; - "ViennaRNAParser" = callPackage - ({ mkDerivation, base, parsec, ParsecTools, process, stdenv - , transformers - }: - mkDerivation { - pname = "ViennaRNAParser"; - version = "1.3.3"; - sha256 = "7ee941d106b8b0c57e1ca5104d19b94215721e4a7b8aeb53fa353d246efbaefe"; - libraryHaskellDepends = [ - base parsec ParsecTools process transformers - ]; - doHaddock = false; - doCheck = false; - description = "Libary for parsing ViennaRNA package output"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "Win32-notify" = callPackage - ({ mkDerivation, base, containers, directory, stdenv, Win32 }: - mkDerivation { - pname = "Win32-notify"; - version = "0.3.0.3"; - sha256 = "0c21dbe06cb1ce3b3e5f1aace0b7ee359b36e7cb057f8fe2c28c943150044116"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers directory Win32 ]; - doHaddock = false; - doCheck = false; - description = "A binding to part of the Win32 library for file notification"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "X11" = callPackage - ({ mkDerivation, base, data-default, libX11, libXext, libXinerama - , libXrandr, libXrender, libXScrnSaver, stdenv - }: - mkDerivation { - pname = "X11"; - version = "1.9"; - sha256 = "10138e863d8c6f860aad1755a6f1a36949cc02d83e5afacf6677fb3999f10db9"; - libraryHaskellDepends = [ base data-default ]; - librarySystemDepends = [ - libX11 libXext libXinerama libXrandr libXrender libXScrnSaver - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xmonad/X11"; - description = "A binding to the X11 graphics library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs.xorg) libXScrnSaver; inherit (pkgs.xorg) libXext; -inherit (pkgs.xorg) libXinerama; inherit (pkgs.xorg) libXrender;}; - "X11-xft" = callPackage - ({ mkDerivation, base, libXft, stdenv, utf8-string, X11 }: - mkDerivation { - pname = "X11-xft"; - version = "0.3.1"; - sha256 = "4eba3fee62570e06447654030a62fb55f19587884bc2cef77a9c3b2c3458f8d1"; - libraryHaskellDepends = [ base utf8-string X11 ]; - libraryPkgconfigDepends = [ libXft ]; - doHaddock = false; - doCheck = false; - description = "Bindings to the Xft, X Free Type interface library, and some Xrender parts"; - license = "LGPL"; - }) {}; - "Xauth" = callPackage - ({ mkDerivation, base, libXau, stdenv }: - mkDerivation { - pname = "Xauth"; - version = "0.1"; - sha256 = "ba332dea9ec152b3f676d22461eee81a657e16987c3dfb8249e9dbe0cda56ed7"; - libraryHaskellDepends = [ base ]; - libraryPkgconfigDepends = [ libXau ]; - doHaddock = false; - doCheck = false; - description = "A binding to the X11 authentication library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "abstract-deque" = callPackage - ({ mkDerivation, array, base, containers, random, stdenv, time }: - mkDerivation { - pname = "abstract-deque"; - version = "0.3"; - sha256 = "09aa10f38193a8275a7791b92a4f3a7192a304874637e2a35c897dde25d75ca2"; - libraryHaskellDepends = [ array base containers random time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; - description = "Abstract, parameterized interface to mutable Deques"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "abstract-deque-tests" = callPackage - ({ mkDerivation, abstract-deque, array, base, containers, HUnit - , random, stdenv, test-framework, test-framework-hunit, time - }: - mkDerivation { - pname = "abstract-deque-tests"; - version = "0.3"; - sha256 = "5f17fb4cc26559f81c777f494622907e8927181175eaa172fb6adbf14b2feba5"; - libraryHaskellDepends = [ - abstract-deque array base containers HUnit random test-framework - test-framework-hunit time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; - description = "A test-suite for any queue or double-ended queue satisfying an interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "abstract-par" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "abstract-par"; - version = "0.3.3"; - sha256 = "248a8739bd902462cb16755b690b55660e196e58cc7e6ef8157a72c2a3d5d860"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/monad-par"; - description = "Type classes generalizing the functionality of the 'monad-par' library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "accuerr" = callPackage - ({ mkDerivation, base, bifunctors, lens, semigroups, stdenv }: - mkDerivation { - pname = "accuerr"; - version = "0.2.0.2"; - sha256 = "4f6a8230d2ad3bc274dea234208ce4f5282e2d9413a5da1f5505fc55a2fa9a36"; - libraryHaskellDepends = [ base bifunctors lens semigroups ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/massysett/accuerr"; - description = "Data type like Either but with accumulating error type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ace" = callPackage - ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup - , data-default, parsec, stdenv, text - }: - mkDerivation { - pname = "ace"; - version = "0.6"; - sha256 = "d3472b659d26cf7ea9afa207ec24ac0314598de997722e636e9bfa24b3900738"; - libraryHaskellDepends = [ - attoparsec base blaze-html blaze-markup data-default parsec text - ]; - doHaddock = false; - doCheck = false; - description = "Attempto Controlled English parser and printer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "action-permutations" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "action-permutations"; - version = "0.0.0.1"; - sha256 = "a419ee59f996e5305afd96336a561a9fcf26844362eaa32ab6b747a8f9fd1466"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Execute a set of actions (e.g. parsers) in each possible order"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "active" = callPackage - ({ mkDerivation, base, lens, linear, semigroupoids, semigroups - , stdenv, vector - }: - mkDerivation { - pname = "active"; - version = "0.2.0.13"; - sha256 = "5d9a141d58bcefbf699ed233a22309ded671c25ed64bcee11a663d00731280fb"; - revision = "8"; - editedCabalFile = "1j771jblfaygc3qf8iaw9b87yrqxhkq79mdi9zyhvlr2vcac362s"; - libraryHaskellDepends = [ - base lens linear semigroupoids semigroups vector - ]; - doHaddock = false; - doCheck = false; - description = "Abstractions for animation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ad" = callPackage - ({ mkDerivation, array, base, Cabal, cabal-doctest, comonad - , containers, data-reify, erf, free, nats, reflection, semigroups - , stdenv, transformers - }: - mkDerivation { - pname = "ad"; - version = "4.3.5"; - sha256 = "9c5e754b1f0ff83490bcc30f5dfa8504de5a34ab8f7be03ac232882940dc8d60"; - revision = "5"; - editedCabalFile = "0yzyfqhsafzaqzj8wmjrj5ghm6jwbxya3wxc9sjl59j9q20jc4nq"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - array base comonad containers data-reify erf free nats reflection - semigroups transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/ad"; - description = "Automatic Differentiation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "adjunctions" = callPackage - ({ mkDerivation, array, base, comonad, containers, contravariant - , distributive, free, mtl, profunctors, semigroupoids, semigroups - , stdenv, tagged, transformers, transformers-compat, void - }: - mkDerivation { - pname = "adjunctions"; - version = "4.4"; - sha256 = "507c2ef55337ae61c805f8cbc1213dfd7d2b85187342675d662254b8d8a16ae9"; - revision = "2"; - editedCabalFile = "1yfsjx7dqikg3hvld7i91xfsg5lawmr5980lvfd794sybmgxsf17"; - libraryHaskellDepends = [ - array base comonad containers contravariant distributive free mtl - profunctors semigroupoids semigroups tagged transformers - transformers-compat void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/adjunctions/"; - description = "Adjunctions and representable functors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "adler32" = callPackage - ({ mkDerivation, base, bytestring, stdenv, zlib }: - mkDerivation { - pname = "adler32"; - version = "0.1.2.0"; - sha256 = "26b43c9f389f45ed792698ea4880d24ba56ab61c6f7cae51e582a05e0b5866a4"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ zlib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/hs-adler32"; - description = "An implementation of Adler-32, supporting rolling checksum operation"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) zlib;}; - "advent-of-code-api" = callPackage - ({ mkDerivation, attoparsec, base, containers, curl, deepseq - , directory, filepath, finite-typelits, mtl, stdenv, tagsoup, text - , time, uri-encode - }: - mkDerivation { - pname = "advent-of-code-api"; - version = "0.1.2.3"; - sha256 = "f4d48b2519a0e897bdd5d18bade8adb6065e5aa0c6b155caeb2fc3dd1bea49d5"; - libraryHaskellDepends = [ - attoparsec base containers curl deepseq directory filepath - finite-typelits mtl tagsoup text time uri-encode - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/advent-of-code-api#readme"; - description = "Advent of Code REST API bindings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aern2-mp" = callPackage - ({ mkDerivation, base, convertible, hspec, integer-logarithms, lens - , mixed-types-num, QuickCheck, regex-tdfa, rounded, stdenv - , template-haskell - }: - mkDerivation { - pname = "aern2-mp"; - version = "0.1.3.1"; - sha256 = "758b01846bf21c90aad334867fb29e3115d4b174ac68bd9286ab7ddc7467d1bf"; - libraryHaskellDepends = [ - base convertible hspec integer-logarithms lens mixed-types-num - QuickCheck regex-tdfa rounded template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/michalkonecny/aern2"; - description = "Multi-precision ball (interval) arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson" = callPackage - ({ mkDerivation, attoparsec, base, base-compat, bytestring - , containers, deepseq, dlist, ghc-prim, hashable, primitive - , scientific, stdenv, tagged, template-haskell, text - , th-abstraction, time, time-locale-compat, unordered-containers - , uuid-types, vector - }: - mkDerivation { - pname = "aeson"; - version = "1.4.2.0"; - sha256 = "75ce71814a33d5e5568208e6806a8847e7ba47fea74d30f6a8b1b56ecb318bd0"; - revision = "1"; - editedCabalFile = "067y82gq86740j2zj4y6v7z9b5860ncg2g9lfnrpsnb9jqm7arl1"; - libraryHaskellDepends = [ - attoparsec base base-compat bytestring containers deepseq dlist - ghc-prim hashable primitive scientific tagged template-haskell text - th-abstraction time time-locale-compat unordered-containers - uuid-types vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/aeson"; - description = "Fast JSON parsing and encoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-attoparsec" = callPackage - ({ mkDerivation, aeson, attoparsec, base, stdenv }: - mkDerivation { - pname = "aeson-attoparsec"; - version = "0.0.0"; - sha256 = "a5868390477938b3086e820f4a432f9d6a3972454f561fc386520634eec72104"; - libraryHaskellDepends = [ aeson attoparsec base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/aeson-attoparsec#readme"; - description = "Embed an Attoparsec text parser into an Aeson parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-better-errors" = callPackage - ({ mkDerivation, aeson, base, bytestring, dlist, mtl, scientific - , stdenv, text, transformers, transformers-compat - , unordered-containers, vector, void - }: - mkDerivation { - pname = "aeson-better-errors"; - version = "0.9.1.0"; - sha256 = "68f001bf055ec7b755d91019f2a0ef136307d157a231acddad6b4cc561f67327"; - libraryHaskellDepends = [ - aeson base bytestring dlist mtl scientific text transformers - transformers-compat unordered-containers vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hdgarrood/aeson-better-errors"; - description = "Better error messages when decoding JSON values"; - license = stdenv.lib.licenses.mit; - }) {}; - "aeson-casing" = callPackage - ({ mkDerivation, aeson, base, stdenv }: - mkDerivation { - pname = "aeson-casing"; - version = "0.1.0.5"; - sha256 = "cfec563dc6822f035858a7190153d8818c200be565806b43b70f198bf5410577"; - libraryHaskellDepends = [ aeson base ]; - doHaddock = false; - doCheck = false; - description = "Tools to change the formatting of field names in Aeson instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "aeson-compat" = callPackage - ({ mkDerivation, aeson, attoparsec, attoparsec-iso8601, base - , base-compat, bytestring, containers, exceptions, hashable - , scientific, stdenv, tagged, text, time, time-locale-compat - , unordered-containers, vector - }: - mkDerivation { - pname = "aeson-compat"; - version = "0.3.9"; - sha256 = "e043941ba761c13a3854fc087521b864b56b2df874154e42aedb67b2a77f23c8"; - libraryHaskellDepends = [ - aeson attoparsec attoparsec-iso8601 base base-compat bytestring - containers exceptions hashable scientific tagged text time - time-locale-compat unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/aeson-compat#readme"; - description = "Compatibility layer for aeson"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-diff" = callPackage - ({ mkDerivation, aeson, base, bytestring, edit-distance-vector - , hashable, mtl, optparse-applicative, scientific, stdenv, text - , unordered-containers, vector - }: - mkDerivation { - pname = "aeson-diff"; - version = "1.1.0.5"; - sha256 = "61d9dd60b6c19dd5aa350b85083ebed3eab8d8611893db1279e55e43d7c7fbcf"; - revision = "1"; - editedCabalFile = "0a29nph4a1ny365nhsxlm73mk6zgaam4sfx6knzqjy8dxp1gkj48"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring edit-distance-vector hashable mtl scientific - text unordered-containers vector - ]; - executableHaskellDepends = [ - aeson base bytestring optparse-applicative text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/thsutton/aeson-diff"; - description = "Extract and apply patches to JSON documents"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-extra" = callPackage - ({ mkDerivation, aeson, aeson-compat, attoparsec - , attoparsec-iso8601, base, base-compat-batteries, bytestring - , containers, deepseq, exceptions, hashable, parsec - , recursion-schemes, scientific, stdenv, template-haskell, text - , these, time, unordered-containers, vector - }: - mkDerivation { - pname = "aeson-extra"; - version = "0.4.1.1"; - sha256 = "d48a65d976cbf496c8e5e9c927118ffcc878d6a83adf2fc9cebd418186d6fdf8"; - revision = "4"; - editedCabalFile = "0ja5vr9w22wyknkjyl7w43frdfdfnxphvrai1b18lhinjqcd9bl5"; - libraryHaskellDepends = [ - aeson aeson-compat attoparsec attoparsec-iso8601 base - base-compat-batteries bytestring containers deepseq exceptions - hashable parsec recursion-schemes scientific template-haskell text - these time unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/aeson-extra#readme"; - description = "Extra goodies for aeson"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-generic-compat" = callPackage - ({ mkDerivation, aeson, base, stdenv }: - mkDerivation { - pname = "aeson-generic-compat"; - version = "0.0.1.3"; - sha256 = "a6b6ca511483bc9de72c2c640a9f871fe8d329811fb8b87d0a664c4394e223cf"; - libraryHaskellDepends = [ aeson base ]; - doHaddock = false; - doCheck = false; - description = "Compatible generic class names of Aeson"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-iproute" = callPackage - ({ mkDerivation, aeson, base, iproute, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "aeson-iproute"; - version = "0.2"; - sha256 = "ee4d53338bfdc4a6ce0039dea24e797a0ff1e22c312b31be2e73ddc0bddf268f"; - libraryHaskellDepends = [ - aeson base iproute text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/greydot/aeson-iproute"; - description = "Aeson instances for iproute types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-picker" = callPackage - ({ mkDerivation, aeson, base, lens, lens-aeson, stdenv, text }: - mkDerivation { - pname = "aeson-picker"; - version = "0.1.0.4"; - sha256 = "b20e23905c395d7b61fce6c5f6343758e3753a2dbee61800d3e15e753ac7c452"; - libraryHaskellDepends = [ aeson base lens lens-aeson text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ozzzzz/aeson-picker#readme"; - description = "Tiny library to get fields from JSON format"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-pretty" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring - , cmdargs, scientific, stdenv, text, unordered-containers, vector - }: - mkDerivation { - pname = "aeson-pretty"; - version = "0.8.7"; - sha256 = "c1c1ecc5e3abd004a6c4c256ee6f61da2a43d7f1452ffa391dee250df43b27d5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base base-compat bytestring scientific text - unordered-containers vector - ]; - executableHaskellDepends = [ - aeson attoparsec base bytestring cmdargs - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/informatikr/aeson-pretty"; - description = "JSON pretty-printing library and command-line tool"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-qq" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base-compat - , haskell-src-meta, parsec, scientific, stdenv, template-haskell - , text, vector - }: - mkDerivation { - pname = "aeson-qq"; - version = "0.8.2"; - sha256 = "6db252c94601efcb1ce395de0084ccf931a3525339ccdca011a740e7b11cc152"; - libraryHaskellDepends = [ - aeson attoparsec base base-compat haskell-src-meta parsec - scientific template-haskell text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/aeson-qq#readme"; - description = "JSON quasiquoter for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "aeson-typescript" = callPackage - ({ mkDerivation, aeson, base, containers, interpolate, mtl, stdenv - , template-haskell, text, th-abstraction, unordered-containers - }: - mkDerivation { - pname = "aeson-typescript"; - version = "0.1.1.0"; - sha256 = "77a3b10384383f0188feef57015a896e89bac9882df4c83bed765f70b77aa46b"; - revision = "1"; - editedCabalFile = "1y5baadwfpyszd78dfbcln93ypg7ai6qvbdz7r95ili8p0vwikbk"; - libraryHaskellDepends = [ - aeson base containers interpolate mtl template-haskell text - th-abstraction unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/codedownio/aeson-typescript#readme"; - description = "Generate TypeScript definition files from your ADTs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-utils" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, scientific - , stdenv, text - }: - mkDerivation { - pname = "aeson-utils"; - version = "0.3.0.2"; - sha256 = "71814b1be8849f945395eb81217a2ad464f2943134c50c09afd8a3126add4b1f"; - revision = "7"; - editedCabalFile = "0lnlmsn5imbapdhbza1175wm04ynn1w75llkhlk1akpanx1dnd15"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring scientific text - ]; - doHaddock = false; - doCheck = false; - description = "Utilities for working with Aeson"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "aeson-yak" = callPackage - ({ mkDerivation, aeson, base, stdenv }: - mkDerivation { - pname = "aeson-yak"; - version = "0.1.1.3"; - sha256 = "af4355bc315a152592e9c06f5cc41bdb5ce7b236d85fe572a292c6bac02faa74"; - libraryHaskellDepends = [ aeson base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tejon/aeson-yak"; - description = "Handle JSON that may or may not be a list, or exist"; - license = stdenv.lib.licenses.mit; - }) {}; - "al" = callPackage - ({ mkDerivation, base, c2hs, mtl, openal, stdenv }: - mkDerivation { - pname = "al"; - version = "0.1.4.2"; - sha256 = "8bf0f3b3a05ea7b7b8e43da282e1952e5c532ed23247d3384d394cd5046cecd2"; - libraryHaskellDepends = [ base mtl ]; - libraryPkgconfigDepends = [ openal ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/phaazon/al"; - description = "OpenAL 1.1 raw API."; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) openal;}; - "alarmclock" = callPackage - ({ mkDerivation, async, base, clock, stdenv, stm, time - , unbounded-delays - }: - mkDerivation { - pname = "alarmclock"; - version = "0.6.0.2"; - sha256 = "4cabd649d1fdc17e3ab1658db9491f147bfcefd16ccbfa253b9b946eba1e18fe"; - libraryHaskellDepends = [ - async base clock stm time unbounded-delays - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/davecturner/alarmclock"; - description = "Wake up and perform an action at a certain time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "alerts" = callPackage - ({ mkDerivation, base, blaze-html, stdenv, text }: - mkDerivation { - pname = "alerts"; - version = "0.1.0.0"; - sha256 = "52418ed3abfff15e802506e5fb45f56d38eee020cb01af3f0acfe163c470ca68"; - libraryHaskellDepends = [ base blaze-html text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alx741/alerts#readme"; - description = "Alert messages for web applications"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "alex" = callPackage - ({ mkDerivation, array, base, containers, directory, happy, stdenv - }: - mkDerivation { - pname = "alex"; - version = "3.2.4"; - sha256 = "d58e4d708b14ff332a8a8edad4fa8989cb6a9f518a7c6834e96281ac5f8ff232"; - isLibrary = false; - isExecutable = true; - enableSeparateDataOutput = true; - executableHaskellDepends = [ array base containers directory ]; - executableToolDepends = [ happy ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/alex/"; - description = "Alex is a tool for generating lexical analysers in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "alg" = callPackage - ({ mkDerivation, base, stdenv, util }: - mkDerivation { - pname = "alg"; - version = "0.2.9.0"; - sha256 = "98724f959ada2387e94cc17a7bdc39eb868d8ef291daa12b82535b517eedb470"; - libraryHaskellDepends = [ base util ]; - doHaddock = false; - doCheck = false; - description = "Algebraic structures"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "algebraic-graphs" = callPackage - ({ mkDerivation, array, base, base-compat, containers, deepseq, mtl - , stdenv - }: - mkDerivation { - pname = "algebraic-graphs"; - version = "0.3"; - sha256 = "1492ace011d13757155ae2aca18737095cee9d5b94e810bac0a7ca3e9ea79de0"; - libraryHaskellDepends = [ - array base base-compat containers deepseq mtl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snowleopard/alga"; - description = "A library for algebraic graph construction and transformation"; - license = stdenv.lib.licenses.mit; - }) {}; - "almost-fix" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "almost-fix"; - version = "0.0.2"; - sha256 = "20597d015fe9b6bb6bfcb0eaee3eb58b28e38a1f4f43049ad0aeebcc6409a70f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Recurse while a predicate is satisfied"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "alsa-core" = callPackage - ({ mkDerivation, alsaLib, base, extensible-exceptions, stdenv }: - mkDerivation { - pname = "alsa-core"; - version = "0.5.0.1"; - sha256 = "eb50495ef05ecc7c06a0147da7f0d3efde832a44d23caaf5172dc114882270ab"; - libraryHaskellDepends = [ base extensible-exceptions ]; - libraryPkgconfigDepends = [ alsaLib ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/ALSA"; - description = "Binding to the ALSA Library API (Exceptions)"; - license = stdenv.lib.licenses.bsd3; - platforms = [ "i686-linux" "x86_64-linux" ]; - }) {inherit (pkgs) alsaLib;}; - "alsa-mixer" = callPackage - ({ mkDerivation, alsa-core, alsaLib, base, c2hs, stdenv, unix }: - mkDerivation { - pname = "alsa-mixer"; - version = "0.3.0"; - sha256 = "cb6a197de99c6b4339a7f552e1c6b71eaefa11bb96102d5ba4519a23c615de02"; - libraryHaskellDepends = [ alsa-core base unix ]; - librarySystemDepends = [ alsaLib ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ttuegel/alsa-mixer"; - description = "Bindings to the ALSA simple mixer API"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) alsaLib;}; - "alsa-pcm" = callPackage - ({ mkDerivation, alsa-core, alsaLib, array, base - , extensible-exceptions, sample-frame, semigroups, stdenv - , storable-record - }: - mkDerivation { - pname = "alsa-pcm"; - version = "0.6.1.1"; - sha256 = "6348f63e2858df9c0b516053c7c5111139936faea6edf7cf400b8fba6cca94d6"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - alsa-core array base extensible-exceptions sample-frame semigroups - storable-record - ]; - libraryPkgconfigDepends = [ alsaLib ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/ALSA"; - description = "Binding to the ALSA Library API (PCM audio)"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) alsaLib;}; - "alsa-seq" = callPackage - ({ mkDerivation, alsa-core, alsaLib, array, base, bytestring - , data-accessor, enumset, extensible-exceptions, poll, stdenv - , transformers, utility-ht - }: - mkDerivation { - pname = "alsa-seq"; - version = "0.6.0.7"; - sha256 = "06cda1e24993aaf0c3592b51a613cf1e187eea603dd77ad3a129a8a7b1e0b778"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - alsa-core array base bytestring data-accessor enumset - extensible-exceptions poll transformers utility-ht - ]; - libraryPkgconfigDepends = [ alsaLib ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/ALSA"; - description = "Binding to the ALSA Library API (MIDI sequencer)"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) alsaLib;}; - "alternative-vector" = callPackage - ({ mkDerivation, base, stdenv, vector }: - mkDerivation { - pname = "alternative-vector"; - version = "0.0.0"; - sha256 = "42474bc708dbc81e13a7850887cefc2596db47cb07423610094cd994f754c7b1"; - libraryHaskellDepends = [ base vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/alternative-vector#readme"; - description = "Use vectors instead of lists for many and some"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "alternators" = callPackage - ({ mkDerivation, base, lens, mmorph, mtl, newtype-generics, stdenv - , stm, transformers - }: - mkDerivation { - pname = "alternators"; - version = "1.0.0.0"; - sha256 = "44395b8b42193fdd78f94fd9f62560bfa69aef345a0fb2602df0d8d3613fd339"; - libraryHaskellDepends = [ - base lens mmorph mtl newtype-generics stm transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/alternators#readme"; - description = "Handy functions when using transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "amazonka" = callPackage - ({ mkDerivation, amazonka-core, base, bytestring, conduit - , conduit-extra, directory, exceptions, http-client, http-conduit - , http-types, ini, mmorph, monad-control, mtl, resourcet, retry - , stdenv, text, time, transformers, transformers-base - , transformers-compat, unliftio-core, void - }: - mkDerivation { - pname = "amazonka"; - version = "1.6.1"; - sha256 = "edb794b7ed0db3f5955ec08ded68b5eca753f62978312c881f3cb0c6eb769180"; - libraryHaskellDepends = [ - amazonka-core base bytestring conduit conduit-extra directory - exceptions http-client http-conduit http-types ini mmorph - monad-control mtl resourcet retry text time transformers - transformers-base transformers-compat unliftio-core void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Comprehensive Amazon Web Services SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-apigateway" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-apigateway"; - version = "1.6.1"; - sha256 = "3b843dd490d09c45aac415269bf3d7db894fad8104cdd76292058adb03adf385"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon API Gateway SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-application-autoscaling" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-application-autoscaling"; - version = "1.6.1"; - sha256 = "da0eaaa282cc04c6aa486dfe00cdb5f42afc77e6785493ffdaa2ff7c9a8ad286"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Application Auto Scaling SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-appstream" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-appstream"; - version = "1.6.1"; - sha256 = "6644fac750a0a415439df14567597de57bbe75cfe259feb42265af58867c088c"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon AppStream SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-athena" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-athena"; - version = "1.6.1"; - sha256 = "370ee46f0d9b7f09b911b25d97457d727510fa049b42921f5f6e4a730fe15b9d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Athena SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-autoscaling" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-autoscaling"; - version = "1.6.1"; - sha256 = "2fb4adc14d35ce6a24b1c294bbf3974317ff8b315fc10dc8f9609399a8acc914"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Auto Scaling SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-budgets" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-budgets"; - version = "1.6.1"; - sha256 = "84ab20850439ba786153a6e0c27bc8a321ef1c79524a8bf2d89adb56442d6273"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Budgets SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-certificatemanager" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-certificatemanager"; - version = "1.6.1"; - sha256 = "833d7b67e7bae4c8633d34109998675edbc95478ac0eb86ec1cf866079689ef2"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Certificate Manager SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudformation" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudformation"; - version = "1.6.1"; - sha256 = "e823eab5456b0b6f86f9cd391cf2572998e30ecbed9ce373cd8e3ac6f5d3afc8"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudFormation SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudfront" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudfront"; - version = "1.6.1"; - sha256 = "8c5900fb0d34878ecfe9470bcd897259e2575dbf7e13fc526a515a0e52dfa779"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudFront SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudhsm" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudhsm"; - version = "1.6.1"; - sha256 = "34dfe223cf33e207be71c6c0f092e892b549f5332eb392a0c474493be0e0a019"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudHSM SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudsearch" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudsearch"; - version = "1.6.1"; - sha256 = "d04812c26d5c19b5ad00f343e2607e18a91f12743508903ee76f12999bcd7adc"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudSearch SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudsearch-domains" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudsearch-domains"; - version = "1.6.1"; - sha256 = "041b6c655878f0ae85803cc4ef338bf1c4eab48ec327c46ffadb78b5c886b11f"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudSearch Domain SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudtrail" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudtrail"; - version = "1.6.1"; - sha256 = "55cc7c15a2e26824621ddb7e8086605bac315f994ac4cefb56b6b9726e0f7da9"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudTrail SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudwatch" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudwatch"; - version = "1.6.1"; - sha256 = "4e56b617c7b14f0074812562c52f05059c83921800cf737e231e3a8a4149326d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudWatch SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudwatch-events" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudwatch-events"; - version = "1.6.1"; - sha256 = "8b323d428e163bebb83bbcc3790666356c53bde5c418c84ac48898ebcc3f7646"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudWatch Events SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cloudwatch-logs" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cloudwatch-logs"; - version = "1.6.1"; - sha256 = "61dfdebb7c99d7d2875cd5ddba10000923c14a0d8a22e233ed3bbe617aa4d490"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CloudWatch Logs SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-codebuild" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-codebuild"; - version = "1.6.1"; - sha256 = "1375ef0b6b261e6762a3c35837055af3f0066f1da00c62f00fb28def8d39a6b0"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CodeBuild SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-codecommit" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-codecommit"; - version = "1.6.1"; - sha256 = "b639a3106095c6dc5d3885a75e20bd9ae4c270ae70b3fb342a40d191da1d0733"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CodeCommit SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-codedeploy" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-codedeploy"; - version = "1.6.1"; - sha256 = "3dff6fd082f1dc5c0f5992229499432e97b1a958a810a98330e25cf7175b54fa"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CodeDeploy SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-codepipeline" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-codepipeline"; - version = "1.6.1"; - sha256 = "bfa0ffffdf925b5e8693c10d4d73c1fbe310cb8f51a20d155ed08761cb3965c9"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon CodePipeline SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cognito-identity" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cognito-identity"; - version = "1.6.1"; - sha256 = "b97778558ce4ba5b8703d5549cd0ffa0b899812e2dd044d7515435070f9e8204"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Cognito Identity SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cognito-idp" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cognito-idp"; - version = "1.6.1"; - sha256 = "df62c34ef4269974d71cc8a1ed6a8160dd739a4dd7ef5e18a5c061a9f2e8f01b"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Cognito Identity Provider SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-cognito-sync" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-cognito-sync"; - version = "1.6.1"; - sha256 = "e048f9d072b5655f8da36d47c40c45f2d77d85a0a0e4ae0adf14b0e30590db63"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Cognito Sync SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-config" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-config"; - version = "1.6.1"; - sha256 = "ff36ba897040319981edf9736115ca541e000eb37fe6fd408f07f32792f06834"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Config SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-core" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bifunctors, bytestring - , case-insensitive, conduit, conduit-extra, cryptonite, deepseq - , exceptions, hashable, http-client, http-conduit, http-types, lens - , memory, mtl, resourcet, scientific, semigroups, stdenv, tagged - , text, time, transformers, transformers-compat - , unordered-containers, xml-conduit, xml-types - }: - mkDerivation { - pname = "amazonka-core"; - version = "1.6.1"; - sha256 = "4198f52da9d20338bd6a3a18748d4312d3ff2c06bc84503cb18406251b28a243"; - libraryHaskellDepends = [ - aeson attoparsec base bifunctors bytestring case-insensitive - conduit conduit-extra cryptonite deepseq exceptions hashable - http-client http-conduit http-types lens memory mtl resourcet - scientific semigroups tagged text time transformers - transformers-compat unordered-containers xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Core data types and functionality for Amazonka libraries"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-datapipeline" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-datapipeline"; - version = "1.6.1"; - sha256 = "6bf752844ec49c59be856bb082b600959ec187cc890f1bb7f7d9641e9b78b122"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Data Pipeline SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-devicefarm" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-devicefarm"; - version = "1.6.1"; - sha256 = "bed85bba8a891f7c626e0b1e41cb4912974c250a6534e5438a3f51e5379a83ec"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Device Farm SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-directconnect" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-directconnect"; - version = "1.6.1"; - sha256 = "dc61998ad1145118be5138df37bd97cb1a61298e8fbc506ef1a22a33bafa045b"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Direct Connect SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-discovery" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-discovery"; - version = "1.6.1"; - sha256 = "02abc932bf71df3ee03f5503d08414e3c01c49f08b4720e14e1a1e8fa13f449d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Application Discovery Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-dms" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-dms"; - version = "1.6.1"; - sha256 = "8c79f617ccd7035f709ae8057a8e1a6c5a89cdab3aa9c3aabaee7c0628e3ed87"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Database Migration Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ds" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ds"; - version = "1.6.1"; - sha256 = "fb4807974a865556eafc99b7c030244cf7da0b5b1ade9365fcb8689a48d6c8ff"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Directory Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-dynamodb" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-dynamodb"; - version = "1.6.1"; - sha256 = "0420486c88f10636a4407c8732b927498c5a809b235e2da56750d012f05c1d82"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon DynamoDB SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-dynamodb-streams" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-dynamodb-streams"; - version = "1.6.1"; - sha256 = "fe2dab6892599dac4ec9f4408283019d670f6ba0a24723914aabe718b14ed959"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon DynamoDB Streams SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ec2" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ec2"; - version = "1.6.1"; - sha256 = "b04a9924ceb3e78a7d7ebdde087cc707e8a51a109f2d15483e6d01d3458aadd3"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic Compute Cloud SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ecr" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ecr"; - version = "1.6.1"; - sha256 = "2d0d5dd640f63e11b6009d3b486505e93afd379c5f5738df79582b5eeb6c7358"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon EC2 Container Registry SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ecs" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ecs"; - version = "1.6.1"; - sha256 = "55071129ab02b9bf3feb5b5ca04feb64ea8709a125b67a35fda15b25cc1a1bba"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon EC2 Container Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-efs" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-efs"; - version = "1.6.1"; - sha256 = "741e047eb04c3bbd8dcbb03579bc82e4546abd0ae9a835ae128e2b3843d6b18c"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic File System SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-elasticache" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-elasticache"; - version = "1.6.1"; - sha256 = "4d2d8ae02e7c43eb77ba3a52863a4a2be305fb7f219a568709e830d647feeb60"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon ElastiCache SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-elasticbeanstalk" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-elasticbeanstalk"; - version = "1.6.1"; - sha256 = "2ad4f9e80217d544f5fdd837eb2749d54f3ca3b210dcbada70fec1c920879f69"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic Beanstalk SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-elasticsearch" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-elasticsearch"; - version = "1.6.1"; - sha256 = "9ef91d5db4b13a0164a83674763ce25cb104ba92afd6f8ee5c70aa379006ca13"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elasticsearch Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-elastictranscoder" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-elastictranscoder"; - version = "1.6.1"; - sha256 = "df80e7de3db78431eddb2d5413ac5e2271ec282c50ee1a23076aca90d697fb5b"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic Transcoder SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-elb" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-elb"; - version = "1.6.1"; - sha256 = "5b5eecb81db898daa55ac1628bf65ac124d44e616dca5b33356ced32e6ba109d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic Load Balancing SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-elbv2" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-elbv2"; - version = "1.6.1"; - sha256 = "6740907fe448cbee8512b91b570204d56018e520239fc9f1689601eb382f7b79"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic Load Balancing SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-emr" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-emr"; - version = "1.6.1"; - sha256 = "4b93c73647239e0bb1f779c876e933126fae48d51777b15ae4c4750dec2d87bc"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Elastic MapReduce SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-gamelift" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-gamelift"; - version = "1.6.1"; - sha256 = "c9c85550858c9eac54e86b226d31270de09cc8d71099a075829cc512fbe0e3b2"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon GameLift SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-glacier" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-glacier"; - version = "1.6.1"; - sha256 = "5b55cf733d0f987c1b3b61fb3fd0e29cdcfdc2bb7c9fcc0fa3c959d4bd540887"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Glacier SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-health" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-health"; - version = "1.6.1"; - sha256 = "a2b533d5ac019b7dce0a8cc07f2515b577cabbd3caa613372018a37fa8764677"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Health APIs and Notifications SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-iam" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-iam"; - version = "1.6.1"; - sha256 = "1d5106a4af75fae4444a3353b2568d4e1f751e81c7e9e263d26cd81466c3e7d7"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Identity and Access Management SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-importexport" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-importexport"; - version = "1.6.1"; - sha256 = "ce142494cc9d5a063ee93224e488380d3730ab507b57ebc53b215dafb0d6dd8e"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Import/Export SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-inspector" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-inspector"; - version = "1.6.1"; - sha256 = "68b4b3c335ce13754d08726a203fc01a5731f8b9147948b8848a986505efb674"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Inspector SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-iot" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-iot"; - version = "1.6.1"; - sha256 = "51763922dbb965d5c01ec60f1090eed03bec959a77e451cef70c55a42a2dc683"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon IoT SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-iot-dataplane" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-iot-dataplane"; - version = "1.6.1"; - sha256 = "7b43f97fe9eb1d81c7ec9ea865fb49c4cd364fa532d4c50d8676306bb8c20b48"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon IoT Data Plane SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-kinesis" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-kinesis"; - version = "1.6.1"; - sha256 = "5fe3dcf3fbf9aded3e27eb430be32400ebb84a01c0aec237e330a9480cbb5167"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Kinesis SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-kinesis-analytics" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-kinesis-analytics"; - version = "1.6.1"; - sha256 = "af589c9afa3f253efefb95b356a5f2a7a280d6abbf5314f182f0beecb1066e99"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Kinesis Analytics SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-kinesis-firehose" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-kinesis-firehose"; - version = "1.6.1"; - sha256 = "e4a10bfe3f334c9ec27b86096b671b363357c8b417268444b7600dfdcd68872d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Kinesis Firehose SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-kms" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-kms"; - version = "1.6.1"; - sha256 = "6d333ec392d1f47c850449e78a1071f2265b46f699f3c58ad9e30bd99c956285"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Key Management Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-lambda" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-lambda"; - version = "1.6.1"; - sha256 = "972b5ff15cad609f44761d485563496ca3584884e1fa367193ddaf76260fcca3"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Lambda SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-lightsail" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-lightsail"; - version = "1.6.1"; - sha256 = "7c678ea0f8aa5beee2e0473ac5055a17aeb50c148362739adc84c940beb3931e"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Lightsail SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-marketplace-analytics" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-marketplace-analytics"; - version = "1.6.1"; - sha256 = "6ff582afb73e30d97d1f74e815ae03cdf919c4be4581b23691346a6d48a2137d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Marketplace Commerce Analytics SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-marketplace-metering" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-marketplace-metering"; - version = "1.6.1"; - sha256 = "928bdbe8fbd3b81429ff4936590f3e04fd3632737fb39048afdc6be8ade85037"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Marketplace Metering SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ml" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ml"; - version = "1.6.1"; - sha256 = "b8c7c0b8663ffe570c79a1abc3d387b02e69b61b3f0d39b9ffa39e3049a7b872"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Machine Learning SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-opsworks" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-opsworks"; - version = "1.6.1"; - sha256 = "0a1716f0d6e5edaad37d86f2f3c0be043a0b0086d1f7a2f06cdd539f717faa96"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon OpsWorks SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-opsworks-cm" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-opsworks-cm"; - version = "1.6.1"; - sha256 = "51857803a2f0bee215c92119c3c5899df01e9195c2dc133e3f9774d4b93eca57"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon OpsWorks for Chef Automate SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-pinpoint" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-pinpoint"; - version = "1.6.1"; - sha256 = "aa38c2d154b7ad3c16f0760c5304fd7d9875b1e8c7d48bb32b87a5616717fc87"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Pinpoint SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-polly" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-polly"; - version = "1.6.1"; - sha256 = "b0887545cce2a01b16733b1d329570b4c79e6cfd6412813ec5c9c6c0a79fccef"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Polly SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-rds" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-rds"; - version = "1.6.1"; - sha256 = "fcd2400a359093bd075ccfc76e16c42c3f3bdc65828bf4cb24c9e5cfdc389421"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Relational Database Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-redshift" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-redshift"; - version = "1.6.1"; - sha256 = "87ea855e565636cc06396172e108df6aeca1e5fac1efc194d7bd98fc56402214"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Redshift SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-rekognition" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-rekognition"; - version = "1.6.1"; - sha256 = "3e20fbeea825447a063684e40b3a3a71342ac32df15f9c40a580279fe6a9f8f8"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Rekognition SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-route53" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv, text }: - mkDerivation { - pname = "amazonka-route53"; - version = "1.6.1"; - sha256 = "7c6442da5b6ded2a26b4f2b642cffe578456ffda8903f424590744f0dbc75773"; - libraryHaskellDepends = [ amazonka-core base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Route 53 SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-route53-domains" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-route53-domains"; - version = "1.6.1"; - sha256 = "2c2bcd7445c391235d3a8af2fcd8f641d5a4996379fbbdb8645a24c77f4ba2e8"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Route 53 Domains SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-s3" = callPackage - ({ mkDerivation, amazonka-core, base, lens, stdenv, text }: - mkDerivation { - pname = "amazonka-s3"; - version = "1.6.1"; - sha256 = "47a0b0124eaf34b8f14bdac4a8ed2a61f86984da4f6fc9e34b44acda07167e28"; - libraryHaskellDepends = [ amazonka-core base lens text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Simple Storage Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-sdb" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-sdb"; - version = "1.6.1"; - sha256 = "53b4585f2cc3d192ce85163e23b153e605563b3938d9f9da28244fec8db92a7a"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon SimpleDB SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-servicecatalog" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-servicecatalog"; - version = "1.6.1"; - sha256 = "b4d6ad7c79db7f1b106aa79f7477cff6191aa77d7c1c2b614c108b627507f54b"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Service Catalog SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ses" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ses"; - version = "1.6.1"; - sha256 = "054c576d30341d11ce79869ac1ac5bc0d92ecab88f0fffe9895b78f4b614ece8"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Simple Email Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-shield" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-shield"; - version = "1.6.1"; - sha256 = "1b8a71a8ef5055e8c100ba81ee0fb0a6af7af1e2b29020f546f896f712a07519"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Shield SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-sms" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-sms"; - version = "1.6.1"; - sha256 = "d6eb434bde9424080f68691775867e119a9f802cb4e7b7761de31e9a800b4b85"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Server Migration Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-snowball" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-snowball"; - version = "1.6.1"; - sha256 = "48c11fb69fed73bb3e7ed7b4cbaba28eb8cd3013b987479d8fb2d35eaa477cd3"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Import/Export Snowball SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-sns" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-sns"; - version = "1.6.1"; - sha256 = "db98a53c40addfcff33938cdfc4daf4ca35e49bbab01b804562abfb1e613e735"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Simple Notification Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-sqs" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-sqs"; - version = "1.6.1"; - sha256 = "ee067dd46f51af2ad33ee351d5c85a7d9599a669139fde30fcad825ff80843d4"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Simple Queue Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-ssm" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-ssm"; - version = "1.6.1"; - sha256 = "952dff5e1fba8d79cfc5df93c9e6e782e93462554ce446d4ef4e8aaa313cb0af"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Simple Systems Manager (SSM) SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-stepfunctions" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-stepfunctions"; - version = "1.6.1"; - sha256 = "60af76621df8ba65cd64dcba3a8b0ca54445599accd0de8c54338920577dd013"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Step Functions SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-storagegateway" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-storagegateway"; - version = "1.6.1"; - sha256 = "1041b53029d829dd11b30c08d21a87af8da0b4ed92e51376b3233327b1817e3f"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Storage Gateway SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-sts" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-sts"; - version = "1.6.1"; - sha256 = "ee2364bb14e931528aa3d271c1688829c0975251bc5ffc5c824710841e1c8fb9"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Security Token Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-support" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-support"; - version = "1.6.1"; - sha256 = "5a2d0dd5dd00a067b915e5dfb13c1848683ed7b9bdcfd6ac40d712b417c719ba"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Support SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-swf" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-swf"; - version = "1.6.1"; - sha256 = "7b9ce6704f7fe46607722daaa35d11dc2c239fa82ab26ae8a456cdc390b8744a"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon Simple Workflow Service SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-test" = callPackage - ({ mkDerivation, aeson, amazonka-core, base, bifunctors, bytestring - , case-insensitive, conduit, conduit-extra, groom, http-client - , http-types, process, resourcet, stdenv, tasty, tasty-hunit - , template-haskell, temporary, text, time, unordered-containers - , yaml - }: - mkDerivation { - pname = "amazonka-test"; - version = "1.6.1"; - sha256 = "751ed583302c4d8dd1dabe8628e8eb8d97b807a899bb71fe208158fe44f222a9"; - libraryHaskellDepends = [ - aeson amazonka-core base bifunctors bytestring case-insensitive - conduit conduit-extra groom http-client http-types process - resourcet tasty tasty-hunit template-haskell temporary text time - unordered-containers yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Common functionality for Amazonka library test-suites"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-waf" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-waf"; - version = "1.6.1"; - sha256 = "45c2f517d858891fa85e70e73969721c97ee22236d6932f0df87cd139255516a"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon WAF SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-workspaces" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-workspaces"; - version = "1.6.1"; - sha256 = "e589385b8a86f9997d0831ca350d5591484b9e1245374d3e0e88ab45d45c37bf"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon WorkSpaces SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amazonka-xray" = callPackage - ({ mkDerivation, amazonka-core, base, stdenv }: - mkDerivation { - pname = "amazonka-xray"; - version = "1.6.1"; - sha256 = "348cf06a7529d78a1b48d84e46a9c527b590355b4133473e8091052b34a5d00d"; - libraryHaskellDepends = [ amazonka-core base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/amazonka"; - description = "Amazon X-Ray SDK"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "amqp" = callPackage - ({ mkDerivation, base, binary, bytestring, clock, connection - , containers, data-binary-ieee754, monad-control, network - , network-uri, split, stdenv, stm, text, vector, xml - }: - mkDerivation { - pname = "amqp"; - version = "0.18.1"; - sha256 = "4678e2eb976df97e27cacbc4b1feafeb5a1800a9779b0a36666f04804f43e248"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring clock connection containers - data-binary-ieee754 monad-control network network-uri split stm - text vector - ]; - executableHaskellDepends = [ base containers xml ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hreinhardt/amqp"; - description = "Client library for AMQP servers (currently only RabbitMQ)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "annotated-wl-pprint" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "annotated-wl-pprint"; - version = "0.7.0"; - sha256 = "0c262d7fe13a9a50216438ec882c13e25f31236b886a5692e3c35b85cd773d18"; - revision = "1"; - editedCabalFile = "138k24qxvl90l7dwdw1b3w36mpw93n0xi0nljblqg88pxg7jcvjx"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/david-christiansen/annotated-wl-pprint"; - description = "The Wadler/Leijen Pretty Printer, with annotation support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ansi-terminal" = callPackage - ({ mkDerivation, base, colour, stdenv }: - mkDerivation { - pname = "ansi-terminal"; - version = "0.8.2"; - sha256 = "90a7324811e7da0d0aecd66454b1622e3b1ee22ed09bbdae379c0ff079d2fa90"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base colour ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/ansi-terminal"; - description = "Simple ANSI terminal support, with Windows compatibility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ansi-wl-pprint" = callPackage - ({ mkDerivation, ansi-terminal, base, stdenv }: - mkDerivation { - pname = "ansi-wl-pprint"; - version = "0.6.8.2"; - sha256 = "a630721bd57678c3bfeb6c703f8249e434cbf85f40daceec4660fb8c6725cb3e"; - revision = "2"; - editedCabalFile = "0xq83bwya8mfijp3dn9zfsqbbkl1wpzfjcmnkw8a06icjh9vg458"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ ansi-terminal base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/ansi-wl-pprint"; - description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "antiope-athena" = callPackage - ({ mkDerivation, amazonka, amazonka-athena, amazonka-core, base - , lens, resourcet, stdenv, text, unliftio-core - }: - mkDerivation { - pname = "antiope-athena"; - version = "6.2.0"; - sha256 = "b103fd481fb7b35e3b774f02f8ce9ab41b230b8a737b85a464ade594860ea34d"; - libraryHaskellDepends = [ - amazonka amazonka-athena amazonka-core base lens resourcet text - unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "antiope-core" = callPackage - ({ mkDerivation, amazonka, amazonka-core, base, bytestring - , exceptions, generic-lens, http-client, http-types, lens - , monad-logger, mtl, resourcet, stdenv, text, transformers - , unliftio-core - }: - mkDerivation { - pname = "antiope-core"; - version = "6.2.0"; - sha256 = "2357897649729286a5647f4176d699642d390a60126ea5132c6ddab611846b3c"; - libraryHaskellDepends = [ - amazonka amazonka-core base bytestring exceptions generic-lens - http-client http-types lens monad-logger mtl resourcet text - transformers unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "antiope-dynamodb" = callPackage - ({ mkDerivation, amazonka, amazonka-core, amazonka-dynamodb - , antiope-core, base, generic-lens, lens, stdenv, text - , unliftio-core, unordered-containers - }: - mkDerivation { - pname = "antiope-dynamodb"; - version = "6.2.0"; - sha256 = "5266d990b35e4b3d3ae1204d8e6eba5980ef3f783a21f2ff5b2e0964168c66cf"; - libraryHaskellDepends = [ - amazonka amazonka-core amazonka-dynamodb antiope-core base - generic-lens lens text unliftio-core unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "antiope-messages" = callPackage - ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3 - , amazonka-sqs, antiope-s3, base, generic-lens, lens, lens-aeson - , monad-loops, network-uri, stdenv, text, unliftio-core - }: - mkDerivation { - pname = "antiope-messages"; - version = "6.2.0"; - sha256 = "bffd6c5b27ea376fba61b028f1f8f00190ef8729109a91edef583b03b6f3f387"; - libraryHaskellDepends = [ - aeson amazonka amazonka-core amazonka-s3 amazonka-sqs antiope-s3 - base generic-lens lens lens-aeson monad-loops network-uri text - unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "antiope-s3" = callPackage - ({ mkDerivation, amazonka, amazonka-core, amazonka-s3, antiope-core - , attoparsec, base, bytestring, conduit, conduit-extra, exceptions - , generic-lens, http-types, lens, monad-logger, mtl, network-uri - , resourcet, stdenv, text, unliftio-core - }: - mkDerivation { - pname = "antiope-s3"; - version = "6.2.0"; - sha256 = "12e77e8d966cb90637a359ea7a1e365af05b86929a90c7ec9fd8dc57e4f569bd"; - libraryHaskellDepends = [ - amazonka amazonka-core amazonka-s3 antiope-core attoparsec base - bytestring conduit conduit-extra exceptions generic-lens http-types - lens monad-logger mtl network-uri resourcet text unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "antiope-sns" = callPackage - ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sns, base - , generic-lens, lens, stdenv, text, unliftio-core - }: - mkDerivation { - pname = "antiope-sns"; - version = "6.2.0"; - sha256 = "7b56576a1153a7e285f835893f35d054ea5b6037ac73ed398ed20ab7074ef55a"; - libraryHaskellDepends = [ - aeson amazonka amazonka-core amazonka-sns base generic-lens lens - text unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "antiope-sqs" = callPackage - ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3 - , amazonka-sqs, antiope-messages, antiope-s3, base, generic-lens - , lens, lens-aeson, monad-loops, network-uri, stdenv, text - , unliftio-core - }: - mkDerivation { - pname = "antiope-sqs"; - version = "6.2.0"; - sha256 = "45a035ee3cc2988c8b6dd60c988fc1f22a42fd829c8849565a6e7386786c636c"; - libraryHaskellDepends = [ - aeson amazonka amazonka-core amazonka-s3 amazonka-sqs - antiope-messages antiope-s3 base generic-lens lens lens-aeson - monad-loops network-uri text unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/antiope#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "aos-signature" = callPackage - ({ mkDerivation, base, bytestring, cryptonite, memory, mtl - , protolude, random, stdenv - }: - mkDerivation { - pname = "aos-signature"; - version = "0.1.1"; - sha256 = "c38a353c8bedd9710aa56f9aa8caf17db4313997afd9733921d1c5917511a9ea"; - libraryHaskellDepends = [ - base bytestring cryptonite memory mtl protolude random - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/aos-signature#readme"; - description = "An implementation of the AOS signatures"; - license = stdenv.lib.licenses.asl20; - }) {}; - "apecs" = callPackage - ({ mkDerivation, base, containers, mtl, stdenv, template-haskell - , vector - }: - mkDerivation { - pname = "apecs"; - version = "0.7.1"; - sha256 = "47dec2adc2d269c863767be5524a1178b9b3f8a4a5bb1903b8fbcbf5cdc67233"; - revision = "1"; - editedCabalFile = "14v5704fhysxpip0s7bfsg073kfbal3b0335s9nb14nwwak7bsyn"; - libraryHaskellDepends = [ - base containers mtl template-haskell vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jonascarpay/apecs#readme"; - description = "Fast ECS framework for game programming"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "apecs-gloss" = callPackage - ({ mkDerivation, apecs, apecs-physics, base, containers, gloss - , linear, stdenv - }: - mkDerivation { - pname = "apecs-gloss"; - version = "0.2.0"; - sha256 = "70bbaa46929fce5cc3d2db8645abd71c86c6a0cdbc2313f2ef90dbbcac926d62"; - libraryHaskellDepends = [ - apecs apecs-physics base containers gloss linear - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jonascarpay/apecs-physics#readme"; - description = "Simple gloss renderer for apecs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "apecs-physics" = callPackage - ({ mkDerivation, apecs, base, Cabal, containers, inline-c, linear - , stdenv, template-haskell, vector - }: - mkDerivation { - pname = "apecs-physics"; - version = "0.3.1"; - sha256 = "f29db921206b594e9549838f3206a7b2f02393ce1f42049d3d2dabbcd3e64846"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ - apecs base containers inline-c linear template-haskell vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jonascarpay/apecs-physics#readme"; - description = "2D physics for apecs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "api-field-json-th" = callPackage - ({ mkDerivation, aeson, base, lens, split, stdenv, template-haskell - , text - }: - mkDerivation { - pname = "api-field-json-th"; - version = "0.1.0.2"; - sha256 = "b8d49c3869bc8104539c43d5544ed2271d1e68a963440d781ee71d2252b0f724"; - libraryHaskellDepends = [ - aeson base lens split template-haskell text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nakaji-dayo/api-field-json-th"; - description = "option of aeson's deriveJSON"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "app-settings" = callPackage - ({ mkDerivation, base, containers, directory, mtl, parsec, stdenv - , text - }: - mkDerivation { - pname = "app-settings"; - version = "0.2.0.12"; - sha256 = "2bd198b97077090476f8f512a7c03f3ab4147a6df51cf8cd22b5145c37b2ccda"; - libraryHaskellDepends = [ - base containers directory mtl parsec text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/emmanueltouzery/app-settings"; - description = "A library to manage application settings (INI file-like)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "appar" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "appar"; - version = "0.1.7"; - sha256 = "f6de4f1d1332d665057a9fd1af6b805f66cf04299b03f53696f3c9db4f7ff21f"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "A simple applicative parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "appendmap" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "appendmap"; - version = "0.1.5"; - sha256 = "2dbfa21a3702c30e0bdf764f5775f4ed8ac63b48a830b8931ea994f52030b90e"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/koterpillar/appendmap#readme"; - description = "Map with a Semigroup and Monoid instances delegating to Semigroup of the elements"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "apply-refact" = callPackage - ({ mkDerivation, base, containers, directory, filemanip, filepath - , ghc, ghc-exactprint, mtl, optparse-applicative, process, refact - , stdenv, syb, temporary, transformers, unix-compat - }: - mkDerivation { - pname = "apply-refact"; - version = "0.6.0.0"; - sha256 = "2fbe0e3d4dca8f67e4a423116a947e2a7cf40ef620bf8f66653f64cce4c3555c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers directory filemanip ghc ghc-exactprint mtl process - refact syb temporary transformers unix-compat - ]; - executableHaskellDepends = [ - base containers directory filemanip filepath ghc ghc-exactprint mtl - optparse-applicative process refact syb temporary transformers - unix-compat - ]; - doHaddock = false; - doCheck = false; - description = "Perform refactorings specified by the refact library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "apportionment" = callPackage - ({ mkDerivation, base, containers, stdenv, utility-ht }: - mkDerivation { - pname = "apportionment"; - version = "0.0.0.3"; - sha256 = "8f71d0b77152edb048e9f75c72a82b9d7ae1b15432fc011610fe9f1b83225b18"; - libraryHaskellDepends = [ base containers utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/apportionment"; - description = "Round a set of numbers while maintaining its sum"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "approximate" = callPackage - ({ mkDerivation, base, binary, bytes, Cabal, cabal-doctest, cereal - , comonad, deepseq, ghc-prim, hashable, lens, log-domain, pointed - , safecopy, semigroupoids, semigroups, stdenv, vector - }: - mkDerivation { - pname = "approximate"; - version = "0.3.1"; - sha256 = "d837f716d9e73d68a53a17321f0433dd9ffe71df24d550aed6a34ec1c2ad2ea2"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base binary bytes cereal comonad deepseq ghc-prim hashable lens - log-domain pointed safecopy semigroupoids semigroups vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/analytics/approximate/"; - description = "Approximate discrete values and numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "arbor-lru-cache" = callPackage - ({ mkDerivation, base, containers, generic-lens, lens, stdenv, stm - }: - mkDerivation { - pname = "arbor-lru-cache"; - version = "0.1.1.0"; - sha256 = "8f47df22ec2d1fa8b39e5234c3db229be681f8d3979bef55bf98c0686762fe5a"; - libraryHaskellDepends = [ base containers generic-lens lens stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arbor/arbor-lru-cache#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "arithmoi" = callPackage - ({ mkDerivation, array, base, containers, deepseq, exact-pi - , ghc-prim, integer-gmp, integer-logarithms, random, stdenv - , transformers, vector - }: - mkDerivation { - pname = "arithmoi"; - version = "0.8.0.0"; - sha256 = "82d33a3c8deb52f8efc7d0192e468eba125c0ba1b48c82b881182c979005d39e"; - revision = "3"; - editedCabalFile = "1cn6axcdiahaqnq1rsm0snr78lrypay6cxh3yxw3vrrwilavri1i"; - configureFlags = [ "-f-llvm" ]; - libraryHaskellDepends = [ - array base containers deepseq exact-pi ghc-prim integer-gmp - integer-logarithms random transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cartazio/arithmoi"; - description = "Efficient basic number-theoretic functions"; - license = stdenv.lib.licenses.mit; - }) {}; - "array-memoize" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "array-memoize"; - version = "0.6.0"; - sha256 = "76c88cb3ed04875821a5601f6a1c40f4e15ef8cb36e8a3d4004df956d1db05dc"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - description = "Memoization combinators using arrays for finite sub-domains of functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "arrow-extras" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "arrow-extras"; - version = "0.1.0.1"; - sha256 = "c13c3aba839d1ec78a49991fa4038a68c5eb9ef6da61eceb6e68bc3ce0586a6c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/arrow-extras#readme"; - description = "Extra functions for Control.Arrow"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ascii-progress" = callPackage - ({ mkDerivation, async, base, concurrent-output, data-default - , stdenv, time - }: - mkDerivation { - pname = "ascii-progress"; - version = "0.3.3.0"; - sha256 = "7e3fa6b80c09a83c9ba8a0644ef304ca92d65b76383b8dd023ff9f89ebec913e"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base concurrent-output data-default time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yamadapc/haskell-ascii-progress"; - description = "A simple progress bar for the console"; - license = stdenv.lib.licenses.mit; - }) {}; - "asciidiagram" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , FontyFruity, JuicyPixels, lens, linear, mtl, optparse-applicative - , rasterific-svg, stdenv, svg-tree, text, vector - }: - mkDerivation { - pname = "asciidiagram"; - version = "1.3.3.2"; - sha256 = "2b343441f4c7f6e0260d0810d3b22848512c3dd11a80e949076dfbc6b5246e4d"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers FontyFruity JuicyPixels lens linear mtl - rasterific-svg svg-tree text vector - ]; - executableHaskellDepends = [ - base bytestring directory filepath FontyFruity JuicyPixels - optparse-applicative rasterific-svg svg-tree text - ]; - doHaddock = false; - doCheck = false; - description = "Pretty rendering of Ascii diagram into svg or png"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "asif" = callPackage - ({ mkDerivation, attoparsec, base, binary, bytestring, conduit - , conduit-combinators, conduit-extra, containers, cpu, directory - , either, exceptions, generic-lens, hw-bits, hw-ip, iproute, lens - , network, old-locale, optparse-applicative, resourcet, stdenv - , temporary-resourcet, text, thyme, vector - }: - mkDerivation { - pname = "asif"; - version = "3.2.0"; - sha256 = "00430428ae65728721b7509edfffe31dd697eb83ec424091c809c5437319cf67"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - attoparsec base binary bytestring conduit conduit-combinators - conduit-extra containers cpu either exceptions generic-lens hw-bits - hw-ip iproute lens network old-locale resourcet temporary-resourcet - text thyme vector - ]; - executableHaskellDepends = [ - attoparsec base binary bytestring conduit conduit-combinators - conduit-extra containers cpu directory either exceptions - generic-lens hw-bits hw-ip iproute lens network old-locale - optparse-applicative resourcet temporary-resourcet text thyme - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/packetloop/asif#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "asn1-encoding" = callPackage - ({ mkDerivation, asn1-types, base, bytestring, hourglass, stdenv }: - mkDerivation { - pname = "asn1-encoding"; - version = "0.9.5"; - sha256 = "1e863bfd363f6c3760cc80f2c0d422e17845a9f79fe006030db202ecab5aaf29"; - libraryHaskellDepends = [ asn1-types base bytestring hourglass ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-asn1"; - description = "ASN1 data reader and writer in RAW, BER and DER forms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "asn1-parse" = callPackage - ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring - , stdenv - }: - mkDerivation { - pname = "asn1-parse"; - version = "0.9.4"; - sha256 = "c6a328f570c69db73f8d2416f9251e8a03753f90d5d19e76cbe69509a3ceb708"; - libraryHaskellDepends = [ - asn1-encoding asn1-types base bytestring - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-asn1"; - description = "Simple monadic parser for ASN1 stream types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "asn1-types" = callPackage - ({ mkDerivation, base, bytestring, hourglass, memory, stdenv }: - mkDerivation { - pname = "asn1-types"; - version = "0.3.2"; - sha256 = "0c571fff4a10559c6a630d4851ba3cdf1d558185ce3dcfca1136f9883d647217"; - libraryHaskellDepends = [ base bytestring hourglass memory ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-asn1-types"; - description = "ASN.1 types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "assert-failure" = callPackage - ({ mkDerivation, base, pretty-show, stdenv, text }: - mkDerivation { - pname = "assert-failure"; - version = "0.1.2.2"; - sha256 = "f69416fd527b4f6933586edfc9ee741a2163c3741471e9b8e46a244495bd4a9d"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base pretty-show text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Mikolaj/assert-failure"; - description = "Syntactic sugar improving 'assert' and 'error'"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "astro" = callPackage - ({ mkDerivation, base, matrix, stdenv, time }: - mkDerivation { - pname = "astro"; - version = "0.4.2.1"; - sha256 = "da5dde1bcf42e4f48f5f23dbf3a890a2904ecaf86df3d75e365e071b924afe29"; - libraryHaskellDepends = [ base matrix time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aligusnet/astro"; - description = "Amateur astronomical computations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "async" = callPackage - ({ mkDerivation, base, hashable, stdenv, stm }: - mkDerivation { - pname = "async"; - version = "2.2.1"; - sha256 = "8f0b86022a1319d3c1c68655790da4b7f98017982e27ec3f3dbfe01029d39027"; - revision = "1"; - editedCabalFile = "0lg8c3iixm7vjjq2nydkqswj78i4iyx2k83hgs12z829yj196y31"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base hashable stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/async"; - description = "Run IO operations asynchronously and wait for their results"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "async-extra" = callPackage - ({ mkDerivation, async, base, deepseq, split, stdenv }: - mkDerivation { - pname = "async-extra"; - version = "0.2.0.0"; - sha256 = "0d06d5a5cb835597ff1668ae58a1f0d048830164876838533dec4a78eb11cc43"; - libraryHaskellDepends = [ async base deepseq split ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/async-extra#readme"; - description = "Useful concurrent combinators"; - license = stdenv.lib.licenses.mit; - }) {}; - "async-refresh" = callPackage - ({ mkDerivation, base, formatting, lifted-async, microlens - , microlens-th, monad-logger, safe-exceptions, stdenv, stm, text - , unliftio, unliftio-core - }: - mkDerivation { - pname = "async-refresh"; - version = "0.3.0.0"; - sha256 = "da68061b2548a9b5b3e6f4af60120554ebfae9638dfa0b10cf7a244710a334c9"; - libraryHaskellDepends = [ - base formatting lifted-async microlens microlens-th monad-logger - safe-exceptions stm text unliftio unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mtesseract/async-refresh"; - description = "Package implementing core logic for refreshing of expiring data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "async-refresh-tokens" = callPackage - ({ mkDerivation, async-refresh, base, bytestring, formatting - , microlens, microlens-th, monad-logger, safe-exceptions, stdenv - , text, unliftio, unliftio-core - }: - mkDerivation { - pname = "async-refresh-tokens"; - version = "0.4.0.0"; - sha256 = "67a7419449428fc5f80e9cfc392df115f03721811d6cd73a6c7cbd83f48dc7df"; - libraryHaskellDepends = [ - async-refresh base bytestring formatting microlens microlens-th - monad-logger safe-exceptions text unliftio unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mtesseract/async-refresh-tokens#readme"; - description = "Package implementing core logic for refreshing of expiring access tokens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "async-timer" = callPackage - ({ mkDerivation, async, base, safe-exceptions, stdenv, unliftio - , unliftio-core - }: - mkDerivation { - pname = "async-timer"; - version = "0.2.0.0"; - sha256 = "0632bfc4c141aa47c461747b3edb59f76ef5523a66ac03be0f32868a5e04cee0"; - libraryHaskellDepends = [ - async base safe-exceptions unliftio unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mtesseract/async-timer#readme"; - description = "Provides API for timer based execution of IO actions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "atom-basic" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, network - , network-uri, stdenv, text, time - }: - mkDerivation { - pname = "atom-basic"; - version = "0.2.5"; - sha256 = "24be9667b8bad3ad63b2e9b42fdea5aa0fd96f7e90f52fb1203adfa71d2f75ee"; - libraryHaskellDepends = [ - base base64-bytestring bytestring network network-uri text time - ]; - doHaddock = false; - doCheck = false; - description = "Basic Atom feed construction"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "atomic-primops" = callPackage - ({ mkDerivation, base, ghc-prim, primitive, stdenv }: - mkDerivation { - pname = "atomic-primops"; - version = "0.8.2"; - sha256 = "67f8872e0c1e634d819a967365eb4ad514e9b2cde967fbc710da7cdc4d17d933"; - revision = "1"; - editedCabalFile = "0gdcd84x2s4jiry0was74rzv9l53an1q6ad8jiaj37fr4fim0wcc"; - libraryHaskellDepends = [ base ghc-prim primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; - description = "A safe approach to CAS and other atomic ops in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "atomic-write" = callPackage - ({ mkDerivation, base, bytestring, directory, filepath, stdenv - , temporary, text, unix-compat - }: - mkDerivation { - pname = "atomic-write"; - version = "0.2.0.6"; - sha256 = "d4634b777ea8df551bc619125b6240047c74b6454c1a3caaad10496a39d443f7"; - libraryHaskellDepends = [ - base bytestring directory filepath temporary text unix-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stackbuilders/atomic-write"; - description = "Atomically write to a file"; - license = stdenv.lib.licenses.mit; - }) {}; - "attoparsec" = callPackage - ({ mkDerivation, array, base, bytestring, containers, deepseq - , scientific, stdenv, text, transformers - }: - mkDerivation { - pname = "attoparsec"; - version = "0.13.2.2"; - sha256 = "dd93471eb969172cc4408222a3842d867adda3dd7fb39ad8a4df1b121a67d848"; - revision = "3"; - editedCabalFile = "1birva836xdp92lf1v5yrs8lj3bgj9vnarrfh2ssfxxacqj1gjji"; - libraryHaskellDepends = [ - array base bytestring containers deepseq scientific text - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/attoparsec"; - description = "Fast combinator parsing for bytestrings and text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-base64" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv, text, word8 - }: - mkDerivation { - pname = "attoparsec-base64"; - version = "0.0.0"; - sha256 = "0833530c8b4a46217272d14638f91325e156b22046fa291b528228afe66173e7"; - libraryHaskellDepends = [ attoparsec base bytestring text word8 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/attoparsec-base64#readme"; - description = "Fetch only base64 characters, erroring in the attoparsec monad on failure"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-binary" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv }: - mkDerivation { - pname = "attoparsec-binary"; - version = "0.2"; - sha256 = "05e6445b20b396c99275de3e37bf8bb18559a5666ad5136907857bf574e77a0b"; - libraryHaskellDepends = [ attoparsec base bytestring ]; - doHaddock = false; - doCheck = false; - description = "Binary processing extensions to Attoparsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-expr" = callPackage - ({ mkDerivation, attoparsec, base, stdenv }: - mkDerivation { - pname = "attoparsec-expr"; - version = "0.1.1.2"; - sha256 = "8d4cd436112ce9007d2831776d4c5102a5322c48993229d2d41e259c07bb457c"; - libraryHaskellDepends = [ attoparsec base ]; - doHaddock = false; - doCheck = false; - description = "Port of parsec's expression parser to attoparsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-ip" = callPackage - ({ mkDerivation, attoparsec, base, ip, stdenv, vector }: - mkDerivation { - pname = "attoparsec-ip"; - version = "0.0.5"; - sha256 = "f5864859694fb9faa64cabea17fdf8f506e325fa4704c23036ea1cc17102c76f"; - libraryHaskellDepends = [ attoparsec base ip vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/attoparsec-ip#readme"; - description = "Parse IP data types with attoparsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-iso8601" = callPackage - ({ mkDerivation, attoparsec, base, base-compat, stdenv, text, time - }: - mkDerivation { - pname = "attoparsec-iso8601"; - version = "1.0.1.0"; - sha256 = "499ffbd2d39e79cc4fda5ad0129dbf94fdb72a84aa932dfe2a5f5c5c02074142"; - libraryHaskellDepends = [ attoparsec base base-compat text time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/aeson"; - description = "Parsing of ISO 8601 dates, originally from aeson"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-path" = callPackage - ({ mkDerivation, attoparsec, base, path, stdenv, text }: - mkDerivation { - pname = "attoparsec-path"; - version = "0.0.0.1"; - sha256 = "d07126622210fdb18722f585c61bda0a17389aecc83e786f9f6e621ec120b60c"; - libraryHaskellDepends = [ attoparsec base path text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/attoparsec-path#readme"; - description = "Convenience bindings between path and attoparsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "attoparsec-uri" = callPackage - ({ mkDerivation, attoparsec, attoparsec-ip, base, bytedump, ip - , QuickCheck, quickcheck-instances, stdenv, strict, text, vector - }: - mkDerivation { - pname = "attoparsec-uri"; - version = "0.0.7"; - sha256 = "369d49c342f90bcc5e07c53b12dc642d6e03aa991900262abc48127d4b25725c"; - libraryHaskellDepends = [ - attoparsec attoparsec-ip base bytedump ip QuickCheck - quickcheck-instances strict text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/attoparsec-uri#readme"; - description = "URI parser / printer using attoparsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "audacity" = callPackage - ({ mkDerivation, base, bytestring, deepseq, directory - , explicit-exception, filepath, non-empty, semigroups, stdenv - , storable-record, storablevector, tagchup, transformers - , utility-ht, xml-basic - }: - mkDerivation { - pname = "audacity"; - version = "0.0.2"; - sha256 = "d9d2dfb1c4e6ad39b535561feb720a7889dc1151ad6625fd5522d4212dbc26a4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring deepseq directory explicit-exception filepath - non-empty semigroups storable-record storablevector tagchup - transformers utility-ht xml-basic - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/audacity"; - description = "Interchange with the Audacity sound signal editor"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "authenticate" = callPackage - ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring - , case-insensitive, conduit, containers, http-conduit, http-types - , network-uri, resourcet, stdenv, tagstream-conduit, text - , transformers, unordered-containers, xml-conduit - }: - mkDerivation { - pname = "authenticate"; - version = "1.3.4"; - sha256 = "3fd566dbfdf75d81ad1bebd19facb9f01509ead6e27d9aed802404ecde932fb8"; - revision = "1"; - editedCabalFile = "0ipbmf633c0kmcwwb7d51ac8s4220nfyk5xghhq66mpgna77j2c2"; - libraryHaskellDepends = [ - aeson attoparsec base blaze-builder bytestring case-insensitive - conduit containers http-conduit http-types network-uri resourcet - tagstream-conduit text transformers unordered-containers - xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/authenticate"; - description = "Authentication methods for Haskell web applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "authenticate-oauth" = callPackage - ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring - , crypto-pubkey-types, data-default, http-client, http-types - , random, RSA, SHA, stdenv, time, transformers, transformers-compat - }: - mkDerivation { - pname = "authenticate-oauth"; - version = "1.6"; - sha256 = "d26d9f10fd57e06fa2af066df65e578ff3ec7541efc3e6648b29a743b13f8375"; - revision = "1"; - editedCabalFile = "1fxwn8bn6qs8dhxq0q04psq7zp1qvw1b6g3vmsclgyj9p7kr77ms"; - libraryHaskellDepends = [ - base base64-bytestring blaze-builder bytestring crypto-pubkey-types - data-default http-client http-types random RSA SHA time - transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/authenticate"; - description = "Library to authenticate with OAuth for Haskell web applications"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "auto" = callPackage - ({ mkDerivation, base, base-orphans, bytestring, cereal, containers - , deepseq, MonadRandom, profunctors, random, semigroups, stdenv - , transformers - }: - mkDerivation { - pname = "auto"; - version = "0.4.3.1"; - sha256 = "c6e26d1cbb17e3645e55bc8e9432b124520fbcba5ff32445acd4260c25cd3b41"; - libraryHaskellDepends = [ - base base-orphans bytestring cereal containers deepseq MonadRandom - profunctors random semigroups transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/auto"; - description = "Denotative, locally stateful programming DSL & platform"; - license = stdenv.lib.licenses.mit; - }) {}; - "auto-update" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "auto-update"; - version = "0.1.4"; - sha256 = "5e96c151024e8bcaf4eaa932e16995872b2017f46124b967e155744d9580b425"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/wai"; - description = "Efficiently run periodic, on-demand actions"; - license = stdenv.lib.licenses.mit; - }) {}; - "autoexporter" = callPackage - ({ mkDerivation, base, Cabal, directory, filepath, stdenv }: - mkDerivation { - pname = "autoexporter"; - version = "1.1.13"; - sha256 = "7bb6fbf567f56a5a3ec53036fe82aa8e17452c46778a34e9dd00477e5cdcaf16"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base Cabal directory filepath ]; - executableHaskellDepends = [ base Cabal directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/autoexporter#readme"; - description = "Automatically re-export modules"; - license = stdenv.lib.licenses.mit; - }) {}; - "avers" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, clock - , containers, cryptonite, filepath, inflections, memory - , MonadRandom, mtl, network, network-uri, resource-pool - , rethinkdb-client-driver, safe, scrypt, stdenv, stm - , template-haskell, text, time, unordered-containers, vector - }: - mkDerivation { - pname = "avers"; - version = "0.0.17.1"; - sha256 = "1b45d8aa036b3c2ec7ea180327ff3cdce28dc1e1ef319c062be79f0ffa7626f5"; - revision = "31"; - editedCabalFile = "03nzgni96r6yfmn196iya6akrzh46njqzd2873aj341ynfaqjyy1"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring clock containers cryptonite - filepath inflections memory MonadRandom mtl network network-uri - resource-pool rethinkdb-client-driver safe scrypt stm - template-haskell text time unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - description = "Server-side implementation of the Avers storage model"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "avers-api" = callPackage - ({ mkDerivation, aeson, avers, base, bytestring, cookie - , http-api-data, servant, stdenv, text, time, vector - }: - mkDerivation { - pname = "avers-api"; - version = "0.1.0"; - sha256 = "5c1765976fd1ac49444023452e31cbe5200fd9c8480e1927aa4334e8752d5a3e"; - libraryHaskellDepends = [ - aeson avers base bytestring cookie http-api-data servant text time - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/wereHamster/avers-api"; - description = "Types describing the core and extended Avers APIs"; - license = stdenv.lib.licenses.mit; - }) {}; - "avers-server" = callPackage - ({ mkDerivation, aeson, avers, avers-api, base, base64-bytestring - , bytestring, bytestring-conversion, containers, cookie, cryptonite - , http-types, memory, mtl, resource-pool, servant, servant-server - , stdenv, stm, text, time, transformers, wai, wai-websockets - , websockets - }: - mkDerivation { - pname = "avers-server"; - version = "0.1.0.1"; - sha256 = "becd96d702ba85bfa105f799da27e9fb1e483b59643345503e60888a8860518e"; - libraryHaskellDepends = [ - aeson avers avers-api base base64-bytestring bytestring - bytestring-conversion containers cookie cryptonite http-types - memory mtl resource-pool servant servant-server stm text time - transformers wai wai-websockets websockets - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/wereHamster/avers-server"; - description = "Server implementation of the Avers API"; - license = stdenv.lib.licenses.mit; - }) {}; - "avro" = callPackage - ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors - , binary, bytestring, containers, data-binary-ieee754, fail - , hashable, mtl, pure-zlib, scientific, semigroups, stdenv, tagged - , template-haskell, text, tf-random, unordered-containers, vector - }: - mkDerivation { - pname = "avro"; - version = "0.4.2.0"; - sha256 = "97a21c7c2db022913c8402d8cae3df1c0e9d364f821093c8254bf723e6a051c1"; - libraryHaskellDepends = [ - aeson array base base16-bytestring bifunctors binary bytestring - containers data-binary-ieee754 fail hashable mtl pure-zlib - scientific semigroups tagged template-haskell text tf-random - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-works/avro#readme"; - description = "Avro serialization support for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "avwx" = callPackage - ({ mkDerivation, attoparsec, base, HTTP, lens, optparse-applicative - , parsers, pretty-show, stdenv, text - }: - mkDerivation { - pname = "avwx"; - version = "0.3.0.2"; - sha256 = "b4299cc4e05a4c94f53d06f05b30baac1e15c59663b59afd1dd32417a280fb0a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ attoparsec base HTTP lens parsers text ]; - executableHaskellDepends = [ - base optparse-applicative pretty-show text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.hcesperer.org/posts/2016-09-20-avwx.html"; - description = "Parse aviation weather reports"; - license = stdenv.lib.licenses.mit; - }) {}; - "axel" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , freer-simple, ghcid, haskell-src-exts, lens, lens-aeson - , optparse-applicative, parsec, process, regex-pcre, singletons - , stdenv, strict, template-haskell, text, typed-process, vector - , yaml - }: - mkDerivation { - pname = "axel"; - version = "0.0.9"; - sha256 = "ee5c222094c86eac3b6fe85f619b2ee69f2eb4cdcd8aeabf74b40d21e98a274f"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers directory filepath freer-simple ghcid - haskell-src-exts lens lens-aeson optparse-applicative parsec - process regex-pcre singletons strict template-haskell text - typed-process vector yaml - ]; - executableHaskellDepends = [ - base containers freer-simple optparse-applicative - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/axellang/axel#readme"; - description = "The Axel programming language"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "backprop" = callPackage - ({ mkDerivation, base, containers, deepseq, microlens, primitive - , reflection, stdenv, transformers, vector, vinyl - }: - mkDerivation { - pname = "backprop"; - version = "0.2.6.1"; - sha256 = "d22261e11129c43e68ead4f0a82b82d504085e3176fb79be5f00f4c89513c7e6"; - libraryHaskellDepends = [ - base containers deepseq microlens primitive reflection transformers - vector vinyl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://backprop.jle.im"; - description = "Heterogeneous automatic differentation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bank-holidays-england" = callPackage - ({ mkDerivation, base, containers, stdenv, time }: - mkDerivation { - pname = "bank-holidays-england"; - version = "0.1.0.8"; - sha256 = "3219472077c4093809dc7c986b693aee2b76c12d44b6063d1b7055af3aa9672a"; - libraryHaskellDepends = [ base containers time ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/davecturner/bank-holidays-england"; - description = "Calculation of bank holidays in England and Wales"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "barbies" = callPackage - ({ mkDerivation, base, bifunctors, stdenv }: - mkDerivation { - pname = "barbies"; - version = "1.1.0.0"; - sha256 = "9a857f00dfd7dc0a1471eda450d5b09f16a4066d70c24c4910b91c5b9cc0960a"; - libraryHaskellDepends = [ base bifunctors ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jcpetruzza/barbies#readme"; - description = "Classes for working with types that can change clothes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "barrier" = callPackage - ({ mkDerivation, base, blaze-svg, bytestring, stdenv - , template-haskell, text, unordered-containers - }: - mkDerivation { - pname = "barrier"; - version = "0.1.1"; - sha256 = "6395da01eea1984c7bcc85c624b1b5dfbe0b6b764adeed7b04c9fa4d8de91ed9"; - revision = "1"; - editedCabalFile = "167akvi72l47gcqbq5609m24469pq0xmv0kjbmivnrxs796gh890"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base blaze-svg bytestring template-haskell text - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/philopon/barrier"; - description = "Shields.io style badge generator"; - license = stdenv.lib.licenses.mit; - }) {}; - "base-compat" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "base-compat"; - version = "0.10.5"; - sha256 = "990aea21568956d44ab018c5dbfbaea014b9a0d5295d29ca7550149419a6fb41"; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - description = "A compatibility layer for base"; - license = stdenv.lib.licenses.mit; - }) {}; - "base-compat-batteries" = callPackage - ({ mkDerivation, base, base-compat, stdenv }: - mkDerivation { - pname = "base-compat-batteries"; - version = "0.10.5"; - sha256 = "175dcfd1453bd02ec955c05181cbf4278af145183b5899c62d3be29d866170ee"; - revision = "1"; - editedCabalFile = "15sn2qc8k0hxbb2nai341kkrci98hlhzcj2ci087m0zxcg5jcdbp"; - libraryHaskellDepends = [ base base-compat ]; - doHaddock = false; - doCheck = false; - description = "base-compat with extra batteries"; - license = stdenv.lib.licenses.mit; - }) {}; - "base-noprelude" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "base-noprelude"; - version = "4.12.0.0"; - sha256 = "abfa32167a9b4a68d4ae5acda2e9d66ffe883cdb780c4e626794cc44a42d62c1"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/base-noprelude"; - description = "\"base\" package sans \"Prelude\" module"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base-orphans" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv }: - mkDerivation { - pname = "base-orphans"; - version = "0.8"; - sha256 = "aceec656bfb4222ad3035c3d87d80130b42b595b72888f9ab59c6dbb7ed24817"; - libraryHaskellDepends = [ base ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-compat/base-orphans#readme"; - description = "Backwards-compatible orphan instances for base"; - license = stdenv.lib.licenses.mit; - }) {}; - "base-prelude" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "base-prelude"; - version = "1.3"; - sha256 = "e3cc66e99d6c83aac548c4d8e6a166e5bd9cf557947cde49161026d0341267fe"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/base-prelude"; - description = "The most complete prelude formed solely from the \"base\" package"; - license = stdenv.lib.licenses.mit; - }) {}; - "base-unicode-symbols" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "base-unicode-symbols"; - version = "0.2.3"; - sha256 = "ee7bbe2bd314e8860a641264e956c2b5100ef5b2d5b847a69a3f3c894fa446c5"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell.org/haskellwiki/Unicode-symbols"; - description = "Unicode alternatives for common functions and operators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base16-bytestring" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, stdenv }: - mkDerivation { - pname = "base16-bytestring"; - version = "0.1.1.6"; - sha256 = "5afe65a152c5418f5f4e3579a5e0d5ca19c279dc9bf31c1a371ccbe84705c449"; - libraryHaskellDepends = [ base bytestring ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bos/base16-bytestring"; - description = "Fast base16 (hex) encoding and decoding for ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base32string" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, stdenv, text }: - mkDerivation { - pname = "base32string"; - version = "0.9.1"; - sha256 = "9e931613aeba5f630f9292fc99131388f406e4b34d8f050515ed93aaf632ea32"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ aeson base binary bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Fast and safe representation of a Base-32 string"; - license = stdenv.lib.licenses.mit; - }) {}; - "base58string" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, stdenv, text }: - mkDerivation { - pname = "base58string"; - version = "0.10.0"; - sha256 = "3b72607dd76e30a5054acea656c3805f7191e27d67884a7db5fbc73c17e9c088"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ aeson base binary bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Fast and safe representation of a Base-58 string"; - license = stdenv.lib.licenses.mit; - }) {}; - "base64-bytestring" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "base64-bytestring"; - version = "1.0.0.2"; - sha256 = "193654ed9bd9e7f20163c9b70bab32d33010be50a5e1e8e2258229faf32a608c"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/base64-bytestring"; - description = "Fast base64 encoding and decoding for ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base64-bytestring-type" = callPackage - ({ mkDerivation, aeson, base, base-compat, base64-bytestring - , binary, bytestring, cereal, deepseq, hashable, QuickCheck, stdenv - , text - }: - mkDerivation { - pname = "base64-bytestring-type"; - version = "1"; - sha256 = "74019bd11f8012ae5ccc88c206bc5a8024f7605130099aabbac012073160e440"; - revision = "4"; - editedCabalFile = "0yfhy4a9n67l9w3amqrzzy79q47yyj6qbv5i5lqym5z7ygwmlzn6"; - libraryHaskellDepends = [ - aeson base base-compat base64-bytestring binary bytestring cereal - deepseq hashable QuickCheck text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/futurice/haskell-base64-bytestring-type#readme"; - description = "A newtype around ByteString, for base64 encoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "base64-string" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "base64-string"; - version = "0.2"; - sha256 = "3ec896ca7261ad4ddeffbaa3bdf4d5cb61775250c303fca9929aa9a56acc705e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://urchin.earth.li/~ian/cabal/base64-string/"; - description = "Base64 implementation for String's"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "basement" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv }: - mkDerivation { - pname = "basement"; - version = "0.0.10"; - sha256 = "e3471b037187da02814fa710c4d59a804c5446a3617122aca63f32d4f8c4f505"; - revision = "1"; - editedCabalFile = "1n5wv093zx760rrd5vs5symj61fnr8pcbpzs0sbpl6n82qys3c8i"; - libraryHaskellDepends = [ base ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-foundation/foundation#readme"; - description = "Foundation scrap box of array & string"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "basic-prelude" = callPackage - ({ mkDerivation, base, bytestring, containers, filepath, hashable - , stdenv, text, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "basic-prelude"; - version = "0.7.0"; - sha256 = "10755f892548faa956b81b40d1d03ec6e94609fd8ec8e92be09b4453b7ad9379"; - libraryHaskellDepends = [ - base bytestring containers filepath hashable text transformers - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/basic-prelude#readme"; - description = "An enhanced core prelude; a common foundation for alternate preludes"; - license = stdenv.lib.licenses.mit; - }) {}; - "bazel-runfiles" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv }: - mkDerivation { - pname = "bazel-runfiles"; - version = "0.7.0.1"; - sha256 = "4d217f74a7eee5dced014d74ac8a3be886d9d0c5ce8e556d8ef16535bde40a00"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory filepath ]; - executableHaskellDepends = [ base filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tweag/rules_haskell#readme"; - description = "Locate Bazel runfiles location"; - license = stdenv.lib.licenses.asl20; - }) {}; - "bbdb" = callPackage - ({ mkDerivation, base, parsec, stdenv }: - mkDerivation { - pname = "bbdb"; - version = "0.8"; - sha256 = "dce7798cb8e46e1c0f7048579496cabeebddaba9b6233820fd0496723fbc2a5c"; - libraryHaskellDepends = [ base parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/henrylaxen/bbdb"; - description = "Ability to read, write, and modify BBDB files"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "bcrypt" = callPackage - ({ mkDerivation, base, bytestring, data-default, entropy, memory - , stdenv - }: - mkDerivation { - pname = "bcrypt"; - version = "0.0.11"; - sha256 = "e4331788eda7b65064d88930b4b7a50f5011bdec0ad46059d8c4ee6a5e72fcef"; - libraryHaskellDepends = [ - base bytestring data-default entropy memory - ]; - doHaddock = false; - doCheck = false; - description = "Haskell bindings to the bcrypt password hash"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bench" = callPackage - ({ mkDerivation, base, criterion, optparse-applicative, process - , silently, stdenv, text, turtle - }: - mkDerivation { - pname = "bench"; - version = "1.0.12"; - sha256 = "a6376f4741588201ab6e5195efb1e9921bc0a899f77a5d9ac84a5db32f3ec9eb"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base criterion optparse-applicative process silently text turtle - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Gabriel439/bench"; - description = "Command-line benchmark tool"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "benchpress" = callPackage - ({ mkDerivation, base, bytestring, mtl, stdenv, time }: - mkDerivation { - pname = "benchpress"; - version = "0.2.2.12"; - sha256 = "d571e8d37f5ded433f184dcf8319757284abe6c0fce3106dd716812a5b0dab64"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base mtl time ]; - executableHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/WillSewell/benchpress"; - description = "Micro-benchmarking with detailed statistics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bencode" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, parsec - , stdenv - }: - mkDerivation { - pname = "bencode"; - version = "0.6.0.0"; - sha256 = "3b8efdfecee9bc486d9bcdbb633b7128ca235360f102478a7e0f8c895281f68a"; - libraryHaskellDepends = [ - base binary bytestring containers parsec - ]; - doHaddock = false; - doCheck = false; - description = "Parser and printer for bencoded data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "between" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "between"; - version = "0.11.0.0"; - sha256 = "8337351326c5a613d9b7520b6a8203234c04454e23550a81739beaa6f671465d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/trskop/between"; - description = "Function combinator \"between\" and derived combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bibtex" = callPackage - ({ mkDerivation, base, latex, parsec, stdenv, utility-ht }: - mkDerivation { - pname = "bibtex"; - version = "0.1.0.6"; - sha256 = "090a3b9589388bdf9d2bf60d8d1898aa0313a2874b551ba86cbbd049f3ee5f04"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base latex parsec utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/BibTeX"; - description = "Parse, format and processing BibTeX files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bifunctors" = callPackage - ({ mkDerivation, base, base-orphans, comonad, containers - , semigroups, stdenv, tagged, template-haskell, th-abstraction - , transformers - }: - mkDerivation { - pname = "bifunctors"; - version = "5.5.3"; - sha256 = "d434528fd2ea765bace57c4ade0bc9fa32ba2c425f563b33a4b60f625ecfc9ca"; - libraryHaskellDepends = [ - base base-orphans comonad containers semigroups tagged - template-haskell th-abstraction transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/bifunctors/"; - description = "Bifunctors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bimap" = callPackage - ({ mkDerivation, base, containers, exceptions, stdenv }: - mkDerivation { - pname = "bimap"; - version = "0.3.3"; - sha256 = "73829355c7bcbd3eedba22a382a04a3ab641702b00828790ec082ec2db3a8ad1"; - libraryHaskellDepends = [ base containers exceptions ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/joelwilliamson/bimap"; - description = "Bidirectional mapping between two key types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bimap-server" = callPackage - ({ mkDerivation, aeson, base, bimap, binary, directory, http-types - , stdenv, unix, wai, warp - }: - mkDerivation { - pname = "bimap-server"; - version = "0.1.0.1"; - sha256 = "09dfd1865812f40e317b610cbe05cc65ba6ea7215428748e1038ff7fc38ef535"; - libraryHaskellDepends = [ - aeson base bimap binary directory http-types unix wai warp - ]; - doHaddock = false; - doCheck = false; - description = "Two-column database server"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-bits" = callPackage - ({ mkDerivation, base, binary, bytestring, stdenv }: - mkDerivation { - pname = "binary-bits"; - version = "0.5"; - sha256 = "16534a018a4754d8d1eab051711c23fb741f41a0d141b289001c52824b5be794"; - libraryHaskellDepends = [ base binary bytestring ]; - doHaddock = false; - doCheck = false; - description = "Bit parsing/writing on top of binary"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-conduit" = callPackage - ({ mkDerivation, base, binary, bytestring, conduit, exceptions - , stdenv, vector - }: - mkDerivation { - pname = "binary-conduit"; - version = "1.3.1"; - sha256 = "0480c3ff498bdbba6913ee8ad70d4828cf7a766bf9336a3ed8eb73676c46d29f"; - libraryHaskellDepends = [ - base binary bytestring conduit exceptions vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/qnikst/binary-conduit/"; - description = "data serialization/deserialization conduit library"; - license = stdenv.lib.licenses.mit; - }) {}; - "binary-ext" = callPackage - ({ mkDerivation, attoparsec, base, binary, bytestring, conduit - , conduit-combinators, data-binary-ieee754, errors, exceptions - , monad-control, monad-loops, mono-traversable, mtl, scientific - , stdenv, text, transformers, transformers-base - }: - mkDerivation { - pname = "binary-ext"; - version = "2.0.4"; - sha256 = "6e58e19bde26d6f271916ceb43a28903136e28cf7868d86f65e68a60152ade08"; - libraryHaskellDepends = [ - attoparsec base binary bytestring conduit conduit-combinators - data-binary-ieee754 errors exceptions monad-control monad-loops - mono-traversable mtl scientific text transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/A1-Triard/binary-ext#readme"; - description = "An alternate with strong-typed errors for `Data.Binary.Get` monad from `binary` package."; - license = stdenv.lib.licenses.asl20; - }) {}; - "binary-ieee754" = callPackage - ({ mkDerivation, array, base, binary, stdenv }: - mkDerivation { - pname = "binary-ieee754"; - version = "0.1.0.0"; - sha256 = "15c489898bcd346b4067a27579cb5fc62e2fafecbec81ea0446165a24aee4d54"; - libraryHaskellDepends = [ array base binary ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/binary-ieee754"; - description = "Backport ieee754 float double combinators to older binary"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-list" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, phantom-state - , stdenv, transformers - }: - mkDerivation { - pname = "binary-list"; - version = "1.1.1.2"; - sha256 = "6b21e58ea4091b9572cb24a92dfb1ddc14fcea82d2272d30a83eb1b430dd1878"; - libraryHaskellDepends = [ - base binary bytestring deepseq phantom-state transformers - ]; - doHaddock = false; - doCheck = false; - description = "Lists of length a power of two"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-orphans" = callPackage - ({ mkDerivation, aeson, base, binary, case-insensitive, hashable - , scientific, stdenv, tagged, text, text-binary, time - , unordered-containers, vector, vector-binary-instances - }: - mkDerivation { - pname = "binary-orphans"; - version = "0.1.8.0"; - sha256 = "f17557ccd98931df2bea038f25e7f835f38019ea7d53bd763f71fe64f931c0cc"; - revision = "5"; - editedCabalFile = "1dny1jvwwcyrbzhqvymmn6n7ib48bpy0nasbrcrdrpzjypkmg500"; - libraryHaskellDepends = [ - aeson base binary case-insensitive hashable scientific tagged text - text-binary time unordered-containers vector - vector-binary-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/binary-orphans#readme"; - description = "Orphan instances for binary"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-parser" = callPackage - ({ mkDerivation, base, base-prelude, bytestring, mtl, stdenv, text - , transformers - }: - mkDerivation { - pname = "binary-parser"; - version = "0.5.5"; - sha256 = "1dab718e06a978118cd28d2412bceaa0b6ec8d67785bdb0982e259fb60fe43b3"; - revision = "3"; - editedCabalFile = "14n41yazmks2qw0v4krxcqw3ac0wdy2z53d0qz0rdjcd94fpghjf"; - libraryHaskellDepends = [ - base base-prelude bytestring mtl text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/binary-parser"; - description = "A highly-efficient but limited parser API specialised for bytestrings"; - license = stdenv.lib.licenses.mit; - }) {}; - "binary-parsers" = callPackage - ({ mkDerivation, base, binary, bytestring, bytestring-lexing - , scientific, stdenv - }: - mkDerivation { - pname = "binary-parsers"; - version = "0.2.3.0"; - sha256 = "bc6195493b950efcbeb9ef54dfe47a6badf894dff934cf02a4b170331c1b217a"; - revision = "1"; - editedCabalFile = "09ag18yr1m26fl3w7ab1d5q5j201ygbw7qsbsy41bwd6iq87rq15"; - libraryHaskellDepends = [ - base binary bytestring bytestring-lexing scientific - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/binary-parsers"; - description = "Extends binary with parsec/attoparsec style parsing combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-search" = callPackage - ({ mkDerivation, base, containers, stdenv, transformers }: - mkDerivation { - pname = "binary-search"; - version = "1.0.0.3"; - sha256 = "b0e32df46aeddceac57bd6afa940f84f275f82fb251479e10fadd7c14414f6fa"; - libraryHaskellDepends = [ base containers transformers ]; - doHaddock = false; - doCheck = false; - description = "Binary and exponential searches"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "binary-shared" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, mtl, stdenv - }: - mkDerivation { - pname = "binary-shared"; - version = "0.8.3"; - sha256 = "830116505018fc43de09867bea9039b0bfa29e77564efa8c3f3b708933c098b2"; - libraryHaskellDepends = [ base binary bytestring containers mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leksah.org"; - description = "Sharing for the binary package"; - license = "GPL"; - }) {}; - "binary-tagged" = callPackage - ({ mkDerivation, aeson, array, base, base16-bytestring, binary - , bytestring, containers, generics-sop, hashable, scientific, SHA - , stdenv, tagged, text, time, unordered-containers, vector - }: - mkDerivation { - pname = "binary-tagged"; - version = "0.1.5.1"; - sha256 = "70cb8fff540937f1d9753a71e0343039ee1718a0f029d4df698164b04fd5d5a4"; - revision = "1"; - editedCabalFile = "1z612d3wbrlywcx96lc52svi9b2s6nskdnwnwm3d5mylcqaqckcx"; - libraryHaskellDepends = [ - aeson array base base16-bytestring binary bytestring containers - generics-sop hashable scientific SHA tagged text time - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/binary-tagged#readme"; - description = "Tagged binary serialisation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bindings-DSL" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "bindings-DSL"; - version = "1.0.25"; - sha256 = "63de32380c68d1cc5e9c7b3622d67832c786da21163ba0c8a4835e6dd169194f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jwiegley/bindings-dsl/wiki"; - description = "FFI domain specific language, on top of hsc2hs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bindings-GLFW" = callPackage - ({ mkDerivation, base, bindings-DSL, libGL, libX11, libXcursor - , libXext, libXfixes, libXi, libXinerama, libXrandr, libXxf86vm - , stdenv - }: - mkDerivation { - pname = "bindings-GLFW"; - version = "3.2.1.1"; - sha256 = "6b24c66b20ebfd8ff2e4ac32e3b435889bba0a32477598ba69fc7adc9608160e"; - libraryHaskellDepends = [ base bindings-DSL ]; - librarySystemDepends = [ - libGL libX11 libXcursor libXext libXfixes libXi libXinerama - libXrandr libXxf86vm - ]; - doHaddock = false; - doCheck = false; - description = "Low-level bindings to GLFW OpenGL library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libXext; -inherit (pkgs.xorg) libXfixes;}; - "bindings-libzip" = callPackage - ({ mkDerivation, base, bindings-DSL, libzip, stdenv }: - mkDerivation { - pname = "bindings-libzip"; - version = "1.0.1"; - sha256 = "908d060360d66974b1d9400dea28a1dce35a88baf5d73a6e3c12be8e74cda2ec"; - libraryHaskellDepends = [ base bindings-DSL ]; - libraryPkgconfigDepends = [ libzip ]; - doHaddock = false; - doCheck = false; - homepage = "http://bitbucket.org/astanin/hs-libzip/"; - description = "Low level bindings to libzip"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) libzip;}; - "bindings-uname" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "bindings-uname"; - version = "0.1"; - sha256 = "130e75c3fd95e232452c7d903efbfab2d2ff6c9d455b617adeaebe5d60235cd3"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Low-level binding to POSIX uname(3)"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "bins" = callPackage - ({ mkDerivation, base, containers, finite-typelits - , ghc-typelits-knownnat, ghc-typelits-natnormalise, math-functions - , profunctors, reflection, stdenv, tagged, vector-sized - }: - mkDerivation { - pname = "bins"; - version = "0.1.1.1"; - sha256 = "28739d05b7946d6237426294a9ded16d99d674f307cf25ac2482bc52ef2da8ec"; - libraryHaskellDepends = [ - base containers finite-typelits ghc-typelits-knownnat - ghc-typelits-natnormalise math-functions profunctors reflection - tagged vector-sized - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/bins#readme"; - description = "Aggregate continuous values into discrete bins"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bit-stream" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv, vector }: - mkDerivation { - pname = "bit-stream"; - version = "0.1.0.2"; - sha256 = "811f2e7d4a827440bc21557e48c5310fe91e1b17f337ec35208546e1c5639bf4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ghc-prim vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Bodigrim/bit-stream#readme"; - description = "Lazy, infinite, compact stream of Bool with O(1) indexing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bitarray" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "bitarray"; - version = "0.0.1.1"; - sha256 = "b27f6f1065053a0e8e24fbf9382b7060af9962d8d150b631c682c0c58469d802"; - revision = "1"; - editedCabalFile = "10fk92v9afjqk43zi621jxl0n8kci0xjj32lz3vqa9xbh67zjz45"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~bkomuves/"; - description = "Mutable and immutable bit arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bitcoin-block" = callPackage - ({ mkDerivation, base, binary, bitcoin-tx, bitcoin-types - , bytestring, cryptohash, hexstring, largeword, lens, stdenv - }: - mkDerivation { - pname = "bitcoin-block"; - version = "0.13.1"; - sha256 = "d7f57c0fe71045dab85d223dc15d64db3a15cc7fd8446bfe4ebd98cd9d417d5a"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base binary bitcoin-tx bitcoin-types bytestring cryptohash - hexstring largeword lens - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Utility functions for manipulating bitcoin blocks"; - license = stdenv.lib.licenses.mit; - }) {}; - "bitcoin-script" = callPackage - ({ mkDerivation, base, base16-bytestring, binary, bytestring - , stdenv, text - }: - mkDerivation { - pname = "bitcoin-script"; - version = "0.11.1"; - sha256 = "398c1d86e918731b5b2026351bb3b0b90b20606517e7c21e42f05d6c6e197b4c"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base base16-bytestring binary bytestring text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Compilation, manipulation and decompilation of Bitcoin scripts"; - license = stdenv.lib.licenses.mit; - }) {}; - "bitcoin-tx" = callPackage - ({ mkDerivation, base, binary, bitcoin-script, bitcoin-types - , bytestring, cryptohash, hexstring, lens, stdenv - }: - mkDerivation { - pname = "bitcoin-tx"; - version = "0.13.1"; - sha256 = "3bb88265353066c394e96a56b2dc555fa13d37ca7f820978b793196c6829cc00"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base binary bitcoin-script bitcoin-types bytestring cryptohash - hexstring lens - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Utility functions for manipulating bitcoin transactions"; - license = stdenv.lib.licenses.mit; - }) {}; - "bitcoin-types" = callPackage - ({ mkDerivation, base, base58string, binary, bytestring, hexstring - , stdenv, text - }: - mkDerivation { - pname = "bitcoin-types"; - version = "0.9.2"; - sha256 = "b72f9448508b64706d5f443748dc9b8abde8e749959187ce3d8356cde0d6c40b"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base base58string binary bytestring hexstring text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Provides consistent low-level types used commonly among Bitcoin implementations"; - license = stdenv.lib.licenses.mit; - }) {}; - "bits" = callPackage - ({ mkDerivation, base, bytes, Cabal, cabal-doctest, mtl, stdenv - , transformers - }: - mkDerivation { - pname = "bits"; - version = "0.5.1"; - sha256 = "657e557bb913b53fb3b3fc7eda820cf3c85a5b89692d242275d3e8e8d9479c93"; - revision = "5"; - editedCabalFile = "012qycmsfz5l6y82d3zgjmp1k3pgvhlpjdk6rwlpc1wlfbpdqiaw"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ base bytes mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/bits"; - description = "Various bit twiddling and bitwise serialization primitives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bits-extra" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv, vector }: - mkDerivation { - pname = "bits-extra"; - version = "0.0.1.3"; - sha256 = "692b08b3e9a490f5b2776b8f20277320fad247d9c4ea158225fee0f27f91afed"; - libraryHaskellDepends = [ base ghc-prim vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-works/bits-extra#readme"; - description = "Useful bitwise operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bitset-word8" = callPackage - ({ mkDerivation, base, containers, stdenv, template-haskell - , th-lift-instances - }: - mkDerivation { - pname = "bitset-word8"; - version = "0.1.1.1"; - sha256 = "ffc0f8508049717192021dabcfe77d65f604cbe107da6b8b76d45b891dbe52de"; - libraryHaskellDepends = [ - base containers template-haskell th-lift-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nshimaza/bitset-word8#readme"; - description = "Space efficient set of Word8 and some pre-canned sets useful for parsing HTTP"; - license = stdenv.lib.licenses.mit; - }) {}; - "bitx-bitcoin" = callPackage - ({ mkDerivation, aeson, base, bytestring, deepseq, exceptions - , http-client, http-client-tls, http-types, microlens, microlens-th - , network, QuickCheck, scientific, split, stdenv, text, time - }: - mkDerivation { - pname = "bitx-bitcoin"; - version = "0.12.0.0"; - sha256 = "31f2398bbb0deff80361fdabb108c1552ae097b15a44c6ca6674977ae735c871"; - libraryHaskellDepends = [ - aeson base bytestring deepseq exceptions http-client - http-client-tls http-types microlens microlens-th network - QuickCheck scientific split text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tebello-thejane/bitx.hs"; - description = "A Haskell library for working with the BitX bitcoin exchange"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blake2" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "blake2"; - version = "0.2.0"; - sha256 = "07d910e3f5c6e98f5a6b9d53dbe5f52506c3859b513bc7493b52552a28382cfc"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/centromere/blake2"; - description = "A library providing BLAKE2"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "blas-ffi" = callPackage - ({ mkDerivation, base, blas, netlib-ffi, stdenv }: - mkDerivation { - pname = "blas-ffi"; - version = "0.1"; - sha256 = "85a77bd66dc55e48a0922ca1c10c484f4a01bddb31008e24bd5a7b75460fbcfe"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base netlib-ffi ]; - libraryPkgconfigDepends = [ blas ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/blas-ffi/"; - description = "Auto-generated interface to Fortran BLAS"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) blas;}; - "blas-hs" = callPackage - ({ mkDerivation, base, blas, stdenv, storable-complex }: - mkDerivation { - pname = "blas-hs"; - version = "0.1.1.0"; - sha256 = "80e06b0927982b391d239f8656ed437cd29665969d1a078ea4e42a2bf196b086"; - libraryHaskellDepends = [ base storable-complex ]; - librarySystemDepends = [ blas ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Rufflewind/blas-hs"; - description = "Low-level Haskell bindings to Blas"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) blas;}; - "blaze-bootstrap" = callPackage - ({ mkDerivation, base, blaze-html, stdenv, text }: - mkDerivation { - pname = "blaze-bootstrap"; - version = "0.1.0.1"; - sha256 = "53b54c0b55ae7a436ec7e5d4e29d50fceb1ccd459ef715236358a3c661d05163"; - libraryHaskellDepends = [ base blaze-html text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/agrafix/blaze-bootstrap"; - description = "Blaze helper functions for bootstrap pages"; - license = stdenv.lib.licenses.mit; - }) {}; - "blaze-builder" = callPackage - ({ mkDerivation, base, bytestring, deepseq, stdenv, text }: - mkDerivation { - pname = "blaze-builder"; - version = "0.4.1.0"; - sha256 = "91fc8b966f3e9dc9461e1675c7566b881740f99abc906495491a3501630bc814"; - libraryHaskellDepends = [ base bytestring deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lpsmith/blaze-builder"; - description = "Efficient buffered output"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-colonnade" = callPackage - ({ mkDerivation, base, blaze-html, blaze-markup, colonnade, stdenv - , text - }: - mkDerivation { - pname = "blaze-colonnade"; - version = "1.2.2"; - sha256 = "1f2f7116ffea5ad2a04337b9bdc1277de0b12a71fb4b830b216c37911d8ea14c"; - libraryHaskellDepends = [ - base blaze-html blaze-markup colonnade text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/andrewthad/colonnade#readme"; - description = "Helper functions for using blaze-html with colonnade"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-html" = callPackage - ({ mkDerivation, base, blaze-builder, blaze-markup, bytestring - , stdenv, text - }: - mkDerivation { - pname = "blaze-html"; - version = "0.9.1.1"; - sha256 = "ea0e944298dbbd692b41af4f15dbd1a1574aec7b8f91f38391d25106b143bb1b"; - libraryHaskellDepends = [ - base blaze-builder blaze-markup bytestring text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://jaspervdj.be/blaze"; - description = "A blazingly fast HTML combinator library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-markup" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, stdenv, text }: - mkDerivation { - pname = "blaze-markup"; - version = "0.8.2.2"; - sha256 = "c6f0cf8fd707ba8c0b700e0c5ad6a1212c8b57d46a9cbdfb904d8bf585ad82e1"; - revision = "1"; - editedCabalFile = "0ivspcxz0b2r7kcas5hlw0fh92883r8ghwz9lck7nyqn6wn5i8zx"; - libraryHaskellDepends = [ base blaze-builder bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://jaspervdj.be/blaze"; - description = "A blazingly fast markup combinator library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-svg" = callPackage - ({ mkDerivation, base, blaze-markup, mtl, stdenv }: - mkDerivation { - pname = "blaze-svg"; - version = "0.3.6.1"; - sha256 = "f6a4f1bba1e973b336e94de73369f4562778fde43b6ac7c0b32d6a501527aa60"; - libraryHaskellDepends = [ base blaze-markup mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/deepakjois/blaze-svg"; - description = "SVG combinator library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "blaze-textual" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, ghc-prim - , integer-gmp, old-locale, stdenv, text, time, vector - }: - mkDerivation { - pname = "blaze-textual"; - version = "0.2.1.0"; - sha256 = "1042795ab0bab891c034c24a51bafecbb89870ccd28af39534ab3d9ae7f46c2d"; - libraryHaskellDepends = [ - base blaze-builder bytestring ghc-prim integer-gmp old-locale text - time vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bos/blaze-textual"; - description = "Fast rendering of common datatypes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bmp" = callPackage - ({ mkDerivation, base, binary, bytestring, stdenv }: - mkDerivation { - pname = "bmp"; - version = "1.2.6.3"; - sha256 = "3cc63de40fe088ce4d1c869180fd2309bcec35a940c9e3d1904d3520ca2fdacc"; - libraryHaskellDepends = [ base binary bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/benl23x5/bmp"; - description = "Read and write uncompressed BMP image files"; - license = stdenv.lib.licenses.mit; - }) {}; - "bno055-haskell" = callPackage - ({ mkDerivation, base, bytestring, cereal, h2c, mtl, resourcet - , stdenv - }: - mkDerivation { - pname = "bno055-haskell"; - version = "0.1.0"; - sha256 = "7adc29f94755047b4214115c23b63041e9d3970d2648f53dcd38b84725059ad8"; - libraryHaskellDepends = [ - base bytestring cereal h2c mtl resourcet - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/fmapE/bno055-haskell"; - description = "Library for communication with the Bosch BNO055 orientation sensor"; - license = stdenv.lib.licenses.mit; - }) {}; - "boltzmann-samplers" = callPackage - ({ mkDerivation, ad, base, containers, hashable, hmatrix, ieee754 - , MonadRandom, mtl, QuickCheck, stdenv, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "boltzmann-samplers"; - version = "0.1.1.0"; - sha256 = "de7c3e1f77b0ae27c78cb53e539dbaa8dc2f6e3f3605c25f1611545806ad878e"; - libraryHaskellDepends = [ - ad base containers hashable hmatrix ieee754 MonadRandom mtl - QuickCheck transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Lysxia/boltzmann-samplers#readme"; - description = "Uniform random generators"; - license = stdenv.lib.licenses.mit; - }) {}; - "boolean-like" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers - , semigroups, stdenv, text, vector - }: - mkDerivation { - pname = "boolean-like"; - version = "0.1.1.0"; - sha256 = "6ca47b21a6d98161edfd94f4d5a19daacc13d229b87a0c107e868ff0259658b8"; - libraryHaskellDepends = [ - attoparsec base bytestring containers semigroups text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/Shou/boolean-like"; - description = "Logical combinatory operations dealing with datatypes representing booleans by their constructors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "boolean-normal-forms" = callPackage - ({ mkDerivation, base, cond, containers, deepseq, stdenv }: - mkDerivation { - pname = "boolean-normal-forms"; - version = "0.0.1"; - sha256 = "8b90942bcbda0c761e683931bd813613f3819f804f02fed115f89dbdb292208a"; - revision = "1"; - editedCabalFile = "1p31kqxp77xdhkszppmnzqgxp883vasrh5910qfif50lch39myfm"; - libraryHaskellDepends = [ base cond containers deepseq ]; - doHaddock = false; - doCheck = false; - description = "Boolean normal form: NNF, DNF & CNF"; - license = stdenv.lib.licenses.mit; - }) {}; - "boolsimplifier" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "boolsimplifier"; - version = "0.1.8"; - sha256 = "096fa9377241520ee114403fd53b51a7369187fb4dca65f19f85a727d689828f"; - revision = "1"; - editedCabalFile = "0xqm0vn9i49b75fnvnvcnr9m4zwvhqynrkcjdxghrsxayg420lnh"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "Simplification tools for simple propositional formulas"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bordacount" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "bordacount"; - version = "0.1.0.0"; - sha256 = "cb691095f688dc2c1726750d5e5d267d3f49466377869a574d6416090a46fdce"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hverr/bordacount#readme"; - description = "Implementation of the Borda count election method"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "boring" = callPackage - ({ mkDerivation, adjunctions, base, base-compat, constraints, fin - , generics-sop, stdenv, streams, tagged, transformers - , transformers-compat, vec - }: - mkDerivation { - pname = "boring"; - version = "0.1"; - sha256 = "73d60829c3a789f3d377d56ce7844aaaea6b517bcea43e06579ab785181b4664"; - revision = "2"; - editedCabalFile = "1jxaby4cagbhii194x9x0j75ms1v5bm14sx7d19zz3844mh9qyci"; - libraryHaskellDepends = [ - adjunctions base base-compat constraints fin generics-sop streams - tagged transformers transformers-compat vec - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/boring"; - description = "Boring and Absurd types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "both" = callPackage - ({ mkDerivation, base, semigroups, stdenv, zero }: - mkDerivation { - pname = "both"; - version = "0.1.1.0"; - sha256 = "6f4ee8b7745fb3054282240fe941dd74cf2481f1a07b170d211c2b8791340e8e"; - libraryHaskellDepends = [ base semigroups zero ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/both"; - description = "Like Maybe, but with a different Monoid instance"; - license = stdenv.lib.licenses.mit; - }) {}; - "bound" = callPackage - ({ mkDerivation, base, bifunctors, binary, bytes, Cabal - , cabal-doctest, cereal, comonad, deepseq, hashable, mmorph - , profunctors, stdenv, template-haskell, transformers - , transformers-compat - }: - mkDerivation { - pname = "bound"; - version = "2.0.1"; - sha256 = "294a206f33b6583e56bd3aad620e4a7bd0a22b4bf4c6fe5988b2fe55159fbb76"; - revision = "7"; - editedCabalFile = "0amr5rpq8andqq3z2dsh8hn67g3x7ykcmqq899vbkxwnpvg60h5r"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base bifunctors binary bytes cereal comonad deepseq hashable mmorph - profunctors template-haskell transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/bound/"; - description = "Making de Bruijn Succ Less"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "boundingboxes" = callPackage - ({ mkDerivation, base, lens, stdenv }: - mkDerivation { - pname = "boundingboxes"; - version = "0.2.3"; - sha256 = "e80947aa2c2c7f11e7eb2eb088a463d1cd1cdf03790e4c2746b629dcb1737564"; - libraryHaskellDepends = [ base lens ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/boundingboxes"; - description = "A generic boundingbox for an arbitrary vector"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bower-json" = callPackage - ({ mkDerivation, aeson, aeson-better-errors, base, bytestring - , deepseq, ghc-prim, mtl, scientific, stdenv, text, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "bower-json"; - version = "1.0.0.1"; - sha256 = "7aa954e2b1bf79307db710c158108bd9ddb45b333ca96072cdbfaf96c77b7e73"; - libraryHaskellDepends = [ - aeson aeson-better-errors base bytestring deepseq ghc-prim mtl - scientific text transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hdgarrood/bower-json"; - description = "Read bower.json from Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "boxes" = callPackage - ({ mkDerivation, base, split, stdenv }: - mkDerivation { - pname = "boxes"; - version = "0.1.5"; - sha256 = "38e1782e8a458f342a0acbb74af8f55cb120756bc3af7ee7220d955812af56c3"; - libraryHaskellDepends = [ base split ]; - doHaddock = false; - doCheck = false; - description = "2D text pretty-printing library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bsb-http-chunked" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "bsb-http-chunked"; - version = "0.0.0.4"; - sha256 = "148309e23eb8b261c1de374712372d62d8c8dc8ee504c392809c7ec33c0a0e7c"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/sjakobi/bsb-http-chunked"; - description = "Chunked HTTP transfer encoding for bytestring builders"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bson" = callPackage - ({ mkDerivation, base, binary, bytestring, cryptohash - , data-binary-ieee754, mtl, network, stdenv, text, time - }: - mkDerivation { - pname = "bson"; - version = "0.3.2.7"; - sha256 = "27329dcd593fd7503e7cf6705c863ed5c76b2fc816342e194c79d5a1d4c87f2b"; - revision = "1"; - editedCabalFile = "1y6gy4rq2wb123p1qc35p0hnk8dqh2hnlys2c97znwcjjsd5p203"; - libraryHaskellDepends = [ - base binary bytestring cryptohash data-binary-ieee754 mtl network - text time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mongodb-haskell/bson"; - description = "BSON documents are JSON-like objects with a standard binary encoding"; - license = stdenv.lib.licenses.asl20; - }) {}; - "bson-lens" = callPackage - ({ mkDerivation, base, bson, lens, stdenv, text }: - mkDerivation { - pname = "bson-lens"; - version = "0.1.1"; - sha256 = "d73bb417def2d8cb1efebfc22482a859e119bcc4005dd10106c82dff5ceeb160"; - libraryHaskellDepends = [ base bson lens text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jb55/bson-lens"; - description = "BSON lenses"; - license = stdenv.lib.licenses.mit; - }) {}; - "btrfs" = callPackage - ({ mkDerivation, base, bytestring, stdenv, time, unix }: - mkDerivation { - pname = "btrfs"; - version = "0.2.0.0"; - sha256 = "22ffcc2c0168992f4fcf06bd2b3467392b889801b2d3ab45212cc4a1c8f2a6c0"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bytestring time unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/hs-btrfs"; - description = "Bindings to the btrfs API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "buffer-builder" = callPackage - ({ mkDerivation, base, bytestring, mtl, stdenv, text - , unordered-containers, vector - }: - mkDerivation { - pname = "buffer-builder"; - version = "0.2.4.7"; - sha256 = "b389fac5ce61818adb8451550762aca135c34b9007b68be5a8d9a0fa45583f58"; - libraryHaskellDepends = [ - base bytestring mtl text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chadaustin/buffer-builder"; - description = "Library for efficiently building up buffers, one piece at a time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "buffer-pipe" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "buffer-pipe"; - version = "0.0"; - sha256 = "0875b6e41988f70e20d2e9d1a092ae03d545954732f93d65a3481b5c4b52dccf"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Read from stdin and write to stdout in large blocks"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bugsnag-haskell" = callPackage - ({ mkDerivation, aeson, base, bytestring, case-insensitive - , containers, Glob, http-client, http-client-tls, http-conduit - , http-types, iproute, network, parsec, stdenv, template-haskell - , text, th-lift-instances, time, ua-parser, wai - }: - mkDerivation { - pname = "bugsnag-haskell"; - version = "0.0.3.0"; - sha256 = "98258f64568d1898a70e5c3d8faaacfd1c06c3fa79f30e1c9abe3dba87c63cbc"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring case-insensitive containers Glob http-client - http-client-tls http-conduit http-types iproute network parsec - template-haskell text th-lift-instances time ua-parser wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pbrisbin/bugsnag-haskell#readme"; - description = "Bugsnag error reporter for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "bulletproofs" = callPackage - ({ mkDerivation, arithmoi, base, containers, cryptonite, memory - , MonadRandom, protolude, random-shuffle, stdenv, text - }: - mkDerivation { - pname = "bulletproofs"; - version = "0.4.0"; - sha256 = "6c6ea840f4d22e07bc0325dcbc6f41004b627e1868ddd13939fdd6105e41842b"; - libraryHaskellDepends = [ - arithmoi base containers cryptonite memory MonadRandom protolude - random-shuffle text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/bulletproofs#readme"; - license = stdenv.lib.licenses.asl20; - }) {}; - "butter" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers - , forkable-monad, free, HUnit, network-simple, stdenv, stm - , template-haskell, text, transformers - }: - mkDerivation { - pname = "butter"; - version = "0.1.0.6"; - sha256 = "8640b2681a57c0bc545684c821e80a97d57fe14bc6036e9030dc4cc63c2e4164"; - libraryHaskellDepends = [ - aeson base bytestring containers forkable-monad free HUnit - network-simple stm template-haskell text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/System-Indystress/Butter#readme"; - description = "Monad Transformer for Asyncronous Message Passing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bv" = callPackage - ({ mkDerivation, base, ghc-prim, integer-gmp, stdenv }: - mkDerivation { - pname = "bv"; - version = "0.5"; - sha256 = "04a189ab1758f6adc51ffff0a10705d8c8b54959946a90a3b9a750c930c77bda"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ghc-prim integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iagoabal/haskell-bv"; - description = "Bit-vector arithmetic library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bv-little" = callPackage - ({ mkDerivation, base, deepseq, hashable, integer-gmp - , mono-traversable, primitive, QuickCheck, stdenv - }: - mkDerivation { - pname = "bv-little"; - version = "0.1.2"; - sha256 = "8c8d394050d154e100e29df7daf75235eb870aeb3946d8a68f58472e31c14c77"; - libraryHaskellDepends = [ - base deepseq hashable integer-gmp mono-traversable primitive - QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/recursion-ninja/bv-little"; - description = "Efficient little-endian bit vector library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "byteable" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "byteable"; - version = "0.1.1"; - sha256 = "243b34a1b5b64b39e39fe58f75c18f6cad5b668b10cabcd86816cbde27783fe2"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-byteable"; - description = "Type class for sequence of bytes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bytedump" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "bytedump"; - version = "1.0"; - sha256 = "ae17b5040f0423eec792505f14d1d3e53f5ff81ddf83524f1c5dc7a16c0dc0dd"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-bytedump"; - description = "Flexible byte dump helpers for human readers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "byteorder" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "byteorder"; - version = "1.0.4"; - sha256 = "bd20bbb586947f99c38a4c93d9d0266f49f6fc581767b51ba568f6d5d52d2919"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://community.haskell.org/~aslatter/code/byteorder"; - description = "Exposes the native endianness or byte ordering of the system"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bytes" = callPackage - ({ mkDerivation, base, binary, bytestring, Cabal, cabal-doctest - , cereal, containers, hashable, mtl, scientific, stdenv, text, time - , transformers, transformers-compat, unordered-containers, void - }: - mkDerivation { - pname = "bytes"; - version = "0.15.5"; - sha256 = "039935e6b367eb8657aa3eb109e719b257a06524b0d9ff5246e8029bb7a07118"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base binary bytestring cereal containers hashable mtl scientific - text time transformers transformers-compat unordered-containers - void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ekmett/bytes"; - description = "Sharing code for serialization between binary and cereal"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "byteset" = callPackage - ({ mkDerivation, base, binary, stdenv }: - mkDerivation { - pname = "byteset"; - version = "0.1.1.0"; - sha256 = "13499c5b279f022097e9ae1d0aeef3fcea12b7f18f50157d4950aec58741afa1"; - revision = "1"; - editedCabalFile = "1lgxxxrmw4g32pa861n6qbfpzwv14wfjrlp4hv5zd9hygy6v6q2p"; - libraryHaskellDepends = [ base binary ]; - doHaddock = false; - doCheck = false; - description = "Set of bytes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bytestring-builder" = callPackage - ({ mkDerivation, base, bytestring, deepseq, stdenv }: - mkDerivation { - pname = "bytestring-builder"; - version = "0.10.8.2.0"; - sha256 = "27faef6db27c5be5a3715fd68b93725853e0e668849eaf92ce7c33cef9cb2c3f"; - libraryHaskellDepends = [ base bytestring deepseq ]; - doHaddock = false; - doCheck = false; - description = "The new bytestring builder, packaged outside of GHC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "bytestring-conversion" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, case-insensitive - , double-conversion, stdenv, text - }: - mkDerivation { - pname = "bytestring-conversion"; - version = "0.3.1"; - sha256 = "13b7ea48737dc7a7fd4c894ff1fb9344cf8d9ef8f4201e813d578b613e874ef8"; - revision = "2"; - editedCabalFile = "1x8c42cfzb6fdvgkxxdxcpdf16csimlzsgahb1axnplmr6b3ba63"; - libraryHaskellDepends = [ - attoparsec base bytestring case-insensitive double-conversion text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/twittner/bytestring-conversion/"; - description = "Type-classes to convert values to and from ByteString"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "bytestring-lexing" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "bytestring-lexing"; - version = "0.5.0.2"; - sha256 = "01f9add3f25067a89c5ae9ab1f2fd8ab75ec9f386987ee0d83f73ec855b43f73"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Parse and produce literals efficiently from strict or lazy bytestrings"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "bytestring-strict-builder" = callPackage - ({ mkDerivation, base, base-prelude, bytestring, semigroups, stdenv - }: - mkDerivation { - pname = "bytestring-strict-builder"; - version = "0.4.5.1"; - sha256 = "1879edb56e530169f5c4a738fff46ac56faeb30f9ac3d59f1361183111a5c69e"; - revision = "1"; - editedCabalFile = "1snn8qb17maa76zji75i4yfz9x8ci16xp6zwg6kgwb33lf06imnd"; - libraryHaskellDepends = [ - base base-prelude bytestring semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/bytestring-strict-builder"; - description = "An efficient strict bytestring builder"; - license = stdenv.lib.licenses.mit; - }) {}; - "bytestring-tree-builder" = callPackage - ({ mkDerivation, base, base-prelude, bytestring, semigroups, stdenv - , text - }: - mkDerivation { - pname = "bytestring-tree-builder"; - version = "0.2.7.2"; - sha256 = "a12df2ef970eab34c7bb968ba1a157fb01e478cd9abada097fc3e4ec61b5020e"; - libraryHaskellDepends = [ - base base-prelude bytestring semigroups text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/bytestring-tree-builder"; - description = "A very efficient ByteString builder implementation based on the binary tree"; - license = stdenv.lib.licenses.mit; - }) {}; - "bzlib" = callPackage - ({ mkDerivation, base, bytestring, bzip2, stdenv }: - mkDerivation { - pname = "bzlib"; - version = "0.5.0.5"; - sha256 = "9ee7d0ac7461b330820af928c13c6668bf4fe3601f171c42432a85c33718017e"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ bzip2 ]; - doHaddock = false; - doCheck = false; - description = "Compression and decompression in the bzip2 format"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) bzip2;}; - "bzlib-conduit" = callPackage - ({ mkDerivation, base, bindings-DSL, bytestring, bzip2, conduit - , data-default-class, mtl, resourcet, stdenv - }: - mkDerivation { - pname = "bzlib-conduit"; - version = "0.3.0.1"; - sha256 = "43d811549f7fb0710e4895ad54f78418271579f7e27d75e3c3470b74b285a239"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bindings-DSL bytestring conduit data-default-class mtl - resourcet - ]; - librarySystemDepends = [ bzip2 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/bzlib-conduit#readme"; - description = "Streaming compression/decompression via conduits"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) bzip2;}; - "c2hs" = callPackage - ({ mkDerivation, array, base, bytestring, containers, directory - , dlist, filepath, language-c, pretty, process, stdenv - }: - mkDerivation { - pname = "c2hs"; - version = "0.28.6"; - sha256 = "91dd121ac565009f2fc215c50f3365ed66705071a698a545e869041b5d7ff4da"; - isLibrary = false; - isExecutable = true; - enableSeparateDataOutput = true; - executableHaskellDepends = [ - array base bytestring containers directory dlist filepath - language-c pretty process - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/c2hs"; - description = "C->Haskell FFI tool that gives some cross-language type safety"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "cabal-doctest" = callPackage - ({ mkDerivation, base, Cabal, directory, filepath, stdenv }: - mkDerivation { - pname = "cabal-doctest"; - version = "1.0.6"; - sha256 = "decaaa5a73eaabaf3c4f8c644bd7f6e3f428b6244e935c0cf105f75f9b24ed2d"; - revision = "2"; - editedCabalFile = "1kbiwqm4fxrsdpcqijdq98h8wzmxydcvxd03f1z8dliqzyqsbd60"; - libraryHaskellDepends = [ base Cabal directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/cabal-doctest"; - description = "A Setup.hs helper for doctests running"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cabal-install" = callPackage - ({ mkDerivation, array, async, base, base16-bytestring, binary - , bytestring, Cabal, containers, cryptohash-sha256, deepseq - , directory, echo, edit-distance, filepath, hackage-security - , hashable, HTTP, mtl, network, network-uri, parsec, pretty - , process, random, stdenv, stm, tar, text, time, unix, zip-archive - , zlib - }: - mkDerivation { - pname = "cabal-install"; - version = "2.4.1.0"; - sha256 = "69bcb2b54a064982412e1587c3c5c1b4fada3344b41b568aab25730034cb21ad"; - revision = "3"; - editedCabalFile = "1mnm6mfrgavq3blvkm3wz45pqrj10apjihg1g9cds58qp19m9r1h"; - configureFlags = [ "-f-native-dns" ]; - isLibrary = false; - isExecutable = true; - setupHaskellDepends = [ base Cabal filepath process ]; - executableHaskellDepends = [ - array async base base16-bytestring binary bytestring Cabal - containers cryptohash-sha256 deepseq directory echo edit-distance - filepath hackage-security hashable HTTP mtl network network-uri - parsec pretty process random stm tar text time unix zip-archive - zlib - ]; - doHaddock = false; - doCheck = false; - postInstall = '' - mkdir $out/etc - mv bash-completion $out/etc/bash_completion.d - ''; - homepage = "http://www.haskell.org/cabal/"; - description = "The command-line interface for Cabal and Hackage"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cabal-rpm" = callPackage - ({ mkDerivation, base, bytestring, Cabal, directory, filepath - , http-client, http-client-tls, http-conduit, process, simple-cmd - , stdenv, time, unix - }: - mkDerivation { - pname = "cabal-rpm"; - version = "0.12.6"; - sha256 = "da26117406caca76e85729b69c8ef573499b5fb1a816951aeb861fb4cf16c0cc"; - configureFlags = [ "-f-old-locale" ]; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bytestring Cabal directory filepath http-client - http-client-tls http-conduit process simple-cmd time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/juhp/cabal-rpm"; - description = "RPM packaging tool for Haskell Cabal-based packages"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "cabal2nix" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, Cabal - , containers, deepseq, directory, distribution-nixpkgs, filepath - , hackage-db, hopenssl, hpack, language-nix, lens, monad-par - , monad-par-extras, mtl, optparse-applicative, pretty, process - , split, stdenv, text, time, transformers, yaml - }: - mkDerivation { - pname = "cabal2nix"; - version = "2.12"; - sha256 = "7b1cf2f4cdfa4a5c723993644e4827a1442f2420d88a2aa967b3314eba2aa87e"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson ansi-wl-pprint base bytestring Cabal containers deepseq - directory distribution-nixpkgs filepath hackage-db hopenssl hpack - language-nix lens optparse-applicative pretty process split text - time transformers yaml - ]; - executableHaskellDepends = [ - aeson base bytestring Cabal containers directory - distribution-nixpkgs filepath hopenssl language-nix lens monad-par - monad-par-extras mtl optparse-applicative pretty - ]; - doHaddock = false; - doCheck = false; - preCheck = '' - export PATH="$PWD/dist/build/cabal2nix:$PATH" - export HOME="$TMPDIR/home" - ''; - homepage = "https://github.com/nixos/cabal2nix#readme"; - description = "Convert Cabal files into Nix build instructions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cabal2spec" = callPackage - ({ mkDerivation, base, Cabal, filepath, optparse-applicative - , stdenv, time - }: - mkDerivation { - pname = "cabal2spec"; - version = "2.2.2.1"; - sha256 = "5ed56787f30468750cd356a160e7c73eda58c5ca100634ae343efc6d5619634b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base Cabal filepath time ]; - executableHaskellDepends = [ - base Cabal filepath optparse-applicative - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/cabal2spec"; - description = "Convert Cabal files into rpm spec files"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "cache" = callPackage - ({ mkDerivation, base, clock, hashable, stdenv, stm, transformers - , unordered-containers - }: - mkDerivation { - pname = "cache"; - version = "0.1.1.1"; - sha256 = "1029991d52add00d7ea68cc03e7d87301cf23f644a0ffa8dbbaed91c9eb05f11"; - libraryHaskellDepends = [ - base clock hashable stm transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hverr/haskell-cache#readme"; - description = "An in-memory key/value store with expiration support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cachix-api" = callPackage - ({ mkDerivation, aeson, amazonka, base, base16-bytestring - , bytestring, conduit, cookie, cryptonite, http-api-data - , http-media, lens, memory, servant, servant-auth - , servant-auth-server, servant-auth-swagger, servant-streaming - , servant-swagger, servant-swagger-ui-core, stdenv, string-conv - , swagger2, text, transformers - }: - mkDerivation { - pname = "cachix-api"; - version = "0.1.0.3"; - sha256 = "aefd2d623cb8b0da0ac6861df37f2f5673659ebd341943e4da9c538befa84502"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson amazonka base base16-bytestring bytestring conduit cookie - cryptonite http-api-data http-media lens memory servant - servant-auth servant-auth-server servant-auth-swagger - servant-streaming servant-swagger servant-swagger-ui-core - string-conv swagger2 text transformers - ]; - executableHaskellDepends = [ aeson base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cachix/cachix#readme"; - description = "Servant HTTP API specification for https://cachix.org"; - license = stdenv.lib.licenses.asl20; - }) {}; - "cacophony" = callPackage - ({ mkDerivation, base, bytestring, cryptonite, exceptions, free - , lens, memory, monad-coroutine, mtl, safe-exceptions, stdenv - , transformers - }: - mkDerivation { - pname = "cacophony"; - version = "0.10.1"; - sha256 = "52c5ac525767c89e103fcf50ebf8db2a9425904abea2e570b37c7fdf2a013bf1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring cryptonite exceptions free lens memory - monad-coroutine mtl safe-exceptions transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/centromere/cacophony#readme"; - description = "A library implementing the Noise protocol"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "calendar-recycling" = callPackage - ({ mkDerivation, base, containers, html, old-time, stdenv - , utility-ht - }: - mkDerivation { - pname = "calendar-recycling"; - version = "0.0.0.1"; - sha256 = "8cd39ccf4fbe538f8e5d434d0efd0c559074420b9283d2c7c4b7ab6262b4d529"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base containers html old-time utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/calendar-recycling"; - description = "List years with the same calendars"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "call-stack" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "call-stack"; - version = "0.1.0"; - sha256 = "f25f5e0992a39371079cc25c2a14b5abb872fa7d868a32753aac3a258b83b1e2"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/call-stack#readme"; - description = "Use GHC call-stacks in a backward compatible way"; - license = stdenv.lib.licenses.mit; - }) {}; - "carray" = callPackage - ({ mkDerivation, array, base, binary, bytestring, ix-shapable - , QuickCheck, stdenv, syb - }: - mkDerivation { - pname = "carray"; - version = "0.1.6.8"; - sha256 = "8f1967d54c7cf9680481c6f630eafa66f6d916b93c98f3b3c47449f682f11613"; - libraryHaskellDepends = [ - array base binary bytestring ix-shapable QuickCheck syb - ]; - doHaddock = false; - doCheck = false; - description = "A C-compatible array library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "case-insensitive" = callPackage - ({ mkDerivation, base, bytestring, deepseq, hashable, stdenv, text - }: - mkDerivation { - pname = "case-insensitive"; - version = "1.2.0.11"; - sha256 = "a7ce6d17e50caaa0f19ad8e67361499022860554c521b1e57993759da3eb37e3"; - libraryHaskellDepends = [ base bytestring deepseq hashable text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/case-insensitive"; - description = "Case insensitive string comparison"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cased" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "cased"; - version = "0.1.0.0"; - sha256 = "8394e6705ed83152875e1de1c51c54c26b04a2359919d8958d66997b2b60ad23"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jb55/cased"; - description = "Track string casing in its type"; - license = stdenv.lib.licenses.mit; - }) {}; - "cases" = callPackage - ({ mkDerivation, attoparsec, base-prelude, loch-th, stdenv, text }: - mkDerivation { - pname = "cases"; - version = "0.1.3.2"; - sha256 = "9ecf632f7751aac2ed7ec93407f9499237316f2eb50f331bb4969abf3359a8a9"; - libraryHaskellDepends = [ attoparsec base-prelude loch-th text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/cases"; - description = "A converter for spinal, snake and camel cases"; - license = stdenv.lib.licenses.mit; - }) {}; - "casing" = callPackage - ({ mkDerivation, base, split, stdenv }: - mkDerivation { - pname = "casing"; - version = "0.1.4.0"; - sha256 = "8e8a3631ef5823ae53dfeb7497ad4856c6758e3e380ff164f6a261f41685f6d7"; - libraryHaskellDepends = [ base split ]; - doHaddock = false; - doCheck = false; - description = "Convert between various source code casing conventions"; - license = stdenv.lib.licenses.mit; - }) {}; - "cassava" = callPackage - ({ mkDerivation, array, attoparsec, base, bytestring, containers - , deepseq, hashable, Only, scientific, stdenv, text, text-short - , unordered-containers, vector - }: - mkDerivation { - pname = "cassava"; - version = "0.5.1.0"; - sha256 = "762c8aaea2cdad61f52bad1b9f1f3b32764b4b6da03371aba6e5017f69614277"; - revision = "1"; - editedCabalFile = "1brz20js95synh0yw942ihy4y9y6nk4xnsqcjqi9580y24zcigkl"; - configureFlags = [ "-f-bytestring--lt-0_10_4" ]; - libraryHaskellDepends = [ - array attoparsec base bytestring containers deepseq hashable Only - scientific text text-short unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/cassava"; - description = "A CSV parsing and encoding library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cassava-conduit" = callPackage - ({ mkDerivation, array, base, bifunctors, bytestring, cassava - , conduit, containers, mtl, stdenv, text - }: - mkDerivation { - pname = "cassava-conduit"; - version = "0.5.1"; - sha256 = "b55b72e9d52a40473f609c0c406db41bd92178a493f191295a7d8f23d89677f8"; - libraryHaskellDepends = [ - array base bifunctors bytestring cassava conduit containers mtl - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/domdere/cassava-conduit"; - description = "Conduit interface for cassava package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cassava-megaparsec" = callPackage - ({ mkDerivation, base, bytestring, cassava, megaparsec, stdenv - , unordered-containers, vector - }: - mkDerivation { - pname = "cassava-megaparsec"; - version = "2.0.0"; - sha256 = "cee6286a13a9884c3d725f3e7c57579b649fe7b850a5c898b9fdf637dddb904b"; - libraryHaskellDepends = [ - base bytestring cassava megaparsec unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stackbuilders/cassava-megaparsec"; - description = "Megaparsec parser of CSV files that plays nicely with Cassava"; - license = stdenv.lib.licenses.mit; - }) {}; - "cassava-records" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, cassava, foldl - , stdenv, template-haskell, text, unordered-containers, vector - }: - mkDerivation { - pname = "cassava-records"; - version = "0.1.0.4"; - sha256 = "11f832c11125bd7a73b57941284d9aeb7f1e7572004da7e37311b34d3366af8d"; - libraryHaskellDepends = [ - attoparsec base bytestring cassava foldl template-haskell text - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/gdevanla/cassava-records#readme"; - description = "Auto-generation of records data type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cast" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "cast"; - version = "0.1.0.2"; - sha256 = "24d545e5974436b6e3ee9dfda7ed68218c9f698103adae676a60860d90d7bc91"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-patterns/cast#readme"; - description = "Abstact cast pattern"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "category" = callPackage - ({ mkDerivation, alg, base, stdenv, transformers }: - mkDerivation { - pname = "category"; - version = "0.2.2.0"; - sha256 = "2323558f9fd9b741815663ff69e090cadde4c2d5f7133b5edd8cbfdd658801a8"; - libraryHaskellDepends = [ alg base transformers ]; - doHaddock = false; - doCheck = false; - description = "Categorical types and classes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cayley-client" = callPackage - ({ mkDerivation, aeson, attoparsec, base, binary, bytestring - , exceptions, http-client, http-conduit, lens, lens-aeson, mtl - , stdenv, text, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "cayley-client"; - version = "0.4.8"; - sha256 = "b1b1328fb855211a78b9c7da74eecc7ee81c9f92101debb9ca87238d66c01926"; - libraryHaskellDepends = [ - aeson attoparsec base binary bytestring exceptions http-client - http-conduit lens lens-aeson mtl text transformers - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MichelBoucey/cayley-client"; - description = "A Haskell client for the Cayley graph database"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cborg" = callPackage - ({ mkDerivation, array, base, bytestring, containers, deepseq - , ghc-prim, half, integer-gmp, primitive, stdenv, text - }: - mkDerivation { - pname = "cborg"; - version = "0.2.1.0"; - sha256 = "9198735f7645ae492345505448f790433f5fe407b19e1c6b2ec2a4c76bd97483"; - libraryHaskellDepends = [ - array base bytestring containers deepseq ghc-prim half integer-gmp - primitive text - ]; - doHaddock = false; - doCheck = false; - description = "Concise Binary Object Representation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cborg-json" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, cborg, scientific - , stdenv, text, unordered-containers, vector - }: - mkDerivation { - pname = "cborg-json"; - version = "0.2.1.0"; - sha256 = "3fb6b54e6ddd322880689fb461f7911aca45b9758482c9f9949619c7d7b52006"; - libraryHaskellDepends = [ - aeson aeson-pretty base cborg scientific text unordered-containers - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/well-typed/cborg"; - description = "A library for encoding JSON as CBOR"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cereal" = callPackage - ({ mkDerivation, array, base, bytestring, containers, ghc-prim - , stdenv - }: - mkDerivation { - pname = "cereal"; - version = "0.5.8.0"; - sha256 = "37d3668aba37babc83321aa1538841da041476b5423722e6f5210c4e5e014282"; - libraryHaskellDepends = [ - array base bytestring containers ghc-prim - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/GaloisInc/cereal"; - description = "A binary serialization library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cereal-conduit" = callPackage - ({ mkDerivation, base, bytestring, cereal, conduit, resourcet - , stdenv, transformers - }: - mkDerivation { - pname = "cereal-conduit"; - version = "0.8.0"; - sha256 = "d95c4518a9984feacfd811c64be993705bff74c1f2daa00b4687bbb79f3a39eb"; - revision = "1"; - editedCabalFile = "1imyl3g2bni8bc6kajr857xh94fscphksj3286pxfpa8yp9vqqpc"; - libraryHaskellDepends = [ - base bytestring cereal conduit resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/conduit"; - description = "Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cereal-text" = callPackage - ({ mkDerivation, base, cereal, stdenv, text }: - mkDerivation { - pname = "cereal-text"; - version = "0.1.0.2"; - sha256 = "3c7a15f4681fa53b66dcd5165f31f56ff9751a752ac5123ecc5bcf5c3ea0354c"; - libraryHaskellDepends = [ base cereal text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ulikoehler/cereal-text"; - description = "Data.Text instances for the cereal serialization library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "cereal-time" = callPackage - ({ mkDerivation, base, cereal, stdenv, time }: - mkDerivation { - pname = "cereal-time"; - version = "0.1.0.0"; - sha256 = "bec6d5103ec45bee242825da4cf695f574f101bb1d48778bf7823175dfa43cb2"; - libraryHaskellDepends = [ base cereal time ]; - doHaddock = false; - doCheck = false; - description = "Serialize instances for types from `time` package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cereal-vector" = callPackage - ({ mkDerivation, base, bytestring, cereal, stdenv, vector }: - mkDerivation { - pname = "cereal-vector"; - version = "0.2.0.1"; - sha256 = "ff0685a6c39e7aae32f8b4165e2ae06f284c867298ad4f7b776c1c1b2859f933"; - libraryHaskellDepends = [ base bytestring cereal vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/acfoltzer/cereal-vector"; - description = "Serialize instances for Data.Vector types."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cfenv" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, stdenv }: - mkDerivation { - pname = "cfenv"; - version = "0.1.0.0"; - sha256 = "8ce96643559ebe4504c0641f9817d8795b22631f614084af50c88e51277e747e"; - libraryHaskellDepends = [ aeson base bytestring containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tomphp/haskell-cfenv#readme"; - description = "A library getting the environment when running on Cloud Foundry"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cgi" = callPackage - ({ mkDerivation, base, bytestring, containers, exceptions, mtl - , multipart, network, network-uri, parsec, stdenv, time, xhtml - }: - mkDerivation { - pname = "cgi"; - version = "3001.3.0.3"; - sha256 = "eb8144d7d0b74643c43b73c63e4d9fa88a110c4be719b9436917ca7d0d32b4e6"; - revision = "3"; - editedCabalFile = "06gyp3mxx9jkkbz9sbn389wjsz33s231vk53pbsm37a1z9ply14a"; - libraryHaskellDepends = [ - base bytestring containers exceptions mtl multipart network - network-uri parsec time xhtml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cheecheeo/haskell-cgi"; - description = "A library for writing CGI programs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "chan" = callPackage - ({ mkDerivation, async, base, stdenv, stm }: - mkDerivation { - pname = "chan"; - version = "0.0.4.1"; - sha256 = "926fcb205f6d43ed3a2b85b8e88a6c99a2deb097bc7988116c493a04a52547cf"; - libraryHaskellDepends = [ async base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/chan#readme"; - description = "Some extra kit for Chans"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "charset" = callPackage - ({ mkDerivation, array, base, bytestring, containers, semigroups - , stdenv, unordered-containers - }: - mkDerivation { - pname = "charset"; - version = "0.3.7.1"; - sha256 = "3d415d2883bd7bf0cc9f038e8323f19c71e07dd12a3c712f449ccb8b4daac0be"; - revision = "1"; - editedCabalFile = "1z6nxw2g9vgsjq0g159sk8mwj68lwzxzi5iv5ynha0h85jcqxszy"; - libraryHaskellDepends = [ - array base bytestring containers semigroups unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/charset"; - description = "Fast unicode character sets based on complemented PATRICIA tries"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "charsetdetect-ae" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "charsetdetect-ae"; - version = "1.1.0.4"; - sha256 = "9bbaa48d3026abdd403ed59ee5f41978b2f5be6d0dc545e142c86d5aa790410c"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/charsetdetect-ae"; - description = "Character set detection using Mozilla's Universal Character Set Detector"; - license = "LGPL"; - }) {}; - "chaselev-deque" = callPackage - ({ mkDerivation, abstract-deque, array, atomic-primops, base - , ghc-prim, stdenv, transformers, vector - }: - mkDerivation { - pname = "chaselev-deque"; - version = "0.5.0.5"; - sha256 = "4d58f8d56228e9f5bea2a65717dea65106323cb5ead9b5f39f904dac5c0043f4"; - libraryHaskellDepends = [ - abstract-deque array atomic-primops base ghc-prim transformers - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; - description = "Chase & Lev work-stealing lock-free double-ended queues (deques)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cheapskate" = callPackage - ({ mkDerivation, base, blaze-html, bytestring, containers - , data-default, deepseq, mtl, stdenv, syb, text, uniplate - , xss-sanitize - }: - mkDerivation { - pname = "cheapskate"; - version = "0.1.1.1"; - sha256 = "d50d4f6978343f4990aeb6debf11e33054d8dc5ec4390196f12b8b68176ade62"; - revision = "1"; - editedCabalFile = "0mf6qdpgh56n0ynyy272vhkk2bjrdhppks2vrw79gk0kzn29fggh"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-html containers data-default deepseq mtl syb text - uniplate xss-sanitize - ]; - executableHaskellDepends = [ base blaze-html bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jgm/cheapskate"; - description = "Experimental markdown processor"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cheapskate-highlight" = callPackage - ({ mkDerivation, base, blaze-html, cheapskate, highlighting-kate - , stdenv, text - }: - mkDerivation { - pname = "cheapskate-highlight"; - version = "0.1.0.0"; - sha256 = "5af7afb26b4ea80952963b44db695cbf18da34d3e8a7d32382a7dbfa4832d370"; - revision = "1"; - editedCabalFile = "1c8kxqdqf0j962xjdrrjfcbjsl0c1kax31rjykymv7w16d6hmlj4"; - libraryHaskellDepends = [ - base blaze-html cheapskate highlighting-kate text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/cheapskate-highlight"; - description = "Code highlighting for cheapskate"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cheapskate-lucid" = callPackage - ({ mkDerivation, base, blaze-html, cheapskate, lucid, stdenv }: - mkDerivation { - pname = "cheapskate-lucid"; - version = "0.1.0.0"; - sha256 = "f582e512befd2707a7056c1d15541967de2e0ce5702bc2197a3fced58a777245"; - revision = "1"; - editedCabalFile = "197nx95xw21i7zyvgzcgnr36ab6vrk17c66iz8ndwz61vp1jf6hc"; - libraryHaskellDepends = [ base blaze-html cheapskate lucid ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/cheapskate-lucid"; - description = "Use cheapskate with Lucid"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "check-email" = callPackage - ({ mkDerivation, base, bytestring, email-validate, resolv, stdenv - }: - mkDerivation { - pname = "check-email"; - version = "1.0.2"; - sha256 = "1c2615fadba09a5d7aa5c68648d12218a595efb759842fb4f524cf380afa9327"; - libraryHaskellDepends = [ base bytestring email-validate ]; - librarySystemDepends = [ resolv ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/qoelet/check-email#readme"; - description = "Confirm whether an email is valid and probably existant"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) resolv;}; - "checkers" = callPackage - ({ mkDerivation, array, base, QuickCheck, random, semigroupoids - , stdenv - }: - mkDerivation { - pname = "checkers"; - version = "0.4.11"; - sha256 = "d0602d3561b9c3d9365387543e363e40b11851ace42698feb519c6567d842d38"; - libraryHaskellDepends = [ - array base QuickCheck random semigroupoids - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/conal/checkers"; - description = "Check properties on standard classes and data structures"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "checksum" = callPackage - ({ mkDerivation, base, explicit-exception, stdenv, utility-ht }: - mkDerivation { - pname = "checksum"; - version = "0.0"; - sha256 = "337a0f6fcf7687469ecd410a3ed41c85ab68de08b5da0798d0d0aeb861a4470c"; - libraryHaskellDepends = [ base explicit-exception utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/checksum"; - description = "Compute and verify checksums of ISBN, IBAN, etc"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "choice" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "choice"; - version = "0.2.2"; - sha256 = "d367e4321329df5913216f9746528e4526e14b5ad1f33edc82de8288ad719e61"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mboes/choice#readme"; - description = "A solution to boolean blindness"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "chronologique" = callPackage - ({ mkDerivation, aeson, base, hourglass, stdenv, text, time, vector - }: - mkDerivation { - pname = "chronologique"; - version = "0.3.1.1"; - sha256 = "c538bc2e7b1cb9c1f4ae4177a5545c08d3ff66c29c80ef8faddd92daaa499e16"; - libraryHaskellDepends = [ aeson base hourglass text time vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/afcowie/chronologique/"; - description = "Time to manipulate time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "chunked-data" = callPackage - ({ mkDerivation, base, bytestring, containers, semigroups, stdenv - , text, transformers, vector - }: - mkDerivation { - pname = "chunked-data"; - version = "0.3.1"; - sha256 = "f710c581aee1f899e807fc9e6cba721b27d53dc9d56986f1922bc7ccddf1a79a"; - libraryHaskellDepends = [ - base bytestring containers semigroups text transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "Typeclasses for dealing with various chunked data representations"; - license = stdenv.lib.licenses.mit; - }) {}; - "cipher-aes" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , securemem, stdenv - }: - mkDerivation { - pname = "cipher-aes"; - version = "0.2.11"; - sha256 = "d3b171895698c73da24d7ce97543f725d26637f038de670c0fd4012ca7f95015"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types securemem - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-cipher-aes"; - description = "Fast AES cipher implementation with advanced mode of operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cipher-aes128" = callPackage - ({ mkDerivation, base, bytestring, Cabal, cereal, crypto-api - , process, stdenv, tagged - }: - mkDerivation { - pname = "cipher-aes128"; - version = "0.7.0.4"; - sha256 = "cd8d8987c1a1839f3c66e655277981083be85489d34b6b47f95d7e82d2d10285"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal process ]; - libraryHaskellDepends = [ - base bytestring cereal crypto-api tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/TomMD/cipher-aes128"; - description = "AES and common modes using AES-NI when available"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cipher-blowfish" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , securemem, stdenv, vector - }: - mkDerivation { - pname = "cipher-blowfish"; - version = "0.0.3"; - sha256 = "8f41170a851dba6d0b6f07298af3213baca09ab2a8aaf2adb733631feb3b6641"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types securemem vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-cipher"; - description = "Blowfish cipher"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cipher-camellia" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , securemem, stdenv, vector - }: - mkDerivation { - pname = "cipher-camellia"; - version = "0.0.2"; - sha256 = "8d0cd137cdb890646bb5d3bb52b20fa6d74e1b0c35d7d524d60edd9d43ace2a7"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types securemem vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-cipher"; - description = "Camellia block cipher primitives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cipher-des" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , securemem, stdenv - }: - mkDerivation { - pname = "cipher-des"; - version = "0.0.6"; - sha256 = "85f1bccdec625a120ecf83b861afcb6478f8f899ceaa06fc083e642b54ff4ac7"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types securemem - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-cipher"; - description = "DES and 3DES primitives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cipher-rc4" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , stdenv - }: - mkDerivation { - pname = "cipher-rc4"; - version = "0.1.4"; - sha256 = "c67e731bc9e7f3882e33609c3d9ec97b4e9bbd2f95cd882926acfb621970384d"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-cipher-rc4"; - description = "Fast RC4 cipher implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "circle-packing" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "circle-packing"; - version = "0.1.0.6"; - sha256 = "64ee44a90da3e5fe20d5b78bfe6eba93102a6b52c65f8a7b99af7799798ee81b"; - revision = "2"; - editedCabalFile = "1ag213lv6yfzxdc4ghbywy165qblnqx5b3j9d23kc6fcyf19nfyk"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Simple heuristic for packing discs of varying radii in a circle"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cisco-spark-api" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bitset-word8, bytestring - , conduit, data-default, http-conduit, network-uri - , optparse-applicative, stdenv, text, utf8-string - }: - mkDerivation { - pname = "cisco-spark-api"; - version = "0.1.0.4"; - sha256 = "6f550e999cb3b3bf1d4d041363c0bead0eec02f078dc51301873cc450143a244"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson attoparsec base bitset-word8 bytestring conduit data-default - http-conduit network-uri text - ]; - executableHaskellDepends = [ - aeson base bytestring conduit data-default http-conduit - optparse-applicative text utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nshimaza/webex-teams-api#readme"; - description = "DEPRECATED in favor of webex-teams-api"; - license = stdenv.lib.licenses.mit; - }) {}; - "classy-prelude" = callPackage - ({ mkDerivation, async, base, basic-prelude, bifunctors, bytestring - , chunked-data, containers, deepseq, dlist, ghc-prim, hashable - , mono-traversable, mono-traversable-instances, mtl - , mutable-containers, primitive, say, semigroups, stdenv, stm - , stm-chans, text, time, transformers, unliftio - , unordered-containers, vector, vector-instances - }: - mkDerivation { - pname = "classy-prelude"; - version = "1.5.0"; - sha256 = "d3bae4b17fdf73d7255f550ad172b1f709a8743371aa3a40c13c2cdc9fa7a4da"; - libraryHaskellDepends = [ - async base basic-prelude bifunctors bytestring chunked-data - containers deepseq dlist ghc-prim hashable mono-traversable - mono-traversable-instances mtl mutable-containers primitive say - semigroups stm stm-chans text time transformers unliftio - unordered-containers vector vector-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "A typeclass-based Prelude"; - license = stdenv.lib.licenses.mit; - }) {}; - "classy-prelude-conduit" = callPackage - ({ mkDerivation, base, bytestring, classy-prelude, conduit - , monad-control, resourcet, stdenv, transformers, void - }: - mkDerivation { - pname = "classy-prelude-conduit"; - version = "1.5.0"; - sha256 = "da27783595cd6b94ea5cb93f3e81084a664e65ed4766757a5e7f81fb3df8fd00"; - libraryHaskellDepends = [ - base bytestring classy-prelude conduit monad-control resourcet - transformers void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "classy-prelude together with conduit functions"; - license = stdenv.lib.licenses.mit; - }) {}; - "classy-prelude-yesod" = callPackage - ({ mkDerivation, aeson, base, classy-prelude - , classy-prelude-conduit, data-default, http-conduit, http-types - , persistent, stdenv, yesod, yesod-newsfeed, yesod-static - }: - mkDerivation { - pname = "classy-prelude-yesod"; - version = "1.5.0"; - sha256 = "9ffbc4447ec2df8131ca32c259da19f379109d6e44569a7ee16714ab67029f83"; - libraryHaskellDepends = [ - aeson base classy-prelude classy-prelude-conduit data-default - http-conduit http-types persistent yesod yesod-newsfeed - yesod-static - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "Provide a classy prelude including common Yesod functionality"; - license = stdenv.lib.licenses.mit; - }) {}; - "classyplate" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "classyplate"; - version = "0.3.2.0"; - sha256 = "712eefbe6b6fd92d6e5e7982d82a27e45b7992a83c2b09fc8696b1e30752527a"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - description = "Fuseable type-class based generics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "clay" = callPackage - ({ mkDerivation, base, mtl, stdenv, text }: - mkDerivation { - pname = "clay"; - version = "0.13.1"; - sha256 = "844e9101cc1835eb12bac50e289d00f19c24eeee12bcdebae1b633edffa328a3"; - libraryHaskellDepends = [ base mtl text ]; - doHaddock = false; - doCheck = false; - homepage = "http://fvisser.nl/clay"; - description = "CSS preprocessor as embedded Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "clientsession" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, cereal - , cipher-aes, cprng-aes, crypto-api, crypto-random, directory - , entropy, setenv, skein, stdenv, tagged - }: - mkDerivation { - pname = "clientsession"; - version = "0.9.1.2"; - sha256 = "5915adc4de26d2a8b03f1a445bac0b0f5d10a5b0380a4eed71b79a20a727d068"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base base64-bytestring bytestring cereal cipher-aes cprng-aes - crypto-api crypto-random directory entropy setenv skein tagged - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/clientsession/tree/master"; - description = "Securely store session data in a client-side cookie"; - license = stdenv.lib.licenses.mit; - }) {}; - "clock" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "clock"; - version = "0.7.2"; - sha256 = "886601978898d3a91412fef895e864576a7125d661e1f8abc49a2a08840e691f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/corsis/clock"; - description = "High-resolution clock functions: monotonic, realtime, cputime"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "clock-extras" = callPackage - ({ mkDerivation, base, clock, stdenv }: - mkDerivation { - pname = "clock-extras"; - version = "0.1.0.2"; - sha256 = "a9ed097aa9d48b53c6a555bc5f67e347249b08e2252dd4fc998fb4ab42edda59"; - libraryHaskellDepends = [ base clock ]; - doHaddock = false; - doCheck = false; - description = "A couple functions that probably should be in the 'clock' package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "clr-host" = callPackage - ({ mkDerivation, base, bytestring, Cabal, clr-marshal, directory - , file-embed, filepath, glib, mono, stdenv, text, transformers - }: - mkDerivation { - pname = "clr-host"; - version = "0.2.1.0"; - sha256 = "fe2abf0386c96df6e51cbae4f45e074b54452fc01f9308b098198ade4ffc5ea4"; - setupHaskellDepends = [ - base Cabal directory filepath transformers - ]; - libraryHaskellDepends = [ - base bytestring clr-marshal file-embed text - ]; - librarySystemDepends = [ glib mono ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/tim-m89/clr-haskell/tree/master/libs/clr-host"; - description = "Hosting the Common Language Runtime"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) glib; inherit (pkgs) mono;}; - "clr-marshal" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "clr-marshal"; - version = "0.2.0.0"; - sha256 = "4113651f3d10de21813b2a44b78ca19f9ab62b6c6d9df0c25a88940fabebdcd6"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/tim-m89/clr-haskell/tree/master/libs/clr-marshal"; - description = "Marshaling for the clr"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "clumpiness" = callPackage - ({ mkDerivation, base, containers, stdenv, tree-fun }: - mkDerivation { - pname = "clumpiness"; - version = "0.17.0.2"; - sha256 = "eca2c21c6d3d9d3e6f26f7ca36db99680120c8f959fdbfef8c970aac131936c0"; - libraryHaskellDepends = [ base containers tree-fun ]; - doHaddock = false; - doCheck = false; - description = "Calculate the clumpiness of leaf properties in a tree"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "cmark" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "cmark"; - version = "0.5.6"; - sha256 = "855c4b7aca6d4e9eb076beb6cc6f74e7578fae7aa3625fd3fca5e3b4901a32b0"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jgm/cmark-hs"; - description = "Fast, accurate CommonMark (Markdown) parser and renderer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cmark-gfm" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "cmark-gfm"; - version = "0.1.6"; - sha256 = "c8f916c8fbc9b3c564dcd6946cd530a292a055b60c784dde303803199a6c6968"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kivikakk/cmark-gfm-hs"; - description = "Fast, accurate GitHub Flavored Markdown parser and renderer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cmdargs" = callPackage - ({ mkDerivation, base, filepath, process, stdenv, template-haskell - , transformers - }: - mkDerivation { - pname = "cmdargs"; - version = "0.10.20"; - sha256 = "0e269dc48c3d4c0447c96ffd772a6fe69dfa1260c323f4cd7bf171cbf2ab7331"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base filepath process template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/cmdargs#readme"; - description = "Command line argument processing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "co-log" = callPackage - ({ mkDerivation, ansi-terminal, base, bytestring, co-log-core - , containers, contravariant, directory, filepath, markdown-unlit - , mtl, stdenv, stm, text, time, transformers, typerep-map - }: - mkDerivation { - pname = "co-log"; - version = "0.2.0"; - sha256 = "592e2a5cb7fbe5ae48e7d5682337ac197ef3e41f3577a185b3a9989ab31ea8f5"; - revision = "1"; - editedCabalFile = "0np7g6sqm6iyjyrypwlgrz67n0vhasvgp1k6cwrcj2lnmvjcrmvl"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base bytestring co-log-core containers contravariant - directory filepath mtl stm text time transformers typerep-map - ]; - executableHaskellDepends = [ base text typerep-map ]; - executableToolDepends = [ markdown-unlit ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/co-log"; - description = "Composable Contravariant Comonadic Logging Library"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "co-log-core" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "co-log-core"; - version = "0.1.1"; - sha256 = "bc0071c6f09dd45b8eee9a990696490dfa96e60425c2c5d4c5b591da999f1303"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/co-log"; - description = "Composable Contravariant Comonadic Logging Library"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "code-page" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "code-page"; - version = "0.2"; - sha256 = "bfe32a8c4be9cf0d5a088267bf3fdf4adda8ba3f109e85675c93e70d575e1844"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/code-page"; - description = "Windows code page library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "codec" = callPackage - ({ mkDerivation, aeson, base, binary, binary-bits, bytestring, mtl - , profunctors, stdenv, template-haskell, text, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "codec"; - version = "0.2.1"; - sha256 = "ffc261b58108c3d90c0b0b68461857d1148208d1a9645916e63241aaa3c25b28"; - libraryHaskellDepends = [ - aeson base binary binary-bits bytestring mtl profunctors - template-haskell text transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chpatrick/codec"; - description = "Simple bidirectional serialization"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "codec-beam" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv, text, zlib - }: - mkDerivation { - pname = "codec-beam"; - version = "0.2.0"; - sha256 = "61eb624e5f347ec9249f976bc8b62ae597777604d82ab0e62acb9901374ae365"; - libraryHaskellDepends = [ base bytestring containers text zlib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hkgumbs/codec-beam#readme"; - description = "Erlang VM byte code assembler"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "codec-rpm" = callPackage - ({ mkDerivation, attoparsec, attoparsec-binary, base, bytestring - , conduit, conduit-extra, cpio-conduit, exceptions, lzma-conduit - , mtl, parsec, pretty, resourcet, stdenv, text - }: - mkDerivation { - pname = "codec-rpm"; - version = "0.2.2"; - sha256 = "a34b88378dc79b08b56c39515763b6d940166595c24dc45e61cc8d2bb4ed4b97"; - libraryHaskellDepends = [ - attoparsec attoparsec-binary base bytestring conduit conduit-extra - cpio-conduit exceptions lzma-conduit mtl parsec pretty resourcet - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/weldr/codec-rpm"; - description = "A library for manipulating RPM files"; - license = stdenv.lib.licenses.lgpl21; - }) {}; - "codo-notation" = callPackage - ({ mkDerivation, base, comonad, haskell-src-meta, parsec, stdenv - , template-haskell, uniplate - }: - mkDerivation { - pname = "codo-notation"; - version = "0.5.2"; - sha256 = "78eb57004541ed29eb4c54196b91ac2dd1028a3315f51cd4dc00debfc0938eaf"; - libraryHaskellDepends = [ - base comonad haskell-src-meta parsec template-haskell uniplate - ]; - doHaddock = false; - doCheck = false; - description = "A notation for comonads, analogous to the do-notation for monads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "coercible-utils" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "coercible-utils"; - version = "0.0.0"; - sha256 = "2a624986cdc010c7fc3e90f8c94f722995af9fe6e88b9d52a94ebaa319b08c98"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sjakobi/coercible-utils"; - description = "Utility functions for Coercible types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "colonnade" = callPackage - ({ mkDerivation, base, bytestring, contravariant, profunctors - , stdenv, text, vector - }: - mkDerivation { - pname = "colonnade"; - version = "1.2.0.1"; - sha256 = "32ebd86360c9a363d62a2490b7120de5651a6674a79c4f9d85e13d2cc8cb3e8b"; - libraryHaskellDepends = [ - base bytestring contravariant profunctors text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/andrewthad/colonnade#readme"; - description = "Generic types and functions for columnar encoding and decoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "colorful-monoids" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "colorful-monoids"; - version = "0.2.1.2"; - sha256 = "0b42ff47e011f011f73e444d7121b7bc54324077cb2a1011ee01766483706578"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/colorful-monoids#readme"; - description = "Styled console text output using ANSI escape sequences"; - license = stdenv.lib.licenses.mit; - }) {}; - "colorize-haskell" = callPackage - ({ mkDerivation, ansi-terminal, base, haskell-lexer, stdenv }: - mkDerivation { - pname = "colorize-haskell"; - version = "1.0.1"; - sha256 = "03764374bd1aed5c63e20517441ccaae7c95cb2fa9e416da952f26be8dba9aec"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ ansi-terminal base haskell-lexer ]; - executableHaskellDepends = [ ansi-terminal base haskell-lexer ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yav/colorize-haskell"; - description = "Highligt Haskell source"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "colour" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "colour"; - version = "2.3.4"; - sha256 = "0f439f00b322ce3d551f28a4dd1520aa2c91d699de4cdc6d485b9b04be0dc5eb"; - revision = "1"; - editedCabalFile = "1awhbn3pk4zgzpnbbhb10rbxzbb4fz5gywa5h3xl589dclv912ls"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Colour"; - description = "A model for human colour/color perception"; - license = stdenv.lib.licenses.mit; - }) {}; - "combinatorial" = callPackage - ({ mkDerivation, array, base, containers, stdenv, transformers - , utility-ht - }: - mkDerivation { - pname = "combinatorial"; - version = "0.1.0.1"; - sha256 = "c4d67854fecd353f5e7e6be009ffbd16cd6e9f6f41af16f072ae89778596db70"; - libraryHaskellDepends = [ - array base containers transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/combinatorial/"; - description = "Count, enumerate, rank and unrank combinatorial objects"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "comfort-graph" = callPackage - ({ mkDerivation, base, containers, QuickCheck, semigroups, stdenv - , transformers, utility-ht - }: - mkDerivation { - pname = "comfort-graph"; - version = "0.0.3.1"; - sha256 = "c926189971d0b416b4b078a1652de65a12a9fabd013d2373204bbe96fef8b562"; - libraryHaskellDepends = [ - base containers QuickCheck semigroups transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/comfort-graph"; - description = "Graph structure with type parameters for nodes and edges"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "commutative" = callPackage - ({ mkDerivation, base, random, semigroups, stdenv, vector }: - mkDerivation { - pname = "commutative"; - version = "0.0.2"; - sha256 = "ccbc6a445bbc5c26a504a322664b2275e9834fdc17c80a2bdcef0dc517609969"; - libraryHaskellDepends = [ base random semigroups vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/commutative#readme"; - description = "Commutative binary operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "comonad" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, containers - , contravariant, distributive, semigroups, stdenv, tagged - , transformers, transformers-compat - }: - mkDerivation { - pname = "comonad"; - version = "5.0.4"; - sha256 = "78a89d7f9f0975b40b3294adcb70885649572b687ac5f5dc98e452471838e825"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base containers contravariant distributive semigroups tagged - transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/comonad/"; - description = "Comonads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "compactmap" = callPackage - ({ mkDerivation, base, stdenv, vector }: - mkDerivation { - pname = "compactmap"; - version = "0.1.4.2.1"; - sha256 = "22166e0a2a78bf2b7cff49448ed9fcb145dece4f034de9afc8ce5b692fd0f774"; - libraryHaskellDepends = [ base vector ]; - doHaddock = false; - doCheck = false; - description = "A read-only memory-efficient key-value store"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "compensated" = callPackage - ({ mkDerivation, base, bifunctors, binary, bytes, Cabal - , cabal-doctest, cereal, comonad, deepseq, distributive, hashable - , lens, log-domain, safecopy, semigroupoids, semigroups, stdenv - , vector - }: - mkDerivation { - pname = "compensated"; - version = "0.7.2"; - sha256 = "c7f9bf47a586720deda33b82ddc633d3507c8bc199eb5555c80931f6c323cae2"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base bifunctors binary bytes cereal comonad deepseq distributive - hashable lens log-domain safecopy semigroupoids semigroups vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/analytics/compensated/"; - description = "Compensated floating-point arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "compiler-warnings" = callPackage - ({ mkDerivation, base, binary, parsec, stdenv, text }: - mkDerivation { - pname = "compiler-warnings"; - version = "0.1.0"; - sha256 = "8cf4c57e1b4d61b1163969faa6e9f2cb8f22073fa75bf982d9b8a328225f5ce3"; - libraryHaskellDepends = [ base binary parsec text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yi-editor/compiler-warnings#readme"; - description = "Parser for common compiler warning formats"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "composable-associations" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "composable-associations"; - version = "0.1.0.0"; - sha256 = "9d1a10bc7ee1b514221bd8d0fc71f43f8d2338b1faebe6722f1d4db3bc29800e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/SamProtas/composable-associations#readme"; - description = "Types and helpers for composing types into a single larger key-value type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "composable-associations-aeson" = callPackage - ({ mkDerivation, aeson, base, composable-associations, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "composable-associations-aeson"; - version = "0.1.0.0"; - sha256 = "dbd754ed6d624469f16c4cd2ad51c441eeb8c62d6af66673f76034c7517c2a4f"; - libraryHaskellDepends = [ - aeson base composable-associations text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/SamProtas/composable-associations#readme"; - description = "Aeson ToJSON/FromJSON implementation for the types of composable-associations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "composition" = callPackage - ({ mkDerivation, stdenv }: - mkDerivation { - pname = "composition"; - version = "1.0.2.1"; - sha256 = "7123300f5eca5a7cec4eb731dc0e9c2c44aabe26b37e6579582a7267d9f7ad6a"; - doHaddock = false; - doCheck = false; - description = "Combinators for unorthodox function composition"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "composition-extra" = callPackage - ({ mkDerivation, base, composition, contravariant, stdenv }: - mkDerivation { - pname = "composition-extra"; - version = "2.0.0"; - sha256 = "c998244a8fd160af3dd7ee93c417f665af51a46a04ce6b7d4623f46596ba7129"; - libraryHaskellDepends = [ base composition contravariant ]; - doHaddock = false; - doCheck = false; - description = "Combinators for unorthodox structure composition"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "concise" = callPackage - ({ mkDerivation, base, bytestring, lens, stdenv, text }: - mkDerivation { - pname = "concise"; - version = "0.1.0.1"; - sha256 = "5c27df5a3e1fe820548e90abc4a0e326b6d0fb286218619aa22d3af90c7b9925"; - libraryHaskellDepends = [ base bytestring lens text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/frasertweedale/hs-concise"; - description = "Utilities for Control.Lens.Cons"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "concurrency" = callPackage - ({ mkDerivation, array, atomic-primops, base, exceptions - , monad-control, mtl, stdenv, stm, transformers - }: - mkDerivation { - pname = "concurrency"; - version = "1.6.2.0"; - sha256 = "c8e43e6d19f075e7a66a7191350eba0d177b5339ba6db6d3bcfde2d73a0f9000"; - libraryHaskellDepends = [ - array atomic-primops base exceptions monad-control mtl stm - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/dejafu"; - description = "Typeclasses, functions, and data types for concurrency and STM"; - license = stdenv.lib.licenses.mit; - }) {}; - "concurrent-extra" = callPackage - ({ mkDerivation, base, stdenv, stm, unbounded-delays }: - mkDerivation { - pname = "concurrent-extra"; - version = "0.7.0.12"; - sha256 = "040e6db9e0147de9929661759930f1566a7250add4c7f65b04dc6e070c991df9"; - libraryHaskellDepends = [ base stm unbounded-delays ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/concurrent-extra"; - description = "Extra concurrency primitives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "concurrent-output" = callPackage - ({ mkDerivation, ansi-terminal, async, base, directory, exceptions - , process, stdenv, stm, terminal-size, text, transformers, unix - }: - mkDerivation { - pname = "concurrent-output"; - version = "1.10.9"; - sha256 = "8cc49408e957c65359182fbfcda80717b931915d101e4be55ccb26c44b098e57"; - libraryHaskellDepends = [ - ansi-terminal async base directory exceptions process stm - terminal-size text transformers unix - ]; - doHaddock = false; - doCheck = false; - description = "Ungarble output from several threads or commands"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "concurrent-split" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "concurrent-split"; - version = "0.0.1.1"; - sha256 = "ae0028cfaf27da2c4d0e70783e8f45e82d33f402af1dfc6778c8ab81cf542f45"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "MVars and Channels with distinguished input and output side"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "concurrent-supply" = callPackage - ({ mkDerivation, base, ghc-prim, hashable, stdenv }: - mkDerivation { - pname = "concurrent-supply"; - version = "0.1.8"; - sha256 = "ccf827dcd221298ae93fad6021c63a06707456de0671706b44f1f2fed867f21f"; - libraryHaskellDepends = [ base ghc-prim hashable ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/concurrent-supply/"; - description = "A fast concurrent unique identifier supply with a pure API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cond" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "cond"; - version = "0.4.1.1"; - sha256 = "039c76e43b5484bdc78627f50740106ae2844b3c877d92b5228de9106997ac8b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kallisti-dev/cond"; - description = "Basic conditional and boolean operators with monadic variants"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "conduit" = callPackage - ({ mkDerivation, base, bytestring, directory, exceptions, filepath - , mono-traversable, mtl, primitive, resourcet, stdenv, text - , transformers, unix, unliftio-core, vector - }: - mkDerivation { - pname = "conduit"; - version = "1.3.1"; - sha256 = "ae129b66ada785c43a693d3b260f0e7b2f01d79fbf04ae43f7341405455320d6"; - libraryHaskellDepends = [ - base bytestring directory exceptions filepath mono-traversable mtl - primitive resourcet text transformers unix unliftio-core vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/conduit"; - description = "Streaming data processing library"; - license = stdenv.lib.licenses.mit; - }) {}; - "conduit-algorithms" = callPackage - ({ mkDerivation, async, base, bytestring, bzlib-conduit, conduit - , conduit-combinators, conduit-extra, conduit-zstd, containers - , deepseq, exceptions, lzma-conduit, monad-control, mtl, pqueue - , resourcet, stdenv, stm, stm-conduit, streaming-commons - , transformers, unliftio-core, vector - }: - mkDerivation { - pname = "conduit-algorithms"; - version = "0.0.9.0"; - sha256 = "11dd94dd4264f6985f35a6c102c3716178757be21da0dce9a4e7d83aa64a4db4"; - libraryHaskellDepends = [ - async base bytestring bzlib-conduit conduit conduit-combinators - conduit-extra conduit-zstd containers deepseq exceptions - lzma-conduit monad-control mtl pqueue resourcet stm stm-conduit - streaming-commons transformers unliftio-core vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/luispedro/conduit-algorithms#readme"; - description = "Conduit-based algorithms"; - license = stdenv.lib.licenses.mit; - }) {}; - "conduit-combinators" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "conduit-combinators"; - version = "1.3.0"; - sha256 = "9717d916a0422a7fb7cc262302333269607530d40cd0bea3be947872f906e7d3"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "DEPRECATED Functionality merged into the conduit package itself"; - license = stdenv.lib.licenses.mit; - }) {}; - "conduit-concurrent-map" = callPackage - ({ mkDerivation, base, conduit, containers, mtl, resourcet, stdenv - , unliftio, unliftio-core, vector - }: - mkDerivation { - pname = "conduit-concurrent-map"; - version = "0.1.1"; - sha256 = "527c429c39eaf5181e2aa8e5a6fcafd552149cc37b0b9d21003ff6507cd6c766"; - libraryHaskellDepends = [ - base conduit containers mtl resourcet unliftio unliftio-core vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/conduit-concurrent-map"; - description = "Concurrent, order-preserving mapping Conduit"; - license = stdenv.lib.licenses.mit; - }) {}; - "conduit-connection" = callPackage - ({ mkDerivation, base, bytestring, conduit, connection, resourcet - , stdenv, transformers - }: - mkDerivation { - pname = "conduit-connection"; - version = "0.1.0.4"; - sha256 = "5e784117f3698dc653b286fbb53d530068d0cdadbe130ec02abf42e3f2c821fc"; - libraryHaskellDepends = [ - base bytestring conduit connection resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sdroege/conduit-connection"; - description = "Conduit source and sink for Network.Connection."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "conduit-extra" = callPackage - ({ mkDerivation, async, attoparsec, base, bytestring, conduit - , directory, filepath, network, primitive, process, resourcet - , stdenv, stm, streaming-commons, text, transformers, typed-process - , unliftio-core - }: - mkDerivation { - pname = "conduit-extra"; - version = "1.3.0"; - sha256 = "2c41c925fc53d9ba2e640c7cdca72c492b28c0d45f1a82e94baef8dfa65922ae"; - libraryHaskellDepends = [ - async attoparsec base bytestring conduit directory filepath network - primitive process resourcet stm streaming-commons text transformers - typed-process unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/conduit"; - description = "Batteries included conduit: adapters for common libraries"; - license = stdenv.lib.licenses.mit; - }) {}; - "conduit-iconv" = callPackage - ({ mkDerivation, base, bytestring, conduit, stdenv }: - mkDerivation { - pname = "conduit-iconv"; - version = "0.1.1.3"; - sha256 = "1c71304782e4599a2987321028b50356c4982b45d9096d954e0b7c0b7ad3acb6"; - libraryHaskellDepends = [ base bytestring conduit ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sdroege/conduit-iconv"; - description = "Conduit for character encoding conversion"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "conduit-parse" = callPackage - ({ mkDerivation, base, conduit, dlist, mtl, parsers, safe - , safe-exceptions, stdenv, text, transformers - }: - mkDerivation { - pname = "conduit-parse"; - version = "0.2.1.0"; - sha256 = "b585dbdc0c1e3a844a9cd97cd1e72d7a73521b66b856001960afe4057130dae1"; - revision = "1"; - editedCabalFile = "1bgxjn9lbx67584xpwl2k9jrwvlgyqf4vkv0s7vs1nnc1h6qk7qw"; - libraryHaskellDepends = [ - base conduit dlist mtl parsers safe safe-exceptions text - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0ral/conduit-parse"; - description = "Parsing framework based on conduit"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "conduit-throttle" = callPackage - ({ mkDerivation, async, base, conduit, conduit-combinators - , conduit-extra, monad-control, resourcet, stdenv, stm, stm-chans - , throttle-io-stream, unliftio, unliftio-core - }: - mkDerivation { - pname = "conduit-throttle"; - version = "0.3.1.0"; - sha256 = "8dd6d616f5ddce25668bb34069bfdcdfe2a866c8d708b725a9b2e450a95aa329"; - libraryHaskellDepends = [ - async base conduit conduit-combinators conduit-extra monad-control - resourcet stm stm-chans throttle-io-stream unliftio unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mtesseract/conduit-throttle#readme"; - description = "Throttle Conduit Producers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "conduit-zstd" = callPackage - ({ mkDerivation, base, bytestring, conduit, stdenv, zstd }: - mkDerivation { - pname = "conduit-zstd"; - version = "0.0.1.1"; - sha256 = "8681f59d08399f92478329b0cdd555ae5a1b7d12ef8acee423fcc10192e00712"; - libraryHaskellDepends = [ base bytestring conduit zstd ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/luispedro/conduit-zstd#readme"; - description = "Conduit-based ZStd Compression"; - license = stdenv.lib.licenses.mit; - }) {}; - "confcrypt" = callPackage - ({ mkDerivation, amazonka, amazonka-kms, base, base64-bytestring - , bytestring, conduit, containers, crypto-pubkey-openssh - , crypto-pubkey-types, cryptonite, deepseq, lens, megaparsec, mtl - , optparse-applicative, parser-combinators, stdenv, text - , transformers - }: - mkDerivation { - pname = "confcrypt"; - version = "0.1.0.4"; - sha256 = "6b358692cf5ab9bd92094df93aa774dcfa846577a5eb291dbe02206eafec45b0"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - amazonka amazonka-kms base base64-bytestring bytestring conduit - containers crypto-pubkey-openssh crypto-pubkey-types cryptonite - deepseq lens megaparsec mtl optparse-applicative parser-combinators - text transformers - ]; - executableHaskellDepends = [ - amazonka amazonka-kms base base64-bytestring bytestring conduit - containers crypto-pubkey-openssh crypto-pubkey-types cryptonite - deepseq lens megaparsec mtl optparse-applicative parser-combinators - text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/https://github.com/collegevine/confcrypt#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "configuration-tools" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base - , base-unicode-symbols, base64-bytestring, bytestring, Cabal - , case-insensitive, connection, data-default, deepseq, directory - , dlist, enclosed-exceptions, filepath, http-client - , http-client-tls, http-types, monad-control, mtl, network-uri - , optparse-applicative, process, profunctors, semigroups, stdenv - , text, tls, transformers, unordered-containers, x509, x509-system - , x509-validation, yaml - }: - mkDerivation { - pname = "configuration-tools"; - version = "0.4.0"; - sha256 = "fdb68289ee0a681269e3e4c4d89159b2717f962b7a89515bfa303f06dbda5d2f"; - setupHaskellDepends = [ - base bytestring Cabal directory filepath process - ]; - libraryHaskellDepends = [ - aeson ansi-wl-pprint attoparsec base base-unicode-symbols - base64-bytestring bytestring Cabal case-insensitive connection - data-default deepseq directory dlist enclosed-exceptions filepath - http-client http-client-tls http-types monad-control mtl - network-uri optparse-applicative process profunctors semigroups - text tls transformers unordered-containers x509 x509-system - x509-validation yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alephcloud/hs-configuration-tools"; - description = "Tools for specifying and parsing configurations"; - license = stdenv.lib.licenses.mit; - }) {}; - "configurator" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, directory, hashable - , stdenv, text, unix-compat, unordered-containers - }: - mkDerivation { - pname = "configurator"; - version = "0.3.0.0"; - sha256 = "6eb9996b672e9f7112ca23482c42fa533553312c3c13f38a8a06476e67c031b4"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base bytestring directory hashable text unix-compat - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bos/configurator"; - description = "Configuration management"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "configurator-export" = callPackage - ({ mkDerivation, base, base-compat, configurator, pretty - , semigroups, stdenv, text, unordered-containers - }: - mkDerivation { - pname = "configurator-export"; - version = "0.1.0.1"; - sha256 = "9dbd62ef29c97792ccdfdb1b3b79aedfa527dce49a9ac5054f21b29a7f9b824c"; - libraryHaskellDepends = [ - base base-compat configurator pretty semigroups text - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mstksg/configurator-export"; - description = "Pretty printer and exporter for configurations from the \"configurator\" library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "connection" = callPackage - ({ mkDerivation, base, byteable, bytestring, containers - , data-default-class, network, socks, stdenv, tls, x509, x509-store - , x509-system, x509-validation - }: - mkDerivation { - pname = "connection"; - version = "0.2.8"; - sha256 = "70b1f44e8786320c18b26fc5d4ec115fc8ac016ba1f852fa8137f55d785a93eb"; - revision = "2"; - editedCabalFile = "0bhwcd9dqa2jk23bdz3z3vn2p1gzssinp96dxzznb7af4y5x2gmk"; - libraryHaskellDepends = [ - base byteable bytestring containers data-default-class network - socks tls x509 x509-store x509-system x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-connection"; - description = "Simple and easy network connections API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "connection-pool" = callPackage - ({ mkDerivation, base, between, data-default-class, monad-control - , network, resource-pool, stdenv, streaming-commons, time - , transformers-base - }: - mkDerivation { - pname = "connection-pool"; - version = "0.2.2"; - sha256 = "f2cf43b7698b719b05467b3625884d00c748de2b3eb1229d19490b029a667353"; - libraryHaskellDepends = [ - base between data-default-class monad-control network resource-pool - streaming-commons time transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/trskop/connection-pool"; - description = "Connection pool built on top of resource-pool and streaming-commons"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "console-style" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers }: - mkDerivation { - pname = "console-style"; - version = "0.0.2.1"; - sha256 = "6d818ea841d7acfe6c42cc3fc7751e324656abfd0509ce470bc8bdbf52d1bd7f"; - libraryHaskellDepends = [ base mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/console-style#readme"; - description = "Styled console text output using ANSI escape sequences"; - license = stdenv.lib.licenses.mit; - }) {}; - "constraint" = callPackage - ({ mkDerivation, base, category, stdenv, unconstrained }: - mkDerivation { - pname = "constraint"; - version = "0.1.3.0"; - sha256 = "de53772aad12dc4a4542d6372a21b46a924019ac0622e8993db77498de4ee07a"; - libraryHaskellDepends = [ base category unconstrained ]; - doHaddock = false; - doCheck = false; - description = "Reified constraints"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "constraints" = callPackage - ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, mtl - , semigroups, stdenv, transformers, transformers-compat - }: - mkDerivation { - pname = "constraints"; - version = "0.10.1"; - sha256 = "5880ec261e053841b307c7c8c59614f46c2efbd5189f0f2a3c817589cedec3f7"; - revision = "1"; - editedCabalFile = "1i2rd805mjz5q7s98ryy1m91zd4b9hx92gw1rwr6kpibqqw9smcb"; - libraryHaskellDepends = [ - base binary deepseq ghc-prim hashable mtl semigroups transformers - transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/constraints/"; - description = "Constraint manipulation"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "contravariant" = callPackage - ({ mkDerivation, base, StateVar, stdenv, transformers }: - mkDerivation { - pname = "contravariant"; - version = "1.5"; - sha256 = "6ef067b692ad69ffff294b953aa85f3ded459d4ae133c37896222a09280fc3c2"; - libraryHaskellDepends = [ base StateVar transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/contravariant/"; - description = "Contravariant functors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "contravariant-extras" = callPackage - ({ mkDerivation, base, base-prelude, contravariant, semigroups - , stdenv, template-haskell, tuple-th - }: - mkDerivation { - pname = "contravariant-extras"; - version = "0.3.4"; - sha256 = "36a9239d5a84bc6a418a3aa1a0df145d76ece24d00b76deb817b92441913e63d"; - revision = "1"; - editedCabalFile = "1h2955ahga6i4fn7k8v66l03v77p6fhsac6ck8gpabkc08ij60wp"; - libraryHaskellDepends = [ - base base-prelude contravariant semigroups template-haskell - tuple-th - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/contravariant-extras"; - description = "Extras for the \"contravariant\" package"; - license = stdenv.lib.licenses.mit; - }) {}; - "control-bool" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "control-bool"; - version = "0.2.1"; - sha256 = "e46a85d2985a65f8d7ecbcdab0cfb12734b4d6e4c558631e6ab01fe742ed5581"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/control-bool"; - description = "Useful combinators for boolean expressions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "control-dsl" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "control-dsl"; - version = "0.2.1.3"; - sha256 = "e8c795e256030194ef9beb8009ed49f1257790ad1b51d3f629c98f6ce5e56967"; - revision = "2"; - editedCabalFile = "18jypzsawq0mp12i35f58px80i3k07ri0g07wcrh6af93vqkhvil"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Atry/Control.Dsl#readme"; - description = "An alternative to monads in do-notation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "control-monad-free" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "control-monad-free"; - version = "0.6.2"; - sha256 = "63c830bd2af23e372ebfee628d9f538a32d8368cf74f897370d839bf8e7b4bc1"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/pepeiborra/control-monad-free"; - description = "Free monads and monad transformers"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "control-monad-omega" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "control-monad-omega"; - version = "0.3.1"; - sha256 = "383b98ecf5db5add42f318672af9eb1c8b9d99ec42d48c240e209a93b5cf1186"; - revision = "1"; - editedCabalFile = "029v5j0mnlzzn6my7jgw26gdm5fbs2h7y395zk1q7r5bfar00q58"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/luqui/control-monad-omega"; - description = "A breadth-first list monad"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "convertible" = callPackage - ({ mkDerivation, base, bytestring, containers, mtl, old-locale - , old-time, stdenv, text, time - }: - mkDerivation { - pname = "convertible"; - version = "1.1.1.0"; - sha256 = "e9f9a70904b9995314c2aeb41580d654a2c76293feb955fb6bd63256c355286c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers mtl old-locale old-time text time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hackage.haskell.org/package/convertible"; - description = "Typeclasses and instances for converting between types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cookie" = callPackage - ({ mkDerivation, base, bytestring, data-default-class, deepseq - , stdenv, text, time - }: - mkDerivation { - pname = "cookie"; - version = "0.4.4"; - sha256 = "3245ed04ae933cf7becede816d1f76043b851472700abf558ae90b28414cc0e3"; - libraryHaskellDepends = [ - base bytestring data-default-class deepseq text time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/cookie"; - description = "HTTP cookie parsing and rendering"; - license = stdenv.lib.licenses.mit; - }) {}; - "countable" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "countable"; - version = "1.0"; - sha256 = "f9a0eb6f697a044bdf72e9c08126d4cb0f2d6de82cce07e55cb87ddbae6a0e6c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/AshleyYakeley/countable"; - description = "Countable, Searchable, Finite, Empty classes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "country" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq - , ghc-prim, hashable, primitive, scientific, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "country"; - version = "0.1.6"; - sha256 = "09b36e30dfb1fa5fa7a2c5c38f316a70e0c740b8a4dd6e340abe9770ad149928"; - revision = "2"; - editedCabalFile = "0721d9nc2snr6046ybmdj80xas7627lwd1ym6h1n8lclihw7ll6d"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring deepseq ghc-prim hashable - primitive scientific text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/andrewthad/country#readme"; - description = "Country data type and functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "courier" = callPackage - ({ mkDerivation, async, base, bytestring, cereal, containers - , hslogger, network, stdenv, stm, text, uuid - }: - mkDerivation { - pname = "courier"; - version = "0.1.1.5"; - sha256 = "ac9e674ff33de347b173da2892859b3807a408b341d10d6101d2a7d07ac334d3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base bytestring cereal containers hslogger network stm text - uuid - ]; - executableHaskellDepends = [ base cereal ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/hargettp/courier"; - description = "A message-passing library for simplifying network applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "cpio-conduit" = callPackage - ({ mkDerivation, base, base16-bytestring, binary, bytestring - , conduit, conduit-extra, stdenv - }: - mkDerivation { - pname = "cpio-conduit"; - version = "0.7.0"; - sha256 = "8f0be7538b234496ef3b2fb2633336908ae99040ecb6d9832b3dbd1d0750f513"; - libraryHaskellDepends = [ - base base16-bytestring binary bytestring conduit conduit-extra - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/da-x/cpio-conduit"; - description = "Conduit-based CPIO"; - license = stdenv.lib.licenses.asl20; - }) {}; - "cpphs" = callPackage - ({ mkDerivation, base, directory, old-locale, old-time, polyparse - , stdenv - }: - mkDerivation { - pname = "cpphs"; - version = "1.20.8"; - sha256 = "e56d64a7d8058e0fb63f0669397c1c861efb20a0376e0e74d86942ac151105ae"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base directory old-locale old-time polyparse - ]; - executableHaskellDepends = [ - base directory old-locale old-time polyparse - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/cpphs/"; - description = "A liberalised re-implementation of cpp, the C pre-processor"; - license = "LGPL"; - }) {}; - "cprng-aes" = callPackage - ({ mkDerivation, base, byteable, bytestring, cipher-aes - , crypto-random, stdenv - }: - mkDerivation { - pname = "cprng-aes"; - version = "0.6.1"; - sha256 = "64592a01de8c6683c5e29f538dceee918887ffe211d87214a2e38559d72c21f3"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base byteable bytestring cipher-aes crypto-random - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-cprng-aes"; - description = "Crypto Pseudo Random Number Generator using AES in counter mode"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cpu" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "cpu"; - version = "0.1.2"; - sha256 = "5627feb4974a3ff8499c42cc958927e88761a2e004c4000d34e9cd6a15ad2974"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-cpu"; - description = "Cpu information and properties helpers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cpuinfo" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, deepseq, stdenv }: - mkDerivation { - pname = "cpuinfo"; - version = "0.1.0.1"; - sha256 = "d1b3e3992cc0c82edfb21f30e1684bb66e6a3cb23a26b777a079702362d05655"; - libraryHaskellDepends = [ attoparsec base bytestring deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/TravisWhitaker/cpuinfo"; - description = "Haskell Library for Checking CPU Information"; - license = stdenv.lib.licenses.mit; - }) {}; - "cql" = callPackage - ({ mkDerivation, base, bytestring, cereal, containers, Decimal - , iproute, network, stdenv, template-haskell, text, time - , transformers, uuid, vector - }: - mkDerivation { - pname = "cql"; - version = "4.0.1"; - sha256 = "89294c6a6ed2c6f8c6037ee2ca4236d3606bf9019a39df9e39b7ad8dcd573808"; - libraryHaskellDepends = [ - base bytestring cereal containers Decimal iproute network - template-haskell text time transformers uuid vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/twittner/cql/"; - description = "Cassandra CQL binary protocol"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "cql-io" = callPackage - ({ mkDerivation, async, auto-update, base, bytestring, containers - , cql, cryptohash, data-default-class, exceptions, hashable - , HsOpenSSL, iproute, lens, monad-control, mtl, mwc-random, network - , retry, semigroups, stdenv, stm, text, time, tinylog, transformers - , transformers-base, unordered-containers, uuid, vector - }: - mkDerivation { - pname = "cql-io"; - version = "1.0.1.1"; - sha256 = "ac1353fc3ae4b182877aa518282ea1bd839cf5a3ffb936d6da4807b11d00bbcd"; - libraryHaskellDepends = [ - async auto-update base bytestring containers cql cryptohash - data-default-class exceptions hashable HsOpenSSL iproute lens - monad-control mtl mwc-random network retry semigroups stm text time - tinylog transformers transformers-base unordered-containers uuid - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/twittner/cql-io/"; - description = "Cassandra CQL client"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "crackNum" = callPackage - ({ mkDerivation, array, base, FloatingHex, stdenv }: - mkDerivation { - pname = "crackNum"; - version = "2.3"; - sha256 = "428f25cfa0f7c4c126ee96fb9122966c2b175a194d59c200470a6f689ec038f3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ array base FloatingHex ]; - executableHaskellDepends = [ array base FloatingHex ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/LeventErkok/CrackNum"; - description = "Crack various integer, floating-point data formats"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "credential-store" = callPackage - ({ mkDerivation, base, bytestring, containers, cryptonite, dbus - , memory, safe-exceptions, stdenv - }: - mkDerivation { - pname = "credential-store"; - version = "0.1.2"; - sha256 = "4dadbc219a7187442258608c1d834f4297652fb605fc6bbbb41d751fef6a9284"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers cryptonite dbus memory safe-exceptions - ]; - executableHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rblaze/credential-store#readme"; - description = "Library to access secure credential storage providers"; - license = stdenv.lib.licenses.asl20; - }) {}; - "criterion" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat-batteries - , binary, bytestring, cassava, code-page, containers - , criterion-measurement, deepseq, directory, exceptions, filepath - , Glob, js-flot, js-jquery, microstache, mtl, mwc-random - , optparse-applicative, parsec, statistics, stdenv, text, time - , transformers, transformers-compat, vector, vector-algorithms - }: - mkDerivation { - pname = "criterion"; - version = "1.5.3.0"; - sha256 = "b602a99439de710778b8d8ad4a3799caf872db4c8c793bfd13b725aa936c049f"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson ansi-wl-pprint base base-compat-batteries binary bytestring - cassava code-page containers criterion-measurement deepseq - directory exceptions filepath Glob js-flot js-jquery microstache - mtl mwc-random optparse-applicative parsec statistics text time - transformers transformers-compat vector vector-algorithms - ]; - executableHaskellDepends = [ - base base-compat-batteries optparse-applicative - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.serpentine.com/criterion"; - description = "Robust, reliable performance measurement and analysis"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "criterion-measurement" = callPackage - ({ mkDerivation, aeson, base, base-compat, binary, containers - , deepseq, stdenv, vector - }: - mkDerivation { - pname = "criterion-measurement"; - version = "0.1.1.0"; - sha256 = "f5f87769386a927dbf487d2f256fc6804f2902078e86dcf113e35178a582ab56"; - libraryHaskellDepends = [ - aeson base base-compat binary containers deepseq vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/criterion"; - description = "Criterion measurement functionality and associated types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cron" = callPackage - ({ mkDerivation, attoparsec, base, data-default-class, mtl - , mtl-compat, old-locale, semigroups, stdenv, text, time - }: - mkDerivation { - pname = "cron"; - version = "0.6.1"; - sha256 = "8c1af53bde729026809b722468f6b36c4f96cb532f26a390f32f1c91fb8b3251"; - libraryHaskellDepends = [ - attoparsec base data-default-class mtl mtl-compat old-locale - semigroups text time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/michaelxavier/cron"; - description = "Cron datatypes and Attoparsec parser"; - license = stdenv.lib.licenses.mit; - }) {}; - "crypt-sha512" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, cryptohash-sha512 - , stdenv - }: - mkDerivation { - pname = "crypt-sha512"; - version = "0"; - sha256 = "c2be6252bf12f38c74950eb778039426c730e9a7cd7f034a4cc3e6965d5255f3"; - revision = "2"; - editedCabalFile = "071lxiwsf23ga1fkbjd47ykz7f5irhsh7q7zz2qczzjgnvzadadh"; - libraryHaskellDepends = [ - attoparsec base bytestring cryptohash-sha512 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/crypt-sha512"; - description = "Pure Haskell implelementation for GNU SHA512 crypt algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-api" = callPackage - ({ mkDerivation, base, bytestring, cereal, entropy, stdenv, tagged - , transformers - }: - mkDerivation { - pname = "crypto-api"; - version = "0.13.3"; - sha256 = "298a9ea7ce97c8ccf4bfe46d4864092c3a007a56bede73560070db3bf1ac7aa5"; - revision = "1"; - editedCabalFile = "1z6n1sa5pn3iqvqjrd8hv4bc2pxzsrhm5sh0l8z7g9lbqp6w0wp5"; - libraryHaskellDepends = [ - base bytestring cereal entropy tagged transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/TomMD/crypto-api"; - description = "A generic interface for cryptographic operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-api-tests" = callPackage - ({ mkDerivation, base, bytestring, cereal, crypto-api, directory - , filepath, HUnit, QuickCheck, stdenv, test-framework - , test-framework-hunit, test-framework-quickcheck2 - }: - mkDerivation { - pname = "crypto-api-tests"; - version = "0.3"; - sha256 = "f44aecdd4ceb9da9f38330e84d9c17745a82b0611085ebb34442d2dce4207270"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring cereal crypto-api directory filepath HUnit - QuickCheck test-framework test-framework-hunit - test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://trac.haskell.org/crypto-api/wiki"; - description = "A test framework and KATs for cryptographic operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-cipher-tests" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , HUnit, mtl, QuickCheck, securemem, stdenv, test-framework - , test-framework-hunit, test-framework-quickcheck2 - }: - mkDerivation { - pname = "crypto-cipher-tests"; - version = "0.0.11"; - sha256 = "dfb670b73d4091b8683634d0d4d5a40576d573ad160650d5e518244ced8b98a7"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types HUnit mtl QuickCheck - securemem test-framework test-framework-hunit - test-framework-quickcheck2 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-cipher"; - description = "Generic cryptography cipher tests"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-cipher-types" = callPackage - ({ mkDerivation, base, byteable, bytestring, securemem, stdenv }: - mkDerivation { - pname = "crypto-cipher-types"; - version = "0.0.9"; - sha256 = "2073f6b70df7916aebe2da49d224497183662d56d19da87b76f70039430c0a0f"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base byteable bytestring securemem ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-cipher"; - description = "Generic cryptography cipher types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-enigma" = callPackage - ({ mkDerivation, ansi-terminal, base, containers - , optparse-applicative, split, stdenv, text - }: - mkDerivation { - pname = "crypto-enigma"; - version = "0.1.1.5"; - sha256 = "829a349dc7945cb257300ba97f9701863b3ca12ed3b7b3093199bb6709a23300"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers split text ]; - executableHaskellDepends = [ - ansi-terminal base containers optparse-applicative split text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/orome/crypto-enigma-hs"; - description = "An Enigma machine simulator with display"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-pubkey-openssh" = callPackage - ({ mkDerivation, asn1-encoding, asn1-types, attoparsec, base - , base64-bytestring, bytestring, cereal, crypto-pubkey-types, pem - , stdenv - }: - mkDerivation { - pname = "crypto-pubkey-openssh"; - version = "0.2.7"; - sha256 = "849085c854c561b94974f2086bf1ad4004fb17be7168b75068ab0f2a330bab59"; - libraryHaskellDepends = [ - asn1-encoding asn1-types attoparsec base base64-bytestring - bytestring cereal crypto-pubkey-types pem - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/knsd/crypto-pubkey-openssh"; - description = "OpenSSH keys decoder/encoder"; - license = stdenv.lib.licenses.mit; - }) {}; - "crypto-pubkey-types" = callPackage - ({ mkDerivation, asn1-encoding, asn1-types, base, stdenv }: - mkDerivation { - pname = "crypto-pubkey-types"; - version = "0.4.3"; - sha256 = "7ed9f52281ec4e34021a91818fe45288e33d65bff937f60334a3f45be5a71c60"; - libraryHaskellDepends = [ asn1-encoding asn1-types base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-pubkey-types"; - description = "Generic cryptography Public keys algorithm types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-random" = callPackage - ({ mkDerivation, base, bytestring, securemem, stdenv, unix, vector - }: - mkDerivation { - pname = "crypto-random"; - version = "0.0.9"; - sha256 = "170a7a18441379c2d1c19b502ee5919026a19adc6e78641cd4fb40b1d69a6904"; - revision = "1"; - editedCabalFile = "1ax1iafbbqkcrvjnnxlvqh2zgpx8xzcbxl6l870207bpzwrja2f1"; - libraryHaskellDepends = [ base bytestring securemem unix vector ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-random"; - description = "Simple cryptographic random related types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "crypto-random-api" = callPackage - ({ mkDerivation, base, bytestring, entropy, stdenv }: - mkDerivation { - pname = "crypto-random-api"; - version = "0.2.0"; - sha256 = "56e9777061bd9ce553683d097ba3a11fdc371724060b62ca103f1f291f9f897c"; - libraryHaskellDepends = [ base bytestring entropy ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-random-api"; - description = "Simple random generators API for cryptography related code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptocipher" = callPackage - ({ mkDerivation, base, cipher-aes, cipher-blowfish, cipher-camellia - , cipher-des, cipher-rc4, crypto-cipher-types, stdenv - }: - mkDerivation { - pname = "cryptocipher"; - version = "0.6.2"; - sha256 = "34b9e62dee36c4019dd0c0e86576295d0bd1bb573eeb24686ec635a09550e346"; - libraryHaskellDepends = [ - base cipher-aes cipher-blowfish cipher-camellia cipher-des - cipher-rc4 crypto-cipher-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-crypto-cipher"; - description = "Symmetrical block and stream ciphers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptocompare" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, directory - , exceptions, http-conduit, MissingH, stdenv, text, time - , transformers, unordered-containers - }: - mkDerivation { - pname = "cryptocompare"; - version = "0.1.1"; - sha256 = "d12e0f6fd133e538852e5700b0a31d81c6885dc8b1e9e88d1b331dcec38316b3"; - libraryHaskellDepends = [ - aeson base bytestring containers directory exceptions http-conduit - MissingH text time transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aviaviavi/cryptocompare"; - description = "Haskell wrapper for the cryptocompare API"; - license = stdenv.lib.licenses.mit; - }) {}; - "cryptohash" = callPackage - ({ mkDerivation, base, byteable, bytestring, cryptonite, ghc-prim - , memory, stdenv - }: - mkDerivation { - pname = "cryptohash"; - version = "0.11.9"; - sha256 = "c28f847fc1fcd65b6eea2e74a100300af940919f04bb21d391f6a773968f22fb"; - libraryHaskellDepends = [ - base byteable bytestring cryptonite ghc-prim memory - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-cryptohash"; - description = "collection of crypto hashes, fast, pure and practical"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptohash-cryptoapi" = callPackage - ({ mkDerivation, base, bytestring, cereal, crypto-api, cryptonite - , memory, stdenv, tagged - }: - mkDerivation { - pname = "cryptohash-cryptoapi"; - version = "0.1.4"; - sha256 = "717a8664ebfaa1c31aaec1d78c9b7c776a5adcfdfc50ad88e21a34566f72058e"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring cereal crypto-api cryptonite memory tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-cryptohash-cryptoapi"; - description = "Crypto-api interfaces for cryptohash"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptohash-md5" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "cryptohash-md5"; - version = "0.11.100.1"; - sha256 = "710bd48770fa3e9a3b05428c6dc77fb72c91956d334a1eb89ded11bb843e18f9"; - revision = "3"; - editedCabalFile = "0ld224mdmw9mgzcl20q82rqkyl7d5vmi1iknsyymq58gcvcwdi2m"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/cryptohash-md5"; - description = "Fast, pure and practical MD5 implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptohash-sha1" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "cryptohash-sha1"; - version = "0.11.100.1"; - sha256 = "3c79af33542512442f8f87f6abb1faef7cd43bbfb2859260a33251d861eb0dab"; - revision = "3"; - editedCabalFile = "0i30cc85732v27baibdjy2kjjkdfv335ib5sk5ggwvsysvvvr66l"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/cryptohash-sha1"; - description = "Fast, pure and practical SHA-1 implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptohash-sha256" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "cryptohash-sha256"; - version = "0.11.101.0"; - sha256 = "52756435dbea248e344fbcbcc5df5307f60dfacf337dfd11ae30f1c7a4da05dd"; - revision = "2"; - editedCabalFile = "0m5h68xm60wrjv88gg6cn1q5qki5674mxl4d6sn3vxpbcj9b5417"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/cryptohash-sha256"; - description = "Fast, pure and practical SHA-256 implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptohash-sha512" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "cryptohash-sha512"; - version = "0.11.100.1"; - sha256 = "10698bb9575eaa414a65d9644caa9408f9276c63447406e0a4faef91db1071a9"; - revision = "3"; - editedCabalFile = "19m1fp0i7ba84aa72d5wf59c7j0p4yr1bc43in8pspgywhsr3lfl"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/cryptohash-sha512"; - description = "Fast, pure and practical SHA-512 implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptonite" = callPackage - ({ mkDerivation, base, basement, bytestring, deepseq, ghc-prim - , integer-gmp, memory, stdenv - }: - mkDerivation { - pname = "cryptonite"; - version = "0.25"; - sha256 = "89be1a18af8730a7bfe4d718d7d5f6ce858e9df93a411566d15bf992db5a3c8c"; - libraryHaskellDepends = [ - base basement bytestring deepseq ghc-prim integer-gmp memory - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-crypto/cryptonite"; - description = "Cryptography Primitives sink"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptonite-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , cryptonite, exceptions, memory, resourcet, stdenv, transformers - }: - mkDerivation { - pname = "cryptonite-conduit"; - version = "0.2.2"; - sha256 = "705d69ab3f79b7b8810c7b9e7da81a1c6686b6a4323b1e78150576a25a658dae"; - revision = "1"; - editedCabalFile = "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz"; - libraryHaskellDepends = [ - base bytestring conduit conduit-extra cryptonite exceptions memory - resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-crypto/cryptonite-conduit"; - description = "cryptonite conduit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cryptonite-openssl" = callPackage - ({ mkDerivation, base, basement, bytestring, cryptonite, memory - , openssl, stdenv - }: - mkDerivation { - pname = "cryptonite-openssl"; - version = "0.7"; - sha256 = "9e4e1c08264f26e602ef3054f3c827c3c65d153e5b9d68a0cb44f446ca0844f6"; - libraryHaskellDepends = [ - base basement bytestring cryptonite memory - ]; - librarySystemDepends = [ openssl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-crypto/cryptonite-openssl"; - description = "Crypto stuff using OpenSSL cryptographic library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) openssl;}; - "csp" = callPackage - ({ mkDerivation, base, containers, mtl, nondeterminism, stdenv }: - mkDerivation { - pname = "csp"; - version = "1.4.0"; - sha256 = "08877f5ff196772675ac55b3c43ab39b527259114da8cfc36122c0cd7ce93496"; - libraryHaskellDepends = [ base containers mtl nondeterminism ]; - doHaddock = false; - doCheck = false; - description = "Discrete constraint satisfaction problem (CSP) solver"; - license = "LGPL"; - }) {}; - "css-syntax" = callPackage - ({ mkDerivation, base, scientific, stdenv, text }: - mkDerivation { - pname = "css-syntax"; - version = "0.1.0.0"; - sha256 = "50f386171dc691f2280a695eaafea64ba1ac1cc102fd702994b001f62d00c009"; - revision = "1"; - editedCabalFile = "14241m9nm3wbbhajw95gdj9mvfzf4hmrzvk2wgjvkm71mg4yhwnr"; - libraryHaskellDepends = [ base scientific text ]; - doHaddock = false; - doCheck = false; - description = "High-performance CSS tokenizer and serializer"; - license = stdenv.lib.licenses.mit; - }) {}; - "css-text" = callPackage - ({ mkDerivation, attoparsec, base, stdenv, text }: - mkDerivation { - pname = "css-text"; - version = "0.1.3.0"; - sha256 = "5ff507bf3863219f41e7f2d215e5511fe15ee13d1e28bd3ee64e0b0b894bcd7a"; - libraryHaskellDepends = [ attoparsec base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/css-text.git#readme"; - description = "CSS parser and renderer"; - license = stdenv.lib.licenses.mit; - }) {}; - "csv" = callPackage - ({ mkDerivation, base, filepath, parsec, stdenv }: - mkDerivation { - pname = "csv"; - version = "0.1.2"; - sha256 = "8cf43442325faa1368f9b55ad952beccf677d9980cdffa3d70a7f204a23ae600"; - libraryHaskellDepends = [ base filepath parsec ]; - doHaddock = false; - doCheck = false; - description = "CSV loader and dumper"; - license = stdenv.lib.licenses.mit; - }) {}; - "ctrie" = callPackage - ({ mkDerivation, atomic-primops, base, hashable, primitive, stdenv - }: - mkDerivation { - pname = "ctrie"; - version = "0.2"; - sha256 = "20e3a6d39f65ed1663ff5ab2c5431dc12b1c601d2133a74bc7bea1596ad9c814"; - libraryHaskellDepends = [ atomic-primops base hashable primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mcschroeder/ctrie"; - description = "Non-blocking concurrent map"; - license = stdenv.lib.licenses.mit; - }) {}; - "cubicbezier" = callPackage - ({ mkDerivation, base, containers, fast-math, integration, matrices - , microlens, microlens-mtl, microlens-th, mtl, stdenv, vector - , vector-space - }: - mkDerivation { - pname = "cubicbezier"; - version = "0.6.0.5"; - sha256 = "c5c9825782d97c4059b2261dddd6471fdb270ddac0ff97d6d02d4f0d44b62758"; - revision = "1"; - editedCabalFile = "0dii4z0cl1ylvay1n5z90d6rbvnk9k30q81i6izhgxbgdawwhh33"; - libraryHaskellDepends = [ - base containers fast-math integration matrices microlens - microlens-mtl microlens-th mtl vector vector-space - ]; - doHaddock = false; - doCheck = false; - description = "Efficient manipulating of 2D cubic bezier curves"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cubicspline" = callPackage - ({ mkDerivation, base, hmatrix, safe, stdenv }: - mkDerivation { - pname = "cubicspline"; - version = "0.1.2"; - sha256 = "5b6ced9ca65b0d01ddceaf18605c8f915491d8d4a6aaef73475c4e8d4b1a9b79"; - libraryHaskellDepends = [ base hmatrix safe ]; - doHaddock = false; - doCheck = false; - description = "Natural cubic spline interpolation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cublas" = callPackage - ({ mkDerivation, base, c2hs, Cabal, cuda, directory, filepath, half - , stdenv, storable-complex, template-haskell - }: - mkDerivation { - pname = "cublas"; - version = "0.5.0.0"; - sha256 = "2e3c94f63fc6f7df9cc517b5a444342654d4314266fc46aabfad8c456be68768"; - setupHaskellDepends = [ base Cabal cuda directory filepath ]; - libraryHaskellDepends = [ - base cuda half storable-complex template-haskell - ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - description = "FFI bindings to the CUDA BLAS library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cuckoo-filter" = callPackage - ({ mkDerivation, aeson, array, base, bytestring, cereal, containers - , criterion, hashable, random, stdenv, time - }: - mkDerivation { - pname = "cuckoo-filter"; - version = "0.2.0.2"; - sha256 = "ac495fb589ba939688e7c163ec07f7c591e183278c8ddb4148baf2174746cafb"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson array base bytestring cereal containers hashable time - ]; - executableHaskellDepends = [ - aeson array base bytestring cereal containers criterion hashable - random time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChrisCoffey/cuckoo-filter#readme"; - description = "Pure and impure Cuckoo Filter"; - license = stdenv.lib.licenses.mit; - }) {}; - "cuda" = callPackage - ({ mkDerivation, base, bytestring, c2hs, Cabal, directory, filepath - , pretty, stdenv, template-haskell, uuid-types - }: - mkDerivation { - pname = "cuda"; - version = "0.10.0.0"; - sha256 = "a79fb18d33b8ec5862fdc4f74cde5a58e9057a035df51a10207d32659d40849e"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal directory filepath ]; - libraryHaskellDepends = [ - base bytestring filepath template-haskell uuid-types - ]; - libraryToolDepends = [ c2hs ]; - executableHaskellDepends = [ base pretty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tmcdonell/cuda"; - description = "FFI binding to the CUDA interface for programming NVIDIA GPUs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cue-sheet" = callPackage - ({ mkDerivation, base, bytestring, containers, exceptions - , megaparsec, mtl, QuickCheck, stdenv, text - }: - mkDerivation { - pname = "cue-sheet"; - version = "2.0.1"; - sha256 = "71e42497329b9ebf74e94920ed2bd7a2ffe15e385906a37cbd5160d607a5575d"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers exceptions megaparsec mtl QuickCheck - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/cue-sheet"; - description = "Support for construction, rendering, and parsing of CUE sheets"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cufft" = callPackage - ({ mkDerivation, base, c2hs, Cabal, cuda, directory, filepath - , stdenv, template-haskell - }: - mkDerivation { - pname = "cufft"; - version = "0.9.0.1"; - sha256 = "c312aafe408d466eb32b15d9b59b805008f631147f7e0ef4ba2b8548540cc1b1"; - setupHaskellDepends = [ - base Cabal cuda directory filepath template-haskell - ]; - libraryHaskellDepends = [ base cuda ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/robeverest/cufft"; - description = "Haskell bindings for the CUFFT library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "curl" = callPackage - ({ mkDerivation, base, bytestring, containers, curl, stdenv }: - mkDerivation { - pname = "curl"; - version = "1.3.8"; - sha256 = "9087c936bfcdb865bad3166baa3f12bf37acf076fa76010e3b5f82a1d485446e"; - revision = "1"; - editedCabalFile = "02sq2bjw5igc2k9f9ssh58k2ivii2xsvk5r00ky3cxh8j61qy86q"; - configureFlags = [ "-fnew-base" ]; - libraryHaskellDepends = [ base bytestring containers ]; - librarySystemDepends = [ curl ]; - doHaddock = false; - doCheck = false; - description = "Haskell binding to libcurl"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) curl;}; - "currencies" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "currencies"; - version = "0.2.0.0"; - sha256 = "fb7292d4a5b9c4389690d1386fe24ce6a93eacbcfa952936ca6d4fd3afa98499"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alx741/currencies#readme"; - description = "Currencies representation, pretty printing and conversion"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "currency" = callPackage - ({ mkDerivation, base, containers, hashable, iso3166-country-codes - , stdenv - }: - mkDerivation { - pname = "currency"; - version = "0.2.0.0"; - sha256 = "bcd517f3d9f47f0dd3c4e802143159239e4a90db2fc552be4a99d759ffe9417a"; - libraryHaskellDepends = [ - base containers hashable iso3166-country-codes - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/singpolyma/currency-haskell"; - description = "Types representing standard and non-standard currencies"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "cusparse" = callPackage - ({ mkDerivation, base, c2hs, Cabal, cuda, directory, filepath, half - , stdenv, storable-complex - }: - mkDerivation { - pname = "cusparse"; - version = "0.2.0.0"; - sha256 = "06ee8332c9a4f540a9566d09d0903034e06b080281902beb987170d65cb7d8f8"; - setupHaskellDepends = [ base Cabal cuda directory filepath ]; - libraryHaskellDepends = [ base cuda half storable-complex ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - description = "FFI bindings to the CUDA Sparse BLAS library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "cutter" = callPackage - ({ mkDerivation, base, bytestring, explicit-exception, spreadsheet - , stdenv, utility-ht - }: - mkDerivation { - pname = "cutter"; - version = "0.0"; - sha256 = "117319c36a20efea6d9edd0a8d902e37ec0386512f2eb8a6e5563411c00c6ac2"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bytestring explicit-exception spreadsheet utility-ht - ]; - doHaddock = false; - doCheck = false; - description = "Cut files according to a position list"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "czipwith" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "czipwith"; - version = "1.0.1.1"; - sha256 = "4a148579f4ef822544b721a4b59f7a9e62a965e270dee9d2a54a98ceab494243"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lspitzner/czipwith/"; - description = "CZipWith class and deriving via TH"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-accessor" = callPackage - ({ mkDerivation, array, base, containers, stdenv, transformers }: - mkDerivation { - pname = "data-accessor"; - version = "0.2.2.8"; - sha256 = "ac3f95162df227a16eabf6be65d1d6563e5207d581edf72b680bfcd59f7f04bb"; - libraryHaskellDepends = [ array base containers transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Record_access"; - description = "Utilities for accessing and manipulating fields of records"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-accessor-mtl" = callPackage - ({ mkDerivation, base, data-accessor, mtl, stdenv }: - mkDerivation { - pname = "data-accessor-mtl"; - version = "0.2.0.4"; - sha256 = "10cf9166e2e046076b7e58987718e57b31408e7cada9f26c8ff111e0379814c5"; - libraryHaskellDepends = [ base data-accessor mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Record_access"; - description = "Use Accessor to access state in mtl State monad class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-accessor-template" = callPackage - ({ mkDerivation, base, data-accessor, stdenv, template-haskell - , utility-ht - }: - mkDerivation { - pname = "data-accessor-template"; - version = "0.2.1.16"; - sha256 = "93e7f2120b8974d81a4acc56bd6a5b7121dac4672d974a42512c169c6937ed95"; - libraryHaskellDepends = [ - base data-accessor template-haskell utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Record_access"; - description = "Utilities for accessing and manipulating fields of records"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-accessor-transformers" = callPackage - ({ mkDerivation, base, data-accessor, stdenv, transformers }: - mkDerivation { - pname = "data-accessor-transformers"; - version = "0.2.1.7"; - sha256 = "20c8823dc16c7ca6f55c64eb5564c9aae4b5565406987a046ded2ea73618e07a"; - libraryHaskellDepends = [ base data-accessor transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Record_access"; - description = "Use Accessor to access state in transformers State monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-binary-ieee754" = callPackage - ({ mkDerivation, base, binary, stdenv }: - mkDerivation { - pname = "data-binary-ieee754"; - version = "0.4.4"; - sha256 = "59975abed8f4caa602f0780c10a9b2493479e6feb71ad189bb10c3ac5678df0a"; - libraryHaskellDepends = [ base binary ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/data-binary-ieee754/"; - description = "Parser/Serialiser for IEEE-754 floating-point values"; - license = stdenv.lib.licenses.mit; - }) {}; - "data-bword" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv }: - mkDerivation { - pname = "data-bword"; - version = "0.1.0.1"; - sha256 = "70f01f857865edcf1d1d20128b0202320b1635cc03b00954b6d1447cd699db7d"; - libraryHaskellDepends = [ base ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/data-bword"; - description = "Extra operations on binary words of fixed length"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-checked" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "data-checked"; - version = "0.3"; - sha256 = "dc87d09c7c8587c9e6e372166e8de3b42c2cd804a493ff100c253e4d713c5676"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/data-checked"; - description = "Type-indexed runtime-checked properties"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default" = callPackage - ({ mkDerivation, base, data-default-class - , data-default-instances-containers, data-default-instances-dlist - , data-default-instances-old-locale, stdenv - }: - mkDerivation { - pname = "data-default"; - version = "0.7.1.1"; - sha256 = "b0f95d279cd75cacaa8152a01590dc3460f7134f6840b37052abb3ba3cb2a511"; - libraryHaskellDepends = [ - base data-default-class data-default-instances-containers - data-default-instances-dlist data-default-instances-old-locale - ]; - doHaddock = false; - doCheck = false; - description = "A class for types with a default value"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-class" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-default-class"; - version = "0.1.2.0"; - sha256 = "4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A class for types with a default value"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-instances-containers" = callPackage - ({ mkDerivation, base, containers, data-default-class, stdenv }: - mkDerivation { - pname = "data-default-instances-containers"; - version = "0.0.1"; - sha256 = "a55e07af005c9815d82f3fc95e125db82994377c9f4a769428878701d4ec081a"; - libraryHaskellDepends = [ base containers data-default-class ]; - doHaddock = false; - doCheck = false; - description = "Default instances for types in containers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-instances-dlist" = callPackage - ({ mkDerivation, base, data-default-class, dlist, stdenv }: - mkDerivation { - pname = "data-default-instances-dlist"; - version = "0.0.1"; - sha256 = "7d683711cbf08abd7adcd5ac2be825381308d220397315a5570fe61b719b5959"; - libraryHaskellDepends = [ base data-default-class dlist ]; - doHaddock = false; - doCheck = false; - description = "Default instances for types in dlist"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-default-instances-old-locale" = callPackage - ({ mkDerivation, base, data-default-class, old-locale, stdenv }: - mkDerivation { - pname = "data-default-instances-old-locale"; - version = "0.0.1"; - sha256 = "60d3b02922958c4908d7bf2b24ddf61511665745f784227d206745784b0c0802"; - libraryHaskellDepends = [ base data-default-class old-locale ]; - doHaddock = false; - doCheck = false; - description = "Default instances for types in old-locale"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-diverse" = callPackage - ({ mkDerivation, base, containers, deepseq, ghc-prim, stdenv - , tagged - }: - mkDerivation { - pname = "data-diverse"; - version = "4.6.0.0"; - sha256 = "094d44446b2429bad5707b4aef0f1f63a9d101739d9a244cb2131f7646eccbd4"; - libraryHaskellDepends = [ - base containers deepseq ghc-prim tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/data-diverse#readme"; - description = "Extensible records and polymorphic variants"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-diverse-lens" = callPackage - ({ mkDerivation, base, data-diverse, data-has, lens, profunctors - , stdenv, tagged - }: - mkDerivation { - pname = "data-diverse-lens"; - version = "4.3.0.0"; - sha256 = "97d049769f0a3693428bac8eb8de73e004f6fc9a1d0e3dc0c567f9d39f8ed986"; - libraryHaskellDepends = [ - base data-diverse data-has lens profunctors tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/data-diverse-lens#readme"; - description = "Isos & Lens for Data.Diverse.Many and Prisms for Data.Diverse.Which"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-dword" = callPackage - ({ mkDerivation, base, data-bword, ghc-prim, hashable, stdenv - , template-haskell - }: - mkDerivation { - pname = "data-dword"; - version = "0.3.1.2"; - sha256 = "6b677600221de86eaee21dd2d4c23c04320370c594a56f7bb3477ef4e4b69120"; - libraryHaskellDepends = [ - base data-bword ghc-prim hashable template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/data-dword"; - description = "Stick two binary words together to get a bigger one"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-endian" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-endian"; - version = "0.1.1"; - sha256 = "8c1d4f30374f8331d31f4d7c6b39284331b6b9436e7b50f86547417bd05f2ac0"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/data-endian"; - description = "Endian-sensitive data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-fix" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-fix"; - version = "0.2.0"; - sha256 = "7e5718055cb27ccac1e0bf25be70ba9bfe2b0d021cfe0a57a163355830341392"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/anton-k/data-fix"; - description = "Fixpoint data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-has" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-has"; - version = "0.3.0.0"; - sha256 = "3c25d403605ecb196df53c8c8fb7829cd7b6a88e0ea04b88038602ba7faa7379"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/data-has"; - description = "Simple extensible product"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-inttrie" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-inttrie"; - version = "0.1.4"; - sha256 = "6b3a7d8d49b0676c09486ac08107b0e5a6dfd66d9627443be440e9fd11e7bd54"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/luqui/data-inttrie"; - description = "A simple lazy, infinite trie from integers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-lens-light" = callPackage - ({ mkDerivation, base, mtl, stdenv, template-haskell }: - mkDerivation { - pname = "data-lens-light"; - version = "0.1.2.2"; - sha256 = "72d3e6a73bde4a32eccd2024eb58ca96da962d4b659d76baed4ab37f28dcb36e"; - libraryHaskellDepends = [ base mtl template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/data-lens-light"; - description = "Simple lenses, minimum dependencies"; - license = stdenv.lib.licenses.mit; - }) {}; - "data-memocombinators" = callPackage - ({ mkDerivation, array, base, data-inttrie, stdenv }: - mkDerivation { - pname = "data-memocombinators"; - version = "0.5.1"; - sha256 = "b4341d2024b84a43f92edc39f6d6766bf4f0f00a40fd834b9f6f8e987b606ed7"; - libraryHaskellDepends = [ array base data-inttrie ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/luqui/data-memocombinators"; - description = "Combinators for building memo tables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-msgpack" = callPackage - ({ mkDerivation, base, binary, bytestring, data-binary-ieee754 - , data-msgpack-types, groom, stdenv, text - }: - mkDerivation { - pname = "data-msgpack"; - version = "0.0.12"; - sha256 = "5c9f8b04fbc30368e0a085de2c33e08cb0601fc9e95f767c38435d5a0ce1f487"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring data-binary-ieee754 data-msgpack-types text - ]; - executableHaskellDepends = [ base bytestring groom ]; - doHaddock = false; - doCheck = false; - homepage = "http://msgpack.org/"; - description = "A Haskell implementation of MessagePack"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-msgpack-types" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, hashable - , QuickCheck, stdenv, text, unordered-containers, vector, void - }: - mkDerivation { - pname = "data-msgpack-types"; - version = "0.0.2"; - sha256 = "54fdda1fa485c9f86f1f0f2aa8cc71d111b2f36504b7fb9c0a2de95c0b1287a5"; - libraryHaskellDepends = [ - base bytestring containers deepseq hashable QuickCheck text - unordered-containers vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://msgpack.org/"; - description = "A Haskell implementation of MessagePack"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-or" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-or"; - version = "1.0.0.5"; - sha256 = "9defb64f1c7210460a940beb7f32ba1c79f363fbf3a5bd126feb876930c6e672"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "A data type for non-exclusive disjunction"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-ordlist" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "data-ordlist"; - version = "0.4.7.0"; - sha256 = "6f6c1e7a9a9155ad78ca78cb9abd6f7e2e1c78b3e549b179dc0874e6428f490d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Set and bag operations on ordered lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-ref" = callPackage - ({ mkDerivation, base, data-accessor, stdenv, stm, transformers }: - mkDerivation { - pname = "data-ref"; - version = "0.0.2"; - sha256 = "7b14399e9d8df50ed7ee3b10ea2ea4b7fdd8922896da000b171eac742ffb0f77"; - libraryHaskellDepends = [ base data-accessor stm transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://wiki.haskell.org/Mutable_variable"; - description = "Unify STRef and IORef in plain Haskell 98"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-reify" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "data-reify"; - version = "0.6.1"; - sha256 = "61350a1e96cb1276c2b6b8b13fa1bade5d4e63c702509a3f5e90bbc19ad9b202"; - revision = "1"; - editedCabalFile = "0ixlibqrz7fd4bg9vnnd431a9kqvz4ajx8sbgyvpx9l2yjrabwzp"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://ku-fpg.github.io/software/data-reify/"; - description = "Reify a recursive data structure into an explicit graph"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-serializer" = callPackage - ({ mkDerivation, base, binary, bytestring, cereal, data-endian - , parsers, semigroups, split, stdenv - }: - mkDerivation { - pname = "data-serializer"; - version = "0.3.4"; - sha256 = "e793156aa2262ca294183a9d045f37e6ff2070825b40d2ffe5a8d64e0b455ec6"; - libraryHaskellDepends = [ - base binary bytestring cereal data-endian parsers semigroups split - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/data-serializer"; - description = "Common API for serialization libraries"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-textual" = callPackage - ({ mkDerivation, base, bytestring, parsers, stdenv, text - , text-latin1, text-printer - }: - mkDerivation { - pname = "data-textual"; - version = "0.3.0.2"; - sha256 = "44c530b081a486c50d668004637814223d1f1890716d39f7b692c83644d29830"; - libraryHaskellDepends = [ - base bytestring parsers text text-latin1 text-printer - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/data-textual"; - description = "Human-friendly textual representations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "data-tree-print" = callPackage - ({ mkDerivation, base, pretty, stdenv, syb }: - mkDerivation { - pname = "data-tree-print"; - version = "0.1.0.2"; - sha256 = "c3ef24d803946a3caf0ff0e51f0c0b9f49055d7dc790518ad518d568d5195002"; - libraryHaskellDepends = [ base pretty syb ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lspitzner/data-tree-print"; - description = "Print Data instances as a nested tree"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "datadog" = callPackage - ({ mkDerivation, aeson, auto-update, base, buffer-builder - , bytestring, containers, dlist, http-client, http-client-tls - , http-types, lens, lifted-base, monad-control, network, old-locale - , stdenv, text, time, transformers-base, unliftio - , unordered-containers, vector - }: - mkDerivation { - pname = "datadog"; - version = "0.2.3.0"; - sha256 = "9bb5eda1c704261160e0714499eef8c03dc2dd4d8673ad085e80c164445c1934"; - libraryHaskellDepends = [ - aeson auto-update base buffer-builder bytestring containers dlist - http-client http-client-tls http-types lens lifted-base - monad-control network old-locale text time transformers-base - unliftio unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iand675/datadog"; - description = "Datadog client for Haskell. Supports both the HTTP API and StatsD."; - license = stdenv.lib.licenses.mit; - }) {}; - "dataurl" = callPackage - ({ mkDerivation, attoparsec, base, base64-bytestring, bytestring - , stdenv, text - }: - mkDerivation { - pname = "dataurl"; - version = "0.1.0.0"; - sha256 = "b1e72b48dbe72520f0b43b06ae75cb025e9750213982583f527e16b605660fb2"; - libraryHaskellDepends = [ - attoparsec base base64-bytestring bytestring text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/agrafix/dataurl#readme"; - description = "Handle data-urls"; - license = stdenv.lib.licenses.mit; - }) {}; - "dbcleaner" = callPackage - ({ mkDerivation, base, postgresql-simple, stdenv, text }: - mkDerivation { - pname = "dbcleaner"; - version = "0.1.3"; - sha256 = "0817b0e1698d8d48ac58d631f51dc6e34663f4e97af7bac3fd03e31349830f35"; - libraryHaskellDepends = [ base postgresql-simple text ]; - doHaddock = false; - doCheck = false; - description = "Clean database tables automatically around hspec tests"; - license = stdenv.lib.licenses.mit; - }) {}; - "dbus" = callPackage - ({ mkDerivation, base, bytestring, cereal, conduit, containers - , deepseq, exceptions, filepath, lens, network, parsec, random - , split, stdenv, template-haskell, text, th-lift, transformers - , unix, vector, xml-conduit, xml-types - }: - mkDerivation { - pname = "dbus"; - version = "1.2.3"; - sha256 = "ec2782dae39774b4f9b9eb74d357af54b4e98f72540b40b980d0cf4425d3a013"; - libraryHaskellDepends = [ - base bytestring cereal conduit containers deepseq exceptions - filepath lens network parsec random split template-haskell text - th-lift transformers unix vector xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rblaze/haskell-dbus#readme"; - description = "A client library for the D-Bus IPC system"; - license = stdenv.lib.licenses.asl20; - }) {}; - "debian-build" = callPackage - ({ mkDerivation, base, directory, filepath, process, split, stdenv - , transformers - }: - mkDerivation { - pname = "debian-build"; - version = "0.10.1.2"; - sha256 = "1cd3b5f099f0d26d0f14e2611b11b6599e4fad4cc217b88b61d1e478d3ec1641"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base directory filepath process split transformers - ]; - executableHaskellDepends = [ base filepath transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://twitter.com/khibino/"; - description = "Debian package build sequence tools"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "debug" = callPackage - ({ mkDerivation, aeson, base, bytestring, clock, containers - , deepseq, directory, extra, filepath, ghc-prim, hashable, Hoed - , libgraph, open-browser, prettyprinter - , prettyprinter-compat-ansi-wl-pprint, stdenv, template-haskell - , text, uniplate, unordered-containers, vector, yaml - }: - mkDerivation { - pname = "debug"; - version = "0.1.1"; - sha256 = "330f44c6341833c5e0cccf08fa7674dd54f14a843a2b5703e25ce08ffed49248"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring clock containers deepseq directory extra - ghc-prim hashable Hoed libgraph open-browser prettyprinter - prettyprinter-compat-ansi-wl-pprint template-haskell text uniplate - unordered-containers vector - ]; - executableHaskellDepends = [ aeson base directory filepath yaml ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/debug"; - description = "Simple trace-based debugger"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "debug-trace-var" = callPackage - ({ mkDerivation, base, stdenv, template-haskell, unicode-show }: - mkDerivation { - pname = "debug-trace-var"; - version = "0.2.0"; - sha256 = "174f79d31d905c99adc880dd79899b3f335e1a7c552a7bcff8664abbffb6b489"; - libraryHaskellDepends = [ base template-haskell unicode-show ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ncaq/debug-trace-var#readme"; - description = "You do not have to write variable names twice in Debug.Trace"; - license = stdenv.lib.licenses.mit; - }) {}; - "decidable" = callPackage - ({ mkDerivation, base, singletons, stdenv }: - mkDerivation { - pname = "decidable"; - version = "0.1.4.0"; - sha256 = "7eb222eaa16bdc1780def19cdb7d428c8b44dec1f5f6cf96ce77c4b8a1149c1d"; - libraryHaskellDepends = [ base singletons ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/decidable#readme"; - description = "Combinators for manipulating dependently-typed predicates"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "declarative" = callPackage - ({ mkDerivation, base, hasty-hamiltonian, kan-extensions, lens - , mcmc-types, mighty-metropolis, mwc-probability, pipes, primitive - , speedy-slice, stdenv, transformers - }: - mkDerivation { - pname = "declarative"; - version = "0.5.2"; - sha256 = "1ea8cf5eb0283ed9d9a7e1d46e5386960587c1671f7ce568d6eaf1d1b8ba9a04"; - libraryHaskellDepends = [ - base hasty-hamiltonian kan-extensions lens mcmc-types - mighty-metropolis mwc-probability pipes primitive speedy-slice - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jtobin/declarative"; - description = "DIY Markov Chains"; - license = stdenv.lib.licenses.mit; - }) {}; - "deepseq-generics" = callPackage - ({ mkDerivation, base, deepseq, ghc-prim, stdenv }: - mkDerivation { - pname = "deepseq-generics"; - version = "0.2.0.0"; - sha256 = "b0b3ef5546c0768ef9194519a90c629f8f2ba0348487e620bb89d512187c7c9d"; - revision = "3"; - editedCabalFile = "0734x6dm7ny1422n5ik4agzmjybvd3yybj1mnrc8z0kb89xdprcs"; - libraryHaskellDepends = [ base deepseq ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/deepseq-generics"; - description = "GHC.Generics-based Control.DeepSeq.rnf implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "deferred-folds" = callPackage - ({ mkDerivation, base, bytestring, containers, foldl, hashable - , primitive, stdenv, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "deferred-folds"; - version = "0.9.10"; - sha256 = "dd01a39903e9395d0fa38c05609176b3742f55dab5919ae54140f742363b6b67"; - libraryHaskellDepends = [ - base bytestring containers foldl hashable primitive transformers - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/metrix-ai/deferred-folds"; - description = "Abstractions over deferred folds"; - license = stdenv.lib.licenses.mit; - }) {}; - "dejafu" = callPackage - ({ mkDerivation, base, concurrency, containers, contravariant - , deepseq, exceptions, leancheck, profunctors, random, stdenv - , transformers - }: - mkDerivation { - pname = "dejafu"; - version = "1.11.0.5"; - sha256 = "62736971b8c77ba0401efd3e78b1c06523e880780509b5304a07870ccc94eca2"; - libraryHaskellDepends = [ - base concurrency containers contravariant deepseq exceptions - leancheck profunctors random transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/dejafu"; - description = "A library for unit-testing concurrent programs"; - license = stdenv.lib.licenses.mit; - }) {}; - "dense-linear-algebra" = callPackage - ({ mkDerivation, base, deepseq, math-functions, primitive, stdenv - , vector, vector-algorithms, vector-binary-instances - , vector-th-unbox - }: - mkDerivation { - pname = "dense-linear-algebra"; - version = "0.1.0.0"; - sha256 = "f7777a7931b40332ebbc716f64abb63697cbab0128e5c1228d47760c5597f2d4"; - libraryHaskellDepends = [ - base deepseq math-functions primitive vector vector-algorithms - vector-binary-instances vector-th-unbox - ]; - doHaddock = false; - doCheck = false; - description = "Simple and incomplete pure haskell implementation of linear algebra"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "dependent-map" = callPackage - ({ mkDerivation, base, containers, dependent-sum, stdenv }: - mkDerivation { - pname = "dependent-map"; - version = "0.2.4.0"; - sha256 = "5db396bdb5d156434af920c074316c3b84b4d39ba8e1cd349c7bb6679cb28246"; - libraryHaskellDepends = [ base containers dependent-sum ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/dependent-map"; - description = "Dependent finite maps (partial dependent products)"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "dependent-sum" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "dependent-sum"; - version = "0.4"; - sha256 = "a8deecb4153a1878173f8d0a18de0378ab068bc15e5035b9e4cb478e8e4e1a1e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/dependent-sum"; - description = "Dependent sum type"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "dependent-sum-template" = callPackage - ({ mkDerivation, base, dependent-sum, stdenv, template-haskell - , th-extras - }: - mkDerivation { - pname = "dependent-sum-template"; - version = "0.0.0.6"; - sha256 = "994cb4891949cad1b9ca268052377c58c174f77a469cae44742ac83727be91ad"; - libraryHaskellDepends = [ - base dependent-sum template-haskell th-extras - ]; - doHaddock = false; - doCheck = false; - homepage = "/dev/null"; - description = "Template Haskell code to generate instances of classes in dependent-sum package"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "deque" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "deque"; - version = "0.2.7"; - sha256 = "99513020c8048ad8c13962b8774a5e21d50216cde22c6b3184834b6539f550f3"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/deque"; - description = "Double-ended queue"; - license = stdenv.lib.licenses.mit; - }) {}; - "deriveJsonNoPrefix" = callPackage - ({ mkDerivation, aeson, base, stdenv, template-haskell }: - mkDerivation { - pname = "deriveJsonNoPrefix"; - version = "0.1.0.1"; - sha256 = "1ae39ca61cdb6df1630a3b5e532a139767b0fc1b5fb5c1cd66603bc4020a93ff"; - libraryHaskellDepends = [ aeson base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/igrep/deriveJsonNoPrefix"; - description = "Derive ToJSON/FromJSON instances in a more prefix-friendly manner"; - license = stdenv.lib.licenses.asl20; - }) {}; - "deriving-compat" = callPackage - ({ mkDerivation, base, containers, ghc-boot-th, ghc-prim, stdenv - , template-haskell, th-abstraction, transformers - , transformers-compat - }: - mkDerivation { - pname = "deriving-compat"; - version = "0.5.4"; - sha256 = "9963fad223506fbd9cf6cc723c789b1416bedb1ff8109466488320a9f637a74d"; - libraryHaskellDepends = [ - base containers ghc-boot-th ghc-prim template-haskell - th-abstraction transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-compat/deriving-compat"; - description = "Backports of GHC deriving extensions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "derulo" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "derulo"; - version = "1.0.5"; - sha256 = "9ed69dd320fafe190d296ae24aaf4d1e85688cdb8240cf1fea187a0bb3a1cadf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/derulo#readme"; - description = "Parse and render JSON simply"; - license = stdenv.lib.licenses.mit; - }) {}; - "detour-via-sci" = callPackage - ({ mkDerivation, aeson, base, cassava, newtype, scientific - , siggy-chardust, stdenv, template-haskell - }: - mkDerivation { - pname = "detour-via-sci"; - version = "1.0.0"; - sha256 = "451e1194f7bf6a7dea02379679c790313cc20423271fd8e98f164c942e3d81e4"; - revision = "1"; - editedCabalFile = "00dj8vf9gg9ww37sir6mblf3xhcpam8qgfz5bfana23arhf2cixj"; - libraryHaskellDepends = [ - aeson base cassava newtype scientific siggy-chardust - template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/blockscope/flare-timing/tree/master/detour-via-sci#readme"; - description = "JSON and CSV encoding for rationals as decimal point numbers"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "dhall" = callPackage - ({ mkDerivation, ansi-terminal, base, bytestring, case-insensitive - , cborg, containers, contravariant, cryptonite, Diff, directory - , dotgen, exceptions, filepath, haskeline, http-client - , http-client-tls, http-types, lens-family-core, megaparsec, memory - , mtl, optparse-applicative, parsers, prettyprinter - , prettyprinter-ansi-terminal, repline, scientific, serialise - , stdenv, template-haskell, text, transformers - , unordered-containers, uri-encode, vector - }: - mkDerivation { - pname = "dhall"; - version = "1.19.1"; - sha256 = "f8d32a4415c67bbae43d90780c5707cd471a408f20959d233f14b91c3577d291"; - revision = "1"; - editedCabalFile = "193h4dmlz1asfr1ldy0saa9spgp64xh60xh3yywzn9lz0hxzbfpg"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base bytestring case-insensitive cborg containers - contravariant cryptonite Diff directory dotgen exceptions filepath - haskeline http-client http-client-tls http-types lens-family-core - megaparsec memory mtl optparse-applicative parsers prettyprinter - prettyprinter-ansi-terminal repline scientific serialise - template-haskell text transformers unordered-containers uri-encode - vector - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A configuration language guaranteed to terminate"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dhall-bash" = callPackage - ({ mkDerivation, base, bytestring, containers, dhall - , neat-interpolation, optparse-generic, shell-escape, stdenv, text - }: - mkDerivation { - pname = "dhall-bash"; - version = "1.0.18"; - sha256 = "ceed4dae99f78da28ce68a04cecac2f221167b2301d28207a05b413ec367cc0c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers dhall neat-interpolation shell-escape - text - ]; - executableHaskellDepends = [ - base bytestring dhall optparse-generic text - ]; - doHaddock = false; - doCheck = false; - description = "Compile Dhall to Bash"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dhall-json" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, dhall - , optparse-applicative, stdenv, text, unordered-containers, vector - , yaml - }: - mkDerivation { - pname = "dhall-json"; - version = "1.2.6"; - sha256 = "9989a705a780ccc8b40f242e5dcb8949ade590a0180ae9559bffa25d829d2838"; - revision = "1"; - editedCabalFile = "1x6dgsqcgd8mvqwqq53aj8xgnfin6c66wn8vc7ikxiy0gilp686x"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base dhall optparse-applicative text unordered-containers - ]; - executableHaskellDepends = [ - aeson aeson-pretty base bytestring dhall optparse-applicative text - vector yaml - ]; - doHaddock = false; - doCheck = false; - description = "Compile Dhall to JSON or YAML"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dhall-text" = callPackage - ({ mkDerivation, base, dhall, optparse-applicative, stdenv, text }: - mkDerivation { - pname = "dhall-text"; - version = "1.0.15"; - sha256 = "afa2dd0cbb6d261b5cf79988f673cf2405f5419c306c55181d9aae3ec6c932b2"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base dhall optparse-applicative text - ]; - doHaddock = false; - doCheck = false; - description = "Template text using Dhall"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "di-core" = callPackage - ({ mkDerivation, base, containers, safe-exceptions, stdenv, stm - , time - }: - mkDerivation { - pname = "di-core"; - version = "1.0.3"; - sha256 = "f0900e071c6a4fd99ac5588b1801333bcd50aa73a212222b29c731494d52dfe5"; - libraryHaskellDepends = [ - base containers safe-exceptions stm time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/di"; - description = "Typeful hierarchical structured logging without monad towers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "di-monad" = callPackage - ({ mkDerivation, base, containers, di-core, exceptions, mtl, pipes - , stdenv, stm, transformers - }: - mkDerivation { - pname = "di-monad"; - version = "1.3"; - sha256 = "54e35bfbd60bcf18b72591a261cdc9cac0cde00858b697eb63066e3a983c3305"; - libraryHaskellDepends = [ - base containers di-core exceptions mtl pipes stm transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/di"; - description = "mtl flavoured typeful hierarchical structured logging for di-core"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams" = callPackage - ({ mkDerivation, diagrams-contrib, diagrams-core, diagrams-lib - , diagrams-svg, stdenv - }: - mkDerivation { - pname = "diagrams"; - version = "1.4"; - sha256 = "8608f6fa682b8c43b9fbe7c42c033c7a6de0680bd7383f6a81ea8bca37999139"; - libraryHaskellDepends = [ - diagrams-contrib diagrams-core diagrams-lib diagrams-svg - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams"; - description = "Embedded domain-specific language for declarative vector graphics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams-contrib" = callPackage - ({ mkDerivation, base, circle-packing, colour, containers - , cubicbezier, data-default, data-default-class, diagrams-core - , diagrams-lib, diagrams-solve, force-layout, hashable, lens - , linear, mfsolve, MonadRandom, monoid-extras, mtl, mtl-compat - , parsec, random, semigroups, split, stdenv, text - }: - mkDerivation { - pname = "diagrams-contrib"; - version = "1.4.3"; - sha256 = "65fba87bb7752b1053fb3ab8e4ae30d5920208ff48441c4d8969cdbe73402007"; - revision = "3"; - editedCabalFile = "0mm1mmagx6q8g6dxk1cagqka38z6393ihp0lvf6095prlvidasqs"; - libraryHaskellDepends = [ - base circle-packing colour containers cubicbezier data-default - data-default-class diagrams-core diagrams-lib diagrams-solve - force-layout hashable lens linear mfsolve MonadRandom monoid-extras - mtl mtl-compat parsec random semigroups split text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams/"; - description = "Collection of user contributions to diagrams EDSL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams-core" = callPackage - ({ mkDerivation, adjunctions, base, containers, distributive - , dual-tree, lens, linear, monoid-extras, mtl, profunctors - , semigroups, stdenv, unordered-containers - }: - mkDerivation { - pname = "diagrams-core"; - version = "1.4.1.1"; - sha256 = "a182e9f99e3664efdfa5e18f4b403703112fba33c5b877a91c9eabed1d8bb682"; - revision = "2"; - editedCabalFile = "1lf7xcq42l4hjksgp1nhj7600shvw9q5a27bh729fyfphmvv3xkf"; - libraryHaskellDepends = [ - adjunctions base containers distributive dual-tree lens linear - monoid-extras mtl profunctors semigroups unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams"; - description = "Core libraries for diagrams EDSL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams-lib" = callPackage - ({ mkDerivation, active, adjunctions, array, base, bytestring - , cereal, colour, containers, data-default-class, diagrams-core - , diagrams-solve, directory, distributive, dual-tree, exceptions - , filepath, fingertree, fsnotify, hashable, intervals, JuicyPixels - , lens, linear, monoid-extras, mtl, optparse-applicative, process - , profunctors, semigroups, stdenv, tagged, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "diagrams-lib"; - version = "1.4.2.3"; - sha256 = "25a7adccbe3175cdb081a3824413ba431e561026c6ddd9a647cd133e4bfcbe9c"; - revision = "2"; - editedCabalFile = "0gn1lpsq1v9qpyhpizyknn3sfixg1b64s0dsl1jf25lz4kcrpbs7"; - libraryHaskellDepends = [ - active adjunctions array base bytestring cereal colour containers - data-default-class diagrams-core diagrams-solve directory - distributive dual-tree exceptions filepath fingertree fsnotify - hashable intervals JuicyPixels lens linear monoid-extras mtl - optparse-applicative process profunctors semigroups tagged text - transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams"; - description = "Embedded domain-specific language for declarative graphics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams-rasterific" = callPackage - ({ mkDerivation, base, bytestring, containers, data-default-class - , diagrams-core, diagrams-lib, file-embed, filepath, FontyFruity - , hashable, JuicyPixels, lens, mtl, optparse-applicative - , Rasterific, stdenv - }: - mkDerivation { - pname = "diagrams-rasterific"; - version = "1.4.1.1"; - sha256 = "f72a87b421b1da874757256d9c9603c40fdad1f0a82be17bf1806820188a5365"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers data-default-class diagrams-core - diagrams-lib file-embed filepath FontyFruity hashable JuicyPixels - lens mtl optparse-applicative Rasterific - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams/"; - description = "Rasterific backend for diagrams"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams-solve" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "diagrams-solve"; - version = "0.1.1"; - sha256 = "a41f5f410b10f162b1e5c07bd4ca3305544870ff1314ae4f5824c83a31644f9d"; - revision = "4"; - editedCabalFile = "1yjacw17ga4rh6iw70vclk03qm5xjw4y17c7m43gjw8h3cfaq15d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams"; - description = "Pure Haskell solver routines used by diagrams"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "diagrams-svg" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, colour - , containers, diagrams-core, diagrams-lib, filepath, hashable - , JuicyPixels, lens, monoid-extras, mtl, optparse-applicative - , semigroups, split, stdenv, svg-builder, text - }: - mkDerivation { - pname = "diagrams-svg"; - version = "1.4.2"; - sha256 = "5455b68d92826a5405d51490976870cc0fa5b8b56aef0a8f56982b5f48efded2"; - revision = "2"; - editedCabalFile = "15sn85xaachw4cj56w61bjcwrbf4qmnkfl8mbgdapxi5k0y4f2qv"; - libraryHaskellDepends = [ - base base64-bytestring bytestring colour containers diagrams-core - diagrams-lib filepath hashable JuicyPixels lens monoid-extras mtl - optparse-applicative semigroups split svg-builder text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/diagrams/"; - description = "SVG backend for diagrams drawing EDSL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dictionary-sharing" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "dictionary-sharing"; - version = "0.1.0.0"; - sha256 = "8c3b5184d5d6056433d51a49c5402e4ab7b0260073d5342685b8e141d2be5a01"; - revision = "3"; - editedCabalFile = "1mn7jcc7h3b8f1pn9zigqp6mc2n0qb66lms5qnrx4zswdv5w9439"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "Sharing/memoization of class members"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "digest" = callPackage - ({ mkDerivation, base, bytestring, stdenv, zlib }: - mkDerivation { - pname = "digest"; - version = "0.0.1.2"; - sha256 = "641717eb16392abf8965986a9e8dc21eebf1d97775bbb6923c7b7f8fee17fe11"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ zlib ]; - doHaddock = false; - doCheck = false; - description = "Various cryptographic hashes for bytestrings; CRC32 and Adler32 for now"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) zlib;}; - "digits" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv }: - mkDerivation { - pname = "digits"; - version = "0.3.1"; - sha256 = "a8499c9745dcf8a4e6c48594f555e6c6276e8d91c457dcc562a370ccadcd6a2c"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - description = "Converts integers to lists of digits and back"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "direct-sqlite" = callPackage - ({ mkDerivation, base, bytestring, semigroups, stdenv, text }: - mkDerivation { - pname = "direct-sqlite"; - version = "2.3.23"; - sha256 = "1fdb6f6ea34ac978e72f61a845786e4b4b945014ccc64ddb07ddcafa1254937b"; - libraryHaskellDepends = [ base bytestring semigroups text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/IreneKnapp/direct-sqlite"; - description = "Low-level binding to SQLite3. Includes UTF8 and BLOB support."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "directory-tree" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv }: - mkDerivation { - pname = "directory-tree"; - version = "0.12.1"; - sha256 = "e2084495b3a226cf54d949635c86fc14e89daa09d86cce39e3c3cf898ae6e517"; - libraryHaskellDepends = [ base directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "http://brandon.si/code/directory-tree-module-released/"; - description = "A simple directory-like tree datatype, with useful IO functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "discount" = callPackage - ({ mkDerivation, base, bytestring, markdown, stdenv, text }: - mkDerivation { - pname = "discount"; - version = "0.1.1"; - sha256 = "e99cb7fdd1896dd1e525616597f936c1305a657cea1ef82cc0b3dcfe5afa34e0"; - libraryHaskellDepends = [ base bytestring text ]; - librarySystemDepends = [ markdown ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lightquake/discount"; - description = "Haskell bindings to the discount Markdown library"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) markdown;}; - "disk-free-space" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "disk-free-space"; - version = "0.1.0.1"; - sha256 = "f17a4f9c3b41083ccbb6c11b2debdbc705f86097b7459ff0f46cc01d2692381f"; - revision = "3"; - editedCabalFile = "0x0wjycr3rhw9vcq51b4sz8cf7mcvx7whhywv72y25r9385lxb3i"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/disk-free-space"; - description = "Retrieve information about disk space usage"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "distributed-closure" = callPackage - ({ mkDerivation, async, base, binary, bytestring, constraints - , stdenv, syb, template-haskell - }: - mkDerivation { - pname = "distributed-closure"; - version = "0.4.1"; - sha256 = "de4efea05ec685e9b5b087857ea3460a24d4314862e329279b99ca914b2e7ce6"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring constraints syb template-haskell - ]; - executableHaskellDepends = [ async base binary bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tweag/distributed-closure"; - description = "Serializable closures for distributed programming"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "distribution-nixpkgs" = callPackage - ({ mkDerivation, aeson, base, bytestring, Cabal, containers - , deepseq, language-nix, lens, pretty, process, split, stdenv - }: - mkDerivation { - pname = "distribution-nixpkgs"; - version = "1.1.1"; - sha256 = "55eb858a98995f4f2b2eec5fcbc44ba1901284e915ef5e18609e253a5a662499"; - libraryHaskellDepends = [ - aeson base bytestring Cabal containers deepseq language-nix lens - pretty process split - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/distribution-nixpkgs#readme"; - description = "Types and functions to manipulate the Nixpkgs distribution"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "distribution-opensuse" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, containers - , deepseq, Diff, extra, foldl, hashable, hsemail, mtl, parsec-class - , pretty, stdenv, text, time, turtle - }: - mkDerivation { - pname = "distribution-opensuse"; - version = "1.1.1"; - sha256 = "067f08a458aed98e4a67e80ffc42edf99393a861a0d0ecb1950d913d15a332b7"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base binary bytestring containers deepseq Diff extra foldl - hashable hsemail mtl parsec-class pretty text time turtle - ]; - executableHaskellDepends = [ base containers text turtle ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/distribution-opensuse/"; - description = "Types, functions, and tools to manipulate the openSUSE distribution"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "distributive" = callPackage - ({ mkDerivation, base, base-orphans, Cabal, cabal-doctest, stdenv - , tagged, transformers - }: - mkDerivation { - pname = "distributive"; - version = "0.6"; - sha256 = "a4af1341a63a430dc569dd1e59631f127c40ebdd353a945a74d18682f6bdc1d4"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ base base-orphans tagged transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/distributive/"; - description = "Distributive functors -- Dual to Traversable"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dlist" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "dlist"; - version = "0.8.0.5"; - sha256 = "98a88aa839b40d4aee8b08880030d282d627b63de311f5414dca6e831a951b43"; - revision = "1"; - editedCabalFile = "1jh8zw1vpx0ld4gmc4l0pqpgbl9frpgbyw9kvsr56bnz0v2rgqpx"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/spl/dlist"; - description = "Difference lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dlist-instances" = callPackage - ({ mkDerivation, base, dlist, semigroups, stdenv }: - mkDerivation { - pname = "dlist-instances"; - version = "0.1.1.1"; - sha256 = "d14a10c06f52fb412b2c1066d729f5534aa43204221e7ba7d81d935c44ce4f5b"; - libraryHaskellDepends = [ base dlist semigroups ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/gregwebs/dlist-instances"; - description = "Difference lists instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dlist-nonempty" = callPackage - ({ mkDerivation, base, base-compat, deepseq, dlist, semigroupoids - , stdenv - }: - mkDerivation { - pname = "dlist-nonempty"; - version = "0.1.1"; - sha256 = "40e8a64c979ca07b4f67a38878d1d13c1127fe2d1ad6b2b4daff0ee2dbd54b33"; - revision = "4"; - editedCabalFile = "10kkj4sf1bn87z6744p9gn6mkciqri2d3l9vmg9ylpi8g7priil2"; - libraryHaskellDepends = [ - base base-compat deepseq dlist semigroupoids - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/dlist-nonempty"; - description = "Non-empty difference lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dns" = callPackage - ({ mkDerivation, async, attoparsec, auto-update, base - , base64-bytestring, binary, bytestring, containers, cryptonite - , iproute, mtl, network, psqueues, safe, stdenv, time - }: - mkDerivation { - pname = "dns"; - version = "3.0.4"; - sha256 = "7b3433b536b7d225914d7b8495c7af1927d9554538d7d86c2644ccf9d3fa44a9"; - revision = "1"; - editedCabalFile = "15jafrm919w4p23m7kpmyc1yvzpy88jcccycc00dza69d119zjdr"; - libraryHaskellDepends = [ - async attoparsec auto-update base base64-bytestring binary - bytestring containers cryptonite iproute mtl network psqueues safe - time - ]; - doHaddock = false; - doCheck = false; - testTarget = "spec"; - description = "DNS library in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "do-list" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "do-list"; - version = "1.0.1"; - sha256 = "b377193461b0ad7a81f9e66bcf10f8838b6f1e39f4a5de3b2e2f45c749c5b694"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tserduke/do-list#readme"; - description = "Do notation for free"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dockerfile" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "dockerfile"; - version = "0.2.0"; - sha256 = "97a1992559bf510a7b17e5678fd29e3b5c4a9059a0483e4ab36ef8ec723fb5aa"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/creichert/dockerfile#readme"; - description = "A Haskell DSL for generating Dockerfiles"; - license = stdenv.lib.licenses.mit; - }) {}; - "docopt" = callPackage - ({ mkDerivation, base, containers, parsec, stdenv, template-haskell - , th-lift - }: - mkDerivation { - pname = "docopt"; - version = "0.7.0.5"; - sha256 = "15790808a4896bbf0748c1c0f3ab63c07aea4621d95b93a39886813f829d05ee"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base containers parsec template-haskell th-lift - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/docopt/docopt.hs"; - description = "A command-line interface parser that will make you smile"; - license = stdenv.lib.licenses.mit; - }) {}; - "doctemplates" = callPackage - ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring - , containers, parsec, scientific, stdenv, text - , unordered-containers, vector - }: - mkDerivation { - pname = "doctemplates"; - version = "0.2.2.1"; - sha256 = "6b0cfb565fc7fa90d71ac56b83aedecf670678e6f1441278877fbf399e9bccbf"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base blaze-html blaze-markup bytestring containers parsec - scientific text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jgm/doctemplates#readme"; - description = "Pandoc-style document templates"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "doctest" = callPackage - ({ mkDerivation, base, base-compat, code-page, deepseq, directory - , filepath, ghc, ghc-paths, process, stdenv, syb, transformers - }: - mkDerivation { - pname = "doctest"; - version = "0.16.0.1"; - sha256 = "9b5275497330607f66aaf2625b798b2ad566867fed3f52cea9de31a23361d780"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base base-compat code-page deepseq directory filepath ghc ghc-paths - process syb transformers - ]; - executableHaskellDepends = [ - base base-compat code-page deepseq directory filepath ghc ghc-paths - process syb transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/doctest#readme"; - description = "Test interactive Haskell examples"; - license = stdenv.lib.licenses.mit; - }) {}; - "doctest-discover" = callPackage - ({ mkDerivation, aeson, base, bytestring, directory, doctest - , filepath, stdenv - }: - mkDerivation { - pname = "doctest-discover"; - version = "0.2.0.0"; - sha256 = "a953aa50837e52efc766a77e382c2be2acbc887fa6dadbc54b756f59d6c49ec8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring directory doctest filepath - ]; - executableHaskellDepends = [ - aeson base bytestring directory doctest filepath - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/karun012/doctest-discover"; - description = "Easy way to run doctests via cabal"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "doctest-driver-gen" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "doctest-driver-gen"; - version = "0.3.0.0"; - sha256 = "614245e6b957ff3d380ef33e750df1ac109870c6d7de242ce5f999034a70a58e"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Hexirp/doctest-driver-gen#readme"; - description = "Generate driver file for doctest's cabal integration"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dom-parser" = callPackage - ({ mkDerivation, base, case-insensitive, containers, lens, mtl - , scientific, semigroups, stdenv, text, transformers, xml-conduit - , xml-lens - }: - mkDerivation { - pname = "dom-parser"; - version = "3.1.0"; - sha256 = "d7e15cae0b27d708389160517b1616343da1911baf95f2c97e213732a0262ac3"; - libraryHaskellDepends = [ - base case-insensitive containers lens mtl scientific semigroups - text transformers xml-conduit xml-lens - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/typeable/dom-parser"; - description = "Simple monadic DOM parser"; - license = stdenv.lib.licenses.mit; - }) {}; - "dotenv" = callPackage - ({ mkDerivation, base, base-compat, containers, directory - , exceptions, megaparsec, optparse-applicative, process, stdenv - , text, transformers, yaml - }: - mkDerivation { - pname = "dotenv"; - version = "0.8.0.0"; - sha256 = "9e9621053792480de87fd0344bf7fdbe7c118d9ec48317a7d4c0cd02f9f9372c"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base base-compat containers directory exceptions megaparsec process - text transformers yaml - ]; - executableHaskellDepends = [ - base base-compat megaparsec optparse-applicative process text - transformers yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stackbuilders/dotenv-hs"; - description = "Loads environment variables from dotenv files"; - license = stdenv.lib.licenses.mit; - }) {}; - "dotgen" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "dotgen"; - version = "0.4.2"; - sha256 = "cf0de20a435d74aeb9a32b8bcb3ebfa1b6659ac3f26edefe2df9e1aaf1481891"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ku-fpg/dotgen"; - description = "A simple interface for building .dot graph files."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dotnet-timespan" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "dotnet-timespan"; - version = "0.0.1.0"; - sha256 = "d8ca8dffbc916ff5139d6f0df4a22c947ab5f996c376f1ab8c2e120789209ac3"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/YoEight/dotnet-timespan"; - description = ".NET TimeSpan"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "double-conversion" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, stdenv, text }: - mkDerivation { - pname = "double-conversion"; - version = "2.0.2.0"; - sha256 = "44cde172395401169e844d6791b6eb0ef2c2e55a08de8dda96551cfe029ba26b"; - libraryHaskellDepends = [ base bytestring ghc-prim text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/double-conversion"; - description = "Fast conversion between double precision floating point and text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "download" = callPackage - ({ mkDerivation, base, bytestring, feed, stdenv, tagsoup, xml }: - mkDerivation { - pname = "download"; - version = "0.3.2.6"; - sha256 = "a06d401a2ca58b6ee494ce462c753939ef0a2d11b4d475ae40848884fb44eef2"; - libraryHaskellDepends = [ base bytestring feed tagsoup xml ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/download"; - description = "High-level file download based on URLs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "drinkery" = callPackage - ({ mkDerivation, base, exceptions, mtl, stdenv, transformers }: - mkDerivation { - pname = "drinkery"; - version = "0.4"; - sha256 = "3860b076f71e05179c7adfc988baf90cf85d0206cfd6a0945e5b354827d8b5b0"; - libraryHaskellDepends = [ base exceptions mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/drinkery#readme"; - description = "Boozy streaming library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dsp" = callPackage - ({ mkDerivation, array, base, containers, random, stdenv }: - mkDerivation { - pname = "dsp"; - version = "0.2.4.1"; - sha256 = "3322954e87b279a94c1fb43a5d16e4d0022e7d422a2d2b9be0f3c4b4d346e42c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ array base containers random ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/DSP"; - description = "Haskell Digital Signal Processing"; - license = "GPL"; - }) {}; - "dual-tree" = callPackage - ({ mkDerivation, base, monoid-extras, newtype-generics, semigroups - , stdenv - }: - mkDerivation { - pname = "dual-tree"; - version = "0.2.2"; - sha256 = "7412d70cf239da98b5a21df1cbbeab7319fd23d757427d4f5ce71b907dbaa9eb"; - revision = "2"; - editedCabalFile = "0r8idr1haqixa9nlp8db5iw9vr9sdk6rcargkr7w7s6i99lm6jmh"; - libraryHaskellDepends = [ - base monoid-extras newtype-generics semigroups - ]; - doHaddock = false; - doCheck = false; - description = "Rose trees with cached and accumulating monoidal annotations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dublincore-xml-conduit" = callPackage - ({ mkDerivation, base, conduit, conduit-combinators - , safe-exceptions, stdenv, text, time, timerep, uri-bytestring - , xml-conduit, xml-types - }: - mkDerivation { - pname = "dublincore-xml-conduit"; - version = "0.1.0.2"; - sha256 = "d47a8dcb21d1866f0229168d11d1da136da3028a2f4252bee61d219988f45f9e"; - revision = "1"; - editedCabalFile = "1rljgmi4jb6yhigfy394jb64q5f5qx7i1g68pw6zgq9ziz91p321"; - libraryHaskellDepends = [ - base conduit conduit-combinators safe-exceptions text time timerep - uri-bytestring xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0ral/dublincore-xml-conduit"; - description = "XML streaming parser/renderer for the Dublin Core standard elements"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "dunai" = callPackage - ({ mkDerivation, base, MonadRandom, stdenv, transformers - , transformers-base - }: - mkDerivation { - pname = "dunai"; - version = "0.5.1"; - sha256 = "27a5ba03273afe4e5d3e947fb65e2d70e2f82cb929316b0c3175d1f2cf95731d"; - libraryHaskellDepends = [ - base MonadRandom transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ivanperez-keera/dunai"; - description = "Generalised reactive framework supporting classic, arrowized and monadic FRP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dunai-core" = callPackage - ({ mkDerivation, base, MonadRandom, stdenv, transformers - , transformers-base - }: - mkDerivation { - pname = "dunai-core"; - version = "0.5.1.0"; - sha256 = "ffaf15694944fe046ba2dd385be2edad7a7bd2b9d766804770af85636a3001dd"; - libraryHaskellDepends = [ - base MonadRandom transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/turion/dunai-core"; - description = "Generalised reactive framework supporting classic, arrowized and monadic FRP. (Core library fork.)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "duration" = callPackage - ({ mkDerivation, base, parsec, stdenv, template-haskell, time }: - mkDerivation { - pname = "duration"; - version = "0.1.0.0"; - sha256 = "a0b154c270be1d9c42a92fdf8198ab1030bf09a119157df33a2a43694fb212a3"; - libraryHaskellDepends = [ base parsec template-haskell time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ryota-ka/duration#readme"; - description = "A tiny compile-time time utility library inspired by zeit/ms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dvorak" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "dvorak"; - version = "0.1.0.0"; - sha256 = "afc8ba89415a01039ccdc719b875826b6b12befb4a6a97bcd7544f22eaffb6cf"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kvanberendonck/codec-dvorak"; - description = "Dvorak encoding for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "dynamic-state" = callPackage - ({ mkDerivation, base, binary, bytestring, hashable, stdenv - , unordered-containers - }: - mkDerivation { - pname = "dynamic-state"; - version = "0.3.1"; - sha256 = "c4d50bdf03e7b2af05ee2b78fdd5dd5d16e72ef5edf78cada60bf4cdc6a23537"; - libraryHaskellDepends = [ - base binary bytestring hashable unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Optionally serializable dynamic state keyed by type"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "dyre" = callPackage - ({ mkDerivation, base, binary, directory, executable-path, filepath - , ghc-paths, io-storage, process, stdenv, time, unix, xdg-basedir - }: - mkDerivation { - pname = "dyre"; - version = "0.8.12"; - sha256 = "e224305cc6b38b4143f49489931c2ea94b326915206d34eddf5b2ee2b5a71682"; - libraryHaskellDepends = [ - base binary directory executable-path filepath ghc-paths io-storage - process time unix xdg-basedir - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/willdonnelly/dyre"; - description = "Dynamic reconfiguration in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "easy-file" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv, time, unix }: - mkDerivation { - pname = "easy-file"; - version = "0.2.2"; - sha256 = "52f52e72ba48d60935932401c233a72bf45c582871238aecc5a18021ce67b47e"; - libraryHaskellDepends = [ base directory filepath time unix ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/kazu-yamamoto/easy-file"; - description = "Cross-platform File handling"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "easytest" = callPackage - ({ mkDerivation, async, base, call-stack, containers, mtl, random - , stdenv, stm, text, transformers - }: - mkDerivation { - pname = "easytest"; - version = "0.2.1"; - sha256 = "1155c3da78460eae48762e041c033d0f64f7644fa94479be2fa1194e3f57be3d"; - libraryHaskellDepends = [ - async base call-stack containers mtl random stm text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/joelburget/easytest"; - description = "Simple, expressive testing library"; - license = stdenv.lib.licenses.mit; - }) {}; - "echo" = callPackage - ({ mkDerivation, base, process, stdenv }: - mkDerivation { - pname = "echo"; - version = "0.1.3"; - sha256 = "704f07310f8272d170f8ab7fb2a2c13f15d8501ef8310801e36964c8eff485ef"; - revision = "1"; - editedCabalFile = "0br8wfiybcw5hand4imiw0i5hacdmrax1dv8g95f35gazffbx42l"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/echo"; - description = "A cross-platform, cross-console way to handle echoing terminal input"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ed25519" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, stdenv }: - mkDerivation { - pname = "ed25519"; - version = "0.0.5.0"; - sha256 = "d8a5958ebfa9309790efade64275dc5c441b568645c45ceed1b0c6ff36d6156d"; - revision = "2"; - editedCabalFile = "1cq6h3jqkb1kvd9fjfhsllg5gq78sdiyf2gy9862xhlbv6wil19f"; - libraryHaskellDepends = [ base bytestring ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "http://thoughtpolice.github.com/hs-ed25519"; - description = "Ed25519 cryptographic signatures"; - license = stdenv.lib.licenses.mit; - }) {}; - "edit-distance" = callPackage - ({ mkDerivation, array, base, containers, random, stdenv }: - mkDerivation { - pname = "edit-distance"; - version = "0.2.2.1"; - sha256 = "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a"; - revision = "1"; - editedCabalFile = "1vjn4ryzdilz7l1ad7czh11nw48h5mj8if7ij3q0mmc3sffa8csd"; - libraryHaskellDepends = [ array base containers random ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/phadej/edit-distance"; - description = "Levenshtein and restricted Damerau-Levenshtein edit distances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "edit-distance-vector" = callPackage - ({ mkDerivation, base, stdenv, vector }: - mkDerivation { - pname = "edit-distance-vector"; - version = "1.0.0.4"; - sha256 = "b7dfddd86d315ef1b0c86415f321efc04b4a1b47a7b13edafc73a6e81b620f1f"; - libraryHaskellDepends = [ base vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/thsutton/edit-distance-vector"; - description = "Calculate edit distances and edit scripts between vectors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "editor-open" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , directory, process, resourcet, stdenv, temporary, transformers - , unix - }: - mkDerivation { - pname = "editor-open"; - version = "0.6.0.0"; - sha256 = "2fc5d19bce2d477935202a5a4522671529d0352a0ee28be1307f8ab391065265"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring conduit conduit-extra directory process resourcet - temporary transformers unix - ]; - executableHaskellDepends = [ - base bytestring conduit conduit-extra resourcet - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pharpend/editor-open"; - description = "Open the user's $VISUAL or $EDITOR for text input"; - license = stdenv.lib.licenses.asl20; - }) {}; - "either" = callPackage - ({ mkDerivation, base, bifunctors, mtl, profunctors, semigroupoids - , semigroups, stdenv - }: - mkDerivation { - pname = "either"; - version = "5.0.1"; - sha256 = "6cb6eb3f60223f5ffedfcd749589e870a81d272e130cafd1d17fb6d3a8939018"; - revision = "2"; - editedCabalFile = "0859h2dc77fq0f14jh11h4i89hrg3iqvzk0yrk78516k6m7n96zc"; - libraryHaskellDepends = [ - base bifunctors mtl profunctors semigroupoids semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/either/"; - description = "Combinators for working with sums"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "either-both" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "either-both"; - version = "0.1.0.0"; - sha256 = "f4b6bbafbc658f028f000fa0711e038206688c9b9ce842bf62e6c3ba16547bd1"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Either or both"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ekg-core" = callPackage - ({ mkDerivation, base, containers, ghc-prim, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "ekg-core"; - version = "0.1.1.6"; - sha256 = "66a8dd79ad27659052168f08dd41fabb8593e364de00fb857ef5cc943acd5742"; - libraryHaskellDepends = [ - base containers ghc-prim text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tibbe/ekg-core"; - description = "Tracking of system metrics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ekg-statsd" = callPackage - ({ mkDerivation, base, bytestring, ekg-core, network, stdenv, text - , time, unordered-containers - }: - mkDerivation { - pname = "ekg-statsd"; - version = "0.2.4.0"; - sha256 = "5e74bf63a1cd347c939d4eb7beb9181556b7bd033a60e5f6f4df0505e98a7adb"; - revision = "3"; - editedCabalFile = "0va7fliya7g546f5qbc42bl7dyh74al38sspd2smjyl7a9d5mmlk"; - libraryHaskellDepends = [ - base bytestring ekg-core network text time unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tibbe/ekg-statsd"; - description = "Push metrics to statsd"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "elerea" = callPackage - ({ mkDerivation, base, containers, stdenv, transformers - , transformers-base - }: - mkDerivation { - pname = "elerea"; - version = "2.9.0"; - sha256 = "901221660b32597803b20fe2e78bb6f1f60f064d04671fb3f0baa05c87446681"; - libraryHaskellDepends = [ - base containers transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - description = "A minimalistic FRP library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "elf" = callPackage - ({ mkDerivation, base, binary, bytestring, stdenv }: - mkDerivation { - pname = "elf"; - version = "0.29"; - sha256 = "426509f12279bdc5a0228f74edef86997dbb47fddc19d83e9815dd301d4a8fac"; - libraryHaskellDepends = [ base binary bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/wangbj/elf"; - description = "An Elf parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "eliminators" = callPackage - ({ mkDerivation, base, extra, singleton-nats, singletons, stdenv - , template-haskell, th-abstraction, th-desugar - }: - mkDerivation { - pname = "eliminators"; - version = "0.5"; - sha256 = "f97f4c7b9a2bdc236cb3b8ea14bfbc02e5b21e181b25848b88ea898cee152d34"; - libraryHaskellDepends = [ - base extra singleton-nats singletons template-haskell - th-abstraction th-desugar - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/eliminators"; - description = "Dependently typed elimination functions using singletons"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "elm-core-sources" = callPackage - ({ mkDerivation, base, bytestring, containers, file-embed, stdenv - , template-haskell - }: - mkDerivation { - pname = "elm-core-sources"; - version = "1.0.0"; - sha256 = "a403505d50cd6ff0d21243db55c6decc6dde14b88a6a393e2b6243f09f6620fb"; - libraryHaskellDepends = [ - base bytestring containers file-embed template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/JoeyEremondi/elm-build-lib"; - description = "Source files for the Elm runtime and standard libraries"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "elm-export" = callPackage - ({ mkDerivation, base, bytestring, containers, directory - , formatting, mtl, stdenv, text, time, wl-pprint-text - }: - mkDerivation { - pname = "elm-export"; - version = "0.6.0.1"; - sha256 = "bf9862015918c72b54b421efcd9d858969dcd94ef0a3d0cb92d9bc0c4363f9d5"; - libraryHaskellDepends = [ - base bytestring containers directory formatting mtl text time - wl-pprint-text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/krisajenkins/elm-export"; - description = "A library to generate Elm types from Haskell source"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "elm2nix" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, async, base, binary - , bytestring, containers, data-default, directory, filepath, here - , mtl, optparse-applicative, process, req, stdenv, text - , transformers, unordered-containers - }: - mkDerivation { - pname = "elm2nix"; - version = "0.1.0"; - sha256 = "9ec1f1f694a38b466ebd03aaa1a035bbdb9bdae390be5b9a030611bcbfd91890"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson async base binary bytestring containers data-default - directory filepath here mtl process req text transformers - unordered-containers - ]; - executableHaskellDepends = [ - ansi-wl-pprint base directory here optparse-applicative - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/domenkozar/elm2nix#readme"; - description = "Turn your Elm project into buildable Nix project"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "emacs-module" = callPackage - ({ mkDerivation, base, bytestring, deepseq, exceptions - , monad-control, mtl, prettyprinter, resourcet - , safe-exceptions-checked, stdenv, template-haskell, text - , transformers-base, vector, void - }: - mkDerivation { - pname = "emacs-module"; - version = "0.1.1"; - sha256 = "1ee0fd9cde2e218d604c5d1670f24194575f975510936510fe9fc2f6e066d9d4"; - libraryHaskellDepends = [ - base bytestring deepseq exceptions monad-control mtl prettyprinter - resourcet safe-exceptions-checked template-haskell text - transformers-base vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sergv/emacs-module"; - description = "Utilities to write Emacs dynamic modules"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "email-validate" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv - , template-haskell - }: - mkDerivation { - pname = "email-validate"; - version = "2.3.2.10"; - sha256 = "53e5b1ea43630e56763a55910fba7ce44fc38858b7f10d2e990f7075672bd371"; - libraryHaskellDepends = [ - attoparsec base bytestring template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Porges/email-validate-hs"; - description = "Email address validation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "emd" = callPackage - ({ mkDerivation, base, binary, containers, data-default-class - , finite-typelits, ghc-typelits-knownnat, ghc-typelits-natnormalise - , stdenv, transformers, typelits-witnesses, vector, vector-sized - }: - mkDerivation { - pname = "emd"; - version = "0.1.4.0"; - sha256 = "fc2775d68f625ae6d3f4bff02b3d62e7ee15f09c123345a0f15a12eb8cf73357"; - libraryHaskellDepends = [ - base binary containers data-default-class finite-typelits - ghc-typelits-knownnat ghc-typelits-natnormalise transformers - typelits-witnesses vector vector-sized - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/emd#readme"; - description = "Empirical Mode Decomposition and Hilbert-Huang Transform"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "enclosed-exceptions" = callPackage - ({ mkDerivation, base, deepseq, lifted-base, monad-control, stdenv - , transformers, transformers-base - }: - mkDerivation { - pname = "enclosed-exceptions"; - version = "1.0.3"; - sha256 = "af6d93f113ac92b89a32af1fed52f445f492afcc0be93980cbadc5698f94f0b9"; - libraryHaskellDepends = [ - base deepseq lifted-base monad-control transformers - transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jcristovao/enclosed-exceptions"; - description = "Catching all exceptions from within an enclosed computation"; - license = stdenv.lib.licenses.mit; - }) {}; - "entropy" = callPackage - ({ mkDerivation, base, bytestring, Cabal, directory, filepath - , process, stdenv, unix - }: - mkDerivation { - pname = "entropy"; - version = "0.4.1.4"; - sha256 = "2e3f6a65c8fde3551a8fb03b0a519b718762fc3278b1a5750f96d399e821eeb9"; - revision = "1"; - editedCabalFile = "0h9wvpq4hw5ipn15ni0qdsrssjil0m59wm4l5hl607l3w2lif864"; - setupHaskellDepends = [ base Cabal directory filepath process ]; - libraryHaskellDepends = [ base bytestring unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/TomMD/entropy"; - description = "A platform independent entropy source"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "enum-subset-generate" = callPackage - ({ mkDerivation, base, microlens, stdenv, template-haskell }: - mkDerivation { - pname = "enum-subset-generate"; - version = "0.1.0.0"; - sha256 = "dd07c2089495ee5b07bdb371bc10004341edb58cbc287d4862ee96b797b14581"; - libraryHaskellDepends = [ base microlens template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/0xd34df00d/enum-subset-generate#readme"; - description = "Generate an ADT being a subset of another ADT, and the corresponding mappings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "enumset" = callPackage - ({ mkDerivation, base, data-accessor, semigroups, stdenv - , storable-record - }: - mkDerivation { - pname = "enumset"; - version = "0.0.4.1"; - sha256 = "5f9d115f7f2b2d4dba290f9d62cd7e9f52f6f6f8235ac5ed9bbf6e982a51d054"; - libraryHaskellDepends = [ - base data-accessor semigroups storable-record - ]; - doHaddock = false; - doCheck = false; - description = "Sets of enumeration values represented by machine words"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "envelope" = callPackage - ({ mkDerivation, aeson, base, http-api-data, mtl, stdenv, text }: - mkDerivation { - pname = "envelope"; - version = "0.2.2.0"; - sha256 = "cf4d6fe3f906e859ec3c16684a8dafb349e77f0fa4f21b7090ca33e707867ef9"; - libraryHaskellDepends = [ aeson base http-api-data mtl text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/envelope#readme"; - description = "Defines generic 'Envelope' type to wrap reponses from a JSON API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "envy" = callPackage - ({ mkDerivation, base, bytestring, containers, mtl, stdenv, text - , time, transformers - }: - mkDerivation { - pname = "envy"; - version = "1.5.1.0"; - sha256 = "2dcacbb9901603f44e8e933849b532ba7b56ee2d7feff3980f9c7b556c4041e4"; - libraryHaskellDepends = [ - base bytestring containers mtl text time transformers - ]; - doHaddock = false; - doCheck = false; - description = "An environmentally friendly way to deal with environment variables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "epub-metadata" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , hxt, mtl, regex-compat-tdfa, stdenv, utf8-string, zip-archive - }: - mkDerivation { - pname = "epub-metadata"; - version = "4.5"; - sha256 = "19ae3914df5936908c8d7264ae5f1e310262fa06bd7e4390838892840e4c0349"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers directory filepath hxt mtl - regex-compat-tdfa utf8-string zip-archive - ]; - executableHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/dino/epub-metadata"; - description = "Library for parsing epub document metadata"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "eq" = callPackage - ({ mkDerivation, base, semigroupoids, stdenv }: - mkDerivation { - pname = "eq"; - version = "4.2"; - sha256 = "4160703a06af1c7518b8ff3244a04013fc7c04a012637dd26be31308e23970e8"; - libraryHaskellDepends = [ base semigroupoids ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/eq/"; - description = "Leibnizian equality"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "equal-files" = callPackage - ({ mkDerivation, base, bytestring, explicit-exception, filemanip - , stdenv, transformers, utility-ht - }: - mkDerivation { - pname = "equal-files"; - version = "0.0.5.3"; - sha256 = "e5b785c286c557c57dba7107d913b220781aa2549ba4b7685da494b20a0172aa"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bytestring explicit-exception filemanip transformers - utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/equal-files/"; - description = "Shell command for finding equal files"; - license = "GPL"; - }) {}; - "erf" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "erf"; - version = "2.0.0.0"; - sha256 = "24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "The error function, erf, and related functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "error-util" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "error-util"; - version = "0.0.1.2"; - sha256 = "df1916a2de007697b7b1a9f83eacab4588d8dc472fd0f21395dce83b085e4e06"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/pmlodawski/error-util"; - description = "Set of utils and operators for error handling"; - license = stdenv.lib.licenses.mit; - }) {}; - "errors" = callPackage - ({ mkDerivation, base, exceptions, safe, stdenv, text, transformers - , transformers-compat - }: - mkDerivation { - pname = "errors"; - version = "2.3.0"; - sha256 = "6772e5689f07e82077ffe3339bc672934d83d83a97a7d4f1349de1302cb71f75"; - libraryHaskellDepends = [ - base exceptions safe text transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - description = "Simplified error-handling"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "errors-ext" = callPackage - ({ mkDerivation, base, errors, exceptions, monad-control, mtl - , stdenv, transformers - }: - mkDerivation { - pname = "errors-ext"; - version = "0.4.2"; - sha256 = "406e65338046d6c1d6994072b529272fab4ad7abbdb2c3b63576788fd8dd9618"; - libraryHaskellDepends = [ - base errors exceptions monad-control mtl transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/A1-Triard/errors-ext#readme"; - description = "`bracket`-like functions for `ExceptT` over `IO` monad"; - license = stdenv.lib.licenses.asl20; - }) {}; - "ersatz" = callPackage - ({ mkDerivation, array, attoparsec, base, bytestring, Cabal - , cabal-doctest, containers, data-default, lens, mtl, parsec - , process, semigroups, stdenv, temporary, transformers - , unordered-containers - }: - mkDerivation { - pname = "ersatz"; - version = "0.4.4"; - sha256 = "42dca507046c32e00459bf6167d02bb508b72bb47669470a0eb3fba20b73a019"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - array attoparsec base bytestring containers data-default lens mtl - process semigroups temporary transformers unordered-containers - ]; - executableHaskellDepends = [ - array base containers lens mtl parsec semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/ersatz"; - description = "A monad for expressing SAT or QSAT problems using observable sharing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "etc" = callPackage - ({ mkDerivation, aeson, base, rio, stdenv, template-haskell, text - , typed-process, unliftio - }: - mkDerivation { - pname = "etc"; - version = "0.4.1.0"; - sha256 = "61b4d5f29a1fc66df082623e5fc9269bdbb49d28ebf4cbb740c71319257a27c8"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base rio template-haskell text typed-process unliftio - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/roman/Haskell-etc"; - description = "Declarative configuration spec for Haskell projects"; - license = stdenv.lib.licenses.mit; - }) {}; - "event-list" = callPackage - ({ mkDerivation, base, non-negative, QuickCheck, semigroups, stdenv - , transformers, utility-ht - }: - mkDerivation { - pname = "event-list"; - version = "0.1.2"; - sha256 = "624e30b876e0acdaea895efbb2000bbbec2d5be0743ecac9805655ae634af89c"; - libraryHaskellDepends = [ - base non-negative QuickCheck semigroups transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/event-list/"; - description = "Event lists with relative or absolute time stamps"; - license = "GPL"; - }) {}; - "eventful-core" = callPackage - ({ mkDerivation, aeson, base, containers, contravariant - , http-api-data, path-pieces, stdenv, sum-type-boilerplate - , template-haskell, text, transformers, uuid - }: - mkDerivation { - pname = "eventful-core"; - version = "0.2.0"; - sha256 = "e0f55e7498d8e48232ce2d5194c69f635beaeb322cb64753766076d7b35c9019"; - libraryHaskellDepends = [ - aeson base containers contravariant http-api-data path-pieces - sum-type-boilerplate template-haskell text transformers uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jdreaver/eventful#readme"; - description = "Core module for eventful"; - license = stdenv.lib.licenses.mit; - }) {}; - "eventful-memory" = callPackage - ({ mkDerivation, base, containers, eventful-core, mtl, safe, stdenv - , stm - }: - mkDerivation { - pname = "eventful-memory"; - version = "0.2.0"; - sha256 = "6a7c3e0a12e3c4e572927929020ad92075933e5d3c66ea61ff615a3ac217adb9"; - libraryHaskellDepends = [ - base containers eventful-core mtl safe stm - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jdreaver/eventful#readme"; - description = "In-memory implementations for eventful"; - license = stdenv.lib.licenses.mit; - }) {}; - "eventful-sql-common" = callPackage - ({ mkDerivation, aeson, base, bytestring, eventful-core, mtl - , persistent, persistent-template, stdenv, text, uuid - }: - mkDerivation { - pname = "eventful-sql-common"; - version = "0.2.0"; - sha256 = "a46ea18cbbb5bd04b3a6846273e8161b7e4208660d0abf5a401192b07636aebc"; - libraryHaskellDepends = [ - aeson base bytestring eventful-core mtl persistent - persistent-template text uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jdreaver/eventful#readme"; - description = "Common library for SQL event stores"; - license = stdenv.lib.licenses.mit; - }) {}; - "eventful-sqlite" = callPackage - ({ mkDerivation, aeson, base, bytestring, eventful-core - , eventful-sql-common, mtl, persistent, stdenv, text, uuid - }: - mkDerivation { - pname = "eventful-sqlite"; - version = "0.2.0"; - sha256 = "c0bbea0ebd1f0a4891a74b190f499caf85ac026f49b9401fc76f181b0041dfef"; - libraryHaskellDepends = [ - aeson base bytestring eventful-core eventful-sql-common mtl - persistent text uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jdreaver/eventful#readme"; - description = "SQLite implementations for eventful"; - license = stdenv.lib.licenses.mit; - }) {}; - "eventful-test-helpers" = callPackage - ({ mkDerivation, aeson, aeson-casing, base, eventful-core, extra - , hspec, monad-logger, stdenv, text - }: - mkDerivation { - pname = "eventful-test-helpers"; - version = "0.2.0"; - sha256 = "a99f9d0cde3926add542c4fc59e079da7d71f2b40e2251b7d79777585c4ebfe0"; - libraryHaskellDepends = [ - aeson aeson-casing base eventful-core extra hspec monad-logger text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jdreaver/eventful#readme"; - description = "Common module used for eventful tests"; - license = stdenv.lib.licenses.mit; - }) {}; - "eventstore" = callPackage - ({ mkDerivation, aeson, array, base, bifunctors, bytestring, cereal - , clock, connection, containers, dns, dotnet-timespan, ekg-core - , exceptions, fast-logger, hashable, http-client, interpolate - , lifted-async, lifted-base, machines, monad-control, monad-logger - , mono-traversable, mtl, protobuf, random, safe, safe-exceptions - , semigroups, stdenv, stm, stm-chans, streaming, text, time - , transformers-base, unordered-containers, uuid - }: - mkDerivation { - pname = "eventstore"; - version = "1.2.1"; - sha256 = "c813b213db61addee309aa04d360c8bc49108f1d0a2197557eeee9319728cafb"; - libraryHaskellDepends = [ - aeson array base bifunctors bytestring cereal clock connection - containers dns dotnet-timespan ekg-core exceptions fast-logger - hashable http-client interpolate lifted-async lifted-base machines - monad-control monad-logger mono-traversable mtl protobuf random - safe safe-exceptions semigroups stm stm-chans streaming text time - transformers-base unordered-containers uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/YoEight/eventstore-hs"; - description = "EventStore TCP Client"; - license = stdenv.lib.licenses.bsd3; - platforms = [ "x86_64-darwin" "x86_64-linux" ]; - }) {}; - "every" = callPackage - ({ mkDerivation, async, base, stdenv, stm }: - mkDerivation { - pname = "every"; - version = "0.0.1"; - sha256 = "5d0ff0e4cefb094c44b55defa283146b16b925722a2eb244a5ef4364737980e5"; - libraryHaskellDepends = [ async base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/every#readme"; - description = "Run a process every so often"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "exact-combinatorics" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "exact-combinatorics"; - version = "0.2.0.8"; - sha256 = "32a822b109ab6e9f62fe23d76bd5af593c20ba0e589005d3985ccda00dd4475e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Efficient exact computation of combinatoric functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "exact-pi" = callPackage - ({ mkDerivation, base, numtype-dk, stdenv }: - mkDerivation { - pname = "exact-pi"; - version = "0.5.0.1"; - sha256 = "5d8156ec8b044a36c2ac789b85bf65116be24304868fff472d033977ebcc1860"; - revision = "1"; - editedCabalFile = "1l55d7x61i2d5rlh7sh2nhn0af9cyp92gzdmqqnnjzg55d347qsm"; - libraryHaskellDepends = [ base numtype-dk ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dmcclean/exact-pi/"; - description = "Exact rational multiples of pi (and integer powers of pi)"; - license = stdenv.lib.licenses.mit; - }) {}; - "exception-mtl" = callPackage - ({ mkDerivation, base, exception-transformers, mtl, stdenv - , transformers - }: - mkDerivation { - pname = "exception-mtl"; - version = "0.4.0.1"; - sha256 = "ec13bcbae6cdde218a7118a2bd3058493af09a330b86e28469a278c9b2cea134"; - libraryHaskellDepends = [ - base exception-transformers mtl transformers - ]; - doHaddock = false; - doCheck = false; - description = "Exception monad transformer instances for mtl classes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "exception-transformers" = callPackage - ({ mkDerivation, base, stdenv, stm, transformers - , transformers-compat - }: - mkDerivation { - pname = "exception-transformers"; - version = "0.4.0.7"; - sha256 = "925b61eb3d19148a521e79f8b4c8ac097f6e0dea6a09cc2f533279f3abf1f2ef"; - revision = "1"; - editedCabalFile = "0sahi93f75acvmqagkjc1lcwx31crja6z9hyww9abj85x45pqa6f"; - libraryHaskellDepends = [ - base stm transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - description = "Type classes and monads for unchecked extensible exceptions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "exceptional" = callPackage - ({ mkDerivation, base, exceptions, stdenv }: - mkDerivation { - pname = "exceptional"; - version = "0.3.0.0"; - sha256 = "da866ed28ea14d245cc065271f4ddd6da0a91b83e8d83daddcd1ef0623e99f06"; - libraryHaskellDepends = [ base exceptions ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/"; - description = "Essentially the Maybe type with error messages"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "exceptions" = callPackage - ({ mkDerivation, base, mtl, stdenv, stm, template-haskell - , transformers, transformers-compat - }: - mkDerivation { - pname = "exceptions"; - version = "0.10.0"; - sha256 = "1edd912e5ea5cbda37941b06738597d35214dc247d332b1bfffc82adadfa49d7"; - revision = "2"; - editedCabalFile = "0aiihbjfrlmxzw9q8idvr6mihhs7kbx9s3w1vj8x3pz27p0ncq7g"; - libraryHaskellDepends = [ - base mtl stm template-haskell transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/exceptions/"; - description = "Extensible optionally-pure exceptions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "executable-hash" = callPackage - ({ mkDerivation, base, bytestring, Cabal, cryptohash, directory - , executable-path, file-embed, filepath, stdenv, template-haskell - }: - mkDerivation { - pname = "executable-hash"; - version = "0.2.0.4"; - sha256 = "34eaf5662d90d3b7841f66b322ac5bc54900b0e3cb06792852b08b3c05a42ba4"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ - base bytestring Cabal cryptohash directory file-embed filepath - template-haskell - ]; - libraryHaskellDepends = [ - base bytestring cryptohash directory executable-path file-embed - template-haskell - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/fpco/executable-hash"; - description = "Provides the SHA1 hash of the program executable"; - license = stdenv.lib.licenses.mit; - }) {}; - "executable-path" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv, unix }: - mkDerivation { - pname = "executable-path"; - version = "0.0.3.1"; - sha256 = "9cc742b6d40a487b3af38dca6852ca3b50a0db94d42fe819576c84beb5adbc6f"; - libraryHaskellDepends = [ base directory filepath unix ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~bkomuves/"; - description = "Finding out the full path of the executable"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "exit-codes" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "exit-codes"; - version = "1.0.0"; - sha256 = "4aa2499a18b0453a9f921bb3262aefe24c8fa98ef9633ab284d8cf6f52a49e01"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/JustusAdam/exit-codes"; - description = "Exit codes as defined by BSD"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "exomizer" = callPackage - ({ mkDerivation, base, bytestring, c2hs, stdenv }: - mkDerivation { - pname = "exomizer"; - version = "1.0.0"; - sha256 = "94c24d436d12666d16cb7171c83cedec449b992dc3aeaaa6decdc0faf8e2cfd2"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alexkazik/exomizer#readme"; - description = "Compression and decompression in the exomizer format"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "exp-pairs" = callPackage - ({ mkDerivation, base, containers, deepseq, ghc-prim, prettyprinter - , stdenv - }: - mkDerivation { - pname = "exp-pairs"; - version = "0.2.0.0"; - sha256 = "57471bfd498570247c03863ec4532ff06c20198efe7a7fe4484478d7139ac967"; - revision = "1"; - editedCabalFile = "1fkllbgsygzm1lw3g3a9l8fg8ap74bx0x7ja8yx3lbrjjsaqh8pa"; - libraryHaskellDepends = [ - base containers deepseq ghc-prim prettyprinter - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Bodigrim/exp-pairs"; - description = "Linear programming over exponent pairs"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "expiring-cache-map" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv - , unordered-containers - }: - mkDerivation { - pname = "expiring-cache-map"; - version = "0.0.6.1"; - sha256 = "0e3bc294978b46ee59bf0b4a7e7a5bd7ed5da7bc261ffebdb0cb1b60353c64b9"; - libraryHaskellDepends = [ - base containers hashable unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/elblake/expiring-cache-map"; - description = "General purpose simple caching"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "explicit-exception" = callPackage - ({ mkDerivation, base, deepseq, semigroups, stdenv, transformers }: - mkDerivation { - pname = "explicit-exception"; - version = "0.1.9.2"; - sha256 = "60f6029777f80ec958e28cef19a15723242987a01f09f6bfef252f24207649f6"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base deepseq semigroups transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Exception"; - description = "Exceptions which are explicit in the type signature"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "extensible-exceptions" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "extensible-exceptions"; - version = "0.1.1.4"; - sha256 = "6ce5e8801760385a408dab71b53550f87629e661b260bdc2cd41c6a439b6e388"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Extensible exceptions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "extra" = callPackage - ({ mkDerivation, base, clock, directory, filepath, process, stdenv - , time, unix - }: - mkDerivation { - pname = "extra"; - version = "1.6.14"; - sha256 = "a60641530d96653ecc365aa042f4061892154995915d91f432ea5a2e3aaf129c"; - libraryHaskellDepends = [ - base clock directory filepath process time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/extra#readme"; - description = "Extra functions I use"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "extractable-singleton" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "extractable-singleton"; - version = "0.0.1"; - sha256 = "e8da1928d98c57ef3d1bab7deb1378f51fa496721495777233663dd0b1b2c0ad"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/extractable-singleton#readme"; - description = "A functor, where the \"stored\" value is isomorphic to Identity"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "extrapolate" = callPackage - ({ mkDerivation, base, leancheck, speculate, stdenv - , template-haskell - }: - mkDerivation { - pname = "extrapolate"; - version = "0.3.3"; - sha256 = "22fff22a2c5b36a6545b27495c0eba63e8e3f72baccb3f9d687967c6532381d5"; - libraryHaskellDepends = [ - base leancheck speculate template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/extrapolate#readme"; - description = "generalize counter-examples of test properties"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fail" = callPackage - ({ mkDerivation, stdenv }: - mkDerivation { - pname = "fail"; - version = "4.9.0.0"; - sha256 = "6d5cdb1a5c539425a9665f740e364722e1d9d6ae37fbc55f30fe3dbbbb91d4a2"; - doHaddock = false; - doCheck = false; - homepage = "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail"; - description = "Forward-compatible MonadFail class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "farmhash" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "farmhash"; - version = "0.1.0.5"; - sha256 = "0e685a5445f7bce88682d209bccb47d03f06065a627475df44a8e2af8bc20fa1"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/abhinav/farmhash"; - description = "Fast hash functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fast-digits" = callPackage - ({ mkDerivation, base, integer-gmp, stdenv }: - mkDerivation { - pname = "fast-digits"; - version = "0.2.1.0"; - sha256 = "ec84576e479202de8257c7c499b66e91bcf18444f7683475d74b575e166dd83b"; - libraryHaskellDepends = [ base integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Bodigrim/fast-digits"; - description = "The fast library for integer-to-digits conversion"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "fast-logger" = callPackage - ({ mkDerivation, array, auto-update, base, bytestring, directory - , easy-file, filepath, stdenv, text, unix-compat, unix-time - }: - mkDerivation { - pname = "fast-logger"; - version = "2.4.13"; - sha256 = "4bd4ef406f661e603320a34c353c29c5160644e3c4a446dd47efb279088a32b2"; - libraryHaskellDepends = [ - array auto-update base bytestring directory easy-file filepath text - unix-compat unix-time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kazu-yamamoto/logger"; - description = "A fast logging system"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fast-math" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "fast-math"; - version = "1.0.2"; - sha256 = "45101ddc8b86402e866ec029bcfbc2662779e578e43b40acd971a9f411e2be95"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Non IEEE-754 compliant compile-time floating-point optimisations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fb" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base16-bytestring - , base64-bytestring, bytestring, cereal, conduit, conduit-extra - , crypto-api, cryptohash, cryptohash-cryptoapi, data-default - , http-client, http-conduit, http-types, monad-logger, old-locale - , resourcet, stdenv, text, time, transformers, transformers-base - , unliftio, unliftio-core, unordered-containers - }: - mkDerivation { - pname = "fb"; - version = "1.2.1"; - sha256 = "a9d670a763e2ccf3e457e6b310769d5d8977cb1c00a78c8825861999da055d15"; - libraryHaskellDepends = [ - aeson attoparsec base base16-bytestring base64-bytestring - bytestring cereal conduit conduit-extra crypto-api cryptohash - cryptohash-cryptoapi data-default http-client http-conduit - http-types monad-logger old-locale resourcet text time transformers - transformers-base unliftio unliftio-core unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/fb"; - description = "Bindings to Facebook's API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fclabels" = callPackage - ({ mkDerivation, base, mtl, stdenv, template-haskell, transformers - }: - mkDerivation { - pname = "fclabels"; - version = "2.0.3.3"; - sha256 = "9a9472a46dc23b5acc0545d345ecd708f7b003f72ab212e2d12125b902b9c2e0"; - revision = "3"; - editedCabalFile = "1wncfnvh4mv87gh0ddhiqf839d63rqs1qzi3y386y6r8hfnvra0l"; - libraryHaskellDepends = [ base mtl template-haskell transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sebastiaanvisser/fclabels"; - description = "First class accessor labels implemented as lenses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "feature-flags" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "feature-flags"; - version = "0.1.0.1"; - sha256 = "0e4cf7db6791b0875975dfa001d71bf31797b2edbfd2424f6b6202ace7935ad3"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iand675/feature-flags"; - description = "A simple library for dynamically enabling and disabling functionality"; - license = stdenv.lib.licenses.mit; - }) {}; - "fedora-dists" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "fedora-dists"; - version = "1.0.0.2"; - sha256 = "d4d2436703278d09df0f310b7e7877fc42d414379513d6e272bc53f7c59e8749"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/juhp/fedora-dists"; - description = "Library for Fedora distribution versions"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "fedora-haskell-tools" = callPackage - ({ mkDerivation, base, csv, directory, filepath, HTTP, process - , stdenv, time, unix - }: - mkDerivation { - pname = "fedora-haskell-tools"; - version = "0.6"; - sha256 = "a47af60fe0fba6934cea3d10414e96329419311ba202aea7051f373d3d34d91b"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base csv directory filepath HTTP process time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fedora-haskell/fedora-haskell-tools"; - description = "Building and maintenance tools for Fedora Haskell"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "feed" = callPackage - ({ mkDerivation, base, base-compat, bytestring, old-locale - , old-time, safe, stdenv, text, time, time-locale-compat - , utf8-string, xml-conduit, xml-types - }: - mkDerivation { - pname = "feed"; - version = "1.0.1.0"; - sha256 = "87bd055b13c43f54e997f716a33d647c6bc1cdb78337c840d144c0b5fdccd31c"; - revision = "1"; - editedCabalFile = "10xjd3syr70g3blnjy7xvd6s21y68vxsi69f6bmizpsylbfb0245"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base base-compat bytestring old-locale old-time safe text time - time-locale-compat utf8-string xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bergmark/feed"; - description = "Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fft" = callPackage - ({ mkDerivation, array, base, carray, fftw, fftwFloat, ix-shapable - , stdenv, storable-complex, syb, transformers - }: - mkDerivation { - pname = "fft"; - version = "0.1.8.6"; - sha256 = "2ed8d8301903283c9a62eda1f1cf49db0c471c4c128fbfdef562d598401e5b42"; - libraryHaskellDepends = [ - array base carray ix-shapable storable-complex syb transformers - ]; - libraryPkgconfigDepends = [ fftw fftwFloat ]; - doHaddock = false; - doCheck = false; - description = "Bindings to the FFTW library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) fftw; inherit (pkgs) fftwFloat;}; - "fgl" = callPackage - ({ mkDerivation, array, base, containers, deepseq, stdenv - , transformers - }: - mkDerivation { - pname = "fgl"; - version = "5.7.0.1"; - sha256 = "ffce7af67d4e7ee2f6a7c44fbb749c4253ce9bb35b8b1ffe1c93a173a01fe910"; - libraryHaskellDepends = [ - array base containers deepseq transformers - ]; - doHaddock = false; - doCheck = false; - description = "Martin Erwig's Functional Graph Library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "file-embed" = callPackage - ({ mkDerivation, base, bytestring, directory, filepath, stdenv - , template-haskell - }: - mkDerivation { - pname = "file-embed"; - version = "0.0.11"; - sha256 = "eea5d00973808e440f346972b7477c8d8c2194a7036cc532eafeffc5189fcd50"; - libraryHaskellDepends = [ - base bytestring directory filepath template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/file-embed"; - description = "Use Template Haskell to embed file contents directly"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "file-embed-lzma" = callPackage - ({ mkDerivation, base, base-compat, bytestring, directory, filepath - , lzma, stdenv, template-haskell, text, th-lift-instances - , transformers - }: - mkDerivation { - pname = "file-embed-lzma"; - version = "0"; - sha256 = "e86cf44f747cf403898158e9fdf9342871e293097a29679fcf587aed497f0c77"; - revision = "2"; - editedCabalFile = "0dmg69gsj2k9lf112bvqw6z2w8hl0p1lx5zxdvlvk85bb3qz6304"; - libraryHaskellDepends = [ - base base-compat bytestring directory filepath lzma - template-haskell text th-lift-instances transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/file-embed-lzma"; - description = "Use Template Haskell to embed (LZMA compressed) data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "file-modules" = callPackage - ({ mkDerivation, async, base, directory, filepath, haskell-src-exts - , MissingH, regex-compat, regex-pcre, stdenv - }: - mkDerivation { - pname = "file-modules"; - version = "0.1.2.4"; - sha256 = "ffea2dbd51f77ed76f8559d8519674a1210611a35e2dbea72dfb41d7d5f0f235"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base directory filepath haskell-src-exts MissingH - regex-compat regex-pcre - ]; - executableHaskellDepends = [ - async base directory filepath haskell-src-exts MissingH - regex-compat regex-pcre - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yamadapc/stack-run-auto"; - description = "Takes a Haskell source-code file and outputs its modules"; - license = stdenv.lib.licenses.mit; - }) {}; - "filecache" = callPackage - ({ mkDerivation, base, containers, directory, exceptions, filepath - , fsnotify, mtl, stdenv, stm, strict-base-types, time - }: - mkDerivation { - pname = "filecache"; - version = "0.4.1"; - sha256 = "c502a8b43cf08694c8d2657dc282306d811cdd91f284614a6a9945267c93cb9d"; - libraryHaskellDepends = [ - base containers directory exceptions filepath fsnotify mtl stm - strict-base-types time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://lpuppet.banquise.net/"; - description = "A cache system associating values to files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "filelock" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "filelock"; - version = "0.1.1.2"; - sha256 = "0ff1dcb13ec619f72496035e2a1298ef9dc6a814ba304d882cd9b145eae3203d"; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/takano-akio/filelock"; - description = "Portable interface to file locking (flock / LockFileEx)"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "filemanip" = callPackage - ({ mkDerivation, base, bytestring, directory, filepath, mtl, stdenv - , unix-compat - }: - mkDerivation { - pname = "filemanip"; - version = "0.3.6.3"; - sha256 = "8836da17baaaf02ca080c9990ece4e0b0c8d6a128f458f8b64fd07b225ca9846"; - libraryHaskellDepends = [ - base bytestring directory filepath mtl unix-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/filemanip"; - description = "Expressive file and directory manipulation for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fileplow" = callPackage - ({ mkDerivation, base, binary-search, bytestring, stdenv, vector }: - mkDerivation { - pname = "fileplow"; - version = "0.1.0.0"; - sha256 = "9ddc7db62c97fa4413ff2435c96aac9f6f716e2f6bc7a71aa4db25c3871bee04"; - libraryHaskellDepends = [ base binary-search bytestring vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/fileplow#readme"; - description = "Library to process and search large files or a collection of files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "filter-logger" = callPackage - ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, base - , bytestring, data-default, fast-logger, http-types, scotty - , semigroups, stdenv, time, wai, wai-extra, wai-logger - }: - mkDerivation { - pname = "filter-logger"; - version = "0.6.0.0"; - sha256 = "7884124056950a7f7ff393ebb7d1622695f9b66f898c60aeb8bc991c73642f21"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty ansi-terminal base bytestring data-default - fast-logger http-types semigroups time wai wai-extra wai-logger - ]; - executableHaskellDepends = [ aeson base bytestring scotty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/caneroj1/filter-logger#readme"; - description = "Filterable request logging wai middleware. Change how data is logged and when."; - license = stdenv.lib.licenses.mit; - }) {}; - "filtrable" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "filtrable"; - version = "0.1.1.0"; - sha256 = "d6a53889a7d114a7ea411026b994c9f73ebfeffe68ea338ce2abf9dc977e363c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/strake/filtrable.hs"; - description = "Class of filtrable containers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fin" = callPackage - ({ mkDerivation, base, deepseq, hashable, stdenv }: - mkDerivation { - pname = "fin"; - version = "0.0.1"; - sha256 = "34d28a951f2899f1d27bfb75d53818204d6d7e5aeaaef1a326c50ae915361a57"; - revision = "1"; - editedCabalFile = "056d22f1j1xv5ka2qr7a3z5ad5w1im76qdf77v6dqdi4vaz52vd1"; - libraryHaskellDepends = [ base deepseq hashable ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/vec"; - description = "Nat and Fin: peano naturals and finite numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fingertree" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "fingertree"; - version = "0.1.4.2"; - sha256 = "95a948341570bad5a9b2468c388c0eb2c20c57e10dd8fbfc994c7b8764b36a7f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Generic finger-tree structure, with example instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "finite-typelits" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "finite-typelits"; - version = "0.1.4.2"; - sha256 = "d207a46c911b69ecc1f7c50d9d65ea1aca6c6efacec6342bc3294ed1bc4bd747"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mniip/finite-typelits"; - description = "A type inhabited by finitely many values, indexed by type-level naturals"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "first-class-families" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "first-class-families"; - version = "0.3.0.1"; - sha256 = "2b761dcb4361d2628147c13f2d024782d02f8a7e0df78df004439c14640b491c"; - revision = "1"; - editedCabalFile = "1gybi18yw6dzp3r82x0xq9364m3isqq31gvaa1agf6hk9c9szfl2"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Lysxia/first-class-families#readme"; - description = "First class type families"; - license = stdenv.lib.licenses.mit; - }) {}; - "first-class-patterns" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "first-class-patterns"; - version = "0.3.2.4"; - sha256 = "3bf42829097277a89043021d02b82bde24950de9c30d19b33c0ffa5e1f2482b5"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/first-class-patterns"; - description = "First class patterns and pattern matching, using type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fitspec" = callPackage - ({ mkDerivation, base, cmdargs, leancheck, stdenv, template-haskell - }: - mkDerivation { - pname = "fitspec"; - version = "0.4.7"; - sha256 = "b8dc00aad234b30d1d383075062c0756bb7d412a5bf4b766f2aad0d7ac30716a"; - libraryHaskellDepends = [ - base cmdargs leancheck template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/fitspec#readme"; - description = "refining property sets for testing Haskell programs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fixed" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "fixed"; - version = "0.2.1.1"; - sha256 = "24a9e1e251998c9d06037bb771d9eab2980a91132de59a19d0166a1c51e715e2"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/fixed"; - description = "Signed 15.16 precision fixed point arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fixed-length" = callPackage - ({ mkDerivation, base, non-empty, stdenv, storable-record, tfp - , utility-ht - }: - mkDerivation { - pname = "fixed-length"; - version = "0.2.1"; - sha256 = "a151b68802538e8f98d05f582bd23fad94c869e1ad1f5506579524f5d2764b49"; - libraryHaskellDepends = [ - base non-empty storable-record tfp utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/fixed-length/"; - description = "Lists with statically known length based on non-empty package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fixed-vector" = callPackage - ({ mkDerivation, base, deepseq, primitive, stdenv }: - mkDerivation { - pname = "fixed-vector"; - version = "1.2.0.0"; - sha256 = "dc67e4f139f07018be73a5f2e44ddfb3e8dab8b884a66a93c7676b2a9f3604a5"; - libraryHaskellDepends = [ base deepseq primitive ]; - doHaddock = false; - doCheck = false; - description = "Generic vectors with statically known size"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fixed-vector-hetero" = callPackage - ({ mkDerivation, base, deepseq, fixed-vector, primitive, stdenv }: - mkDerivation { - pname = "fixed-vector-hetero"; - version = "0.5.0.0"; - sha256 = "a3f25968b260c953c6ad4ec75ba5211238b2bb07185fe1f33fb98301a4ee8690"; - libraryHaskellDepends = [ base deepseq fixed-vector primitive ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.org/Shimuuar/fixed-vector-hetero"; - description = "Generic heterogeneous vectors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "flac" = callPackage - ({ mkDerivation, base, bytestring, containers, data-default-class - , directory, exceptions, filepath, FLAC, mtl, stdenv, text - , transformers, vector, wave - }: - mkDerivation { - pname = "flac"; - version = "0.1.2"; - sha256 = "5692b3dfc561cbeed25b1cf9280705f58eadd8c400aa2e6a725fd5562042ac29"; - revision = "5"; - editedCabalFile = "0rwwq8qrxd497rd5m0kidz4v69frj72ds7a6zrdqigj5f5471rhd"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers data-default-class directory exceptions - filepath mtl text transformers vector wave - ]; - librarySystemDepends = [ FLAC ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/flac"; - description = "Complete high-level binding to libFLAC"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) FLAC;}; - "flac-picture" = callPackage - ({ mkDerivation, base, bytestring, flac, JuicyPixels, stdenv }: - mkDerivation { - pname = "flac-picture"; - version = "0.1.2"; - sha256 = "15689d14d382588697ec0da88a0025c2b156061c060979deaec0d75ecc37030a"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring flac JuicyPixels ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/flac-picture"; - description = "Support for writing picture to FLAC metadata blocks with JuicyPixels"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "flat-mcmc" = callPackage - ({ mkDerivation, base, formatting, mcmc-types, monad-par - , monad-par-extras, mwc-probability, pipes, primitive, stdenv, text - , transformers, vector - }: - mkDerivation { - pname = "flat-mcmc"; - version = "1.5.0"; - sha256 = "87cea9deac6e2d32d9984741ba222ccb2fb0d5f8c58e843684476bfe7632f1fd"; - revision = "1"; - editedCabalFile = "1pjkyvs4c6yx6jva08zw2b1qfhhv9q71sy806f5lddjsknnym2fn"; - libraryHaskellDepends = [ - base formatting mcmc-types monad-par monad-par-extras - mwc-probability pipes primitive text transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jtobin/flat-mcmc"; - description = "Painless general-purpose sampling"; - license = stdenv.lib.licenses.mit; - }) {}; - "flay" = callPackage - ({ mkDerivation, base, constraints, stdenv, transformers }: - mkDerivation { - pname = "flay"; - version = "0.4"; - sha256 = "01ff3e642eab48807e4369fd8c1336e22d7abdcf4374cd1322b1fe259c9413ef"; - libraryHaskellDepends = [ base constraints transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/flay"; - description = "Work generically on your datatype without knowing its shape nor its contents"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "flexible-defaults" = callPackage - ({ mkDerivation, base, containers, stdenv, template-haskell - , th-extras, transformers - }: - mkDerivation { - pname = "flexible-defaults"; - version = "0.0.2"; - sha256 = "f3d5d41a6dd69dbb585dd10fe6b7fe9023bc4308bac1320a55b62758acc18a64"; - libraryHaskellDepends = [ - base containers template-haskell th-extras transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/flexible-defaults"; - description = "Generate default function implementations for complex type classes"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "floatshow" = callPackage - ({ mkDerivation, array, base, integer-gmp, stdenv }: - mkDerivation { - pname = "floatshow"; - version = "0.2.4"; - sha256 = "0c4e9494df46120942b2078db53c16200b46eff603fca5ab85775a541f975dff"; - libraryHaskellDepends = [ array base integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/dafis/floatshow"; - description = "Alternative faster String representations for Double and Float, String representations for more general numeric types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "flow" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "flow"; - version = "1.0.17"; - sha256 = "86ec19d8bec13afc58e21d53f4225c3fcafda2ff902b05f64062919edbe84d19"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/flow#readme"; - description = "Write more understandable Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "fmlist" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "fmlist"; - version = "0.9.2"; - sha256 = "8fc4b55d04e7f216740a01acd2f38293e3bd9409a9495e6042a162580c420609"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sjoerdvisscher/fmlist"; - description = "FoldMap lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fmt" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, call-stack - , containers, formatting, microlens, stdenv, text, time - , time-locale-compat - }: - mkDerivation { - pname = "fmt"; - version = "0.6.1.1"; - sha256 = "26220b578d56591cb154cfcb1d98ee8f81c1df97f5955dba91dd00061549d2ad"; - revision = "2"; - editedCabalFile = "1prdnb8a8n338clkvjx0c8hmbkiy8x2c9j87b94302bq6x7rmf9d"; - libraryHaskellDepends = [ - base base64-bytestring bytestring call-stack containers formatting - microlens text time time-locale-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/fmt"; - description = "A new formatting library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fn" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, directory - , filepath, http-types, resourcet, stdenv, text - , unordered-containers, wai, wai-extra - }: - mkDerivation { - pname = "fn"; - version = "0.3.0.2"; - sha256 = "1e34b017aa13f60464ec06dfbae970c3c0f01f2160f5001a4e84c8179de7ae5f"; - libraryHaskellDepends = [ - base blaze-builder bytestring directory filepath http-types - resourcet text unordered-containers wai wai-extra - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/positiondev/fn#readme"; - description = "A functional web framework"; - license = stdenv.lib.licenses.isc; - }) {}; - "focus" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "focus"; - version = "1.0.1.2"; - sha256 = "adf4e7fd24a441548a450828881baea013f6374811230beb6437cfcdc2616e02"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/focus"; - description = "A general abstraction for manipulating elements of container data structures"; - license = stdenv.lib.licenses.mit; - }) {}; - "focuslist" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, containers, lens - , mono-traversable, QuickCheck, stdenv - }: - mkDerivation { - pname = "focuslist"; - version = "0.1.0.1"; - sha256 = "fdee9ae7a68f139f9b4b88df27e4f373815293da93a1df91e5c2f3dc558f05e3"; - revision = "2"; - editedCabalFile = "12x38kxhcjdqfwl8y8zdrwcpv6jdm7jaqc48ww3hg6fpv8rvvd49"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base containers lens mono-traversable QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/focuslist"; - description = "Lists with a focused element"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fold-debounce" = callPackage - ({ mkDerivation, base, data-default-class, stdenv, stm, stm-delay - , time - }: - mkDerivation { - pname = "fold-debounce"; - version = "0.2.0.8"; - sha256 = "fc6b3ef028517f642886c2ffa270726cc38c79be75d1233e28f760816d08fbc8"; - libraryHaskellDepends = [ - base data-default-class stm stm-delay time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/fold-debounce"; - description = "Fold multiple events that happen in a given period of time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fold-debounce-conduit" = callPackage - ({ mkDerivation, base, conduit, fold-debounce, resourcet, stdenv - , stm, transformers, transformers-base - }: - mkDerivation { - pname = "fold-debounce-conduit"; - version = "0.2.0.3"; - sha256 = "97c80c4ca7f84260539829ee7ebf0eaa6b127005158eb910411ae0b17157ef67"; - libraryHaskellDepends = [ - base conduit fold-debounce resourcet stm transformers - transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/fold-debounce-conduit"; - description = "Regulate input traffic from conduit Source with Control.FoldDebounce"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "foldable1" = callPackage - ({ mkDerivation, base, stdenv, transformers, util }: - mkDerivation { - pname = "foldable1"; - version = "0.1.0.0"; - sha256 = "85d684e5caab9e0c87dd04d016432f4a9effb5c8c62354aedcf85c96c1e3e90a"; - libraryHaskellDepends = [ base transformers util ]; - doHaddock = false; - doCheck = false; - description = "Foldable types with at least 1 element"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "foldl" = callPackage - ({ mkDerivation, base, bytestring, comonad, containers - , contravariant, hashable, mwc-random, primitive, profunctors - , semigroupoids, semigroups, stdenv, text, transformers - , unordered-containers, vector, vector-builder - }: - mkDerivation { - pname = "foldl"; - version = "1.4.5"; - sha256 = "0ba0bd8a8b4273feef61b66b6e251e70f70537c113f8b7f0e3aeab77d8af12a7"; - libraryHaskellDepends = [ - base bytestring comonad containers contravariant hashable - mwc-random primitive profunctors semigroupoids semigroups text - transformers unordered-containers vector vector-builder - ]; - doHaddock = false; - doCheck = false; - description = "Composable, streaming, and efficient left folds"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "folds" = callPackage - ({ mkDerivation, adjunctions, base, bifunctors, Cabal - , cabal-doctest, comonad, constraints, contravariant, data-reify - , distributive, lens, mtl, pointed, profunctors, reflection - , semigroupoids, stdenv, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "folds"; - version = "0.7.4"; - sha256 = "5c6e6f7c9c852cbe3d5372f93ed99f82400d15ae99ecf8e9e005481647734572"; - configureFlags = [ "-f-test-hlint" ]; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - adjunctions base bifunctors comonad constraints contravariant - data-reify distributive lens mtl pointed profunctors reflection - semigroupoids transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/folds"; - description = "Beautiful Folding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "force-layout" = callPackage - ({ mkDerivation, base, containers, data-default-class, lens, linear - , stdenv - }: - mkDerivation { - pname = "force-layout"; - version = "0.4.0.6"; - sha256 = "f7729855b1b14e0b255325faaca9f4834004e02bd21def6a865d2c55c734259d"; - revision = "4"; - editedCabalFile = "0hpr1z68lflgcdl9gbmva0i52wbgfhh4qj3iwdvzipsp8mwav7s7"; - libraryHaskellDepends = [ - base containers data-default-class lens linear - ]; - doHaddock = false; - doCheck = false; - description = "Simple force-directed layout"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "foreign-store" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "foreign-store"; - version = "0.2"; - sha256 = "06718a214d068eaa494cc82376f23b2059a141b01048cd7efcf2176a6c3383dc"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chrisdone/foreign-store"; - description = "Store a stable pointer in a foreign context to be retrieved later"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "forkable-monad" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "forkable-monad"; - version = "0.2.0.3"; - sha256 = "571e33effa5baaef4e2dc910010e2b02c01d8b8e06f051e96906f288f71ad462"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/System-Indystress/ForkableMonad#readme"; - description = "An implementation of forkIO for monad stacks"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "forma" = callPackage - ({ mkDerivation, aeson, base, containers, mtl, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "forma"; - version = "1.1.1"; - sha256 = "abef8c326efdeca2b69fca3b396abad530b0c5093499022a16091af3a5370083"; - libraryHaskellDepends = [ - aeson base containers mtl text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/forma"; - description = "Parse and validate forms in JSON format"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "format-numbers" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "format-numbers"; - version = "0.1.0.0"; - sha256 = "0ca4561b55c888552f7bf0eb68e97b62acedcb0d5e5e1cc4afd94402d01231a6"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/format-numbers#readme"; - description = "Various number formatting functions"; - license = stdenv.lib.licenses.mit; - }) {}; - "formatting" = callPackage - ({ mkDerivation, array, base, bytestring, clock, ghc-prim - , integer-gmp, old-locale, scientific, semigroups, stdenv, text - , time, transformers - }: - mkDerivation { - pname = "formatting"; - version = "6.3.7"; - sha256 = "0cdb4fc2c33612db08cd07926ac4fbea6b9f3c31955ed7d212ae04586f585c1a"; - libraryHaskellDepends = [ - array base bytestring clock ghc-prim integer-gmp old-locale - scientific semigroups text time transformers - ]; - doHaddock = false; - doCheck = false; - description = "Combinator-based type-safe formatting (like printf() or FORMAT)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "foundation" = callPackage - ({ mkDerivation, base, basement, ghc-prim, stdenv }: - mkDerivation { - pname = "foundation"; - version = "0.0.23"; - sha256 = "a26036f61909fdfdde7e014800741cea1246620dbee0f29c1408d8ff301b043c"; - revision = "1"; - editedCabalFile = "1zdlh81dii11p3bw3ffm3sr69l7nlhj622mca81swj59klgmaxwh"; - libraryHaskellDepends = [ base basement ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-foundation/foundation"; - description = "Alternative prelude with batteries and no dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "free" = callPackage - ({ mkDerivation, base, comonad, containers, distributive - , exceptions, mtl, profunctors, semigroupoids, stdenv - , template-haskell, transformers, transformers-base - }: - mkDerivation { - pname = "free"; - version = "5.1"; - sha256 = "70424d5c82dea36a0a29c4f5f6bc047597a947ad46f3d66312e47bbee2eeea84"; - libraryHaskellDepends = [ - base comonad containers distributive exceptions mtl profunctors - semigroupoids template-haskell transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/free/"; - description = "Monads for free"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "free-vl" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "free-vl"; - version = "0.1.4"; - sha256 = "57f63ed35b42fc54fefb3cc183d0655e0d6c4a28d5371dba00fc9c9d3fa602bf"; - revision = "1"; - editedCabalFile = "1711k76b6w7gfqvc8z9jnylj4hhk3rvx7ap31y1mmq4g2a4s82qm"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aaronlevin/free-vl"; - description = "van Laarhoven encoded Free Monad with Extensible Effects"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "freenect" = callPackage - ({ mkDerivation, base, freenect, freenect_sync, libfreenect, stdenv - , vector - }: - mkDerivation { - pname = "freenect"; - version = "1.2.1"; - sha256 = "fca7aa958ec04396334b101679f8603850d7c6629770d5206d774e115cd70759"; - libraryHaskellDepends = [ base vector ]; - librarySystemDepends = [ freenect freenect_sync ]; - libraryPkgconfigDepends = [ libfreenect ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chrisdone/freenect"; - description = "Interface to the Kinect device"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) freenect; inherit (pkgs) freenect_sync; -inherit (pkgs) libfreenect;}; - "freer-simple" = callPackage - ({ mkDerivation, base, natural-transformation, stdenv - , template-haskell, transformers-base - }: - mkDerivation { - pname = "freer-simple"; - version = "1.2.1.0"; - sha256 = "ac288f691a86e2e3cbf94601f9964ddd4a10b9c6c7fd96ab8033744efc782ca5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base natural-transformation template-haskell transformers-base - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lexi-lambda/freer-simple#readme"; - description = "Implementation of a friendly effect system for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "freetype2" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "freetype2"; - version = "0.1.2"; - sha256 = "517e80298890e903b03134d7840d3d1a517bfdad53127ed57c2fdd18cbfae302"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Haskell binding for FreeType 2 library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "friendly-time" = callPackage - ({ mkDerivation, base, old-locale, stdenv, time }: - mkDerivation { - pname = "friendly-time"; - version = "0.4.1"; - sha256 = "9af3443227c3f271f5d11ed8c3c15c77a59de3ab82d87d93ac1f8455a54393c8"; - revision = "1"; - editedCabalFile = "096nfaqxavi6xblqh4q5dxks824liz75b4rm2la2hlkkn5mhqdgs"; - libraryHaskellDepends = [ base old-locale time ]; - doHaddock = false; - doCheck = false; - description = "Print time information in friendly ways"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "frisby" = callPackage - ({ mkDerivation, array, base, containers, mtl, semigroups, stdenv - }: - mkDerivation { - pname = "frisby"; - version = "0.2.2"; - sha256 = "c1b318dbf54d56e1012955cc47a1633af5fd77facc128c725353718c0663b6d5"; - libraryHaskellDepends = [ array base containers mtl semigroups ]; - doHaddock = false; - doCheck = false; - homepage = "http://repetae.net/computer/frisby/"; - description = "Linear time composable parser for PEG grammars"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "from-sum" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "from-sum"; - version = "0.2.1.0"; - sha256 = "a1ed8a433b98df8a70be2f9199abae3e5ed7fb4c2f2b3fb1268b6b588f326667"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/from-sum"; - description = "Canonical fromMaybeM and fromEitherM functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "frontmatter" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv, yaml }: - mkDerivation { - pname = "frontmatter"; - version = "0.1.0.2"; - sha256 = "66eb97b0d5097397f0238b9af764a8c6ea2bb9a4a16cd1214051719fc313b99d"; - libraryHaskellDepends = [ attoparsec base bytestring yaml ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yamadapc/haskell-frontmatter"; - description = "Parses frontmatter as used in Jekyll markdown files"; - license = stdenv.lib.licenses.mit; - }) {}; - "fsnotify" = callPackage - ({ mkDerivation, async, base, bytestring, containers, directory - , filepath, hinotify, shelly, stdenv, text, time, unix, unix-compat - }: - mkDerivation { - pname = "fsnotify"; - version = "0.3.0.1"; - sha256 = "ded2165f72a2b4971f941cb83ef7f58b200e3e04159be78da55ba6c5d35f6da5"; - revision = "1"; - editedCabalFile = "1pa9pa0kflkqlb4dysagy0aihn452hmf6wwlsr7fp4ygg86m7fsq"; - libraryHaskellDepends = [ - async base bytestring containers directory filepath hinotify shelly - text time unix unix-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-fswatch/hfsnotify"; - description = "Cross platform library for file change notification"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fsnotify-conduit" = callPackage - ({ mkDerivation, base, conduit, directory, filepath, fsnotify - , resourcet, stdenv, transformers - }: - mkDerivation { - pname = "fsnotify-conduit"; - version = "0.1.1.1"; - sha256 = "03990f311f7d66a6996b88722602b6058fbae7ad33e74073875ef0466ef001ce"; - libraryHaskellDepends = [ - base conduit directory filepath fsnotify resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/fsnotify-conduit#readme"; - description = "Get filesystem notifications as a stream of events"; - license = stdenv.lib.licenses.mit; - }) {}; - "ftp-client" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, connection - , containers, exceptions, network, stdenv, transformers - }: - mkDerivation { - pname = "ftp-client"; - version = "0.5.1.1"; - sha256 = "6432f8a933051ac890420cf49ce89d57d05df97f1f8d1b84cb785ae1c468c805"; - libraryHaskellDepends = [ - attoparsec base bytestring connection containers exceptions network - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mr/ftp-client"; - description = "Transfer files with FTP and FTPS"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "ftp-client-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, connection, exceptions - , ftp-client, resourcet, stdenv - }: - mkDerivation { - pname = "ftp-client-conduit"; - version = "0.5.0.4"; - sha256 = "b1c58ff47c1555a39762c26dede087a0c3b4a16ca52ada7b748c328f89729a70"; - libraryHaskellDepends = [ - base bytestring conduit connection exceptions ftp-client resourcet - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mr/ftp-client"; - description = "Transfer file with FTP and FTPS with Conduit"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "funcmp" = callPackage - ({ mkDerivation, base, filepath, pretty, process, stdenv }: - mkDerivation { - pname = "funcmp"; - version = "1.9"; - sha256 = "08b2b982fc301af160ae5f2ab5d01e850b4ed177963fb19b4d4b2a28e7bdaab4"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base filepath pretty process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/funcmp"; - description = "Functional MetaPost is a Haskell frontend to the MetaPost language"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "functor-classes-compat" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv - , unordered-containers, vector - }: - mkDerivation { - pname = "functor-classes-compat"; - version = "1"; - sha256 = "ef11f94f44a74d6657ee61dcd2cfbc6d0889d233a2fb4caae6a29d9c59a1366f"; - revision = "3"; - editedCabalFile = "1jx552ysdnxvd8wdvsf4bgxlsgldpb7a8zi54abyjmxv6mkp98ys"; - configureFlags = [ "-fcontainers" ]; - libraryHaskellDepends = [ - base containers hashable unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/functor-classes-compat#readme"; - description = "Data.Functor.Classes instances for core packages"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fused-effects" = callPackage - ({ mkDerivation, base, deepseq, MonadRandom, random, stdenv }: - mkDerivation { - pname = "fused-effects"; - version = "0.1.2.1"; - sha256 = "d6274dba440c69c2d0d5aaee05f99d00754094581c3d1cc1176586e8be289902"; - libraryHaskellDepends = [ base deepseq MonadRandom random ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/robrix/fused-effects"; - description = "A fast, flexible, fused effect system"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fuzzcheck" = callPackage - ({ mkDerivation, base, lifted-base, monad-control, QuickCheck - , random, stdenv, transformers - }: - mkDerivation { - pname = "fuzzcheck"; - version = "0.1.1"; - sha256 = "ecd664796e9cf5c608ca904897dd9ec18b471a86fcfb4216328382b28023d961"; - libraryHaskellDepends = [ - base lifted-base monad-control QuickCheck random transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/fuzzcheck"; - description = "A simple checker for stress testing monadic code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fuzzy-dates" = callPackage - ({ mkDerivation, base, hourglass, hspec, lens, parsec, stdenv }: - mkDerivation { - pname = "fuzzy-dates"; - version = "0.1.1.1"; - sha256 = "e33406933fbb45172f5ee9b10194397333effecc3ce5f1495521bc903faf56c1"; - libraryHaskellDepends = [ base hourglass hspec lens parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ReedOei/fuzzy-dates#readme"; - description = "Libary for parsing dates in strings in varied formats"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "fuzzyset" = callPackage - ({ mkDerivation, base, base-unicode-symbols, data-default, lens - , stdenv, text, text-metrics, unordered-containers, vector - }: - mkDerivation { - pname = "fuzzyset"; - version = "0.1.0.8"; - sha256 = "9b975a5e54d3025c25ed01963d0d8e2b0bea0435f6fc88516ccf0da59dfbd124"; - libraryHaskellDepends = [ - base base-unicode-symbols data-default lens text text-metrics - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/laserpants/fuzzyset-haskell"; - description = "Fuzzy set for approximate string matching"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gauge" = callPackage - ({ mkDerivation, base, basement, deepseq, directory, process - , stdenv, vector - }: - mkDerivation { - pname = "gauge"; - version = "0.2.4"; - sha256 = "297fa02ceeb8be23c111ecbd15bfb2203dfa22a757fce51f8ed2829d35630add"; - libraryHaskellDepends = [ - base basement deepseq directory process vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-gauge"; - description = "small framework for performance measurement and analysis"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gc" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, stdenv }: - mkDerivation { - pname = "gc"; - version = "0.0.2"; - sha256 = "39cc5ac887319aeb184ee0d6ddb5b5a34e3f3d38c3fdf3ecc60bdf31a53dc30c"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/gc/"; - description = "Poor Richard's Memory Manager"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gd" = callPackage - ({ mkDerivation, base, bytestring, expat, fontconfig, freetype, gd - , libjpeg, libpng, stdenv, zlib - }: - mkDerivation { - pname = "gd"; - version = "3000.7.3"; - sha256 = "14aecb600d9a058b1905dfdef3d51a1eb11fb92f804fbaaa041103a0bfd97fb6"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ - expat fontconfig freetype gd libjpeg libpng zlib - ]; - doHaddock = false; - doCheck = false; - description = "A Haskell binding to a subset of the GD graphics library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) expat; inherit (pkgs) fontconfig; -inherit (pkgs) freetype; inherit (pkgs) gd; -inherit (pkgs) libjpeg; inherit (pkgs) libpng; inherit (pkgs) zlib;}; - "gdp" = callPackage - ({ mkDerivation, base, lawful, stdenv }: - mkDerivation { - pname = "gdp"; - version = "0.0.0.2"; - sha256 = "214fff5ae2e4952cb8f15e7209be125e760b6d97fac4cd99b2e0592f790a1abf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base lawful ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/githubuser/gdp#readme"; - description = "Reason about invariants and preconditions with ghosts of departed proofs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "general-games" = callPackage - ({ mkDerivation, base, monad-loops, MonadRandom, random - , random-shuffle, stdenv - }: - mkDerivation { - pname = "general-games"; - version = "1.1.1"; - sha256 = "8b8e9e3546738b55a74589cf76ebe46c3a2f2fd346a853f9dbbf8bd0563350c0"; - libraryHaskellDepends = [ - base monad-loops MonadRandom random random-shuffle - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cgorski/general-games"; - description = "Library supporting simulation of a number of games"; - license = stdenv.lib.licenses.mit; - }) {}; - "generic-arbitrary" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv }: - mkDerivation { - pname = "generic-arbitrary"; - version = "0.1.0"; - sha256 = "69f30a54e7a3d0a45288778e22e6d0d03cfc3b525dfe0a663cd4f559a619bcc6"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - description = "Generic implementation for QuickCheck's Arbitrary"; - license = stdenv.lib.licenses.mit; - }) {}; - "generic-data" = callPackage - ({ mkDerivation, base, base-orphans, contravariant - , show-combinators, stdenv - }: - mkDerivation { - pname = "generic-data"; - version = "0.3.0.0"; - sha256 = "4c82444def5db474389ba66e47370dd1cd8c194d951bd40344ab3a5e77faa358"; - libraryHaskellDepends = [ - base base-orphans contravariant show-combinators - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Lysxia/generic-data#readme"; - description = "Utilities for GHC.Generics"; - license = stdenv.lib.licenses.mit; - }) {}; - "generic-deriving" = callPackage - ({ mkDerivation, base, containers, ghc-prim, stdenv - , template-haskell, th-abstraction - }: - mkDerivation { - pname = "generic-deriving"; - version = "1.12.3"; - sha256 = "dbedd7a4e3e6a23f2405283e34ca22a6be6ff1943994fd2aaf7e749469f46692"; - libraryHaskellDepends = [ - base containers ghc-prim template-haskell th-abstraction - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dreixel/generic-deriving"; - description = "Generic programming library for generalised deriving"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "generic-lens" = callPackage - ({ mkDerivation, base, profunctors, stdenv, tagged }: - mkDerivation { - pname = "generic-lens"; - version = "1.1.0.0"; - sha256 = "ecf2946dbf7c84cb80febdd6c0574668ba7213644662cc1157f392f9767936bb"; - libraryHaskellDepends = [ base profunctors tagged ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kcsongor/generic-lens"; - description = "Generically derive traversals, lenses and prisms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "generic-random" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv }: - mkDerivation { - pname = "generic-random"; - version = "1.2.0.0"; - sha256 = "9b1e00d2f06b582695a34cfdb2d8b62b32f64152c6ed43f5c2d776e6e9aa148c"; - revision = "1"; - editedCabalFile = "1d0hx41r7yq2a86ydnfh2fv540ah8cz05l071s2z4wxcjw0ymyn4"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lysxia/generic-random"; - description = "Generic random generators"; - license = stdenv.lib.licenses.mit; - }) {}; - "generics-eot" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "generics-eot"; - version = "0.4"; - sha256 = "5abedc86df738c8ff7a8c6ca9ee97605406a1b6fadd4924fa93f7aacd2fece9b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://generics-eot.readthedocs.io/"; - description = "A library for generic programming that aims to be easy to understand"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "generics-mrsop" = callPackage - ({ mkDerivation, base, containers, mtl, stdenv, template-haskell }: - mkDerivation { - pname = "generics-mrsop"; - version = "1.2.2"; - sha256 = "dbcb6e1d998a3412448a9d96d09ba3f3fcd760f54a492287048e885d2ddb9b76"; - libraryHaskellDepends = [ base containers mtl template-haskell ]; - doHaddock = false; - doCheck = false; - description = "Generic Programming with Mutually Recursive Sums of Products"; - license = stdenv.lib.licenses.mit; - }) {}; - "generics-sop" = callPackage - ({ mkDerivation, base, ghc-prim, sop-core, stdenv, template-haskell - }: - mkDerivation { - pname = "generics-sop"; - version = "0.4.0.1"; - sha256 = "dc99fa6c597b7ce256bdbdfc89fc615f26013e25256dd7e813f05b7845b61398"; - libraryHaskellDepends = [ - base ghc-prim sop-core template-haskell - ]; - doHaddock = false; - doCheck = false; - description = "Generic Programming using True Sums of Products"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "generics-sop-lens" = callPackage - ({ mkDerivation, base, generics-sop, lens, stdenv }: - mkDerivation { - pname = "generics-sop-lens"; - version = "0.1.2.1"; - sha256 = "4e49d4cc580d45e25e0abdeee12b1191ae75937af1c7ca03333979584a8a525c"; - revision = "6"; - editedCabalFile = "0j4j3kk2nsl5n5gp0vrzqdc5y9ly31b4nvhq0bpgcpzibvik7ssw"; - libraryHaskellDepends = [ base generics-sop lens ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/generics-sop-lens#readme"; - description = "Lenses for types in generics-sop"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "genvalidity" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv, validity }: - mkDerivation { - pname = "genvalidity"; - version = "0.7.0.0"; - sha256 = "81231459cfc02d6bc85e9c2b58f2fd25615cd5801ad1e6583460d8903dc65aae"; - libraryHaskellDepends = [ base QuickCheck validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Testing utilities for the validity library"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-aeson" = callPackage - ({ mkDerivation, aeson, base, genvalidity, genvalidity-scientific - , genvalidity-text, genvalidity-unordered-containers - , genvalidity-vector, QuickCheck, stdenv, validity, validity-aeson - }: - mkDerivation { - pname = "genvalidity-aeson"; - version = "0.2.0.2"; - sha256 = "d1244fea0a0a7cad4f783a72b9ff98c606131445a3f2fe9bced5194ff8a2e7b0"; - libraryHaskellDepends = [ - aeson base genvalidity genvalidity-scientific genvalidity-text - genvalidity-unordered-containers genvalidity-vector QuickCheck - validity validity-aeson - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for aeson"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-bytestring" = callPackage - ({ mkDerivation, base, bytestring, genvalidity, QuickCheck, stdenv - , validity, validity-bytestring - }: - mkDerivation { - pname = "genvalidity-bytestring"; - version = "0.3.0.1"; - sha256 = "e8e71e9e6bd9841ab2fdbe6f50f819d3b2e6deef61d51a165dbb34a54a8383c9"; - libraryHaskellDepends = [ - base bytestring genvalidity QuickCheck validity validity-bytestring - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for ByteString"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-containers" = callPackage - ({ mkDerivation, base, containers, genvalidity, QuickCheck, stdenv - , validity, validity-containers - }: - mkDerivation { - pname = "genvalidity-containers"; - version = "0.5.1.1"; - sha256 = "cfb99413ded6bc2b11da5f78a905e731fc53b6addab751dfa4de1e10f9aaebfc"; - libraryHaskellDepends = [ - base containers genvalidity QuickCheck validity validity-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for containers"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-hspec" = callPackage - ({ mkDerivation, base, genvalidity, genvalidity-property, hspec - , hspec-core, QuickCheck, stdenv, transformers, validity - }: - mkDerivation { - pname = "genvalidity-hspec"; - version = "0.6.2.2"; - sha256 = "2e4fb7ce3a0e5ec4b2c52665b869eb4694fb1237f4ed309daa351e473542feda"; - libraryHaskellDepends = [ - base genvalidity genvalidity-property hspec hspec-core QuickCheck - transformers validity - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Standard spec's for GenValidity instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-hspec-aeson" = callPackage - ({ mkDerivation, aeson, base, bytestring, deepseq, genvalidity - , genvalidity-hspec, hspec, QuickCheck, stdenv - }: - mkDerivation { - pname = "genvalidity-hspec-aeson"; - version = "0.3.0.1"; - sha256 = "a2d2e232b521f15bb4fdcf139621b9fdb6bad7de6cb888597d62a96dda50b274"; - libraryHaskellDepends = [ - aeson base bytestring deepseq genvalidity genvalidity-hspec hspec - QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "http://cs-syd.eu"; - description = "Standard spec's for aeson-related instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-hspec-binary" = callPackage - ({ mkDerivation, base, binary, deepseq, genvalidity - , genvalidity-hspec, hspec, QuickCheck, stdenv - }: - mkDerivation { - pname = "genvalidity-hspec-binary"; - version = "0.2.0.3"; - sha256 = "b99ba22694a36af01f6617463a38a35f305e55c46c52ee727302f2e1585ea9aa"; - libraryHaskellDepends = [ - base binary deepseq genvalidity genvalidity-hspec hspec QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Standard spec's for binary-related Instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-hspec-cereal" = callPackage - ({ mkDerivation, base, cereal, deepseq, genvalidity - , genvalidity-hspec, hspec, QuickCheck, stdenv - }: - mkDerivation { - pname = "genvalidity-hspec-cereal"; - version = "0.2.0.3"; - sha256 = "947ec34b6befa40f12eb16ad1d37aba97c5daf91efcbb25c564e8ae2ac887185"; - libraryHaskellDepends = [ - base cereal deepseq genvalidity genvalidity-hspec hspec QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "http://cs-syd.eu"; - description = "Standard spec's for cereal-related instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-hspec-hashable" = callPackage - ({ mkDerivation, base, genvalidity, genvalidity-hspec - , genvalidity-property, hashable, hspec, QuickCheck, stdenv - , validity - }: - mkDerivation { - pname = "genvalidity-hspec-hashable"; - version = "0.2.0.3"; - sha256 = "c61432a1899af3d916c7892fe16d5ed1a7fa30a4e24504a19f6bb90376546151"; - libraryHaskellDepends = [ - base genvalidity genvalidity-hspec genvalidity-property hashable - hspec QuickCheck validity - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Standard spec's for Hashable instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-hspec-optics" = callPackage - ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec - , microlens, QuickCheck, stdenv - }: - mkDerivation { - pname = "genvalidity-hspec-optics"; - version = "0.1.1.1"; - sha256 = "0a92cb7d1f98dc17634434f715473cc19596864146eee6256eaf86576c943788"; - libraryHaskellDepends = [ - base genvalidity genvalidity-hspec hspec microlens QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "http://cs-syd.eu"; - description = "Standard spec's for optics"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-path" = callPackage - ({ mkDerivation, base, genvalidity, path, QuickCheck, stdenv - , validity-path - }: - mkDerivation { - pname = "genvalidity-path"; - version = "0.3.0.2"; - sha256 = "00fc6d2f4d54cda700ad4af04efea62db002cab4fbb3ca8da4d20b1a03a340ba"; - libraryHaskellDepends = [ - base genvalidity path QuickCheck validity-path - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for Path"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-property" = callPackage - ({ mkDerivation, base, genvalidity, hspec, QuickCheck, stdenv - , validity - }: - mkDerivation { - pname = "genvalidity-property"; - version = "0.3.0.0"; - sha256 = "3aea3cc0833ee2ecdffe2da24e33770ef4e82fd0bfe5e66792d76357f1ac970d"; - libraryHaskellDepends = [ - base genvalidity hspec QuickCheck validity - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Standard properties for functions on `Validity` types"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-scientific" = callPackage - ({ mkDerivation, base, genvalidity, QuickCheck, scientific, stdenv - , validity, validity-scientific - }: - mkDerivation { - pname = "genvalidity-scientific"; - version = "0.2.1.0"; - sha256 = "af11d48c53455eb250e68c6cb4f6e8159ddc16fb635879fc2973d57d8bd5903d"; - libraryHaskellDepends = [ - base genvalidity QuickCheck scientific validity validity-scientific - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for Scientific"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-text" = callPackage - ({ mkDerivation, array, base, genvalidity, QuickCheck, stdenv, text - , validity, validity-text - }: - mkDerivation { - pname = "genvalidity-text"; - version = "0.5.1.0"; - sha256 = "ef3d7ebe85cf5ce10675f350dd80dfdb3c3f700e109170d0c4929afdbfe8ee48"; - libraryHaskellDepends = [ - array base genvalidity QuickCheck text validity validity-text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for Text"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-time" = callPackage - ({ mkDerivation, base, genvalidity, QuickCheck, stdenv, time - , validity-time - }: - mkDerivation { - pname = "genvalidity-time"; - version = "0.2.1.1"; - sha256 = "c555c206edddbd70355b295ccf9ff053463c137735c4aebcc340091f6d6b7874"; - libraryHaskellDepends = [ - base genvalidity QuickCheck time validity-time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for time"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-unordered-containers" = callPackage - ({ mkDerivation, base, genvalidity, hashable, QuickCheck, stdenv - , unordered-containers, validity, validity-unordered-containers - }: - mkDerivation { - pname = "genvalidity-unordered-containers"; - version = "0.2.0.4"; - sha256 = "78502e46cc717aba80ee9c8f6778b30c7e4e583361b65b3a43f4ad1a4be57b66"; - libraryHaskellDepends = [ - base genvalidity hashable QuickCheck unordered-containers validity - validity-unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for unordered-containers"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-uuid" = callPackage - ({ mkDerivation, base, genvalidity, QuickCheck, stdenv, uuid - , validity, validity-uuid - }: - mkDerivation { - pname = "genvalidity-uuid"; - version = "0.1.0.2"; - sha256 = "d1354bdfc0a75a1f228cfed22cd0edb0cc13a925e4b2514a634d56eb5b53f412"; - libraryHaskellDepends = [ - base genvalidity QuickCheck uuid validity validity-uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for UUID"; - license = stdenv.lib.licenses.mit; - }) {}; - "genvalidity-vector" = callPackage - ({ mkDerivation, base, genvalidity, QuickCheck, stdenv, validity - , validity-vector, vector - }: - mkDerivation { - pname = "genvalidity-vector"; - version = "0.2.0.3"; - sha256 = "b3c42019fea54c0da0b0947b01cad510679b3b6c2dc55a43326806f9a02e3c98"; - libraryHaskellDepends = [ - base genvalidity QuickCheck validity validity-vector vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "GenValidity support for vector"; - license = stdenv.lib.licenses.mit; - }) {}; - "geojson" = callPackage - ({ mkDerivation, aeson, base, containers, deepseq, lens, scientific - , semigroups, stdenv, text, transformers, validation - }: - mkDerivation { - pname = "geojson"; - version = "3.0.4"; - sha256 = "85b30c38948bbca401b53117989aa432de94cb3096fecf51b78f237f164bd336"; - revision = "1"; - editedCabalFile = "1dp2hmnh77il2nx809bbkhhq4bz7ycy38ai5bhyklagc4k5bxl1c"; - libraryHaskellDepends = [ - aeson base containers deepseq lens scientific semigroups text - transformers validation - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/indicatrix/hs-geojson"; - description = "A thin GeoJSON Layer above the aeson library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "getopt-generics" = callPackage - ({ mkDerivation, base, base-compat, base-orphans, generics-sop - , stdenv, tagged - }: - mkDerivation { - pname = "getopt-generics"; - version = "0.13.0.3"; - sha256 = "ab05824897afa59304fd653685b5d9580cc91b1d6783d30234a03dbf9dee0288"; - libraryHaskellDepends = [ - base base-compat base-orphans generics-sop tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/soenkehahn/getopt-generics#readme"; - description = "Create command line interfaces with ease"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-core" = callPackage - ({ mkDerivation, base, colorize-haskell, directory, filepath - , pcre-light, process, stdenv - }: - mkDerivation { - pname = "ghc-core"; - version = "0.5.6"; - sha256 = "ec34f3e5892be7c2b52945875cd330397eca3904ae1d9574559855817b8b7e85"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base colorize-haskell directory filepath pcre-light process - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/shachaf/ghc-core"; - description = "Display GHC's core and assembly output in a pager"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-exactprint" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , free, ghc, ghc-boot, ghc-paths, mtl, stdenv, syb - }: - mkDerivation { - pname = "ghc-exactprint"; - version = "0.5.8.2"; - sha256 = "961dde178df96c123d12a362f64f7ef43228176fd3a1b876a8fecc75df8694a3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers directory filepath free ghc ghc-boot - ghc-paths mtl syb - ]; - doHaddock = false; - doCheck = false; - description = "ExactPrint for GHC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-paths" = callPackage - ({ mkDerivation, base, Cabal, directory, stdenv }: - mkDerivation { - pname = "ghc-paths"; - version = "0.1.0.9"; - sha256 = "afa68fb86123004c37c1dc354286af2d87a9dcfb12ddcb80e8bd0cd55bc87945"; - revision = "4"; - editedCabalFile = "1fp0jyvi6prqsv0dxn010c7q4mmiwlcy1xk6ppd4d539adxxy67d"; - setupHaskellDepends = [ base Cabal directory ]; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Knowledge of GHC's installation directories"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-prof" = callPackage - ({ mkDerivation, attoparsec, base, containers, scientific, stdenv - , text, time - }: - mkDerivation { - pname = "ghc-prof"; - version = "1.4.1.5"; - sha256 = "e42d1acd9947c1396adcf1ae3a0627144884af5cf13176fb09cce0e9bcfbfe32"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - attoparsec base containers scientific text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/maoe/ghc-prof"; - description = "Library for parsing GHC time and allocation profiling reports"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-syntax-highlighter" = callPackage - ({ mkDerivation, base, ghc, stdenv, text }: - mkDerivation { - pname = "ghc-syntax-highlighter"; - version = "0.0.3.0"; - sha256 = "a137f484740f4eee967fbc8d8366e053e52e073b948ffb3001b4e1227adeec1c"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ghc text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/ghc-syntax-highlighter"; - description = "Syntax highlighter for Haskell using lexer of GHC itself"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghc-tcplugins-extra" = callPackage - ({ mkDerivation, base, ghc, stdenv }: - mkDerivation { - pname = "ghc-tcplugins-extra"; - version = "0.3"; - sha256 = "30acfd21d590809c16d990512fc8fcb98361ec540a76438233bd8aa23e82374c"; - revision = "1"; - editedCabalFile = "0x2d4bp5lhyfrqjshmgbirdn2ihc057a8a6khqmz91jj9zlhf7vb"; - libraryHaskellDepends = [ base ghc ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/clash-lang/ghc-tcplugins-extra"; - description = "Utilities for writing GHC type-checker plugins"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "ghc-typelits-extra" = callPackage - ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra - , ghc-typelits-knownnat, ghc-typelits-natnormalise, integer-gmp - , stdenv, transformers - }: - mkDerivation { - pname = "ghc-typelits-extra"; - version = "0.3"; - sha256 = "47de9b6abbee64586c819616597c3768bea61b7aedb7f1c6d3231a163b6413ce"; - libraryHaskellDepends = [ - base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-knownnat - ghc-typelits-natnormalise integer-gmp transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.clash-lang.org/"; - description = "Additional type-level operations on GHC.TypeLits.Nat"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "ghc-typelits-knownnat" = callPackage - ({ mkDerivation, base, ghc, ghc-tcplugins-extra - , ghc-typelits-natnormalise, stdenv, template-haskell, transformers - }: - mkDerivation { - pname = "ghc-typelits-knownnat"; - version = "0.6"; - sha256 = "4b529b27b226cc3df47d95cb8f0a145ed0c25486dec4f99be8dcd700ddc7f237"; - libraryHaskellDepends = [ - base ghc ghc-tcplugins-extra ghc-typelits-natnormalise - template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://clash-lang.org/"; - description = "Derive KnownNat constraints from other KnownNat constraints"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "ghc-typelits-natnormalise" = callPackage - ({ mkDerivation, base, ghc, ghc-tcplugins-extra, integer-gmp - , stdenv, transformers - }: - mkDerivation { - pname = "ghc-typelits-natnormalise"; - version = "0.6.2"; - sha256 = "801ceb41442dfa992fad04c64f2989d1d701bcfe0874a55aa8d250e63c1a4311"; - libraryHaskellDepends = [ - base ghc ghc-tcplugins-extra integer-gmp transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.clash-lang.org/"; - description = "GHC typechecker plugin for types of kind GHC.TypeLits.Nat"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "ghci-hexcalc" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ghci-hexcalc"; - version = "0.1.0.1"; - sha256 = "429f96f698e7edc26f8b74ce4abdb9c8ee31e64ac18309a203b032363e2790d7"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/takenobu-hs/ghci-hexcalc"; - description = "GHCi as a Hex Calculator interactive"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghcid" = callPackage - ({ mkDerivation, ansi-terminal, base, cmdargs, containers - , directory, extra, filepath, fsnotify, process, stdenv - , terminal-size, time, unix - }: - mkDerivation { - pname = "ghcid"; - version = "0.7.1"; - sha256 = "a73719b5d03c24726b60d1cd4cd7379d7e50690c9b738b760149c450763bc31a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base cmdargs directory extra filepath process time - ]; - executableHaskellDepends = [ - ansi-terminal base cmdargs containers directory extra filepath - fsnotify process terminal-size time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/ghcid#readme"; - description = "GHCi based bare bones IDE"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ghcjs-codemirror" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ghcjs-codemirror"; - version = "0.0.0.2"; - sha256 = "6cbb2c649f6d4a874eb7486a2dd33db2ed0f138f1f8289a6447460d39b4b2097"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ghcjs/CodeMirror"; - description = "Installs CodeMirror JavaScript files"; - license = stdenv.lib.licenses.mit; - }) {}; - "ghost-buster" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ghost-buster"; - version = "0.1.1.0"; - sha256 = "02d0930ee77838e7f5a04ebc0a74f62b15218b8ace4a5b88510d9a6b56dbf6d6"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Lazersmoke/ghost-buster#readme"; - description = "Existential type utilites"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gi-atk" = callPackage - ({ mkDerivation, atk, base, bytestring, Cabal, containers, gi-glib - , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading - , stdenv, text, transformers - }: - mkDerivation { - pname = "gi-atk"; - version = "2.0.15"; - sha256 = "89753b4517e77ea956dcfd1294b4b98032c6e50df912e28c9a796d2b825fbfee"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-glib gi-gobject haskell-gi - haskell-gi-base haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ atk ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Atk bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) atk;}; - "gi-cairo" = callPackage - ({ mkDerivation, base, bytestring, Cabal, cairo, containers - , haskell-gi, haskell-gi-base, haskell-gi-overloading, stdenv, text - , transformers - }: - mkDerivation { - pname = "gi-cairo"; - version = "1.0.17"; - sha256 = "5dbda70a038a93cb07130597407de9cde1436603beca3f2a0a6b43953c55a7ab"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers haskell-gi haskell-gi-base - haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ cairo ]; - doHaddock = false; - doCheck = false; - preCompileBuildDriver = '' - PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig" - setupCompileFlags+=" $(pkg-config --libs cairo-gobject)" - ''; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Cairo bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) cairo;}; - "gi-gdk" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo - , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3 - , haskell-gi, haskell-gi-base, haskell-gi-overloading, stdenv, text - , transformers - }: - mkDerivation { - pname = "gi-gdk"; - version = "3.0.16"; - sha256 = "7eb0aa493d268cd040c7ff70ad09d7bf7787e0e7619617ba220b88eafe68e34a"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-cairo gi-gdkpixbuf gi-gio gi-glib - gi-gobject gi-pango haskell-gi haskell-gi-base - haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ gtk3 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Gdk bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {gtk3 = pkgs.gnome3.gtk;}; - "gi-gdkpixbuf" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gdk_pixbuf - , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base - , haskell-gi-overloading, stdenv, text, transformers - }: - mkDerivation { - pname = "gi-gdkpixbuf"; - version = "2.0.18"; - sha256 = "f232978dde69f4b2a2459ffb5280c33c2a8a079b3a1ce2f34bd9477dc0be3ead"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-gio gi-glib gi-gobject haskell-gi - haskell-gi-base haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ gdk_pixbuf ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "GdkPixbuf bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) gdk_pixbuf;}; - "gi-gio" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib - , gi-gobject, glib, haskell-gi, haskell-gi-base - , haskell-gi-overloading, stdenv, text, transformers - }: - mkDerivation { - pname = "gi-gio"; - version = "2.0.18"; - sha256 = "13ebcd9c5d804de97db1f0ce7de520a73ba2eed950cbf5be84950fe33a8ef440"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-glib gi-gobject haskell-gi - haskell-gi-base haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ glib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Gio bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) glib;}; - "gi-glib" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, glib - , haskell-gi, haskell-gi-base, haskell-gi-overloading, stdenv, text - , transformers - }: - mkDerivation { - pname = "gi-glib"; - version = "2.0.17"; - sha256 = "9d7abe0a9d66689c5102629edb43a2336d1bb8dc805f0cbe214e5a4e799eab67"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers haskell-gi haskell-gi-base - haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ glib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "GLib bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) glib;}; - "gi-gobject" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib - , haskell-gi, haskell-gi-base, haskell-gi-overloading, stdenv, text - , transformers - }: - mkDerivation { - pname = "gi-gobject"; - version = "2.0.16"; - sha256 = "c57844d5b9566834ece584bfbbdff1c3ef2de5aa67c711c406fe92d4b927f6ad"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-glib haskell-gi haskell-gi-base - haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ glib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "GObject bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) glib;}; - "gi-gtk" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk - , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject - , gi-pango, gtk3, haskell-gi, haskell-gi-base - , haskell-gi-overloading, stdenv, text, transformers - }: - mkDerivation { - pname = "gi-gtk"; - version = "3.0.27"; - sha256 = "79061e4d4f428b6c67056250d57555e8fa11ee83234fff0f52105d6a0ace1dc5"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf - gi-gio gi-glib gi-gobject gi-pango haskell-gi haskell-gi-base - haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ gtk3 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Gtk bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {gtk3 = pkgs.gnome3.gtk;}; - "gi-gtk-hs" = callPackage - ({ mkDerivation, base, base-compat, containers, gi-gdk - , gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk, haskell-gi-base, mtl - , stdenv, text, transformers - }: - mkDerivation { - pname = "gi-gtk-hs"; - version = "0.3.6.3"; - sha256 = "5e894629b84bb79bb8b91e2d006965e351d24665c1dd37f354a77ce5acd6d976"; - libraryHaskellDepends = [ - base base-compat containers gi-gdk gi-gdkpixbuf gi-glib gi-gobject - gi-gtk haskell-gi-base mtl text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/gi-gtk-hs"; - description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top"; - license = stdenv.lib.licenses.lgpl21; - }) {}; - "gi-gtksource" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk - , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject - , gi-gtk, gi-pango, gtksourceview3, haskell-gi, haskell-gi-base - , haskell-gi-overloading, stdenv, text, transformers - }: - mkDerivation { - pname = "gi-gtksource"; - version = "3.0.16"; - sha256 = "97b91b9f48b9e0c65a3936beb6e814ac5a55ab20aefbd9a167313982bd5da53a"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf - gi-gio gi-glib gi-gobject gi-gtk gi-pango haskell-gi - haskell-gi-base haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ gtksourceview3 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "GtkSource bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {gtksourceview3 = pkgs.gnome3.gtksourceview;}; - "gi-javascriptcore" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib - , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading - , stdenv, text, transformers, webkitgtk - }: - mkDerivation { - pname = "gi-javascriptcore"; - version = "4.0.16"; - sha256 = "5f30d7da8cca149b0234de871f18e4ff96288c928f678c649a620a7275c2304e"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-glib gi-gobject haskell-gi - haskell-gi-base haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ webkitgtk ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "JavaScriptCore bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) webkitgtk;}; - "gi-pango" = callPackage - ({ mkDerivation, base, bytestring, Cabal, cairo, containers - , gi-glib, gi-gobject, haskell-gi, haskell-gi-base - , haskell-gi-overloading, pango, stdenv, text, transformers - }: - mkDerivation { - pname = "gi-pango"; - version = "1.0.16"; - sha256 = "a7bcc68413d7f7479e9b746eacf08b0c29a93b7c8af17005d96607ce090e78f4"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-glib gi-gobject haskell-gi - haskell-gi-base haskell-gi-overloading text transformers - ]; - libraryPkgconfigDepends = [ cairo pango ]; - doHaddock = false; - doCheck = false; - preCompileBuildDriver = '' - PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig" - setupCompileFlags+=" $(pkg-config --libs cairo-gobject)" - ''; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Pango bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) cairo; inherit (pkgs) pango;}; - "gi-vte" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk - , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi - , haskell-gi-base, haskell-gi-overloading, stdenv, text - , transformers, vte_291 - }: - mkDerivation { - pname = "gi-vte"; - version = "2.91.19"; - sha256 = "9eb476c66295f9786df59bcf429d16a94462846dd3486a048a07ca93658bd0c2"; - setupHaskellDepends = [ base Cabal haskell-gi ]; - libraryHaskellDepends = [ - base bytestring containers gi-atk gi-gdk gi-gio gi-glib gi-gobject - gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading - text transformers - ]; - libraryPkgconfigDepends = [ vte_291 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Vte bindings"; - license = stdenv.lib.licenses.lgpl21; - }) {vte_291 = pkgs.gnome3.vte;}; - "gingersnap" = callPackage - ({ mkDerivation, aeson, base, bytestring, deepseq, http-types - , postgresql-simple, resource-pool, snap-core, stdenv, text - , transformers, unordered-containers - }: - mkDerivation { - pname = "gingersnap"; - version = "0.3.1.0"; - sha256 = "01509dbfc31e865128d2ef13efc56502f9a716f7b30f0890a0616612aed08c82"; - libraryHaskellDepends = [ - aeson base bytestring deepseq http-types postgresql-simple - resource-pool snap-core text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Consistent and safe JSON APIs with snap-core and (by default) postgresql-simple"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "giphy-api" = callPackage - ({ mkDerivation, aeson, base, containers, http-api-data - , http-client, http-client-tls, microlens, microlens-th, mtl - , network-uri, servant, servant-client, stdenv, text, transformers - }: - mkDerivation { - pname = "giphy-api"; - version = "0.6.0.1"; - sha256 = "8ddfb5005bc26553850366c527c0a1a93e6b1efaf4334f195a4f5ab647408604"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base containers http-api-data http-client http-client-tls - microlens microlens-th mtl network-uri servant servant-client text - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/passy/giphy-api#readme"; - description = "Giphy HTTP API wrapper and CLI search tool"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "githash" = callPackage - ({ mkDerivation, base, bytestring, directory, filepath, process - , stdenv, template-haskell - }: - mkDerivation { - pname = "githash"; - version = "0.1.3.1"; - sha256 = "ea58689a525e4953aaf91415d9a70b593fae88c7858e37f761bc836ce1fafc6e"; - libraryHaskellDepends = [ - base bytestring directory filepath process template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/githash#readme"; - description = "Compile git revision info into Haskell projects"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "github-release" = callPackage - ({ mkDerivation, aeson, base, bytestring, http-client - , http-client-tls, http-types, mime-types, optparse-generic, stdenv - , text, unordered-containers, uri-templater - }: - mkDerivation { - pname = "github-release"; - version = "1.2.4"; - sha256 = "cb0f6564eca150f39b2211f2013a84531cb352edfe2619dd2c831ffc33ae9be8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring http-client http-client-tls http-types - mime-types optparse-generic text unordered-containers uri-templater - ]; - executableHaskellDepends = [ - aeson base bytestring http-client http-client-tls http-types - mime-types optparse-generic text unordered-containers uri-templater - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/github-release#readme"; - description = "Upload files to GitHub releases"; - license = stdenv.lib.licenses.mit; - }) {}; - "github-types" = callPackage - ({ mkDerivation, aeson, base, stdenv, text, time }: - mkDerivation { - pname = "github-types"; - version = "0.2.1"; - sha256 = "cce4ea461b3ea7c92d130181244cfe7f29c10aecc7e7a980ee6722b6d6af7867"; - libraryHaskellDepends = [ aeson base text time ]; - doHaddock = false; - doCheck = false; - description = "Type definitions for objects used by the GitHub v3 API"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "github-webhooks" = callPackage - ({ mkDerivation, aeson, base, base16-bytestring, bytestring - , cryptonite, deepseq, deepseq-generics, memory, stdenv, text, time - , vector - }: - mkDerivation { - pname = "github-webhooks"; - version = "0.10.1"; - sha256 = "ddc410e81a607b1b758d5e0e94ba707bb85631b184fd50120507c2be9f2f54c2"; - libraryHaskellDepends = [ - aeson base base16-bytestring bytestring cryptonite deepseq - deepseq-generics memory text time vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/onrock-eng/github-webhooks#readme"; - description = "Aeson instances for GitHub Webhook payloads"; - license = stdenv.lib.licenses.mit; - }) {}; - "gitrev" = callPackage - ({ mkDerivation, base, base-compat, directory, filepath, process - , stdenv, template-haskell - }: - mkDerivation { - pname = "gitrev"; - version = "1.3.1"; - sha256 = "a89964db24f56727b0e7b10c98fe7c116d721d8c46f52d6e77088669aaa38332"; - libraryHaskellDepends = [ - base base-compat directory filepath process template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/acfoltzer/gitrev"; - description = "Compile git revision info into Haskell projects"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gl" = callPackage - ({ mkDerivation, base, Cabal, containers, directory, filepath - , fixed, half, hxt, libGL, stdenv, transformers - }: - mkDerivation { - pname = "gl"; - version = "0.8.0"; - sha256 = "aa4d2838157c86da920bda651458a4266fccc7c291ea93a69558ab02540e1439"; - revision = "2"; - editedCabalFile = "0zbpf559ajlcwnylpbm6dbi4m3g3s08fciqfp5am3i2vrmw0wpi9"; - setupHaskellDepends = [ - base Cabal containers directory filepath hxt transformers - ]; - libraryHaskellDepends = [ - base containers fixed half transformers - ]; - librarySystemDepends = [ libGL ]; - doHaddock = false; - doCheck = false; - description = "Complete OpenGL raw bindings"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) libGL;}; - "glabrous" = callPackage - ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring - , cereal, cereal-text, either, stdenv, text, unordered-containers - }: - mkDerivation { - pname = "glabrous"; - version = "1.0.1"; - sha256 = "434fadf483c4fb0aaec37fe3767c2bc9f7ba0e21543809040408abb129744787"; - libraryHaskellDepends = [ - aeson aeson-pretty attoparsec base bytestring cereal cereal-text - either text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MichelBoucey/glabrous"; - description = "A template DSL library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "glaze" = callPackage - ({ mkDerivation, base, lens, stdenv }: - mkDerivation { - pname = "glaze"; - version = "0.3.0.1"; - sha256 = "bbb184408bcf24e8c4f89a960cf7a69ab0c51e98bf84c5fa9901aae1702e22a1"; - libraryHaskellDepends = [ base lens ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/glaze#readme"; - description = "Framework for rendering things with metadata/headers and values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "glazier" = callPackage - ({ mkDerivation, alternators, base, data-diverse, data-diverse-lens - , dlist, lens, mtl, stdenv, transformers, unliftio, unliftio-core - }: - mkDerivation { - pname = "glazier"; - version = "1.0.0.0"; - sha256 = "e9c56250e48b99bfe6280c58d1458c5d35203bf3676705355a4d0bd89c7b71a4"; - libraryHaskellDepends = [ - alternators base data-diverse data-diverse-lens dlist lens mtl - transformers unliftio unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/glazier#readme"; - description = "Extensible effects using ContT, State and variants"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gloss" = callPackage - ({ mkDerivation, base, bmp, bytestring, containers, ghc-prim - , gloss-rendering, GLUT, OpenGL, stdenv - }: - mkDerivation { - pname = "gloss"; - version = "1.13.0.1"; - sha256 = "381c0fecd9532c38bf3d0faf18a1be8d5394c8b103dd223cbd6f5a313add29b8"; - revision = "1"; - editedCabalFile = "1nyg324icnlky647zq4c21sqxv2bgnwnzgh2hz5d5ys6ba69j59h"; - libraryHaskellDepends = [ - base bmp bytestring containers ghc-prim gloss-rendering GLUT OpenGL - ]; - doHaddock = false; - doCheck = false; - homepage = "http://gloss.ouroborus.net"; - description = "Painless 2D vector graphics, animations and simulations"; - license = stdenv.lib.licenses.mit; - }) {}; - "gloss-algorithms" = callPackage - ({ mkDerivation, base, containers, ghc-prim, gloss, stdenv }: - mkDerivation { - pname = "gloss-algorithms"; - version = "1.13.0.1"; - sha256 = "25391db76e21e70c912d818a5f28f1b647a801034b3960540264b1e8b766786d"; - revision = "1"; - editedCabalFile = "140zmk3br0nn98mjc6ri36nk8yl93n4v69zybzv2vc41yxgvnac5"; - libraryHaskellDepends = [ base containers ghc-prim gloss ]; - doHaddock = false; - doCheck = false; - homepage = "http://gloss.ouroborus.net"; - description = "Data structures and algorithms for working with 2D graphics"; - license = stdenv.lib.licenses.mit; - }) {}; - "gloss-examples" = callPackage - ({ mkDerivation, base, bmp, bytestring, containers, ghc-prim, gloss - , gloss-algorithms, gloss-raster, random, repa, repa-algorithms - , repa-io, stdenv, vector - }: - mkDerivation { - pname = "gloss-examples"; - version = "1.13.0.2"; - sha256 = "ab216c95cf26879154db0d7ee36def7a2d9b2cd6aaae4278e2b55621a51c54bc"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bmp bytestring containers ghc-prim gloss gloss-algorithms - gloss-raster random repa repa-algorithms repa-io vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://gloss.ouroborus.net"; - description = "Examples using the gloss library"; - license = stdenv.lib.licenses.mit; - }) {}; - "gloss-raster" = callPackage - ({ mkDerivation, base, containers, ghc-prim, gloss, gloss-rendering - , repa, stdenv - }: - mkDerivation { - pname = "gloss-raster"; - version = "1.13.0.2"; - sha256 = "895c678b7c7951937c9a881c3367952352bd62a1150b0c2f093a5817580a94cc"; - libraryHaskellDepends = [ - base containers ghc-prim gloss gloss-rendering repa - ]; - doHaddock = false; - doCheck = false; - homepage = "http://gloss.ouroborus.net"; - description = "Parallel rendering of raster images"; - license = stdenv.lib.licenses.mit; - }) {}; - "gloss-rendering" = callPackage - ({ mkDerivation, base, bmp, bytestring, containers, GLUT, OpenGL - , stdenv - }: - mkDerivation { - pname = "gloss-rendering"; - version = "1.13.0.2"; - sha256 = "003b992a84bbaee82c7fc3f3e7904afbfddffe02b86630712419d83eb18c7f47"; - revision = "1"; - editedCabalFile = "0r57zc8ryxgjb4ydcdlmq19hl3nj6gjm3z85wrmdkn0wrx16mqih"; - libraryHaskellDepends = [ - base bmp bytestring containers GLUT OpenGL - ]; - doHaddock = false; - doCheck = false; - description = "Gloss picture data types and rendering functions"; - license = stdenv.lib.licenses.mit; - }) {}; - "gnuplot" = callPackage - ({ mkDerivation, array, base, containers, data-accessor - , data-accessor-transformers, deepseq, filepath, process - , semigroups, stdenv, temporary, time, transformers, utility-ht - }: - mkDerivation { - pname = "gnuplot"; - version = "0.5.5.3"; - sha256 = "4f742082835978919db75abc570e6cd924d63c6bdd951e1280f97d5d98540504"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - array base containers data-accessor data-accessor-transformers - deepseq filepath process semigroups temporary time transformers - utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Gnuplot"; - description = "2D and 3D plots using gnuplot"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "goggles" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base64-bytestring, binary - , bytestring, containers, cryptonite, exceptions, filepath - , http-client, http-client-tls, http-types, memory, mtl, pem, req - , scientific, stdenv, stm, text, time, transformers, unix-time - , x509, x509-store - }: - mkDerivation { - pname = "goggles"; - version = "0.3.2"; - sha256 = "a64d25c6506b172ec6f3b8a55f7934c23ccedc66c1acfb62432063dff743e93c"; - libraryHaskellDepends = [ - aeson attoparsec base base64-bytestring binary bytestring - containers cryptonite exceptions filepath http-client - http-client-tls http-types memory mtl pem req scientific stm text - time transformers unix-time x509 x509-store - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocramz/goggles"; - description = "Extensible interface to Web APIs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "google-isbn" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, conduit-extra - , http-conduit, stdenv, text - }: - mkDerivation { - pname = "google-isbn"; - version = "1.0.3"; - sha256 = "3a4df734785c46d381cff3cb44a553b0f9d5ffb051279367a193d64928c2322f"; - libraryHaskellDepends = [ - aeson base bytestring conduit conduit-extra http-conduit text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/apeyroux/google-isbn#readme"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "google-oauth2-jwt" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, HsOpenSSL - , RSA, stdenv, text, unix-time - }: - mkDerivation { - pname = "google-oauth2-jwt"; - version = "0.3.1"; - sha256 = "71d7704aad64fbd2398d8b0dcb6f39311a8e710385fc80ee2b665bd6b43b2f88"; - libraryHaskellDepends = [ - base base64-bytestring bytestring HsOpenSSL RSA text unix-time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MichelBoucey/google-oauth2-jwt"; - description = "Get a signed JWT for Google Service Accounts"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gpolyline" = callPackage - ({ mkDerivation, base, split, stdenv }: - mkDerivation { - pname = "gpolyline"; - version = "0.1.0.1"; - sha256 = "28b3a644853ba6f0a7d6465d8d62646a10c995008a799ae67e728c8cf4a17a05"; - libraryHaskellDepends = [ base split ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fegu/gpolyline"; - description = "Pure module for encoding/decoding Google Polyline"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "graph-core" = callPackage - ({ mkDerivation, base, containers, deepseq, hashable, mtl, safe - , stdenv, unordered-containers, vector - }: - mkDerivation { - pname = "graph-core"; - version = "0.3.0.0"; - sha256 = "378f0baa40ebbb78e8c389f79e363eb573cdf182f799684d2f3d6ac51b10e854"; - libraryHaskellDepends = [ - base containers deepseq hashable mtl safe unordered-containers - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/factisresearch/graph-core"; - description = "Fast, memory efficient and persistent graph implementation"; - license = stdenv.lib.licenses.mit; - }) {}; - "graph-wrapper" = callPackage - ({ mkDerivation, array, base, containers, stdenv }: - mkDerivation { - pname = "graph-wrapper"; - version = "0.2.6.0"; - sha256 = "b89ed6f47a6d44b9466d090eabddc9d9ec4b2d7e4b52a61b26d0cf19dac95ba6"; - libraryHaskellDepends = [ array base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/soenkehahn/graph-wrapper"; - description = "A wrapper around the standard Data.Graph with a less awkward interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "graphs" = callPackage - ({ mkDerivation, array, base, containers, stdenv, transformers - , transformers-compat, void - }: - mkDerivation { - pname = "graphs"; - version = "0.7.1"; - sha256 = "acd37a7ba5dd02f24131ac8971a5f8639cc0e9db687e7d6790a84af4af0ce209"; - revision = "1"; - editedCabalFile = "1cjyxswlkachki6l4mcaffwpjajyx86jzipzlqjg7c080vwvb19g"; - libraryHaskellDepends = [ - array base containers transformers transformers-compat void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/graphs"; - description = "A simple monadic graph library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gravatar" = callPackage - ({ mkDerivation, base, bytestring, data-default, HTTP, pureMD5 - , stdenv, text - }: - mkDerivation { - pname = "gravatar"; - version = "0.8.0"; - sha256 = "6f6000acaea47f3fc8711f5a2a62d5fbe96f5bb698fcb997f9f07ffe3102f4d7"; - libraryHaskellDepends = [ - base bytestring data-default HTTP pureMD5 text - ]; - doHaddock = false; - doCheck = false; - description = "Generate Gravatar image URLs"; - license = stdenv.lib.licenses.mit; - }) {}; - "graylog" = callPackage - ({ mkDerivation, aeson, aeson-casing, base, bytestring, network - , random, scientific, stdenv, text, time, vector - }: - mkDerivation { - pname = "graylog"; - version = "0.1.0.1"; - sha256 = "2d8173e61da8d02c39cb95e6ccea8a167c792f682a496aed5fe4edfd0e6a0082"; - libraryHaskellDepends = [ - aeson aeson-casing base bytestring network random scientific text - time vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/AndrewRademacher/haskell-graylog"; - description = "Support for graylog output"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "greskell" = callPackage - ({ mkDerivation, aeson, base, exceptions, greskell-core, semigroups - , stdenv, text, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "greskell"; - version = "0.2.3.0"; - sha256 = "a851a131d4ebb8b5beda62b58a2268670a7dff8370d6cc795ce092615d642560"; - configureFlags = [ "-f-hint-test" ]; - libraryHaskellDepends = [ - aeson base exceptions greskell-core semigroups text transformers - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/greskell/"; - description = "Haskell binding for Gremlin graph query language"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "greskell-core" = callPackage - ({ mkDerivation, aeson, base, containers, hashable, scientific - , semigroups, stdenv, text, unordered-containers, uuid, vector - }: - mkDerivation { - pname = "greskell-core"; - version = "0.1.2.4"; - sha256 = "201d3f76a503948114f387f0c63d88e1170ed26305b2c2a8b799a47d37dc4f85"; - libraryHaskellDepends = [ - aeson base containers hashable scientific semigroups text - unordered-containers uuid vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/greskell/"; - description = "Haskell binding for Gremlin graph query language - core data types and tools"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "greskell-websocket" = callPackage - ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring - , greskell-core, hashtables, safe-exceptions, stdenv, stm, text - , unordered-containers, uuid, vector, websockets - }: - mkDerivation { - pname = "greskell-websocket"; - version = "0.1.1.2"; - sha256 = "9062b34fec1855b0262a0cf529dcc3ebf5bb20738712195420d832dd46e2cde7"; - libraryHaskellDepends = [ - aeson async base base64-bytestring bytestring greskell-core - hashtables safe-exceptions stm text unordered-containers uuid - vector websockets - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/greskell/"; - description = "Haskell client for Gremlin Server using WebSocket serializer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "groom" = callPackage - ({ mkDerivation, base, haskell-src-exts, stdenv }: - mkDerivation { - pname = "groom"; - version = "0.1.2.1"; - sha256 = "a6b4a4d3af1b26f63039f04bd4176493f8dd4f6a9ab281f0e33c0151c20de59d"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base haskell-src-exts ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Pretty printing for well-behaved Show instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "groundhog" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base64-bytestring - , blaze-builder, bytestring, containers, monad-control, mtl - , resourcet, safe-exceptions, scientific, stdenv, text, time - , transformers, transformers-base, transformers-compat - }: - mkDerivation { - pname = "groundhog"; - version = "0.10.0"; - sha256 = "38fb65889878a50fd16e2ad8a04f0a9e2c774794086fbe156361d797b1a893f1"; - libraryHaskellDepends = [ - aeson attoparsec base base64-bytestring blaze-builder bytestring - containers monad-control mtl resourcet safe-exceptions scientific - text time transformers transformers-base transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lykahb/groundhog"; - description = "Type-safe datatype-database mapping library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "groundhog-mysql" = callPackage - ({ mkDerivation, base, bytestring, containers, groundhog - , monad-control, monad-logger, mysql, mysql-simple, resource-pool - , resourcet, stdenv, text, time, transformers - }: - mkDerivation { - pname = "groundhog-mysql"; - version = "0.10"; - sha256 = "ddf26a56078d815c77b0d36230183fe8ab804c5dc12ed09c2332ae06a88ebec5"; - libraryHaskellDepends = [ - base bytestring containers groundhog monad-control monad-logger - mysql mysql-simple resource-pool resourcet text time transformers - ]; - doHaddock = false; - doCheck = false; - description = "MySQL backend for the groundhog library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "groundhog-postgresql" = callPackage - ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring - , containers, groundhog, monad-control, postgresql-libpq - , postgresql-simple, resource-pool, resourcet, stdenv, text, time - , transformers, vector - }: - mkDerivation { - pname = "groundhog-postgresql"; - version = "0.10"; - sha256 = "8916f26dfe8b3a8523792ce44899fa7ee984c002100c10850819159551dc2fb6"; - libraryHaskellDepends = [ - aeson attoparsec base blaze-builder bytestring containers groundhog - monad-control postgresql-libpq postgresql-simple resource-pool - resourcet text time transformers vector - ]; - doHaddock = false; - doCheck = false; - description = "PostgreSQL backend for the groundhog library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "groundhog-sqlite" = callPackage - ({ mkDerivation, base, bytestring, containers, direct-sqlite - , groundhog, monad-control, resource-pool, resourcet, stdenv, text - , transformers, unordered-containers - }: - mkDerivation { - pname = "groundhog-sqlite"; - version = "0.10.0"; - sha256 = "fdf0377924ac6214ced50a5670b2d4811801c1a20e480b22090a705582d6defc"; - libraryHaskellDepends = [ - base bytestring containers direct-sqlite groundhog monad-control - resource-pool resourcet text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Sqlite3 backend for the groundhog library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "groups" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "groups"; - version = "0.4.1.0"; - sha256 = "dd4588b71dfff42b9a30cb40304912742b95db964b20f51951aff0eee7f3f33d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Haskell 98 groups"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "guarded-allocation" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "guarded-allocation"; - version = "0.0.1"; - sha256 = "0cac10d1790817bdbc44ffe4ee8fcb649e350bb831987ee80739393917784695"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/guarded-allocation/"; - description = "Memory allocation with added stress tests and integrity checks"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "gym-http-api" = callPackage - ({ mkDerivation, aeson, base, exceptions, http-client, servant - , servant-client, servant-lucid, stdenv, text, unordered-containers - }: - mkDerivation { - pname = "gym-http-api"; - version = "0.1.0.1"; - sha256 = "2c3fd9b261cd7bc3a004d41f582cd6c629956c78f7236eb91d615ca0c9b0c910"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base servant servant-client servant-lucid text - unordered-containers - ]; - executableHaskellDepends = [ - base exceptions http-client servant-client - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stites/gym-http-api#readme"; - description = "REST client to the gym-http-api project"; - license = stdenv.lib.licenses.mit; - }) {}; - "h2c" = callPackage - ({ mkDerivation, base, bytestring, mtl, resourcet, stdenv }: - mkDerivation { - pname = "h2c"; - version = "1.0.0"; - sha256 = "4be2c9d54084175777624770640850aba33d7e4a31e2dc8096c122f737965499"; - libraryHaskellDepends = [ base bytestring mtl resourcet ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/fmapE/h2c"; - description = "Bindings to Linux I2C with support for repeated-start transactions"; - license = stdenv.lib.licenses.mit; - }) {}; - "hOpenPGP" = callPackage - ({ mkDerivation, aeson, asn1-encoding, attoparsec, base - , base16-bytestring, base64-bytestring, bifunctors, binary - , binary-conduit, bytestring, bzlib, conduit, conduit-extra - , containers, crypto-cipher-types, cryptonite, errors, hashable - , incremental-parser, ixset-typed, lens, memory, monad-loops - , nettle, network-uri, newtype, openpgp-asciiarmor, prettyprinter - , resourcet, semigroups, split, stdenv, text, time - , time-locale-compat, transformers, unliftio-core - , unordered-containers, zlib - }: - mkDerivation { - pname = "hOpenPGP"; - version = "2.7.4.1"; - sha256 = "1aa868310f2c1fe4a768034e8114fe7d5d91479b5f34850c27890537f3419539"; - libraryHaskellDepends = [ - aeson asn1-encoding attoparsec base base16-bytestring - base64-bytestring bifunctors binary binary-conduit bytestring bzlib - conduit conduit-extra containers crypto-cipher-types cryptonite - errors hashable incremental-parser ixset-typed lens memory - monad-loops nettle network-uri newtype openpgp-asciiarmor - prettyprinter resourcet semigroups split text time - time-locale-compat transformers unliftio-core unordered-containers - zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://salsa.debian.org/clint/hOpenPGP"; - description = "native Haskell implementation of OpenPGP (RFC4880)"; - license = stdenv.lib.licenses.mit; - }) {}; - "hackage-db" = callPackage - ({ mkDerivation, aeson, base, bytestring, Cabal, containers - , directory, filepath, stdenv, tar, time, utf8-string - }: - mkDerivation { - pname = "hackage-db"; - version = "2.0.1"; - sha256 = "f0aac1af6d8d29b7fc2ffd43efaf5a7a5b00f2ead8dacff180bc3714c591ef8d"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring Cabal containers directory filepath tar time - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/hackage-db#readme"; - description = "Access Hackage's package database via Data.Map"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hackage-security" = callPackage - ({ mkDerivation, base, base16-bytestring, base64-bytestring - , bytestring, Cabal, containers, cryptohash-sha256, directory - , ed25519, filepath, ghc-prim, mtl, network, network-uri, parsec - , pretty, stdenv, tar, template-haskell, time, transformers, zlib - }: - mkDerivation { - pname = "hackage-security"; - version = "0.5.3.0"; - sha256 = "db986e17e9265aa9e40901690815b890b97d53159eb24d0a6cafaa7c18577c21"; - revision = "5"; - editedCabalFile = "07mzv3bwb4rcwlmsd9c36g71y605qh72li0rsxf3c1k5bpcnl3yi"; - libraryHaskellDepends = [ - base base16-bytestring base64-bytestring bytestring Cabal - containers cryptohash-sha256 directory ed25519 filepath ghc-prim - mtl network network-uri parsec pretty tar template-haskell time - transformers zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/hackage-security"; - description = "Hackage security library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haddock-library" = callPackage - ({ mkDerivation, base, bytestring, containers, parsec, stdenv, text - , transformers - }: - mkDerivation { - pname = "haddock-library"; - version = "1.7.0"; - sha256 = "e7c2794a7eb352824f098cafa07bc0506f2c3633808bfbf4c64aef0ba664d011"; - libraryHaskellDepends = [ - base bytestring containers parsec text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haddock/"; - description = "Library exposing some functionality of Haddock"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hailgun" = callPackage - ({ mkDerivation, aeson, base, bytestring, email-validate - , exceptions, filepath, http-client, http-client-tls, http-types - , stdenv, tagsoup, text, time, transformers - }: - mkDerivation { - pname = "hailgun"; - version = "0.4.1.8"; - sha256 = "9dcc7367afec6605045246d4959f27a29a54bbdbcec543e6f5ae59b048e2dcc3"; - libraryHaskellDepends = [ - aeson base bytestring email-validate exceptions filepath - http-client http-client-tls http-types tagsoup text time - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/robertmassaioli/hailgun"; - description = "Mailgun REST api interface for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "half" = callPackage - ({ mkDerivation, base, deepseq, stdenv, template-haskell }: - mkDerivation { - pname = "half"; - version = "0.3"; - sha256 = "06b26fb062a55fa8f5df1cc2fddc47e5303f09977279f05f62d1950a51b72093"; - libraryHaskellDepends = [ base deepseq template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/half"; - description = "Half-precision floating-point"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hamilton" = callPackage - ({ mkDerivation, ad, ansi-wl-pprint, base, containers - , finite-typelits, ghc-typelits-knownnat, hmatrix, hmatrix-gsl - , hmatrix-vector-sized, optparse-applicative, stdenv - , typelits-witnesses, vector, vector-sized, vty - }: - mkDerivation { - pname = "hamilton"; - version = "0.1.0.3"; - sha256 = "3c7623217c8e49cabc6620835e53609e7b7339f39a1523da2467076252addb1b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ad base hmatrix hmatrix-gsl hmatrix-vector-sized typelits-witnesses - vector-sized - ]; - executableHaskellDepends = [ - ansi-wl-pprint base containers finite-typelits - ghc-typelits-knownnat hmatrix optparse-applicative vector - vector-sized vty - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/hamilton#readme"; - description = "Physics on generalized coordinate systems using Hamiltonian Mechanics and AD"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hamtsolo" = callPackage - ({ mkDerivation, async, attoparsec, attoparsec-binary, base, binary - , bytestring, conduit, conduit-combinators, conduit-extra - , exceptions, gitrev, optparse-applicative, resourcet, stdenv - , stm-conduit, unix - }: - mkDerivation { - pname = "hamtsolo"; - version = "1.0.3"; - sha256 = "d0deda06a582db978a417d8eed9e403c339a54c4bc9c2b6c6cdee8555dbb7035"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - async attoparsec attoparsec-binary base binary bytestring conduit - conduit-combinators conduit-extra exceptions gitrev - optparse-applicative resourcet stm-conduit unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfc/hamtsolo#readme"; - description = "Intel AMT serial-over-lan (SOL) client"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hapistrano" = callPackage - ({ mkDerivation, aeson, async, base, filepath, formatting, gitrev - , mtl, optparse-applicative, path, path-io, process, stdenv, stm - , time, transformers, typed-process, yaml - }: - mkDerivation { - pname = "hapistrano"; - version = "0.3.9.2"; - sha256 = "0deee3a40075e1bd3e215f5f01f8392b2f216275205cfec29d9dd36d70c94011"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base filepath formatting gitrev mtl path process stm time - transformers typed-process - ]; - executableHaskellDepends = [ - aeson async base formatting gitrev optparse-applicative path - path-io stm yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stackbuilders/hapistrano"; - description = "A deployment library for Haskell applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "happy" = callPackage - ({ mkDerivation, array, base, Cabal, containers, directory - , filepath, mtl, stdenv - }: - mkDerivation { - pname = "happy"; - version = "1.19.9"; - sha256 = "3e81a3e813acca3aae52721c412cde18b7b7c71ecbacfaeaa5c2f4b35abf1d8d"; - revision = "3"; - editedCabalFile = "0kwlh964nyqvfbm02np8vpc28gbhsby0r65jhz1918rm0wip9izq"; - isLibrary = false; - isExecutable = true; - setupHaskellDepends = [ base Cabal directory filepath ]; - executableHaskellDepends = [ array base containers mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.haskell.org/happy/"; - description = "Happy is a parser generator for Haskell"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "hasbolt" = callPackage - ({ mkDerivation, base, binary, bytestring, connection, containers - , data-binary-ieee754, data-default, network, stdenv, text - , transformers - }: - mkDerivation { - pname = "hasbolt"; - version = "0.1.3.2"; - sha256 = "31acb64497ce06eecfc2c54297b561a373d8584142a8d9b8f67cbabc701c5893"; - revision = "4"; - editedCabalFile = "0h38mjkr3cqhsr9hwf2wj27mknnxyb2y3swzp18s7q4vmrb1ijyz"; - libraryHaskellDepends = [ - base binary bytestring connection containers data-binary-ieee754 - data-default network text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/zmactep/hasbolt#readme"; - description = "Haskell driver for Neo4j 3+ (BOLT protocol)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hashable" = callPackage - ({ mkDerivation, base, bytestring, deepseq, ghc-prim, integer-gmp - , stdenv, text - }: - mkDerivation { - pname = "hashable"; - version = "1.2.7.0"; - sha256 = "ecb5efc0586023f5a0dc861100621c1dbb4cbb2f0516829a16ebac39f0432abf"; - revision = "1"; - editedCabalFile = "197063dpl0wn67dp7a06yc2hxp81n24ykk7klbjx0fndm5n87dh3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring deepseq ghc-prim integer-gmp text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/tibbe/hashable"; - description = "A class for types that can be converted to a hash value"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hashable-time" = callPackage - ({ mkDerivation, base, hashable, stdenv, time }: - mkDerivation { - pname = "hashable-time"; - version = "0.2.0.2"; - sha256 = "fa61f7fbd493b5a54f2aeb10e0c1c4144111ecf34e74080d12c5738ce925fee0"; - revision = "1"; - editedCabalFile = "1d43ia3cg9j9k1yam0w2a8b60df7xw4zydrdvk1m868ara3nlr58"; - libraryHaskellDepends = [ base hashable time ]; - doHaddock = false; - doCheck = false; - description = "Hashable instances for Data.Time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hashids" = callPackage - ({ mkDerivation, base, bytestring, containers, split, stdenv }: - mkDerivation { - pname = "hashids"; - version = "1.0.2.4"; - sha256 = "27991fc8a6debe76a086af80f6b72a5d451e7f1466b79cb0df973b98a2f5f3cf"; - libraryHaskellDepends = [ base bytestring containers split ]; - doHaddock = false; - doCheck = false; - homepage = "http://hashids.org/"; - description = "Hashids generates short, unique, non-sequential ids from numbers"; - license = stdenv.lib.licenses.mit; - }) {}; - "hashmap" = callPackage - ({ mkDerivation, base, containers, deepseq, hashable, stdenv }: - mkDerivation { - pname = "hashmap"; - version = "1.3.3"; - sha256 = "dc06b57cd1bcd656d4602df7705a3f11a54ae65f664e9be472d42a9bdcd64755"; - libraryHaskellDepends = [ base containers deepseq hashable ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/foxik/hashmap"; - description = "Persistent containers Map and Set based on hashing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hashtables" = callPackage - ({ mkDerivation, base, ghc-prim, hashable, primitive, stdenv - , vector - }: - mkDerivation { - pname = "hashtables"; - version = "1.2.3.1"; - sha256 = "8fd1c7c77c267eae6af01f1d9ca427754fb092cfffc8041cd50764a9144b3cbe"; - libraryHaskellDepends = [ - base ghc-prim hashable primitive vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/gregorycollins/hashtables"; - description = "Mutable hash tables in the ST monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskeline" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , process, stdenv, stm, terminfo, transformers, unix - }: - mkDerivation { - pname = "haskeline"; - version = "0.7.5.0"; - sha256 = "d26508444914efcd6a0369f89c3ade57feae7732c73f5329b610c0c8f1c1dec6"; - configureFlags = [ "-fterminfo" ]; - libraryHaskellDepends = [ - base bytestring containers directory filepath process stm terminfo - transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/judah/haskeline"; - description = "A command-line interface for user input, written in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-gi" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, Cabal, containers - , directory, filepath, glib, gobjectIntrospection, haskell-gi-base - , mtl, pretty-show, process, regex-tdfa, safe, stdenv, text - , transformers, xdg-basedir, xml-conduit - }: - mkDerivation { - pname = "haskell-gi"; - version = "0.21.5"; - sha256 = "12d116c6effae4da3f97afaad46faab6766f4a58be2c8fb434f8e0feea4a71e7"; - libraryHaskellDepends = [ - attoparsec base bytestring Cabal containers directory filepath - haskell-gi-base mtl pretty-show process regex-tdfa safe text - transformers xdg-basedir xml-conduit - ]; - libraryPkgconfigDepends = [ glib gobjectIntrospection ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Generate Haskell bindings for GObject Introspection capable libraries"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) glib; inherit (pkgs) gobjectIntrospection;}; - "haskell-gi-base" = callPackage - ({ mkDerivation, base, bytestring, containers, glib, stdenv, text - }: - mkDerivation { - pname = "haskell-gi-base"; - version = "0.21.5"; - sha256 = "f04d372ce57821f84524d7191b769ee2ae7f14dd1db5c306cadd771625e5b6df"; - libraryHaskellDepends = [ base bytestring containers text ]; - libraryPkgconfigDepends = [ glib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi-base"; - description = "Foundation for libraries generated by haskell-gi"; - license = stdenv.lib.licenses.lgpl21; - }) {inherit (pkgs) glib;}; - "haskell-gi-overloading" = callPackage - ({ mkDerivation, stdenv }: - mkDerivation { - pname = "haskell-gi-overloading"; - version = "1.0"; - sha256 = "3ed797f8dd8d3535640b1ca99851bbc5968817c25a80fc499af42715d371682a"; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-gi/haskell-gi"; - description = "Overloading support for haskell-gi"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-lexer" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "haskell-lexer"; - version = "1.0.2"; - sha256 = "d8cdf3122ee384ec440269108fd85ccf207a413015ceeffb2e9bf4313a6addf3"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yav/haskell-lexer"; - description = "A fully compliant Haskell 98 lexer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-lsp" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, data-default - , directory, filepath, hashable, haskell-lsp-types, hslogger, lens - , mtl, network-uri, parsec, sorted-list, stdenv, stm, text, time - , transformers, unordered-containers, vector, yi-rope - }: - mkDerivation { - pname = "haskell-lsp"; - version = "0.8.0.1"; - sha256 = "18f1fd93ef7191dfe5feca9d58fbff9aeee60db226238a9082bb976d6ec779d3"; - revision = "1"; - editedCabalFile = "1vbb7z7hmi29cwclrs7yz819hawdijglapn1vbhwfn6sqnqp571l"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers data-default directory filepath - hashable haskell-lsp-types hslogger lens mtl network-uri parsec - sorted-list stm text time unordered-containers yi-rope - ]; - executableHaskellDepends = [ - aeson base bytestring containers data-default directory filepath - hslogger lens mtl network-uri parsec stm text time transformers - unordered-containers vector yi-rope - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alanz/haskell-lsp"; - description = "Haskell library for the Microsoft Language Server Protocol"; - license = stdenv.lib.licenses.mit; - }) {}; - "haskell-lsp-types" = callPackage - ({ mkDerivation, aeson, base, bytestring, data-default, filepath - , hashable, lens, network-uri, scientific, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "haskell-lsp-types"; - version = "0.8.0.1"; - sha256 = "c8a3fec8c38ebe7da931e14e9b0381acde33882d2a46ced5ece5fe9fb133f033"; - libraryHaskellDepends = [ - aeson base bytestring data-default filepath hashable lens - network-uri scientific text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alanz/haskell-lsp"; - description = "Haskell library for the Microsoft Language Server Protocol, data types"; - license = stdenv.lib.licenses.mit; - }) {}; - "haskell-names" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers - , data-lens-light, filepath, haskell-src-exts, mtl, stdenv - , transformers, traverse-with-class, uniplate - }: - mkDerivation { - pname = "haskell-names"; - version = "0.9.4"; - sha256 = "1e3d9a393b677981cf7e77d54306b041983abe6ba371148095a754ed7b2e6e35"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring containers data-lens-light filepath - haskell-src-exts mtl transformers traverse-with-class uniplate - ]; - doHaddock = false; - doCheck = false; - homepage = "http://documentup.com/haskell-suite/haskell-names"; - description = "Name resolution library for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-spacegoo" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, conduit-extra - , mtl, pretty, pretty-show, stdenv, text, vector, vector-space - }: - mkDerivation { - pname = "haskell-spacegoo"; - version = "0.2.0.1"; - sha256 = "1eb3faa9a7f6a5870337eeb0bb3ad915f58987dfe4643fe95c91cbb2738ddd3c"; - libraryHaskellDepends = [ - aeson base bytestring conduit conduit-extra mtl pretty pretty-show - text vector vector-space - ]; - doHaddock = false; - doCheck = false; - description = "Client API for Rocket Scissor Spacegoo"; - license = stdenv.lib.licenses.mit; - }) {}; - "haskell-src" = callPackage - ({ mkDerivation, array, base, happy, pretty, stdenv, syb }: - mkDerivation { - pname = "haskell-src"; - version = "1.0.3.0"; - sha256 = "b4b4941e8883da32c3f2b93f3ecdd5cff82ff9304cb91e89850b19095c908dbc"; - libraryHaskellDepends = [ array base pretty syb ]; - libraryToolDepends = [ happy ]; - doHaddock = false; - doCheck = false; - description = "Support for manipulating Haskell source code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-src-exts" = callPackage - ({ mkDerivation, array, base, ghc-prim, happy, pretty, stdenv }: - mkDerivation { - pname = "haskell-src-exts"; - version = "1.20.3"; - sha256 = "433e68a731fb6a1435e86d3eb3b2878db9c5d51dc1f7499d85bbf5ac3ed1e4a8"; - libraryHaskellDepends = [ array base ghc-prim pretty ]; - libraryToolDepends = [ happy ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-suite/haskell-src-exts"; - description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-src-exts-util" = callPackage - ({ mkDerivation, base, containers, data-default, haskell-src-exts - , semigroups, stdenv, transformers, uniplate - }: - mkDerivation { - pname = "haskell-src-exts-util"; - version = "0.2.4"; - sha256 = "beb8af3a29322c72a9c9ac9988953c5aacc8f3b882780dd4f03f621d15126ef5"; - libraryHaskellDepends = [ - base containers data-default haskell-src-exts semigroups - transformers uniplate - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pepeiborra/haskell-src-exts-util"; - description = "Helper functions for working with haskell-src-exts trees"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskell-src-meta" = callPackage - ({ mkDerivation, base, haskell-src-exts, pretty, stdenv, syb - , template-haskell, th-orphans - }: - mkDerivation { - pname = "haskell-src-meta"; - version = "0.8.0.3"; - sha256 = "8473e3555080860c2043581b398dbab67319584a568463b074a092fd4d095822"; - revision = "2"; - editedCabalFile = "0dp5v0yd0wgijzaggr22glgjswpa65hy84h8awdzd9d78g2fjz6c"; - libraryHaskellDepends = [ - base haskell-src-exts pretty syb template-haskell th-orphans - ]; - doHaddock = false; - doCheck = false; - description = "Parse source to template-haskell abstract syntax"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskey-btree" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, hashable - , mtl, semigroups, stdenv, text, transformers, vector - }: - mkDerivation { - pname = "haskey-btree"; - version = "0.3.0.0"; - sha256 = "90387d9a8e2afb22f9a4ace4b8f3b1a2045b955c1283c70a614abeff2294465a"; - libraryHaskellDepends = [ - base binary bytestring containers hashable mtl semigroups text - transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-haskey/haskey-btree"; - description = "B+-tree implementation in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "haskoin-core" = callPackage - ({ mkDerivation, aeson, array, base, base16-bytestring, bytestring - , cereal, conduit, containers, cryptonite, entropy, hashable - , memory, mtl, murmur3, network, QuickCheck, scientific - , secp256k1-haskell, split, stdenv, string-conversions, text, time - , transformers, unordered-containers, vector - }: - mkDerivation { - pname = "haskoin-core"; - version = "0.8.4"; - sha256 = "5c2746a075af13a7b40fa4592ba4f3c0ee5599ee6177c1f6bcbb7b6ec45fea42"; - libraryHaskellDepends = [ - aeson array base base16-bytestring bytestring cereal conduit - containers cryptonite entropy hashable memory mtl murmur3 network - QuickCheck scientific secp256k1-haskell split string-conversions - text time transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskoin/haskoin#readme"; - description = "Bitcoin & Bitcoin Cash library for Haskell"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "hasql" = callPackage - ({ mkDerivation, attoparsec, base, base-prelude, bytestring - , bytestring-strict-builder, contravariant, contravariant-extras - , data-default-class, dlist, hashable, hashtables, loch-th, mtl - , placeholders, postgresql-binary, postgresql-libpq, profunctors - , stdenv, text, text-builder, transformers, vector - }: - mkDerivation { - pname = "hasql"; - version = "1.3.0.3"; - sha256 = "519ac7c3b06dec89fcd4c881328c2b77c8f74ef34faaba2a4395417fcc257407"; - revision = "2"; - editedCabalFile = "14063k0dald0i2cqk70kdja1df587vn8vrzgw3rb62nxwycr0r9b"; - libraryHaskellDepends = [ - attoparsec base base-prelude bytestring bytestring-strict-builder - contravariant contravariant-extras data-default-class dlist - hashable hashtables loch-th mtl placeholders postgresql-binary - postgresql-libpq profunctors text text-builder transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/hasql"; - description = "An efficient PostgreSQL driver and a flexible mapping API"; - license = stdenv.lib.licenses.mit; - }) {}; - "hasql-optparse-applicative" = callPackage - ({ mkDerivation, base-prelude, hasql, hasql-pool - , optparse-applicative, stdenv - }: - mkDerivation { - pname = "hasql-optparse-applicative"; - version = "0.3.0.3"; - sha256 = "63b4c3da21434bac9a98521cdcfda7815bcebb8829feb889f4050fffd7f06334"; - libraryHaskellDepends = [ - base-prelude hasql hasql-pool optparse-applicative - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sannsyn/hasql-optparse-applicative"; - description = "\"optparse-applicative\" parsers for \"hasql\""; - license = stdenv.lib.licenses.mit; - }) {}; - "hasql-pool" = callPackage - ({ mkDerivation, base-prelude, hasql, resource-pool, stdenv, time - }: - mkDerivation { - pname = "hasql-pool"; - version = "0.5.0.1"; - sha256 = "28c67fd0263d3418b51f3a514abbd1527b5dd690da19bcf90899e14de7b056c7"; - libraryHaskellDepends = [ base-prelude hasql resource-pool time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/hasql-pool"; - description = "A pool of connections for Hasql"; - license = stdenv.lib.licenses.mit; - }) {}; - "hasql-transaction" = callPackage - ({ mkDerivation, base, base-prelude, bytestring - , bytestring-tree-builder, contravariant, contravariant-extras - , hasql, mtl, stdenv, transformers - }: - mkDerivation { - pname = "hasql-transaction"; - version = "0.7"; - sha256 = "decb3c5b08f710413ee65861c30766c53dc79d05f388fab6f8e1105e4d907fcf"; - libraryHaskellDepends = [ - base base-prelude bytestring bytestring-tree-builder contravariant - contravariant-extras hasql mtl transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/hasql-transaction"; - description = "A composable abstraction over the retryable transactions for Hasql"; - license = stdenv.lib.licenses.mit; - }) {}; - "hasty-hamiltonian" = callPackage - ({ mkDerivation, base, kan-extensions, lens, mcmc-types - , mwc-probability, pipes, primitive, stdenv, transformers - }: - mkDerivation { - pname = "hasty-hamiltonian"; - version = "1.3.2"; - sha256 = "e6299d72e145cfabea798e2088284580fc65f01638e3562e1f01cf9df018cc9e"; - libraryHaskellDepends = [ - base kan-extensions lens mcmc-types mwc-probability pipes primitive - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jtobin/hasty-hamiltonian"; - description = "Speedy traversal through parameter space"; - license = stdenv.lib.licenses.mit; - }) {}; - "haxl" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, containers - , deepseq, exceptions, filepath, ghc-prim, hashable, pretty, stdenv - , stm, text, time, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "haxl"; - version = "2.0.1.1"; - sha256 = "59f30d1bde6c70736071ccf3b561776d1a060af4c5a854c66664df1a47e4d6f1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base binary bytestring containers deepseq exceptions filepath - ghc-prim hashable pretty stm text time transformers - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/facebook/Haxl"; - description = "A Haskell library for efficient, concurrent, and concise data access"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hbeanstalk" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, bytestring - , containers, network, stdenv - }: - mkDerivation { - pname = "hbeanstalk"; - version = "0.2.4"; - sha256 = "feaf97fd18fedb3e5abf337e61c98a03108d917d9f87f885c8d02b6b838aac8f"; - libraryHaskellDepends = [ - attoparsec base blaze-builder bytestring containers network - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/scsibug/hbeanstalk/"; - description = "Client for the beanstalkd workqueue service"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hdaemonize" = callPackage - ({ mkDerivation, base, bytestring, extensible-exceptions, filepath - , hsyslog, mtl, stdenv, unix - }: - mkDerivation { - pname = "hdaemonize"; - version = "0.5.5"; - sha256 = "d250cb0c066ec45aa9b8e9e0df094677f9e7788b01eaf51ab5bc9bbd52fe029f"; - libraryHaskellDepends = [ - base bytestring extensible-exceptions filepath hsyslog mtl unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/greydot/hdaemonize"; - description = "Library to handle the details of writing daemons for UNIX"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "heap" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "heap"; - version = "1.0.4"; - sha256 = "a4c2489e1031e9e8d96dff61ac8c15e5fcd3541080d81e0e47e298b3aad3172a"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Heaps in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "heaps" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "heaps"; - version = "0.3.6.1"; - sha256 = "91d552f3c8992f745607de39239b950db78295b533eda43d083699872a4ee36d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/heaps/"; - description = "Asymptotically optimal Brodal/Okasaki heaps"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hebrew-time" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "hebrew-time"; - version = "0.1.1"; - sha256 = "c7997ee86df43d5d734df63c5e091543bb7fd75a93d530c1857067e27a8b7932"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/hebrew-time"; - description = "Hebrew dates and prayer times"; - license = stdenv.lib.licenses.mit; - }) {}; - "hedgehog" = callPackage - ({ mkDerivation, ansi-terminal, async, base, bytestring - , concurrent-output, containers, directory, exceptions - , lifted-async, mmorph, monad-control, mtl, pretty-show, primitive - , random, resourcet, semigroups, stdenv, stm, template-haskell - , text, th-lift, time, transformers, transformers-base, unix - , wl-pprint-annotated - }: - mkDerivation { - pname = "hedgehog"; - version = "0.6.1"; - sha256 = "d2f94024906af37fed427fa1f03177d9a530078a2e54cfb24d7397da9807e177"; - revision = "4"; - editedCabalFile = "0iaqqdv4qvkzw1vasnz829k9lh7mz5nkqr8i803rilwnq40xgipx"; - libraryHaskellDepends = [ - ansi-terminal async base bytestring concurrent-output containers - directory exceptions lifted-async mmorph monad-control mtl - pretty-show primitive random resourcet semigroups stm - template-haskell text th-lift time transformers transformers-base - unix wl-pprint-annotated - ]; - doHaddock = false; - doCheck = false; - homepage = "https://hedgehog.qa"; - description = "Hedgehog will eat all your bugs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hedgehog-corpus" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hedgehog-corpus"; - version = "0.1.0"; - sha256 = "c3569cd8316770115871acf334587350e887b046e35abc0d52a90dd0e6d719f2"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tmcgilchrist/hedgehog-corpus"; - description = "hedgehog-corpus"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hedis" = callPackage - ({ mkDerivation, async, base, bytestring, bytestring-lexing - , deepseq, errors, HTTP, mtl, network, network-uri, resource-pool - , scanner, stdenv, stm, text, time, tls, unordered-containers - , vector - }: - mkDerivation { - pname = "hedis"; - version = "0.10.10"; - sha256 = "1ad2452dc78065035d58f124547caa8ae927c9a470dbe85988e2ed1b19837241"; - revision = "1"; - editedCabalFile = "0fcpf0jqga8wh0ikbpkma8sw7f5376wbc9w9rsiqp51q8f23x04h"; - libraryHaskellDepends = [ - async base bytestring bytestring-lexing deepseq errors HTTP mtl - network network-uri resource-pool scanner stm text time tls - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/informatikr/hedis"; - description = "Client library for the Redis datastore: supports full command set, pipelining"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hedn" = callPackage - ({ mkDerivation, base, containers, deepseq, deriving-compat - , megaparsec, parser-combinators, prettyprinter, scientific, stdenv - , template-haskell, text, time, uuid, vector - }: - mkDerivation { - pname = "hedn"; - version = "0.2.0.0"; - sha256 = "52070c65da41928688115a86839d3bf07392c34663bf0fc5d834b43ba39027fa"; - libraryHaskellDepends = [ - base containers deepseq deriving-compat megaparsec - parser-combinators prettyprinter scientific template-haskell text - time uuid vector - ]; - doHaddock = false; - doCheck = false; - description = "EDN parsing and encoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "here" = callPackage - ({ mkDerivation, base, haskell-src-meta, mtl, parsec, stdenv - , template-haskell - }: - mkDerivation { - pname = "here"; - version = "1.2.13"; - sha256 = "406f9c27ba1e59cd662d078d81dcf2908840a77df15aed31d75dd017b7773c00"; - libraryHaskellDepends = [ - base haskell-src-meta mtl parsec template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tmhedberg/here"; - description = "Here docs & interpolated strings via quasiquotation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "heredoc" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "heredoc"; - version = "0.2.0.0"; - sha256 = "c90d9fc61cb8cd812be510845493b6a6eddcc4b772581fd40a9433ed8f130f40"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://hackage.haskell.org/package/heredoc"; - description = "multi-line string / here document using QuasiQuotes"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "heterocephalus" = callPackage - ({ mkDerivation, base, blaze-html, blaze-markup, containers, dlist - , mtl, parsec, shakespeare, stdenv, template-haskell, text - , transformers - }: - mkDerivation { - pname = "heterocephalus"; - version = "1.0.5.3"; - sha256 = "4723e03896cc91d524da36fe1b8c5b174b81120c323a3fad692f9ada4bd8794f"; - libraryHaskellDepends = [ - base blaze-html blaze-markup containers dlist mtl parsec - shakespeare template-haskell text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arowM/heterocephalus#readme"; - description = "A type-safe template engine for working with popular front end development tools"; - license = stdenv.lib.licenses.mit; - }) {}; - "hex" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "hex"; - version = "0.1.2"; - sha256 = "12ee1243edd80570a486521565fb0c9b5e39374f21a12f050636e71d55ec61ec"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "Convert strings into hexadecimal and back"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hexml" = callPackage - ({ mkDerivation, base, bytestring, extra, stdenv }: - mkDerivation { - pname = "hexml"; - version = "0.3.4"; - sha256 = "937401802ed6593aad8c5acf0ea963d0f1f4473bf72185702b12eb30e52bbe2a"; - libraryHaskellDepends = [ base bytestring extra ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/hexml#readme"; - description = "XML subset DOM parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hexml-lens" = callPackage - ({ mkDerivation, base, bytestring, contravariant, foundation, hexml - , lens, profunctors, stdenv, text - }: - mkDerivation { - pname = "hexml-lens"; - version = "0.2.1"; - sha256 = "baa34ef7206ff924b2559a83da8f8f07bf970e9993a171c956b8de7b70cc496b"; - libraryHaskellDepends = [ - base bytestring contravariant foundation hexml lens profunctors - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pepeiborra/hexml-lens#readme"; - description = "Lenses for the hexml package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hexpat" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, expat, List - , stdenv, text, transformers, utf8-string - }: - mkDerivation { - pname = "hexpat"; - version = "0.20.13"; - sha256 = "46e1a0e651c1603c1f064c6ca8d4c66cb27e7a66974bfb45ecaa8f9ccc753fd1"; - libraryHaskellDepends = [ - base bytestring containers deepseq List text transformers - utf8-string - ]; - librarySystemDepends = [ expat ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell.org/haskellwiki/Hexpat/"; - description = "XML parser/formatter based on expat"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) expat;}; - "hexstring" = callPackage - ({ mkDerivation, aeson, base, base16-bytestring, binary, bytestring - , stdenv, text - }: - mkDerivation { - pname = "hexstring"; - version = "0.11.1"; - sha256 = "40d8dbfe22f572ffdb73f28c448b228a75008e83cc3bf78e939add0c9d800914"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base base16-bytestring binary bytestring text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Fast and safe representation of a hex string"; - license = stdenv.lib.licenses.mit; - }) {}; - "hformat" = callPackage - ({ mkDerivation, ansi-terminal, base, base-unicode-symbols, stdenv - , text - }: - mkDerivation { - pname = "hformat"; - version = "0.3.3.1"; - sha256 = "302eda1d9ca71b73c5a5d31561d4ef3e7d4ff9ef1b86329aa019b5df20c5a773"; - libraryHaskellDepends = [ - ansi-terminal base base-unicode-symbols text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mvoidex/hformat"; - description = "Simple Haskell formatting"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hfsevents" = callPackage - ({ mkDerivation, base, bytestring, cereal, Cocoa, CoreServices, mtl - , stdenv, text - }: - mkDerivation { - pname = "hfsevents"; - version = "0.1.6"; - sha256 = "74c3f3f3a5e55fff320c352a2d481069ff915860a0ab970864c6a0e6b65d3f05"; - libraryHaskellDepends = [ base bytestring cereal mtl text ]; - librarySystemDepends = [ Cocoa ]; - libraryToolDepends = [ CoreServices ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/luite/hfsevents"; - description = "File/folder watching for OS X"; - license = stdenv.lib.licenses.bsd3; - platforms = [ "x86_64-darwin" ]; - }) {inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;}; - "hgmp" = callPackage - ({ mkDerivation, base, ghc-prim, integer-gmp, stdenv }: - mkDerivation { - pname = "hgmp"; - version = "0.1.1"; - sha256 = "b905720ad455ef54a167ed6c2a44dfb01f8e8f8efc6fe4f0a2a21ff22f5b3ac2"; - revision = "3"; - editedCabalFile = "0z2xbqzyrgm9apy3xl353wgwhbnc3hdb1giw2j6fyvv705fmpb62"; - libraryHaskellDepends = [ base ghc-prim integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://code.mathr.co.uk/hgmp"; - description = "Haskell interface to GMP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hidapi" = callPackage - ({ mkDerivation, base, bytestring, deepseq, deepseq-generics - , stdenv, systemd - }: - mkDerivation { - pname = "hidapi"; - version = "0.1.5"; - sha256 = "3726e0bcbdbda309b919241d86629625e732fd07d78cc90ad39cb39b51cd595e"; - libraryHaskellDepends = [ - base bytestring deepseq deepseq-generics - ]; - librarySystemDepends = [ systemd ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vahokif/haskell-hidapi"; - description = "Haskell bindings to HIDAPI"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) systemd;}; - "hidden-char" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hidden-char"; - version = "0.1.0.2"; - sha256 = "ea909372a7cc06cda7ee8e9c1a6a5c16be19fef256ad4bd2c0b39e61d940f498"; - revision = "3"; - editedCabalFile = "0f6qghr4i3ar993pjlswdd2rl671lrnxj8740i2yhn89z410vzsa"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rcook/hidden-char#readme"; - description = "Provides cross-platform getHiddenChar function"; - license = stdenv.lib.licenses.mit; - }) {}; - "higher-leveldb" = callPackage - ({ mkDerivation, base, bytestring, cereal, data-default, exceptions - , leveldb-haskell, mtl, resourcet, stdenv, transformers - , transformers-base, unliftio-core - }: - mkDerivation { - pname = "higher-leveldb"; - version = "0.5.0.2"; - sha256 = "2afc228104a29aed6b208b1aeba93631e96fdf11efbe68ad036f838f95f8aff2"; - libraryHaskellDepends = [ - base bytestring cereal data-default exceptions leveldb-haskell mtl - resourcet transformers transformers-base unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jeremyjh/higher-leveldb"; - description = "A rich monadic API for working with leveldb databases"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "highlighting-kate" = callPackage - ({ mkDerivation, base, blaze-html, bytestring, containers, mtl - , parsec, pcre-light, stdenv, utf8-string - }: - mkDerivation { - pname = "highlighting-kate"; - version = "0.6.4"; - sha256 = "d8b83385f5da2ea7aa59f28eb860fd7eba0d35a4c36192a5044ee7ea1e001baf"; - configureFlags = [ "-fpcre-light" ]; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-html bytestring containers mtl parsec pcre-light - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jgm/highlighting-kate"; - description = "Syntax highlighting"; - license = "GPL"; - }) {}; - "hinfo" = callPackage - ({ mkDerivation, aeson, base, optparse-applicative, stdenv, text - , yaml - }: - mkDerivation { - pname = "hinfo"; - version = "0.0.3.0"; - sha256 = "9bcee53af6ff558efe131ff22ab678b1fc6423a7f176026fc50fbabbab620413"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base optparse-applicative text yaml - ]; - executableHaskellDepends = [ - aeson base optparse-applicative text yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChristopherDavenport/hinfo#readme"; - description = "Command Line App With Info on your Haskell App"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hinotify" = callPackage - ({ mkDerivation, async, base, bytestring, containers, stdenv, unix - }: - mkDerivation { - pname = "hinotify"; - version = "0.4"; - sha256 = "7d182c524384aaa15eec666803643d067671e8e806f315c10758685e90a934f4"; - libraryHaskellDepends = [ async base bytestring containers unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kolmodin/hinotify.git"; - description = "Haskell binding to inotify"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hint" = callPackage - ({ mkDerivation, base, directory, exceptions, filepath, ghc - , ghc-boot, ghc-paths, mtl, random, stdenv, temporary, unix - }: - mkDerivation { - pname = "hint"; - version = "0.9.0"; - sha256 = "7425af412a66d22f254608b4e9f552d65fd96c6cc5885af7b2ed0af62923f8bc"; - libraryHaskellDepends = [ - base directory exceptions filepath ghc ghc-boot ghc-paths mtl - random temporary unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-hint/hint"; - description = "Runtime Haskell interpreter (GHC API wrapper)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hjsmin" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, containers - , language-javascript, optparse-applicative, stdenv, text - }: - mkDerivation { - pname = "hjsmin"; - version = "0.2.0.2"; - sha256 = "bec153d2396962c63998eb12d0a2c7c9f7df6f774cb00e41b6cdb1f5a4905484"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-builder bytestring containers language-javascript text - ]; - executableHaskellDepends = [ - base blaze-builder bytestring containers language-javascript - optparse-applicative text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/erikd/hjsmin"; - description = "Haskell implementation of a javascript minifier"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hledger" = callPackage - ({ mkDerivation, ansi-terminal, base, base-compat-batteries - , bytestring, cmdargs, containers, data-default, Decimal, Diff - , directory, easytest, file-embed, filepath, hashable, haskeline - , here, hledger-lib, lucid, math-functions, megaparsec, mtl - , mtl-compat, old-time, parsec, pretty-show, process, regex-tdfa - , safe, shakespeare, split, stdenv, tabular, temporary, terminfo - , text, time, transformers, unordered-containers, utf8-string - , utility-ht, wizards - }: - mkDerivation { - pname = "hledger"; - version = "1.12.1"; - sha256 = "3c94f63bd66cd9229e1e1e220a0ee80d3a8d2cfa812990e6cee0fd0c33dd3fad"; - revision = "1"; - editedCabalFile = "0vcqj1jvpmlamsifdrzxsvm69pjiiavhvyz85sh7kvpdl689gfhk"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base base-compat-batteries bytestring cmdargs - containers data-default Decimal Diff directory easytest file-embed - filepath hashable haskeline here hledger-lib lucid math-functions - megaparsec mtl mtl-compat old-time parsec pretty-show process - regex-tdfa safe shakespeare split tabular temporary terminfo text - time transformers unordered-containers utf8-string utility-ht - wizards - ]; - executableHaskellDepends = [ - ansi-terminal base base-compat-batteries bytestring cmdargs - containers data-default Decimal directory easytest file-embed - filepath haskeline here hledger-lib math-functions megaparsec mtl - mtl-compat old-time parsec pretty-show process regex-tdfa safe - shakespeare split tabular temporary terminfo text time transformers - unordered-containers utf8-string utility-ht wizards - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hledger.org"; - description = "Command-line interface for the hledger accounting tool"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "hledger-api" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, data-default - , Decimal, docopt, either, hledger, hledger-lib, microlens - , microlens-platform, safe, servant-server, servant-swagger, stdenv - , swagger2, text, transformers, wai, wai-extra, warp - }: - mkDerivation { - pname = "hledger-api"; - version = "1.12"; - sha256 = "5df5766fcb971b33f48f0e8762e5673be3ab92a4adc2281b7aeaa392cb53846e"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - aeson base bytestring containers data-default Decimal docopt either - hledger hledger-lib microlens microlens-platform safe - servant-server servant-swagger swagger2 text transformers wai - wai-extra warp - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hledger.org"; - description = "Web API server for the hledger accounting tool"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "hledger-interest" = callPackage - ({ mkDerivation, base, Cabal, Decimal, hledger-lib, mtl, stdenv - , text, time - }: - mkDerivation { - pname = "hledger-interest"; - version = "1.5.3"; - sha256 = "7a7f5d437c98e42ba1f1529f2645e5df88d18962ae28b71b8c07e428fe08c1b9"; - revision = "1"; - editedCabalFile = "1myqv7hci32hvm98d4fn2zqdvkxsdx1g821n1fwr6814yn89kwjj"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base Cabal Decimal hledger-lib mtl text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/hledger-interest"; - description = "computes interest for a given account"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hledger-lib" = callPackage - ({ mkDerivation, ansi-terminal, array, base, base-compat-batteries - , blaze-markup, bytestring, call-stack, cassava, cassava-megaparsec - , cmdargs, containers, data-default, Decimal, deepseq, directory - , easytest, extra, filepath, Glob, hashtables, megaparsec, mtl - , mtl-compat, old-time, parsec, parser-combinators, pretty-show - , regex-tdfa, safe, split, stdenv, tabular, text, time - , transformers, uglymemo, utf8-string - }: - mkDerivation { - pname = "hledger-lib"; - version = "1.12"; - sha256 = "7095d03bf9375fbe886467d98a3c4c34c8ea566ea9a3490a85bd31667eca68d4"; - revision = "1"; - editedCabalFile = "0ql74vd4g802hh07lnrasajwnmp1rkk66rjd9d7hzpr2ysxbqbx8"; - libraryHaskellDepends = [ - ansi-terminal array base base-compat-batteries blaze-markup - bytestring call-stack cassava cassava-megaparsec cmdargs containers - data-default Decimal deepseq directory easytest extra filepath Glob - hashtables megaparsec mtl mtl-compat old-time parsec - parser-combinators pretty-show regex-tdfa safe split tabular text - time transformers uglymemo utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hledger.org"; - description = "Core data types, parsers and functionality for the hledger accounting tools"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "hledger-web" = callPackage - ({ mkDerivation, base, blaze-html, blaze-markup, bytestring - , case-insensitive, clientsession, cmdargs, conduit, conduit-extra - , data-default, directory, filepath, hjsmin, hledger, hledger-lib - , http-client, http-conduit, json, megaparsec, mtl, semigroups - , shakespeare, stdenv, template-haskell, text, time, transformers - , wai, wai-extra, wai-handler-launch, warp, yaml, yesod, yesod-core - , yesod-form, yesod-static - }: - mkDerivation { - pname = "hledger-web"; - version = "1.12"; - sha256 = "6668e9922490d1b742ab285200c337681ae1b988b315c03f7bce96941bc4c392"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-html blaze-markup bytestring case-insensitive - clientsession cmdargs conduit conduit-extra data-default directory - filepath hjsmin hledger hledger-lib http-client http-conduit json - megaparsec mtl semigroups shakespeare template-haskell text time - transformers wai wai-extra wai-handler-launch warp yaml yesod - yesod-core yesod-form yesod-static - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://hledger.org"; - description = "Web interface for the hledger accounting tool"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "hlibgit2" = callPackage - ({ mkDerivation, base, bindings-DSL, openssl, stdenv, zlib }: - mkDerivation { - pname = "hlibgit2"; - version = "0.18.0.16"; - sha256 = "199e4027faafe0a39d18ca3168923d44c57b386b960c72398df1c0fb7eff8e5e"; - libraryHaskellDepends = [ base bindings-DSL zlib ]; - librarySystemDepends = [ openssl ]; - doHaddock = false; - doCheck = false; - description = "Low-level bindings to libgit2"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) openssl;}; - "hlibsass" = callPackage - ({ mkDerivation, base, Cabal, directory, libsass, stdenv }: - mkDerivation { - pname = "hlibsass"; - version = "0.1.8.0"; - sha256 = "26de9a1275e0c1cae5afbe79ad3aa1a857c3bfc0b6dcc97698e9d02d41de4feb"; - configureFlags = [ "-fexternalLibsass" ]; - setupHaskellDepends = [ base Cabal directory ]; - libraryHaskellDepends = [ base ]; - librarySystemDepends = [ libsass ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jakubfijalkowski/hlibsass"; - description = "Low-level bindings to Libsass"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) libsass;}; - "hlint" = callPackage - ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs - , containers, cpphs, data-default, directory, extra, filepath - , haskell-src-exts, haskell-src-exts-util, hscolour, process - , refact, stdenv, text, transformers, uniplate - , unordered-containers, vector, yaml - }: - mkDerivation { - pname = "hlint"; - version = "2.1.11"; - sha256 = "4b590d27ec6da4670deea9de4f52c83048688073b3e6389a74da31d58e30665b"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson ansi-terminal base bytestring cmdargs containers cpphs - data-default directory extra filepath haskell-src-exts - haskell-src-exts-util hscolour process refact text transformers - uniplate unordered-containers vector yaml - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/hlint#readme"; - description = "Source code suggestions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hmatrix" = callPackage - ({ mkDerivation, array, base, binary, bytestring, deepseq - , openblasCompat, random, semigroups, split, stdenv - , storable-complex, vector - }: - mkDerivation { - pname = "hmatrix"; - version = "0.19.0.0"; - sha256 = "52eb2e42edc5839bfd9d2dec6c4fb29997eca737537a06df7b2d09bf6c324d82"; - revision = "1"; - editedCabalFile = "0krx0ds5mcj28y6zpg0r50lljn8681wi4c5lqcdz2c71nhixfq8h"; - configureFlags = [ "-fdisable-default-paths" "-fopenblas" ]; - libraryHaskellDepends = [ - array base binary bytestring deepseq random semigroups split - storable-complex vector - ]; - librarySystemDepends = [ openblasCompat ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/albertoruiz/hmatrix"; - description = "Numeric Linear Algebra"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) openblasCompat;}; - "hmatrix-backprop" = callPackage - ({ mkDerivation, backprop, base, ghc-typelits-knownnat - , ghc-typelits-natnormalise, hmatrix, hmatrix-vector-sized - , microlens, stdenv, vector, vector-sized, vinyl - }: - mkDerivation { - pname = "hmatrix-backprop"; - version = "0.1.2.5"; - sha256 = "4ebb6e5073bd6652fcac22275e47411ca1076699100bc928a692a1c7f6aed1d4"; - libraryHaskellDepends = [ - backprop base ghc-typelits-knownnat ghc-typelits-natnormalise - hmatrix hmatrix-vector-sized microlens vector vector-sized vinyl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/hmatrix-backprop#readme"; - description = "hmatrix operations lifted for backprop"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hmatrix-gsl" = callPackage - ({ mkDerivation, array, base, gsl, hmatrix, process, random, stdenv - , vector - }: - mkDerivation { - pname = "hmatrix-gsl"; - version = "0.19.0.1"; - sha256 = "157637d336c72cded119127cc3631a569018284ea8ca54b0e29e742388a2cd6c"; - libraryHaskellDepends = [ - array base hmatrix process random vector - ]; - libraryPkgconfigDepends = [ gsl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/albertoruiz/hmatrix"; - description = "Numerical computation"; - license = stdenv.lib.licenses.gpl3; - }) {inherit (pkgs) gsl;}; - "hmatrix-gsl-stats" = callPackage - ({ mkDerivation, base, binary, gsl, hmatrix, stdenv - , storable-complex, vector - }: - mkDerivation { - pname = "hmatrix-gsl-stats"; - version = "0.4.1.7"; - sha256 = "4a0f8b6ea1caefebd30f1e726c94f238d96c0f873bdeb5d920367e8aca7c54bf"; - libraryHaskellDepends = [ - base binary hmatrix storable-complex vector - ]; - libraryPkgconfigDepends = [ gsl ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/hmatrix-gsl-stats"; - description = "GSL Statistics interface"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) gsl;}; - "hmatrix-morpheus" = callPackage - ({ mkDerivation, base, blas, hmatrix, liblapack, stdenv }: - mkDerivation { - pname = "hmatrix-morpheus"; - version = "0.1.1.2"; - sha256 = "f2f3ee02607096a56c7c5c7f1ddff2f7f91ee05211ec2bd659add8208b1505a7"; - libraryHaskellDepends = [ base hmatrix ]; - librarySystemDepends = [ blas liblapack ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aligusnet/morpheus/tree/master/hmatrix-morpheus"; - description = "Low-level machine learning auxiliary functions"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) blas; inherit (pkgs) liblapack;}; - "hmatrix-vector-sized" = callPackage - ({ mkDerivation, base, hmatrix, stdenv, vector, vector-sized }: - mkDerivation { - pname = "hmatrix-vector-sized"; - version = "0.1.1.2"; - sha256 = "86981a7f412b68e42abff0d929db8ed2eab264d1bde3e4e75fa789066a0f437e"; - libraryHaskellDepends = [ base hmatrix vector vector-sized ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/hmatrix-vector-sized#readme"; - description = "Conversions between hmatrix and vector-sized types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hmpfr" = callPackage - ({ mkDerivation, base, integer-gmp, mpfr, stdenv }: - mkDerivation { - pname = "hmpfr"; - version = "0.4.4"; - sha256 = "2badebf032a24f6ab3bde068d5246bc9cc00bf5a8ac17da8cc0bd45c882816f5"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base integer-gmp ]; - librarySystemDepends = [ mpfr ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/michalkonecny/hmpfr"; - description = "Haskell binding to the MPFR library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) mpfr;}; - "hoauth2" = callPackage - ({ mkDerivation, aeson, base, bytestring, exceptions, http-conduit - , http-types, microlens, stdenv, text, unordered-containers - , uri-bytestring, uri-bytestring-aeson - }: - mkDerivation { - pname = "hoauth2"; - version = "1.8.4"; - sha256 = "5d5313221980bad30a30649633c821ad25604b09dd9065aa2170115cda5ff14c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring exceptions http-conduit http-types microlens - text unordered-containers uri-bytestring uri-bytestring-aeson - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/freizl/hoauth2"; - description = "Haskell OAuth2 authentication client"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hoogle" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, cmdargs, conduit - , conduit-extra, connection, containers, deepseq, directory, extra - , filepath, haskell-src-exts, http-conduit, http-types, js-flot - , js-jquery, mmap, network, network-uri, old-locale, process-extras - , QuickCheck, resourcet, stdenv, storable-tuple, tar - , template-haskell, text, time, transformers, uniplate, utf8-string - , vector, wai, wai-logger, warp, warp-tls, zlib - }: - mkDerivation { - pname = "hoogle"; - version = "5.0.17.3"; - sha256 = "66bebaf75600fef1c5fc0613ccc55c137aaed4c8f69653cf903f4fb003b98f9c"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base binary bytestring cmdargs conduit conduit-extra - connection containers deepseq directory extra filepath - haskell-src-exts http-conduit http-types js-flot js-jquery mmap - network network-uri old-locale process-extras QuickCheck resourcet - storable-tuple tar template-haskell text time transformers uniplate - utf8-string vector wai wai-logger warp warp-tls zlib - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - testTarget = "--test-option=--no-net"; - homepage = "http://hoogle.haskell.org/"; - description = "Haskell API Search"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hopenssl" = callPackage - ({ mkDerivation, base, bytestring, openssl, stdenv }: - mkDerivation { - pname = "hopenssl"; - version = "2.2.4"; - sha256 = "9df46c328fc4c1d1566e2d1539770c9fe9d0422e09ee254721b35ee7d48a7671"; - revision = "1"; - editedCabalFile = "14bs0wjrqnnn1v8c4yznfzggvmgypm2lssgl0cr498kmp54if0lf"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ openssl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/hopenssl"; - description = "FFI Bindings to OpenSSL's EVP Digest Interface"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) openssl;}; - "hopfli" = callPackage - ({ mkDerivation, base, bytestring, stdenv, zlib }: - mkDerivation { - pname = "hopfli"; - version = "0.2.2.1"; - sha256 = "4d71dc0f599c87445c22403b447ce310bf8567d6b10cc82efbdd00a4d4d12a18"; - revision = "1"; - editedCabalFile = "116jns5im51sb9xiwpx308wz3pr67335633anrf8f704pz8vwjka"; - libraryHaskellDepends = [ base bytestring zlib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ananthakumaran/hopfli"; - description = "Bidings to Google's Zopfli compression library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "hosc" = callPackage - ({ mkDerivation, base, binary, blaze-builder, bytestring - , data-binary-ieee754, network, stdenv, time, transformers - }: - mkDerivation { - pname = "hosc"; - version = "0.17"; - sha256 = "66439c416246cb56c15a0f3fb0cf07b178202c7755034b648f02d4f81ba5800c"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base binary blaze-builder bytestring data-binary-ieee754 network - time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://rohandrape.net/t/hosc"; - description = "Haskell Open Sound Control"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "hostname" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hostname"; - version = "1.0"; - sha256 = "9b43dab1b6da521f35685b20555da00738c8e136eb972458c786242406a9cf5c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A very simple package providing a cross-platform means of determining the hostname"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hostname-validate" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv }: - mkDerivation { - pname = "hostname-validate"; - version = "1.0.0"; - sha256 = "7fafb1e0cfe19d453030754962e74cdb8f3e791ec5b974623cbf26872779c857"; - libraryHaskellDepends = [ attoparsec base bytestring ]; - doHaddock = false; - doCheck = false; - description = "Validate hostnames e.g. localhost or foo.co.uk."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hourglass" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "hourglass"; - version = "0.2.12"; - sha256 = "44335b5c402e80c60f1db6a74462be4ea29d1a9043aa994334ffee1164f1ca4a"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-hourglass"; - description = "simple performant time related library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hourglass-orphans" = callPackage - ({ mkDerivation, aeson, base, hourglass, stdenv }: - mkDerivation { - pname = "hourglass-orphans"; - version = "0.1.0.0"; - sha256 = "9f0ba9f3b3cdd391b26daf3dce0bac44ab1f9dd883eaff063af9ebfb0b373d64"; - libraryHaskellDepends = [ aeson base hourglass ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/hourglass-orphans#readme"; - description = "Orphan Aeson instances to hourglass"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hp2pretty" = callPackage - ({ mkDerivation, array, attoparsec, base, containers, filepath - , floatshow, mtl, optparse-applicative, semigroups, stdenv, text - }: - mkDerivation { - pname = "hp2pretty"; - version = "0.9"; - sha256 = "56fc8ba0ad862668179f5bab032c3738fa42d10abce6b59f8dd01b3a11e52b52"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - array attoparsec base containers filepath floatshow mtl - optparse-applicative semigroups text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://mathr.co.uk/blog/hp2pretty.html"; - description = "generate pretty graphs from heap profiles"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hpack" = callPackage - ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal - , containers, cryptonite, deepseq, directory, filepath, Glob - , http-client, http-client-tls, http-types, infer-license, pretty - , scientific, stdenv, text, transformers, unordered-containers - , vector, yaml - }: - mkDerivation { - pname = "hpack"; - version = "0.31.1"; - sha256 = "ac3ab2b42339f6e3d45b89e4ee9acf33550f7fac6518b8cf47a874226b5d373a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bifunctors bytestring Cabal containers cryptonite - deepseq directory filepath Glob http-client http-client-tls - http-types infer-license pretty scientific text transformers - unordered-containers vector yaml - ]; - executableHaskellDepends = [ - aeson base bifunctors bytestring Cabal containers cryptonite - deepseq directory filepath Glob http-client http-client-tls - http-types infer-license pretty scientific text transformers - unordered-containers vector yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/hpack#readme"; - description = "A modern format for Haskell packages"; - license = stdenv.lib.licenses.mit; - }) {}; - "hpack-dhall" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, dhall - , dhall-json, filepath, hpack, megaparsec, microlens - , optparse-applicative, prettyprinter, stdenv, text, transformers - , yaml - }: - mkDerivation { - pname = "hpack-dhall"; - version = "0.5.1"; - sha256 = "739ef8c197784e91f9ad3489f93dcb7367e222732b476314cf847e166598ed65"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty base bytestring dhall dhall-json filepath hpack - megaparsec microlens prettyprinter text transformers yaml - ]; - executableHaskellDepends = [ - aeson aeson-pretty base bytestring dhall dhall-json filepath hpack - megaparsec microlens optparse-applicative prettyprinter text - transformers yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/blockscope/hpack-dhall#readme"; - description = "hpack's dhalling"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hreader" = callPackage - ({ mkDerivation, base, exceptions, hset, mmorph, monad-control, mtl - , stdenv, tagged, transformers, transformers-base - }: - mkDerivation { - pname = "hreader"; - version = "1.1.0"; - sha256 = "2a2b02c059b343ab7ff0d340b6545a003b0d563fb8a1ad2d53d6c2f4759a7d3a"; - revision = "1"; - editedCabalFile = "0kz3yzah7m4c2r9yaawhljcgb579masx3lx4mrr4lmqy39kmsvcb"; - libraryHaskellDepends = [ - base exceptions hset mmorph monad-control mtl tagged transformers - transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/s9gf4ult/hreader"; - description = "Generalization of MonadReader and ReaderT using hset"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hreader-lens" = callPackage - ({ mkDerivation, base, comonad, hreader, hset, lens, lens-action - , profunctors, stdenv - }: - mkDerivation { - pname = "hreader-lens"; - version = "0.1.3.0"; - sha256 = "408f0a2c6ce4bc5c00746947262f43f421f0e8fb9cc29c0cd2563ee1e87502d0"; - libraryHaskellDepends = [ - base comonad hreader hset lens lens-action profunctors - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/dredozubov/hreader-lens"; - description = "Optics for hreader package"; - license = stdenv.lib.licenses.mit; - }) {}; - "hruby" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal - , process, ruby, scientific, stdenv, stm, text - , unordered-containers, vector - }: - mkDerivation { - pname = "hruby"; - version = "0.3.6"; - sha256 = "dda3b4fb243b612915c8a5c415a95c7d68c0d860901fd01b5d0315b7ccda1519"; - setupHaskellDepends = [ base Cabal process ]; - libraryHaskellDepends = [ - aeson attoparsec base bytestring scientific stm text - unordered-containers vector - ]; - librarySystemDepends = [ ruby ]; - doHaddock = false; - doCheck = false; - description = "Embed a Ruby intepreter in your Haskell program !"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) ruby;}; - "hs-GeoIP" = callPackage - ({ mkDerivation, base, bytestring, deepseq, GeoIP, stdenv }: - mkDerivation { - pname = "hs-GeoIP"; - version = "0.3"; - sha256 = "8e5ff6a132d8944336f10dcaa69d8852cdd7953a5ff18248ae06cb2819a1ab8c"; - libraryHaskellDepends = [ base bytestring deepseq ]; - librarySystemDepends = [ GeoIP ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ozataman/hs-GeoIP"; - description = "Haskell bindings to the MaxMind GeoIPCity database via the C library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) GeoIP;}; - "hs-bibutils" = callPackage - ({ mkDerivation, base, stdenv, syb }: - mkDerivation { - pname = "hs-bibutils"; - version = "6.7.0.0"; - sha256 = "c5d205294ff372306504b03c4334fd96215727087ee4ee1378a45273a8d6dee1"; - libraryHaskellDepends = [ base syb ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/wilx/hs-bibutils"; - description = "Haskell bindings to bibutils, the bibliography conversion utilities"; - license = "GPL"; - }) {}; - "hs-functors" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "hs-functors"; - version = "0.1.3.0"; - sha256 = "3312807260f463dc58b26765379114c144be86a94868ab2091812127902eefc8"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - description = "Functors from products of Haskell and its dual to Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hs-php-session" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "hs-php-session"; - version = "0.0.9.3"; - sha256 = "0e717e90933f9e861d9cf374baa0dedac51d8ae7a1746ef2f7bd098fe38c8df7"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/elblake/hs-php-session"; - description = "PHP session and values serialization"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hsass" = callPackage - ({ mkDerivation, base, bytestring, data-default-class, filepath - , hlibsass, monad-loops, stdenv, transformers - }: - mkDerivation { - pname = "hsass"; - version = "0.8.0"; - sha256 = "afb4d904253e59c4f0e271fee24fabb97090372cb53c12d7bc8bd5db8cdcd2ae"; - libraryHaskellDepends = [ - base bytestring data-default-class filepath hlibsass monad-loops - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jakubfijalkowski/hsass"; - description = "Integrating Sass into Haskell applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "hschema" = callPackage - ({ mkDerivation, base, comonad, contravariant, free, hashable - , invariant, lens, mtl, natural-transformation, profunctors, stdenv - , text, unordered-containers, vector - }: - mkDerivation { - pname = "hschema"; - version = "0.0.1.1"; - sha256 = "3218cf757cd0ca57b47d3f63c2f599e785ee225e7d17cae0b15656ffa32785e8"; - libraryHaskellDepends = [ - base comonad contravariant free hashable invariant lens mtl - natural-transformation profunctors text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alonsodomin/haskell-schema#readme"; - description = "Describe schemas for your Haskell data types"; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "hschema-aeson" = callPackage - ({ mkDerivation, aeson, base, comonad, contravariant, free, hschema - , hschema-prettyprinter, hschema-quickcheck, lens, mtl - , natural-transformation, prettyprinter - , prettyprinter-ansi-terminal, QuickCheck, quickcheck-instances - , scientific, stdenv, text, time, unordered-containers, vector - }: - mkDerivation { - pname = "hschema-aeson"; - version = "0.0.1.1"; - sha256 = "4c5f8b24c25ca385f16a6adbad175240b258746594083aa8213257eba35e057d"; - libraryHaskellDepends = [ - aeson base comonad contravariant free hschema hschema-prettyprinter - hschema-quickcheck lens mtl natural-transformation prettyprinter - prettyprinter-ansi-terminal QuickCheck quickcheck-instances - scientific text time unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alonsodomin/haskell-schema#readme"; - description = "Describe schemas for your Haskell data types"; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "hschema-prettyprinter" = callPackage - ({ mkDerivation, base, contravariant, free, hschema, lens, mtl - , natural-transformation, prettyprinter - , prettyprinter-ansi-terminal, stdenv, text, unordered-containers - , vector - }: - mkDerivation { - pname = "hschema-prettyprinter"; - version = "0.0.1.1"; - sha256 = "eff29fe173f759b80f5a2f762f35a730aa914ffe94a250955de1f134c5c07fee"; - libraryHaskellDepends = [ - base contravariant free hschema lens mtl natural-transformation - prettyprinter prettyprinter-ansi-terminal text unordered-containers - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alonsodomin/haskell-schema#readme"; - description = "Describe schemas for your Haskell data types"; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "hschema-quickcheck" = callPackage - ({ mkDerivation, base, free, hschema, lens, mtl - , natural-transformation, QuickCheck, quickcheck-instances, stdenv - , text, unordered-containers, vector - }: - mkDerivation { - pname = "hschema-quickcheck"; - version = "0.0.1.1"; - sha256 = "b94aedaacddcadd935ec1dec43568826b6c98e3933a7e22d877df96cac75a9e5"; - libraryHaskellDepends = [ - base free hschema lens mtl natural-transformation QuickCheck - quickcheck-instances text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alonsodomin/haskell-schema#readme"; - description = "Describe schemas for your Haskell data types"; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "hscolour" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "hscolour"; - version = "1.24.4"; - sha256 = "243332b082294117f37b2c2c68079fa61af68b36223b3fc07594f245e0e5321d"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base containers ]; - executableHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~malcolm/hscolour/"; - description = "Colourise Haskell code"; - license = "LGPL"; - }) {}; - "hsdev" = callPackage - ({ mkDerivation, aeson, aeson-pretty, array, async, attoparsec - , base, bytestring, Cabal, containers, cpphs, data-default, deepseq - , direct-sqlite, directory, exceptions, filepath, fsnotify, ghc - , ghc-boot, ghc-paths, haskell-names, haskell-src-exts, hformat - , hlint, HTTP, lens, lifted-base, mmorph, monad-control - , monad-loops, mtl, network, optparse-applicative, process - , regex-pcre-builtin, scientific, simple-log, sqlite-simple, stdenv - , stm, syb, template-haskell, text, text-region, time, transformers - , transformers-base, traverse-with-class, uniplate, unix - , unordered-containers, vector - }: - mkDerivation { - pname = "hsdev"; - version = "0.3.2.3"; - sha256 = "3bb80c8afb08919e373a8fb8cf5e4baa286ac97d19845e8e2123ec7634a5610f"; - configureFlags = [ "-f-docs" ]; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty array async attoparsec base bytestring Cabal - containers cpphs data-default deepseq direct-sqlite directory - exceptions filepath fsnotify ghc ghc-boot ghc-paths haskell-names - haskell-src-exts hformat hlint HTTP lens lifted-base mmorph - monad-control monad-loops mtl network optparse-applicative process - regex-pcre-builtin scientific simple-log sqlite-simple stm syb - template-haskell text text-region time transformers - transformers-base traverse-with-class uniplate unix - unordered-containers vector - ]; - executableHaskellDepends = [ - aeson aeson-pretty base bytestring containers deepseq directory - exceptions filepath monad-loops mtl network optparse-applicative - process text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvoidex/hsdev"; - description = "Haskell development library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hsdns" = callPackage - ({ mkDerivation, adns, base, containers, network, stdenv }: - mkDerivation { - pname = "hsdns"; - version = "1.7.1"; - sha256 = "4fcd00e85cde989652ab5c6b179610c9514180a00cd7b161ea33ebfec3b8a044"; - revision = "1"; - editedCabalFile = "0w4hrmj7ph5dgarl82xpa0g77ncjdqk0wc9wp771pry98xxihzl8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers network ]; - librarySystemDepends = [ adns ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/peti/hsdns"; - description = "Asynchronous DNS Resolver"; - license = stdenv.lib.licenses.lgpl3; - }) {inherit (pkgs) adns;}; - "hsebaysdk" = callPackage - ({ mkDerivation, aeson, base, bytestring, http-client, http-types - , stdenv, text, time, transformers, unordered-containers - }: - mkDerivation { - pname = "hsebaysdk"; - version = "0.4.0.0"; - sha256 = "0738d0df113b15bb9148ecbe02f0a34562c557d8f64b65065122925e29df8901"; - libraryHaskellDepends = [ - aeson base bytestring http-client http-types text time transformers - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/creichert/hsebaysdk"; - description = "Haskell eBay SDK"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hsemail" = callPackage - ({ mkDerivation, base, mtl, old-time, parsec, stdenv }: - mkDerivation { - pname = "hsemail"; - version = "2"; - sha256 = "f5f08a879444abd1f9a8a3e620d7fc83bc632ae3ba9b545bebdf58d5f4bfa8d9"; - libraryHaskellDepends = [ base mtl old-time parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/hsemail#readme"; - description = "Parsec parsers for the RFC2822 Internet Message format"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hset" = callPackage - ({ mkDerivation, base, deepseq, stdenv, tagged, type-fun }: - mkDerivation { - pname = "hset"; - version = "2.2.0"; - sha256 = "b8747a0826aeaca2ca814e7a334f9de5a02f36ac83faea5e1c32c8f6040bf130"; - libraryHaskellDepends = [ base deepseq tagged type-fun ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/s9gf4ult/hset"; - description = "Primitive list with elements of unique types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hsexif" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, iconv - , stdenv, text, time - }: - mkDerivation { - pname = "hsexif"; - version = "0.6.1.6"; - sha256 = "0f7e14cdec698c4e8e17ec84971ca5a604c9e75a861806dbf7088cdfc706b55d"; - revision = "1"; - editedCabalFile = "1dgcgsmx0k5p3ibfv3n5k0c5p1is2m5zfsd2s6nc6d0pz34d4wl9"; - libraryHaskellDepends = [ - base binary bytestring containers iconv text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/emmanueltouzery/hsexif"; - description = "EXIF handling library in pure Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hsini" = callPackage - ({ mkDerivation, base, bytestring, containers, mtl, parsec, stdenv - }: - mkDerivation { - pname = "hsini"; - version = "0.5.1.2"; - sha256 = "eaa6ae68c6271d5c3187054e702719b3ee7916524ffda27bb328cc9aad9ed8e4"; - revision = "1"; - editedCabalFile = "0wkvajjgs64l4wlw8s6sn3pbwx3ni41p1260chp67a16innr1qp6"; - libraryHaskellDepends = [ base bytestring containers mtl parsec ]; - doHaddock = false; - doCheck = false; - description = "ini configuration files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hsinstall" = callPackage - ({ mkDerivation, base, Cabal, directory, filepath, heredoc, process - , safe-exceptions, stdenv - }: - mkDerivation { - pname = "hsinstall"; - version = "2.2"; - sha256 = "23a702c43e0f42ad916aedd5b53970a6e64708ffc50d1d509904ebad3d478991"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory filepath ]; - executableHaskellDepends = [ - base Cabal directory filepath heredoc process safe-exceptions - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dino-/hsinstall#readme"; - description = "Install Haskell software"; - license = stdenv.lib.licenses.isc; - }) {}; - "hslogger" = callPackage - ({ mkDerivation, base, containers, directory, mtl, network - , old-locale, process, stdenv, time, unix - }: - mkDerivation { - pname = "hslogger"; - version = "1.2.12"; - sha256 = "f97a4c89d0921f237999de5d44950127dbe8baa177960ccccbfb79cccfd46c7a"; - revision = "1"; - editedCabalFile = "1rk2lrg3959nbgbyd1aacvwbv865lsrnczqdmj4ivkfn0c8nkidh"; - libraryHaskellDepends = [ - base containers directory mtl network old-locale process time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://software.complete.org/hslogger"; - description = "Versatile logging framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hslua" = callPackage - ({ mkDerivation, base, bytestring, containers, exceptions, fail - , lua5_3, mtl, stdenv, text - }: - mkDerivation { - pname = "hslua"; - version = "1.0.2"; - sha256 = "fda9b291051769a02c175f744bc2175f5ff49732c83e7063cf6c786bcc654f70"; - configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ]; - libraryHaskellDepends = [ - base bytestring containers exceptions fail mtl text - ]; - librarySystemDepends = [ lua5_3 ]; - doHaddock = false; - doCheck = false; - homepage = "https://hslua.github.io/"; - description = "Bindings to Lua, an embeddable scripting language"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) lua5_3;}; - "hslua-aeson" = callPackage - ({ mkDerivation, aeson, base, hashable, hslua, scientific, stdenv - , text, unordered-containers, vector - }: - mkDerivation { - pname = "hslua-aeson"; - version = "1.0.0"; - sha256 = "ffa7c2f6cb90a914f796334c8f07b1eb7bfd9b3717c55d8f756589dd14706c73"; - libraryHaskellDepends = [ - aeson base hashable hslua scientific text unordered-containers - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tarleb/hslua-aeson#readme"; - description = "Allow aeson data types to be used with lua"; - license = stdenv.lib.licenses.mit; - }) {}; - "hslua-module-text" = callPackage - ({ mkDerivation, base, bytestring, hslua, stdenv, text }: - mkDerivation { - pname = "hslua-module-text"; - version = "0.2.0"; - sha256 = "711705b9befac9b65cc44e13483dc5b6ddcca45bc049813863653276908d8f7e"; - libraryHaskellDepends = [ base bytestring hslua text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hslua/hslua-module-text"; - description = "Lua module for text"; - license = stdenv.lib.licenses.mit; - }) {}; - "hsp" = callPackage - ({ mkDerivation, base, mtl, stdenv, text }: - mkDerivation { - pname = "hsp"; - version = "0.10.0"; - sha256 = "4ed3905a9db91001bde09f060290833af462e87e35476ab0def1579a1ff7ceab"; - libraryHaskellDepends = [ base mtl text ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/nibro/hsp"; - description = "Haskell Server Pages is a library for writing dynamic server-side web pages"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec" = callPackage - ({ mkDerivation, base, hspec-core, hspec-discover - , hspec-expectations, QuickCheck, stdenv - }: - mkDerivation { - pname = "hspec"; - version = "2.6.1"; - sha256 = "8bf646f45bfd3d30f41f7b686af3317708456f1582555af1cfc2e4ea1bc46eca"; - libraryHaskellDepends = [ - base hspec-core hspec-discover hspec-expectations QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "A Testing Framework for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-attoparsec" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, hspec-expectations - , stdenv, text - }: - mkDerivation { - pname = "hspec-attoparsec"; - version = "0.1.0.2"; - sha256 = "ea7a8b3f2989abde8c8537cec1a2ae312e88df80086b9b01ed12e5324137fb64"; - libraryHaskellDepends = [ - attoparsec base bytestring hspec-expectations text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/alpmestan/hspec-attoparsec"; - description = "Utility functions for testing your attoparsec parsers with hspec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-checkers" = callPackage - ({ mkDerivation, base, checkers, hspec, stdenv }: - mkDerivation { - pname = "hspec-checkers"; - version = "0.1.0.2"; - sha256 = "e7db79dc527cf5b806723bbe3d511a074297976a0c7042968b9abc57f8337e99"; - libraryHaskellDepends = [ base checkers hspec ]; - doHaddock = false; - doCheck = false; - description = "Allows to use checkers properties from hspec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-contrib" = callPackage - ({ mkDerivation, base, hspec-core, HUnit, stdenv }: - mkDerivation { - pname = "hspec-contrib"; - version = "0.5.1"; - sha256 = "2c1bf064a815af9a3ac8af79d1bf1e761d855276366b86cbace5773794ea1f42"; - revision = "1"; - editedCabalFile = "0vjmyrsb878914b4khwdy3fcn9n217q8k5xnszlrp7dl1jnbqyi4"; - libraryHaskellDepends = [ base hspec-core HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "Contributed functionality for Hspec"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-core" = callPackage - ({ mkDerivation, ansi-terminal, array, base, call-stack, clock - , deepseq, directory, filepath, hspec-expectations, HUnit - , QuickCheck, quickcheck-io, random, setenv, stdenv, stm, tf-random - , transformers - }: - mkDerivation { - pname = "hspec-core"; - version = "2.6.1"; - sha256 = "7b2b421bc407c149e480c8028bee02781916a3671c1f814a84cadc63d51ce475"; - libraryHaskellDepends = [ - ansi-terminal array base call-stack clock deepseq directory - filepath hspec-expectations HUnit QuickCheck quickcheck-io random - setenv stm tf-random transformers - ]; - doHaddock = false; - doCheck = false; - testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'"; - homepage = "http://hspec.github.io/"; - description = "A Testing Framework for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-discover" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv }: - mkDerivation { - pname = "hspec-discover"; - version = "2.6.1"; - sha256 = "9d569a9587d2034272d287442855490a06266192eba1da871cae7d971b922fa1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory filepath ]; - executableHaskellDepends = [ base directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "Automatically discover and run Hspec tests"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-expectations" = callPackage - ({ mkDerivation, base, call-stack, HUnit, stdenv }: - mkDerivation { - pname = "hspec-expectations"; - version = "0.8.2"; - sha256 = "819607ea1faf35ce5be34be61c6f50f3389ea43892d56fb28c57a9f5d54fb4ef"; - libraryHaskellDepends = [ base call-stack HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/hspec-expectations#readme"; - description = "Catchy combinators for HUnit"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-expectations-lifted" = callPackage - ({ mkDerivation, base, hspec-expectations, stdenv, transformers }: - mkDerivation { - pname = "hspec-expectations-lifted"; - version = "0.10.0"; - sha256 = "22cdf1509b396fea2f53a0bb88dec3552f540d58cc60962a82970264c1e73828"; - libraryHaskellDepends = [ base hspec-expectations transformers ]; - doHaddock = false; - doCheck = false; - description = "A version of hspec-expectations generalized to MonadIO"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-expectations-pretty-diff" = callPackage - ({ mkDerivation, ansi-terminal, base, Diff, hscolour, HUnit - , nicify-lib, stdenv, text - }: - mkDerivation { - pname = "hspec-expectations-pretty-diff"; - version = "0.7.2.4"; - sha256 = "1bbfd524330be3cb0b27945556d01f48e3005e042ee475cdf6e441ba21b51b0a"; - libraryHaskellDepends = [ - ansi-terminal base Diff hscolour HUnit nicify-lib text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/myfreeweb/hspec-expectations-pretty-diff#readme"; - description = "Catchy combinators for HUnit"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-golden-aeson" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, directory - , filepath, hspec, QuickCheck, quickcheck-arbitrary-adt, random - , stdenv, transformers - }: - mkDerivation { - pname = "hspec-golden-aeson"; - version = "0.7.0.0"; - sha256 = "114ccdbe3b7425f6bacc7d0d78d160879528aa76d2a3e774d9c152d8444a4ca2"; - libraryHaskellDepends = [ - aeson aeson-pretty base bytestring directory filepath hspec - QuickCheck quickcheck-arbitrary-adt random transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/plow-technologies/hspec-golden-aeson#readme"; - description = "Use tests to monitor changes in Aeson serialization"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-leancheck" = callPackage - ({ mkDerivation, base, hspec, hspec-core, HUnit, leancheck, stdenv - }: - mkDerivation { - pname = "hspec-leancheck"; - version = "0.0.3"; - sha256 = "38de8e98ca16e54370f2387c2ceb22fadab53ada5e9c0505ce9fe23f1b99d852"; - libraryHaskellDepends = [ base hspec hspec-core HUnit leancheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/hspec-leancheck#readme"; - description = "LeanCheck support for the Hspec test framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-megaparsec" = callPackage - ({ mkDerivation, base, containers, hspec-expectations, megaparsec - , stdenv - }: - mkDerivation { - pname = "hspec-megaparsec"; - version = "2.0.0"; - sha256 = "a8f96f685cf6bbad06b70822c6c55bf7bc70e7e444402825c8ca232f18589b30"; - revision = "1"; - editedCabalFile = "15hpf1v1d4dwzdvk7xhgj37yd37pcyj6yzw750k1fcj6j0hk4rb7"; - libraryHaskellDepends = [ - base containers hspec-expectations megaparsec - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/hspec-megaparsec"; - description = "Utility functions for testing Megaparsec parsers with Hspec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-meta" = callPackage - ({ mkDerivation, ansi-terminal, array, base, call-stack, clock - , deepseq, directory, filepath, hspec-expectations, HUnit - , QuickCheck, quickcheck-io, random, setenv, stdenv, stm, time - , transformers - }: - mkDerivation { - pname = "hspec-meta"; - version = "2.6.0"; - sha256 = "e6d701c9f366f6762eb2a86022d1c7a7d7631c100945491ff53b3a3e86212ad8"; - revision = "1"; - editedCabalFile = "1qh3j6mhlz2bvdk8qc5fa4nqh93q4vqnvxmqqisg4agacnvyp4b2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal array base call-stack clock deepseq directory - filepath hspec-expectations HUnit QuickCheck quickcheck-io random - setenv stm time transformers - ]; - executableHaskellDepends = [ - ansi-terminal array base call-stack clock deepseq directory - filepath hspec-expectations HUnit QuickCheck quickcheck-io random - setenv stm time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "A version of Hspec which is used to test Hspec itself"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-need-env" = callPackage - ({ mkDerivation, base, hspec-core, hspec-expectations, stdenv }: - mkDerivation { - pname = "hspec-need-env"; - version = "0.1.0.3"; - sha256 = "8649736f8ef49b5a80a5e00ea4a84f5d73dc914ef12b0eb6e0b7a5e5f3799698"; - libraryHaskellDepends = [ base hspec-core hspec-expectations ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/hspec-need-env"; - description = "Read environment variables for hspec tests"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-pg-transact" = callPackage - ({ mkDerivation, base, bytestring, hspec, pg-transact - , postgresql-simple, resource-pool, stdenv, text, tmp-postgres - }: - mkDerivation { - pname = "hspec-pg-transact"; - version = "0.1.0.2"; - sha256 = "a5ec2a978a730500f03c15d16eff7e207a4135ebc63afe4cbca7392ad5f01c0c"; - libraryHaskellDepends = [ - base bytestring hspec pg-transact postgresql-simple resource-pool - text tmp-postgres - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jfischoff/pg-transact-hspec#readme"; - description = "Helpers for creating database tests with hspec and pg-transact"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hspec-smallcheck" = callPackage - ({ mkDerivation, base, call-stack, hspec-core, HUnit, smallcheck - , stdenv - }: - mkDerivation { - pname = "hspec-smallcheck"; - version = "0.5.2"; - sha256 = "9a301a26a439a92b303217545b65792bd8500f25aeccbe48e46dfe914ef58119"; - libraryHaskellDepends = [ - base call-stack hspec-core HUnit smallcheck - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hspec.github.io/"; - description = "SmallCheck support for the Hspec testing framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-wai" = callPackage - ({ mkDerivation, base, base-compat, bytestring, case-insensitive - , hspec-core, hspec-expectations, http-types, QuickCheck, stdenv - , text, transformers, wai, wai-extra - }: - mkDerivation { - pname = "hspec-wai"; - version = "0.9.2"; - sha256 = "055e414bd6531d3454496f9c4bfa1164b861aa9a9102867d7ffeef8d3a92283f"; - libraryHaskellDepends = [ - base base-compat bytestring case-insensitive hspec-core - hspec-expectations http-types QuickCheck text transformers wai - wai-extra - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/hspec-wai#readme"; - description = "Experimental Hspec support for testing WAI applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "hspec-wai-json" = callPackage - ({ mkDerivation, aeson, aeson-qq, base, bytestring - , case-insensitive, hspec-wai, stdenv, template-haskell - }: - mkDerivation { - pname = "hspec-wai-json"; - version = "0.9.2"; - sha256 = "82e324482e04662121a14fc75232e7359d6d1454623c37253b6550a8ec6ccadc"; - libraryHaskellDepends = [ - aeson aeson-qq base bytestring case-insensitive hspec-wai - template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/hspec-wai#readme"; - description = "Testing JSON APIs with hspec-wai"; - license = stdenv.lib.licenses.mit; - }) {}; - "hstatsd" = callPackage - ({ mkDerivation, base, bytestring, mtl, network, stdenv, text }: - mkDerivation { - pname = "hstatsd"; - version = "0.1"; - sha256 = "446779594257c0fa02d5271c997ee0c22f74f7636d89e34394ad87e5bd285824"; - libraryHaskellDepends = [ base bytestring mtl network text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/hstatsd"; - description = "Quick and dirty statsd interface"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "hsyslog" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hsyslog"; - version = "5.0.2"; - sha256 = "3eec43c8fb42c23d03f1db7b0b594d39cd94275c2284dcd0c64aa4d680bd7ece"; - revision = "1"; - editedCabalFile = "0k1j46nk3z64zw4bqmvw5lgy16ih200m66rv4b6ygjqv7nglqq0b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/hsyslog"; - description = "FFI interface to syslog(3) from POSIX.1-2001"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "htaglib" = callPackage - ({ mkDerivation, base, bytestring, stdenv, taglib, text - , transformers - }: - mkDerivation { - pname = "htaglib"; - version = "1.2.0"; - sha256 = "4a17c36ff45995c079d71368a3eeabe595ed7efe2b3e4a3dcbff4bed8324005e"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring text transformers ]; - librarySystemDepends = [ taglib ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/htaglib"; - description = "Bindings to TagLib, audio meta-data library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) taglib;}; - "html" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "html"; - version = "1.0.1.2"; - sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "HTML combinator library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "html-conduit" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, conduit - , conduit-extra, containers, resourcet, stdenv, text, transformers - , xml-conduit, xml-types - }: - mkDerivation { - pname = "html-conduit"; - version = "1.3.2"; - sha256 = "05fdbdbf9d7b610bd8d7a67e0036b52b1ec1aec276f3017194e59ee2d661b050"; - libraryHaskellDepends = [ - attoparsec base bytestring conduit conduit-extra containers - resourcet text transformers xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/xml"; - description = "Parse HTML documents using xml-conduit datatypes"; - license = stdenv.lib.licenses.mit; - }) {}; - "html-email-validate" = callPackage - ({ mkDerivation, attoparsec, base, stdenv, text }: - mkDerivation { - pname = "html-email-validate"; - version = "0.2.0.0"; - sha256 = "3d2a3ec75b638cec71df57512473052d485dc118aec4662d5a8dae5e95aa6daf"; - libraryHaskellDepends = [ attoparsec base text ]; - doHaddock = false; - doCheck = false; - description = "Validating an email address against HTML standard"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "html-entities" = callPackage - ({ mkDerivation, attoparsec, base, base-prelude, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "html-entities"; - version = "1.1.4.2"; - sha256 = "161a0c9193b4c1279e41b2ce1203ee821e8d6ee2cf755b9f070d68602ed5cee7"; - libraryHaskellDepends = [ - attoparsec base base-prelude text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/html-entities"; - description = "A codec library for HTML-escaped text and HTML-entities"; - license = stdenv.lib.licenses.mit; - }) {}; - "html-entity-map" = callPackage - ({ mkDerivation, base, stdenv, text, unordered-containers }: - mkDerivation { - pname = "html-entity-map"; - version = "0.1.0.0"; - sha256 = "983600c33e8515e6ca31742d25490fb5a7be02503331963621b0ba5cd70d344c"; - revision = "3"; - editedCabalFile = "0aj61kpf39rhn4d7nk3vwq933b826ywhwklw479y9nkczac5lpz8"; - libraryHaskellDepends = [ base text unordered-containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/html-entity-map"; - description = "Map from HTML5 entity names to the corresponding Unicode text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "htoml" = callPackage - ({ mkDerivation, aeson, base, containers, old-locale, parsec - , stdenv, text, time, unordered-containers, vector - }: - mkDerivation { - pname = "htoml"; - version = "1.0.0.3"; - sha256 = "08f8d88a326f80fb55c0abb9431941c3a2a30f2d58f49c94349961ceeb4c856f"; - libraryHaskellDepends = [ - aeson base containers old-locale parsec text time - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cies/htoml"; - description = "Parser for TOML files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-api-data" = callPackage - ({ mkDerivation, attoparsec, attoparsec-iso8601, base, base-compat - , bytestring, Cabal, cabal-doctest, containers, cookie, hashable - , http-types, stdenv, tagged, text, time, time-locale-compat - , unordered-containers, uuid-types - }: - mkDerivation { - pname = "http-api-data"; - version = "0.4"; - sha256 = "837e3f39f23df2caa23d75a4608f4a0505a1ab23f7290006976a37a373164a8a"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - attoparsec attoparsec-iso8601 base base-compat bytestring - containers cookie hashable http-types tagged text time - time-locale-compat unordered-containers uuid-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/fizruk/http-api-data"; - description = "Converting to/from HTTP API data like URL pieces, headers and query parameters"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-client" = callPackage - ({ mkDerivation, array, base, blaze-builder, bytestring - , case-insensitive, containers, cookie, deepseq, exceptions - , filepath, ghc-prim, http-types, memory, mime-types, network - , network-uri, random, stdenv, stm, streaming-commons, text, time - , transformers - }: - mkDerivation { - pname = "http-client"; - version = "0.5.14"; - sha256 = "8e50409704021c51a8955b2d03bfec900ebc3e11fbaebf973f2e654d7bde3647"; - revision = "1"; - editedCabalFile = "0xw5ac4cvcd4hcwl7j12adi7sgffjryqhk0x992k3qs1cxyv5028"; - libraryHaskellDepends = [ - array base blaze-builder bytestring case-insensitive containers - cookie deepseq exceptions filepath ghc-prim http-types memory - mime-types network network-uri random stm streaming-commons text - time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/http-client"; - description = "An HTTP client engine"; - license = stdenv.lib.licenses.mit; - }) {}; - "http-client-tls" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, connection - , containers, cryptonite, data-default-class, exceptions - , http-client, http-types, memory, network, network-uri, stdenv - , text, tls, transformers - }: - mkDerivation { - pname = "http-client-tls"; - version = "0.3.5.3"; - sha256 = "471abf8f29a909f40b21eab26a410c0e120ae12ce337512a61dae9f52ebb4362"; - revision = "1"; - editedCabalFile = "0llb5k8mz1h6zyv1nd433wwgyjsw7n8x0b1fwib312iiws43sz69"; - libraryHaskellDepends = [ - base bytestring case-insensitive connection containers cryptonite - data-default-class exceptions http-client http-types memory network - network-uri text tls transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/http-client"; - description = "http-client backend using the connection package and tls library"; - license = stdenv.lib.licenses.mit; - }) {}; - "http-common" = callPackage - ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring - , case-insensitive, directory, mtl, network, stdenv, text - , transformers, unordered-containers - }: - mkDerivation { - pname = "http-common"; - version = "0.8.2.0"; - sha256 = "2915e77b0d000a617d4c1304fdc46f45b70acc0942670066a95b2c8d4e504593"; - libraryHaskellDepends = [ - base base64-bytestring blaze-builder bytestring case-insensitive - directory mtl network text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://research.operationaldynamics.com/projects/http-streams/"; - description = "Common types for HTTP clients and servers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-conduit" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, conduit-extra - , http-client, http-client-tls, http-types, mtl, resourcet, stdenv - , transformers, unliftio-core - }: - mkDerivation { - pname = "http-conduit"; - version = "2.3.5"; - sha256 = "a9a9efc6863fa20376a99154325ef09ac9f91c86c04da8a7649dd7d3cbd56d41"; - revision = "1"; - editedCabalFile = "03yfl2n04blmmqca18b18jwplmcz7qjzqjgzrrzbd1nr290ivqjz"; - libraryHaskellDepends = [ - aeson base bytestring conduit conduit-extra http-client - http-client-tls http-types mtl resourcet transformers unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/http-conduit"; - description = "HTTP client package with conduit interface and HTTPS support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-date" = callPackage - ({ mkDerivation, array, attoparsec, base, bytestring, stdenv, time - }: - mkDerivation { - pname = "http-date"; - version = "0.0.8"; - sha256 = "0f4c6348487abe4f9d58e43d3c23bdefc7fd1fd5672effd3c7d84aaff05f5427"; - libraryHaskellDepends = [ array attoparsec base bytestring time ]; - doHaddock = false; - doCheck = false; - description = "HTTP Date parser/formatter"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-link-header" = callPackage - ({ mkDerivation, attoparsec, base, bytestring - , bytestring-conversion, errors, http-api-data, network-uri, stdenv - , text - }: - mkDerivation { - pname = "http-link-header"; - version = "1.0.3.1"; - sha256 = "da26db73df1eaebb20df2837b0352cc62a6c151d467bea9442767fd3d51c2a2d"; - libraryHaskellDepends = [ - attoparsec base bytestring bytestring-conversion errors - http-api-data network-uri text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/myfreeweb/http-link-header"; - description = "A parser and writer for the HTTP Link header as specified in RFC 5988 \"Web Linking\""; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "http-media" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, containers - , stdenv, utf8-string - }: - mkDerivation { - pname = "http-media"; - version = "0.7.1.3"; - sha256 = "394ffcfb4f655721d5965870bf9861c324c14d40ed4dc173e926235fe0fe124f"; - revision = "1"; - editedCabalFile = "19py5pspx80gg679p9dzqr3iidflppxc1x4vkldamjkidyi406j8"; - libraryHaskellDepends = [ - base bytestring case-insensitive containers utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/zmthy/http-media"; - description = "Processing HTTP Content-Type and Accept headers"; - license = stdenv.lib.licenses.mit; - }) {}; - "http-reverse-proxy" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, case-insensitive - , conduit, conduit-extra, containers, http-client, http-types - , network, resourcet, stdenv, streaming-commons, text, transformers - , unliftio, wai, wai-logger, word8 - }: - mkDerivation { - pname = "http-reverse-proxy"; - version = "0.6.0"; - sha256 = "fb1c913111478384c4f23647810b8c3c01c79e9276a08a1ea46215e4a42dd1a8"; - libraryHaskellDepends = [ - base blaze-builder bytestring case-insensitive conduit - conduit-extra containers http-client http-types network resourcet - streaming-commons text transformers unliftio wai wai-logger word8 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/http-reverse-proxy"; - description = "Reverse proxy HTTP requests, either over raw sockets or with WAI"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-streams" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base64-bytestring - , blaze-builder, bytestring, Cabal, case-insensitive, directory - , HsOpenSSL, http-common, io-streams, mtl, network, network-uri - , openssl-streams, stdenv, text, transformers, unordered-containers - }: - mkDerivation { - pname = "http-streams"; - version = "0.8.6.1"; - sha256 = "b8d71f2753ac7cda35b4f03ec64e4b3c7cc4ec5c2435b5e5237fe863cb687da3"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ - aeson attoparsec base base64-bytestring blaze-builder bytestring - case-insensitive directory HsOpenSSL http-common io-streams mtl - network network-uri openssl-streams text transformers - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/afcowie/http-streams/"; - description = "An HTTP client using io-streams"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http-types" = callPackage - ({ mkDerivation, array, base, bytestring, case-insensitive, stdenv - , text - }: - mkDerivation { - pname = "http-types"; - version = "0.12.2"; - sha256 = "523102d7ba8923e1b399cfd2a1c821e858146ecd934fc147c3acd0fd2b2f9305"; - libraryHaskellDepends = [ - array base bytestring case-insensitive text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aristidb/http-types"; - description = "Generic HTTP types for Haskell (for both client and server code)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "http2" = callPackage - ({ mkDerivation, array, base, bytestring, case-insensitive - , containers, network-byte-order, psqueues, stdenv, stm - }: - mkDerivation { - pname = "http2"; - version = "1.6.4"; - sha256 = "2fcadd614cb8fa031e23a0fae096be76b08af7bbd525dc67096bd575cc3f1e66"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base bytestring case-insensitive containers - network-byte-order psqueues stm - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kazu-yamamoto/http2"; - description = "HTTP/2 library including frames, priority queues and HPACK"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "httpd-shed" = callPackage - ({ mkDerivation, base, network, network-uri, stdenv }: - mkDerivation { - pname = "httpd-shed"; - version = "0.4.0.3"; - sha256 = "b0ff87d81e61f788d3920d952e4469d984742ba49c006df086c159886bf09218"; - revision = "2"; - editedCabalFile = "12y9qf8s0aq4dc80wrvh14cjvvm4mcygrqq72w4z8w9n8mp8jg9p"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base network network-uri ]; - doHaddock = false; - doCheck = false; - description = "A simple web-server with an interact style API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "human-readable-duration" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "human-readable-duration"; - version = "0.2.1.3"; - sha256 = "66888464010654f560c5a300799ebc2e06113898c4664cd364e3303bd32e08ff"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.esy.fun/yogsototh/human-readable-duration#readme"; - description = "Provide duration helper"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hunit-dejafu" = callPackage - ({ mkDerivation, base, dejafu, exceptions, HUnit, stdenv }: - mkDerivation { - pname = "hunit-dejafu"; - version = "1.2.1.0"; - sha256 = "2c7bbc213648cbd380ec83d869518d3960c709f82e4f7a0190beaff0b3e9bd1c"; - libraryHaskellDepends = [ base dejafu exceptions HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/dejafu"; - description = "Deja Fu support for the HUnit test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "hvect" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hvect"; - version = "0.4.0.0"; - sha256 = "cb50ef1a7f189f8c217a7d0d55b5568b2fa9bbe415b14ce114a93d2e1d5e30b6"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/hvect"; - description = "Simple strict heterogeneous lists"; - license = stdenv.lib.licenses.mit; - }) {}; - "hvega" = callPackage - ({ mkDerivation, aeson, base, stdenv, text, vector }: - mkDerivation { - pname = "hvega"; - version = "0.1.0.3"; - sha256 = "0a7759965ad969e2b541f4ea39dc7f9d53442e39a61893edf7446bc3eb8f0542"; - libraryHaskellDepends = [ aeson base text vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DougBurke/hvega"; - description = "Create Vega and Vega-Lite visualizations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-balancedparens" = callPackage - ({ mkDerivation, base, hw-bits, hw-excess, hw-prim - , hw-rankselect-base, stdenv, vector - }: - mkDerivation { - pname = "hw-balancedparens"; - version = "0.2.0.2"; - sha256 = "1622757f59d5fc789fc27c2311ba5147cd9491ad80d4e517755cb158ae87575d"; - libraryHaskellDepends = [ - base hw-bits hw-excess hw-prim hw-rankselect-base vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-balancedparens#readme"; - description = "Balanced parentheses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-bits" = callPackage - ({ mkDerivation, base, bytestring, hw-int, hw-prim, hw-string-parse - , safe, stdenv, vector - }: - mkDerivation { - pname = "hw-bits"; - version = "0.7.0.5"; - sha256 = "1a4561307e8df6a6334db962fd772bf5bcc7d545727a9e2133e6d7aaffc46bdc"; - libraryHaskellDepends = [ - base bytestring hw-int hw-prim hw-string-parse safe vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-bits#readme"; - description = "Bit manipulation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-conduit" = callPackage - ({ mkDerivation, array, base, bytestring, conduit - , conduit-combinators, stdenv, time, transformers, unliftio-core - , word8 - }: - mkDerivation { - pname = "hw-conduit"; - version = "0.2.0.5"; - sha256 = "047d5abec487bf522050d2a7f318ce9f0e67766a58cf67669d2d6fa7ae8dd701"; - libraryHaskellDepends = [ - array base bytestring conduit conduit-combinators time transformers - unliftio-core word8 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-conduit#readme"; - description = "Conduits for tokenizing streams"; - license = stdenv.lib.licenses.mit; - }) {}; - "hw-conduit-merges" = callPackage - ({ mkDerivation, base, conduit, conduit-extra, mtl, stdenv }: - mkDerivation { - pname = "hw-conduit-merges"; - version = "0.2.0.0"; - sha256 = "9bcea270cc01a117c892315fff0dd46de3e58466e9ef82f7571eedad9b58028c"; - revision = "1"; - editedCabalFile = "1azji7zc0ygqjgd2shbqw7p8a2ll2qp3b1yq5i3665448brlwpvc"; - libraryHaskellDepends = [ base conduit conduit-extra mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-works/hw-conduit-merges#readme"; - description = "Additional merges and joins for Conduit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-diagnostics" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hw-diagnostics"; - version = "0.0.0.5"; - sha256 = "5ceaec01c446c5a507e889f514201e4739ea6f1cc22a4c68894bb023257bd931"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-diagnostics#readme"; - description = "Diagnostics library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-eliasfano" = callPackage - ({ mkDerivation, base, hw-bits, hw-int, hw-packed-vector, hw-prim - , safe, stdenv, vector - }: - mkDerivation { - pname = "hw-eliasfano"; - version = "0.1.0.1"; - sha256 = "14710bcbfe4e44bfe683fa0db73d9546268c24101770968c13083defca2048e6"; - libraryHaskellDepends = [ - base hw-bits hw-int hw-packed-vector hw-prim safe vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-eliasfano#readme"; - description = "Elias-Fano"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-excess" = callPackage - ({ mkDerivation, base, hw-bits, hw-prim, hw-rankselect-base, safe - , stdenv, vector - }: - mkDerivation { - pname = "hw-excess"; - version = "0.2.0.2"; - sha256 = "6735d0cd4ee86d5c13d5ea067251c6b1126f7569d78c6241f3147eb114b7a1f6"; - libraryHaskellDepends = [ - base hw-bits hw-prim hw-rankselect-base safe vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-excess#readme"; - description = "Excess"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-fingertree-strict" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "hw-fingertree-strict"; - version = "0.1.1.1"; - sha256 = "1127b7cff38319a292ca6d57c8b7a1996bb80b90e86488a0f82a76eba9f91268"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-works/hw-fingertree-strict#readme"; - description = "Generic strict finger-tree structure"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-hspec-hedgehog" = callPackage - ({ mkDerivation, base, call-stack, hedgehog, hspec, HUnit, stdenv - }: - mkDerivation { - pname = "hw-hspec-hedgehog"; - version = "0.1.0.4"; - sha256 = "58bd37f98e59d10cd27cf90fc04e6fdb459f3caff1f47b0e51e746aaa6ce99ee"; - revision = "2"; - editedCabalFile = "1jh0p4i87c2bn926s0d7qx6ykssjj26fia0d24grlklkd14bnmpq"; - libraryHaskellDepends = [ base call-stack hedgehog hspec HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-works/hw-hspec-hedgehog#readme"; - description = "Interoperability between hspec and hedgehog"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-int" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hw-int"; - version = "0.0.0.3"; - sha256 = "8336a5111638d3298266c9a1458233a09798bfa6d558219d4fe3bdd35d8d4a3f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-int#readme"; - description = "Integers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-ip" = callPackage - ({ mkDerivation, appar, base, containers, generic-lens, hw-bits - , iproute, stdenv, text - }: - mkDerivation { - pname = "hw-ip"; - version = "2.0.1.0"; - sha256 = "196b99e9f439ca361fec7bb5ced42202ee6a8a8143dcdbc24afdb408129a2ce4"; - libraryHaskellDepends = [ - appar base containers generic-lens hw-bits iproute text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-works/hw-ip#readme"; - description = "Library for manipulating IP addresses and CIDR blocks"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-json" = callPackage - ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base - , bytestring, containers, criterion, dlist, hw-balancedparens - , hw-bits, hw-mquery, hw-parser, hw-prim, hw-rankselect - , hw-rankselect-base, lens, mmap, optparse-applicative, stdenv - , text, vector, word8 - }: - mkDerivation { - pname = "hw-json"; - version = "0.9.0.1"; - sha256 = "1cbffc0840050d3d021d337481887c56e1db6ef7f005bc457a02ac2c47dcf902"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-wl-pprint array attoparsec base bytestring containers dlist - hw-balancedparens hw-bits hw-mquery hw-parser hw-prim hw-rankselect - hw-rankselect-base mmap text vector word8 - ]; - executableHaskellDepends = [ - base bytestring criterion dlist hw-balancedparens hw-bits hw-mquery - hw-prim hw-rankselect hw-rankselect-base lens mmap - optparse-applicative vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-json#readme"; - description = "Memory efficient JSON parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-mquery" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, dlist, lens, semigroups - , stdenv - }: - mkDerivation { - pname = "hw-mquery"; - version = "0.1.0.3"; - sha256 = "458f5730abc50c60d35f43cd00ee7bfee74963ead58596019ad30a17e8060244"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-wl-pprint base dlist lens semigroups - ]; - executableHaskellDepends = [ - ansi-wl-pprint base dlist lens semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-mquery#readme"; - description = "Monadic query DSL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-packed-vector" = callPackage - ({ mkDerivation, base, bytestring, hw-bits, hw-int, hw-prim - , hw-string-parse, safe, stdenv, vector - }: - mkDerivation { - pname = "hw-packed-vector"; - version = "0.0.0.1"; - sha256 = "b6980a80cb23cd6e889a4bb6302f684a158c9d81d7b80873812ea6b3c6014931"; - libraryHaskellDepends = [ - base bytestring hw-bits hw-int hw-prim hw-string-parse safe vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-packed-vector#readme"; - description = "Packed Vector"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-parser" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, hw-prim, stdenv - , text - }: - mkDerivation { - pname = "hw-parser"; - version = "0.1.0.0"; - sha256 = "5de02aca124597dc7f51a5ab72c175a327a8dcd9efda8eef3ffb47076a0a9391"; - libraryHaskellDepends = [ - attoparsec base bytestring hw-prim text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-parser#readme"; - description = "Simple parser support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-prim" = callPackage - ({ mkDerivation, base, bytestring, mmap, semigroups, stdenv - , transformers, vector - }: - mkDerivation { - pname = "hw-prim"; - version = "0.6.2.22"; - sha256 = "114cc374cf048f99f46c524d76f3ecd5f7d1774b47098cee79274eeabf54ae99"; - libraryHaskellDepends = [ - base bytestring mmap semigroups transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-prim#readme"; - description = "Primitive functions and data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-rankselect" = callPackage - ({ mkDerivation, base, deepseq, directory, hw-balancedparens - , hw-bits, hw-prim, hw-rankselect-base, lens, mmap, mtl - , optparse-applicative, stdenv, vector - }: - mkDerivation { - pname = "hw-rankselect"; - version = "0.12.0.4"; - sha256 = "70e278abdec4c9baf9e208f1740242bf0ca5fbdb4b4c782ea189c68db5bb4750"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base deepseq hw-balancedparens hw-bits hw-prim hw-rankselect-base - vector - ]; - executableHaskellDepends = [ - base directory hw-bits hw-prim hw-rankselect-base lens mmap mtl - optparse-applicative vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-rankselect#readme"; - description = "Rank-select"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-rankselect-base" = callPackage - ({ mkDerivation, base, bits-extra, hw-bits, hw-int, hw-prim - , hw-string-parse, safe, stdenv, vector - }: - mkDerivation { - pname = "hw-rankselect-base"; - version = "0.3.2.1"; - sha256 = "d20a6cab42189cf71a85b355d0ed52167bc2991210c3af76139a2e6229f79360"; - libraryHaskellDepends = [ - base bits-extra hw-bits hw-int hw-prim hw-string-parse safe vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-rankselect-base#readme"; - description = "Rank-select base"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-streams" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, hw-bits, hw-prim, mmap - , primitive, semigroups, stdenv, transformers, vector - }: - mkDerivation { - pname = "hw-streams"; - version = "0.0.0.10"; - sha256 = "bcf7bbf4d28913fc59b2412e39e498cba195ae417204e1570d6b84e6df96f021"; - libraryHaskellDepends = [ - base bytestring ghc-prim hw-bits hw-prim mmap primitive semigroups - transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-streams#readme"; - description = "Primitive functions and data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-string-parse" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hw-string-parse"; - version = "0.0.0.4"; - sha256 = "64a1ebf8d311e255f293c40febfb346da23a55a454b67f2d5e33de1cb7e9f2b7"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-string-parse#readme"; - description = "String parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hw-succinct" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, conduit, containers - , hw-balancedparens, hw-bits, hw-prim, hw-rankselect - , hw-rankselect-base, mmap, mono-traversable, stdenv, text, vector - , word8 - }: - mkDerivation { - pname = "hw-succinct"; - version = "0.1.0.1"; - sha256 = "002c578c1ff7a33cbef089b2a943218777c14125629f6bf63dea9e7c8e3749db"; - libraryHaskellDepends = [ - attoparsec base bytestring conduit containers hw-balancedparens - hw-bits hw-prim hw-rankselect hw-rankselect-base mmap - mono-traversable text vector word8 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-works/hw-succinct#readme"; - description = "Succint datastructures"; - license = stdenv.lib.licenses.mit; - }) {}; - "hweblib" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers, mtl - , stdenv, text, transformers - }: - mkDerivation { - pname = "hweblib"; - version = "0.6.3"; - sha256 = "1e8ee12baac496d56831935a60e78f54eb43d2b7268bf7d31acb6b9a63e9b50d"; - libraryHaskellDepends = [ - attoparsec base bytestring containers mtl text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aycanirican/hweblib"; - description = "Haskell Web Library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hxt" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, deepseq - , directory, filepath, hxt-charproperties, hxt-regex-xmlschema - , hxt-unicode, mtl, network-uri, parsec, stdenv - }: - mkDerivation { - pname = "hxt"; - version = "9.3.1.16"; - sha256 = "0d55e35cc718891d0987b7c8e6c43499efa727c68bc92e88e8b99461dff403e3"; - configureFlags = [ "-fnetwork-uri" ]; - libraryHaskellDepends = [ - base binary bytestring containers deepseq directory filepath - hxt-charproperties hxt-regex-xmlschema hxt-unicode mtl network-uri - parsec - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/UweSchmidt/hxt"; - description = "A collection of tools for processing XML with Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "hxt-charproperties" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "hxt-charproperties"; - version = "9.2.0.1"; - sha256 = "e46614d6bf0390b2a6a1aeeb0771e6d366944da40fb21c12c2f8a94d1f47b4d6"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/UweSchmidt/hxt"; - description = "Character properties and classes for XML and Unicode"; - license = stdenv.lib.licenses.mit; - }) {}; - "hxt-css" = callPackage - ({ mkDerivation, base, hxt, parsec, split, stdenv }: - mkDerivation { - pname = "hxt-css"; - version = "0.1.0.3"; - sha256 = "0244fc145d5923df0522ad80949e9b221b01a028c755ebfc4740339881ef65b7"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base hxt parsec split ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/hxt-css"; - description = "CSS selectors for HXT"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hxt-curl" = callPackage - ({ mkDerivation, base, bytestring, curl, hxt, parsec, stdenv }: - mkDerivation { - pname = "hxt-curl"; - version = "9.1.1.1"; - sha256 = "cdc1cc8bf9b8699cabdee965c9737d497c199b5cf82eabc66a5fe3f2ffb3c5ea"; - libraryHaskellDepends = [ base bytestring curl hxt parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/UweSchmidt/hxt"; - description = "LibCurl interface for HXT"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "hxt-expat" = callPackage - ({ mkDerivation, base, bytestring, hexpat, hxt, stdenv }: - mkDerivation { - pname = "hxt-expat"; - version = "9.1.1"; - sha256 = "10d9c43c20c82e879fbc06944fcfed373f8b43bd3e0a44f9c712db30a27022d6"; - libraryHaskellDepends = [ base bytestring hexpat hxt ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.fh-wedel.de/~si/HXmlToolbox/index.html"; - description = "Expat parser for HXT"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "hxt-http" = callPackage - ({ mkDerivation, base, bytestring, HTTP, hxt, network, network-uri - , parsec, stdenv - }: - mkDerivation { - pname = "hxt-http"; - version = "9.1.5.2"; - sha256 = "6fa19d03991d53c34f4525a4fdfaafde56dd48459093b4502832a1fdd9dfdd0b"; - configureFlags = [ "-fnetwork-uri" ]; - libraryHaskellDepends = [ - base bytestring HTTP hxt network network-uri parsec - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/UweSchmidt/hxt"; - description = "Interface to native Haskell HTTP package HTTP"; - license = stdenv.lib.licenses.mit; - }) {}; - "hxt-regex-xmlschema" = callPackage - ({ mkDerivation, base, bytestring, hxt-charproperties, parsec - , stdenv, text - }: - mkDerivation { - pname = "hxt-regex-xmlschema"; - version = "9.2.0.3"; - sha256 = "f4743ba65498d6001cdfcf5cbc3317d4bc43941be5c7030b60beb83408c892b0"; - revision = "1"; - editedCabalFile = "0vg9vnfjmq1ma6zwwv4yvfih6wbslksvsvy9b41i4f81l0hh7ia8"; - libraryHaskellDepends = [ - base bytestring hxt-charproperties parsec text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema"; - description = "A regular expression library for W3C XML Schema regular expressions"; - license = stdenv.lib.licenses.mit; - }) {}; - "hxt-tagsoup" = callPackage - ({ mkDerivation, base, hxt, hxt-charproperties, hxt-unicode, stdenv - , tagsoup - }: - mkDerivation { - pname = "hxt-tagsoup"; - version = "9.1.4"; - sha256 = "d77b290d63acf0ac8e5a07c5c69753f9984b97e0c9d2c0befadd7dd5b144b283"; - libraryHaskellDepends = [ - base hxt hxt-charproperties hxt-unicode tagsoup - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/UweSchmidt/hxt"; - description = "TagSoup parser for HXT"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "hxt-unicode" = callPackage - ({ mkDerivation, base, hxt-charproperties, stdenv }: - mkDerivation { - pname = "hxt-unicode"; - version = "9.0.2.4"; - sha256 = "7b5823f3bd94b57022d9d84ab3555303653c5121eaaef2ee1fd4918f3c434466"; - libraryHaskellDepends = [ base hxt-charproperties ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/UweSchmidt/hxt"; - description = "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings"; - license = stdenv.lib.licenses.mit; - }) {}; - "hybrid-vectors" = callPackage - ({ mkDerivation, base, deepseq, primitive, semigroups, stdenv - , vector - }: - mkDerivation { - pname = "hybrid-vectors"; - version = "0.2.2"; - sha256 = "41c6c371df64b9083354e66101ad8c92f87458474fed2a149e4632db644f86d7"; - libraryHaskellDepends = [ - base deepseq primitive semigroups vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/hybrid-vectors"; - description = "Hybrid vectors e.g. Mixed Boxed/Unboxed vectors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hyperloglog" = callPackage - ({ mkDerivation, approximate, base, binary, bits, bytes, Cabal - , cabal-doctest, cereal, cereal-vector, comonad, deepseq - , distributive, hashable, lens, reflection, safecopy, semigroupoids - , semigroups, siphash, stdenv, tagged, vector - }: - mkDerivation { - pname = "hyperloglog"; - version = "0.4.2"; - sha256 = "f5b83cfcc2c9d1e40e04bbc9724428b2655c3b54b26beef714c98dabee5f1048"; - revision = "1"; - editedCabalFile = "1zh47rrwih6933hhq9vd0ly5s42w0bn196znkg9l8q6r6drl7xsf"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - approximate base binary bits bytes cereal cereal-vector comonad - deepseq distributive hashable lens reflection safecopy - semigroupoids semigroups siphash tagged vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/analytics/hyperloglog"; - description = "An approximate streaming (constant space) unique object counter"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "hyphenation" = callPackage - ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, containers - , stdenv, unordered-containers, zlib - }: - mkDerivation { - pname = "hyphenation"; - version = "0.7.1"; - sha256 = "a25c5073f42896ccf81ff5936f3a42f290730f61da7f225b126ad22ff601b1c0"; - revision = "5"; - editedCabalFile = "00wsp69aqi5i906liqa4sfs0p2yclhr1ihz8y1700b3ymb70lzql"; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base bytestring containers unordered-containers zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/hyphenation"; - description = "Configurable Knuth-Liang hyphenation"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "hyraxAbif" = callPackage - ({ mkDerivation, base, binary, bytestring, directory, filepath - , hscolour, pretty-show, protolude, stdenv, text - }: - mkDerivation { - pname = "hyraxAbif"; - version = "0.2.3.15"; - sha256 = "013a861a57bb71af8394ee68404d52411ae65d627e36d0c1903194331fa6d5f1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring directory filepath protolude text - ]; - executableHaskellDepends = [ - base bytestring hscolour pretty-show protolude text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hyraxbio/hyraxAbif/#readme"; - description = "Modules for parsing, generating and manipulating AB1 files"; - license = "(BSD-3-Clause OR Apache-2.0)"; - }) {}; - "iconv" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "iconv"; - version = "0.4.1.3"; - sha256 = "36425168e3314bc83ba5ee95152872d52e94ee0f9503f3591f84d458e005b554"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "String encoding conversion"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "identicon" = callPackage - ({ mkDerivation, base, bytestring, JuicyPixels, stdenv }: - mkDerivation { - pname = "identicon"; - version = "0.2.2"; - sha256 = "3679b4fcc0a5bcc93b6ed2009f43e3ec87bf9549aee3eef182f7403d0c10f263"; - revision = "3"; - editedCabalFile = "0vya6zm3nnbdv3wmj3dwqwwjgsagql8q17078knhjddv2lm8m49q"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring JuicyPixels ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/identicon"; - description = "Flexible generation of identicons"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ieee754" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ieee754"; - version = "0.8.0"; - sha256 = "0e2dff9c37f59acf5c64f978ec320005e9830f276f9f314e4bfed3f482289ad1"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/patperry/hs-ieee754"; - description = "Utilities for dealing with IEEE floating point numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "if" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "if"; - version = "0.1.0.0"; - sha256 = "28f673e867dbe0f51324d97fcb7884673a34912593746520a470116b167a141d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/if"; - description = "(?) and (?>) conditional operator"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "iff" = callPackage - ({ mkDerivation, base, binary, bytestring, stdenv }: - mkDerivation { - pname = "iff"; - version = "0.0.6"; - sha256 = "6b8845808481307e2d374fd8d17e82a5de1284e612cf8ade27db8785e9e12837"; - libraryHaskellDepends = [ base binary bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/iff/"; - description = "Constructing and dissecting IFF files"; - license = "GPL"; - }) {}; - "ihs" = callPackage - ({ mkDerivation, base, process, stdenv }: - mkDerivation { - pname = "ihs"; - version = "0.1.0.3"; - sha256 = "13bf923ad64d5dd1c517a64c0fd017fe94951a18ebbfe7e587b11e3ad6ebd5fd"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ base process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/ihs"; - description = "Interpolated Haskell"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "ilist" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ilist"; - version = "0.3.1.0"; - sha256 = "e898e1dd1077e5a268f66e2de15f15ef64eddac94133954c9e054d59092afe97"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/ilist"; - description = "Optimised list functions for doing index-related things"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "imagesize-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , exceptions, stdenv - }: - mkDerivation { - pname = "imagesize-conduit"; - version = "1.1"; - sha256 = "31c5784578b305921b89f7ab6fca35747e5a35f12884770b78c31e3a0a01ac19"; - revision = "3"; - editedCabalFile = "0p4zmizr01pg3d7gb0q88j1alvvlzbdvzyf1wbgajng68a4g0li9"; - libraryHaskellDepends = [ - base bytestring conduit conduit-extra exceptions - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/silkapp/imagesize-conduit"; - description = "Determine the size of some common image formats"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "immortal" = callPackage - ({ mkDerivation, base, stdenv, stm, unliftio-core }: - mkDerivation { - pname = "immortal"; - version = "0.3"; - sha256 = "11c89db97f33c8bbfe6f72c728c68135a247608ceb2335dfb7ac6679acb41f88"; - libraryHaskellDepends = [ base stm unliftio-core ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/immortal"; - description = "Spawn threads that never die (unless told to do so)"; - license = stdenv.lib.licenses.mit; - }) {}; - "include-file" = callPackage - ({ mkDerivation, base, bytestring, Cabal, random, stdenv - , template-haskell - }: - mkDerivation { - pname = "include-file"; - version = "0.1.0.4"; - sha256 = "5b1f93482bc5ed85bbe04a1c63fa8bee6d4156b79cee43f812db92765fa1666e"; - setupHaskellDepends = [ base bytestring Cabal random ]; - libraryHaskellDepends = [ - base bytestring random template-haskell - ]; - doHaddock = false; - doCheck = false; - description = "Inclusion of files in executables at compile-time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "incremental-parser" = callPackage - ({ mkDerivation, base, monoid-subclasses, stdenv }: - mkDerivation { - pname = "incremental-parser"; - version = "0.3.2.1"; - sha256 = "d9515a1938d47bc9861600aac5304ac1b98727905145a061dc12664b45b56a1d"; - libraryHaskellDepends = [ base monoid-subclasses ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/blamario/incremental-parser"; - description = "Generic parser library capable of providing partial results from partial input"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "indentation-core" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "indentation-core"; - version = "0.0.0.2"; - sha256 = "099a3e3bb82c6af1b99172722bb01e954d1722d468e2d0722415f4f479993fd0"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/adamsmd/indentation"; - description = "Indentation sensitive parsing combinators core library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "indentation-parsec" = callPackage - ({ mkDerivation, base, indentation-core, mtl, parsec, stdenv }: - mkDerivation { - pname = "indentation-parsec"; - version = "0.0.0.2"; - sha256 = "0e37846ef1ea045d6c365be38f2b55ff7dd36e960f21ba28e879137874c8f2d4"; - libraryHaskellDepends = [ base indentation-core mtl parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/adamsmd/indentation"; - description = "Indentation sensitive parsing combinators for Parsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "indents" = callPackage - ({ mkDerivation, base, mtl, parsec, stdenv }: - mkDerivation { - pname = "indents"; - version = "0.5.0.0"; - sha256 = "16bcc7ca0c1292e196a9c545df507e20e96f54a94392b775a686312503d9c3d3"; - libraryHaskellDepends = [ base mtl parsec ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jaspervdj/indents"; - description = "indentation sensitive parser-combinators for parsec"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "indexed-list-literals" = callPackage - ({ mkDerivation, base, Only, stdenv }: - mkDerivation { - pname = "indexed-list-literals"; - version = "0.2.1.2"; - sha256 = "d896ae5b3919a7a9fecdd9336e8f330d055fbdae4821be04b7c1266ccaa07d10"; - libraryHaskellDepends = [ base Only ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/davidm-d/indexed-list-literals"; - description = "Type safe indexed list literals"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "infer-license" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv, text - , text-metrics - }: - mkDerivation { - pname = "infer-license"; - version = "0.2.0"; - sha256 = "12e6fe616575159c03cf6fd4a4f30021ecf264a529ab4e4edd6e96e296a98e72"; - libraryHaskellDepends = [ - base directory filepath text text-metrics - ]; - doHaddock = false; - doCheck = false; - description = "Infer software license from a given license file"; - license = stdenv.lib.licenses.mit; - }) {}; - "inflections" = callPackage - ({ mkDerivation, base, exceptions, megaparsec, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "inflections"; - version = "0.4.0.4"; - sha256 = "94393624bb73e5a8f436c8f823292bab9b5ca5bb47ebf733379848773b585753"; - libraryHaskellDepends = [ - base exceptions megaparsec text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stackbuilders/inflections-hs"; - description = "Inflections library for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "influxdb" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal - , cabal-doctest, clock, containers, foldl, http-client, http-types - , lens, network, optional-args, scientific, stdenv, tagged, text - , time, unordered-containers, vector - }: - mkDerivation { - pname = "influxdb"; - version = "1.6.1.2"; - sha256 = "af26e162e6d039dd5e19983627fced9c26a8368aa24a27e212601a5e153afeaf"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson attoparsec base bytestring clock containers foldl http-client - http-types lens network optional-args scientific tagged text time - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/maoe/influxdb-haskell"; - description = "Haskell client library for InfluxDB"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ini" = callPackage - ({ mkDerivation, attoparsec, base, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "ini"; - version = "0.3.6"; - sha256 = "fcbbe3745a125e80dd6d0b4fe9b3a590507cf73dfaa62e115b20a46f0fd53cd9"; - revision = "1"; - editedCabalFile = "0gfikdal67aws20i5r4wg4r0lgn844glykcn3nnmbmyvwsks049l"; - libraryHaskellDepends = [ - attoparsec base text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/chrisdone/ini"; - description = "Quick and easy configuration files in the INI format"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "inline-c" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers - , hashable, mtl, parsec, parsers, stdenv, template-haskell - , transformers, unordered-containers, vector - }: - mkDerivation { - pname = "inline-c"; - version = "0.7.0.1"; - sha256 = "daf2f2f286ff549e319ebc9f9491ea809f27996e234ac99a5e2eecc8e35e4ca7"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-wl-pprint base bytestring containers hashable mtl parsec - parsers template-haskell transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - description = "Write Haskell source files including C code inline. No FFI required."; - license = stdenv.lib.licenses.mit; - }) {}; - "inline-c-cpp" = callPackage - ({ mkDerivation, base, inline-c, safe-exceptions, stdenv - , template-haskell - }: - mkDerivation { - pname = "inline-c-cpp"; - version = "0.3.0.1"; - sha256 = "019c1706259c9ca2ffe961fda29d04840bfe6cdd9837e79d65c55bb3b3700403"; - libraryHaskellDepends = [ - base inline-c safe-exceptions template-haskell - ]; - doHaddock = false; - doCheck = false; - description = "Lets you embed C++ code into Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "inliterate" = callPackage - ({ mkDerivation, base, blaze-html, cheapskate, containers - , haskell-src-exts, lucid, lucid-extras, plotlyhs, stdenv, text - , time - }: - mkDerivation { - pname = "inliterate"; - version = "0.1.0"; - sha256 = "2d96cc64e3b923003668c88fd73c30d5da09a2c9e2fb6af62912f54478d1e39f"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-html cheapskate containers haskell-src-exts lucid - lucid-extras plotlyhs text time - ]; - executableHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/diffusionkinetics/open/inliterate"; - description = "Interactive literate programming"; - license = stdenv.lib.licenses.mit; - }) {}; - "insert-ordered-containers" = callPackage - ({ mkDerivation, aeson, base, base-compat, hashable, lens - , semigroupoids, semigroups, stdenv, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "insert-ordered-containers"; - version = "0.2.1.0"; - sha256 = "d71d126bf455898492e1d2ba18b2ad04453f8b0e4daff3926a67f0560a712298"; - revision = "9"; - editedCabalFile = "02d4zqyb9dbahkpcbpgxylrc5xxc0zbw1awj5w0jyrql2g2b6a5f"; - libraryHaskellDepends = [ - aeson base base-compat hashable lens semigroupoids semigroups text - transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/insert-ordered-containers#readme"; - description = "Associative containers retaining insertion order for traversals"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "inspection-testing" = callPackage - ({ mkDerivation, base, containers, ghc, mtl, stdenv - , template-haskell, transformers - }: - mkDerivation { - pname = "inspection-testing"; - version = "0.4.1.1"; - sha256 = "9474250584400659a420e6860b255dc0d808933c7b6b9580020ed25263d73ed2"; - libraryHaskellDepends = [ - base containers ghc mtl template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nomeata/inspection-testing"; - description = "GHC plugin to do inspection testing"; - license = stdenv.lib.licenses.mit; - }) {}; - "instance-control" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers }: - mkDerivation { - pname = "instance-control"; - version = "0.1.2.0"; - sha256 = "7d6dd381d8fb449584cdb016464cd02794e3ccc527c0589aab16d8a2221c6b73"; - libraryHaskellDepends = [ base mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lazac/instance-control"; - description = "Controls how the compiler searches for instances using type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "integer-logarithms" = callPackage - ({ mkDerivation, array, base, ghc-prim, integer-gmp, stdenv }: - mkDerivation { - pname = "integer-logarithms"; - version = "1.0.2.2"; - sha256 = "ba86628d5c14f31fddccea86eeec122ed992af28d5b7ad964b2f5487605e7fc3"; - revision = "1"; - editedCabalFile = "1684dkh8j2xqsd85bfsmhv3iam37hasjg4x79mvl6xh7scmpfdbw"; - libraryHaskellDepends = [ array base ghc-prim integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Bodigrim/integer-logarithms"; - description = "Integer logarithms"; - license = stdenv.lib.licenses.mit; - }) {}; - "integration" = callPackage - ({ mkDerivation, base, parallel, stdenv }: - mkDerivation { - pname = "integration"; - version = "0.2.1"; - sha256 = "0c27385eadc10a580e78f7b7d4bc919c346b2c9b1e73aea7e7804d824d53582f"; - libraryHaskellDepends = [ base parallel ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ekmett/integration"; - description = "Fast robust numeric integration via tanh-sinh quadrature"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "intern" = callPackage - ({ mkDerivation, array, base, bytestring, hashable, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "intern"; - version = "0.9.2"; - sha256 = "93a3b20e96dad8d83c9145dfc68bd9d2a6a72c9f64e4a7bc257d330070f42e20"; - revision = "1"; - editedCabalFile = "1mav591qx20p9dx4rg4xwpavqw8rciva82n7q0icdgvc1ayy7sl5"; - libraryHaskellDepends = [ - array base bytestring hashable text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/intern/"; - description = "Efficient hash-consing for arbitrary data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "interpolate" = callPackage - ({ mkDerivation, base, haskell-src-meta, stdenv, template-haskell - }: - mkDerivation { - pname = "interpolate"; - version = "0.2.0"; - sha256 = "6e112006073f2d91e7e93432ccb147b79a21fcc21a9dedd0d8c38cef51926abe"; - libraryHaskellDepends = [ base haskell-src-meta template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/interpolate#readme"; - description = "String interpolation done right"; - license = stdenv.lib.licenses.mit; - }) {}; - "interpolatedstring-perl6" = callPackage - ({ mkDerivation, base, bytestring, Cabal, haskell-src-meta, process - , stdenv, template-haskell, text - }: - mkDerivation { - pname = "interpolatedstring-perl6"; - version = "1.0.1"; - sha256 = "5eadba4ba24c10a8f2a4a1cc48af6eb0f07190d7c0e691a22c5a99fb37367258"; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal process ]; - libraryHaskellDepends = [ - base bytestring haskell-src-meta template-haskell text - ]; - doHaddock = false; - doCheck = false; - description = "QuasiQuoter for Perl6-style multi-line interpolated strings"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "interpolation" = callPackage - ({ mkDerivation, base, stdenv, utility-ht }: - mkDerivation { - pname = "interpolation"; - version = "0.1.0.3"; - sha256 = "e29794d7bb07e13c0fc3e6a05948862fd5ccd50910b9718e4818d354e26f3049"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/interpolation/"; - description = "piecewise linear and cubic Hermite interpolation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "interpolator" = callPackage - ({ mkDerivation, aeson, base, containers, either, mono-traversable - , mtl, product-profunctors, profunctors, QuickCheck, stdenv - , template-haskell, text - }: - mkDerivation { - pname = "interpolator"; - version = "0.1.1"; - sha256 = "c065b48e36af4d9cfc301403c9224af78c7b5e5ae826428eed4decdd21ac5e8f"; - libraryHaskellDepends = [ - aeson base containers either mono-traversable mtl - product-profunctors profunctors QuickCheck template-haskell text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tvision-insights/interpolator"; - description = "Runtime interpolation of environment variables in records using profunctors"; - license = stdenv.lib.licenses.mit; - }) {}; - "intervals" = callPackage - ({ mkDerivation, array, base, Cabal, cabal-doctest, distributive - , ghc-prim, stdenv - }: - mkDerivation { - pname = "intervals"; - version = "0.8.1"; - sha256 = "9ce3bf9d31b9ab2296fccc25031fd52e1c3e4abeca5d3bb452a725b586eb7e03"; - revision = "4"; - editedCabalFile = "1qx3q0v13l1zaln9zdk8chxpxhshbz5x0vqm0qda7d1kpv7h6a7r"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ array base distributive ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/intervals"; - description = "Interval Arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "intro" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, dlist - , extra, hashable, mtl, safe, stdenv, text, transformers - , unordered-containers, writer-cps-mtl - }: - mkDerivation { - pname = "intro"; - version = "0.5.2.1"; - sha256 = "e8e2124179c749e597998628bf2cd167d15e977db0f1105f5856a02e8bbaac44"; - revision = "1"; - editedCabalFile = "19zndrl4rgzjrg97cbc2cyiqih15gaijgibz0vppphcbmn7v9fl8"; - libraryHaskellDepends = [ - base bytestring containers deepseq dlist extra hashable mtl safe - text transformers unordered-containers writer-cps-mtl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/intro#readme"; - description = "Safe and minimal prelude"; - license = stdenv.lib.licenses.mit; - }) {}; - "intset-imperative" = callPackage - ({ mkDerivation, base, deepseq, primitive, stdenv }: - mkDerivation { - pname = "intset-imperative"; - version = "0.1.0.0"; - sha256 = "ae549187370f562724f453965519abf65abd3159f70b4715aa6079da48099042"; - libraryHaskellDepends = [ base deepseq primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hverr/haskell-intset-imperative#readme"; - description = "An imperative integer set written in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "invariant" = callPackage - ({ mkDerivation, array, base, bifunctors, comonad, containers - , contravariant, ghc-prim, profunctors, semigroups, StateVar - , stdenv, stm, tagged, template-haskell, th-abstraction - , transformers, transformers-compat, unordered-containers - }: - mkDerivation { - pname = "invariant"; - version = "0.5.1"; - sha256 = "eb8c9c45ad24020af2978f22271458bf3787937d931c50c86b580c53ca3f122b"; - revision = "1"; - editedCabalFile = "100gsacbpal53khj94m5qs4aq70hbsp4dz4065czfm49ysd4yqq4"; - libraryHaskellDepends = [ - array base bifunctors comonad containers contravariant ghc-prim - profunctors semigroups StateVar stm tagged template-haskell - th-abstraction transformers transformers-compat - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nfrisby/invariant-functors"; - description = "Haskell98 invariant functors"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "invertible" = callPackage - ({ mkDerivation, base, haskell-src-meta, invariant, lens - , partial-isomorphisms, semigroupoids, stdenv, template-haskell - , transformers - }: - mkDerivation { - pname = "invertible"; - version = "0.2.0.5"; - sha256 = "0a0adaa1f371f739fd2c506ff2ba3c4db278bbdfda0171bd8329d678c15b8dbb"; - libraryHaskellDepends = [ - base haskell-src-meta invariant lens partial-isomorphisms - semigroupoids template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - description = "bidirectional arrows, bijective functions, and invariant functors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-choice" = callPackage - ({ mkDerivation, base, lifted-base, monad-control, stdenv - , template-haskell, transformers, transformers-base - }: - mkDerivation { - pname = "io-choice"; - version = "0.0.7"; - sha256 = "394a60c4b0bcb3ce0dab6618891ab6e7405e583f724ca445ddc58b59725a669b"; - libraryHaskellDepends = [ - base lifted-base monad-control template-haskell transformers - transformers-base - ]; - doHaddock = false; - doCheck = false; - description = "Choice for IO and lifted IO"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-machine" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "io-machine"; - version = "0.2.0.0"; - sha256 = "05dcc8d5fcbb6f0d7f3519488ebf743eaa776bc93c2f8b0d4bbd866ac1331ccb"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/YoshikuniJujo/io-machine#readme"; - description = "Easy I/O model to learn IO monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-manager" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "io-manager"; - version = "0.1.0.2"; - sha256 = "bf0aa7740a8aaf31fc4f2570a47957365ae7d9248edd309e694053f1cd804138"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers ]; - executableHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "Skeleton library around the IO monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-memoize" = callPackage - ({ mkDerivation, async, base, stdenv }: - mkDerivation { - pname = "io-memoize"; - version = "1.1.1.0"; - sha256 = "c753a1b1a2fb286bf608d6467e6e7599cde8e641c619885197f298bf1b2f483d"; - libraryHaskellDepends = [ async base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanBurton/io-memoize"; - description = "Memoize IO actions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-region" = callPackage - ({ mkDerivation, base, stdenv, stm }: - mkDerivation { - pname = "io-region"; - version = "0.1.1"; - sha256 = "ee303f66c2b3d33fae877b0dbb7c64624109fc759dffa669ca182e387f1015f1"; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Yuras/io-region/wiki"; - description = "Exception safe resource management with dynamic regions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-storage" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "io-storage"; - version = "0.3"; - sha256 = "9a0df5cc7ff2eeef11e29e1362fea284f535bc2fe67469bba6dbc41c4f5b49bd"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/willdonnelly/io-storage"; - description = "A key-value store in the IO monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-streams" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, bytestring-builder - , network, primitive, process, stdenv, text, time, transformers - , vector, zlib-bindings - }: - mkDerivation { - pname = "io-streams"; - version = "1.5.1.0"; - sha256 = "8aa2f0afb83ee2e43c472509ecd45475b9ed4409dfaec16eb781f44152f6ebb0"; - configureFlags = [ "-fNoInteractiveTests" ]; - libraryHaskellDepends = [ - attoparsec base bytestring bytestring-builder network primitive - process text time transformers vector zlib-bindings - ]; - doHaddock = false; - doCheck = false; - description = "Simple, composable, and easy-to-use stream I/O"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "io-streams-haproxy" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, io-streams, network - , stdenv, transformers - }: - mkDerivation { - pname = "io-streams-haproxy"; - version = "1.0.1.0"; - sha256 = "b74eca9290fe838a0e3be857a38b62cf6fb7478acee400eac19e47471a2c96b5"; - libraryHaskellDepends = [ - attoparsec base bytestring io-streams network transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://snapframework.com/"; - description = "HAProxy protocol 1.5 support for io-streams"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ip" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq - , hashable, primitive, stdenv, text, vector - }: - mkDerivation { - pname = "ip"; - version = "1.4.1"; - sha256 = "f1c2f1993c82cbbc2e6230d4b669b3df4128286490473528d642c16e5617ec5b"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring deepseq hashable primitive text - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/andrewthad/haskell-ip#readme"; - description = "Library for IP and MAC addresses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ip6addr" = callPackage - ({ mkDerivation, base, cmdargs, IPv6Addr, stdenv, text }: - mkDerivation { - pname = "ip6addr"; - version = "1.0.0"; - sha256 = "e805be52d77edfb0e71740dbfa57403654cb34929083589d79d44757c01f80f1"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ base cmdargs IPv6Addr text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/MichelBoucey/ip6addr"; - description = "Commandline tool to generate IPv6 address text representations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "iproute" = callPackage - ({ mkDerivation, appar, base, byteorder, containers, network - , stdenv - }: - mkDerivation { - pname = "iproute"; - version = "1.7.7"; - sha256 = "e6a3fe4a6f2a78fcee0f98255f97232d8b6b9b1fa48faee3bef96f0b462a4b3d"; - libraryHaskellDepends = [ - appar base byteorder containers network - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.mew.org/~kazu/proj/iproute/"; - description = "IP Routing Table"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ipython-kernel" = callPackage - ({ mkDerivation, aeson, base, bytestring, cereal, containers - , cryptonite, directory, filepath, memory, mtl, process, stdenv - , temporary, text, transformers, unordered-containers, uuid - , zeromq4-haskell - }: - mkDerivation { - pname = "ipython-kernel"; - version = "0.9.1.0"; - sha256 = "53616435d1fef56a5ba3ad219e9ccf9d8845024b0f2cc5864575440078cc8424"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring cereal containers cryptonite directory - filepath memory mtl process temporary text transformers - unordered-containers uuid zeromq4-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/gibiansky/IHaskell"; - description = "A library for creating kernels for IPython frontends"; - license = stdenv.lib.licenses.mit; - }) {}; - "irc" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv }: - mkDerivation { - pname = "irc"; - version = "0.6.1.0"; - sha256 = "3816ead4dfb32d61c03265e3a2a45053508cb27ca3132595773a27ef381637e1"; - libraryHaskellDepends = [ attoparsec base bytestring ]; - doHaddock = false; - doCheck = false; - description = "A small library for parsing IRC messages"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "irc-client" = callPackage - ({ mkDerivation, base, bytestring, conduit, connection, containers - , contravariant, exceptions, irc-conduit, irc-ctcp, mtl - , network-conduit-tls, old-locale, profunctors, stdenv, stm - , stm-chans, text, time, tls, transformers, x509, x509-store - , x509-validation - }: - mkDerivation { - pname = "irc-client"; - version = "1.1.0.5"; - sha256 = "27e224e1323cdc56ae3b536283a133e7e2b8051e4c5dfa9505a8bd79992a0c8f"; - libraryHaskellDepends = [ - base bytestring conduit connection containers contravariant - exceptions irc-conduit irc-ctcp mtl network-conduit-tls old-locale - profunctors stm stm-chans text time tls transformers x509 - x509-store x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/irc-client"; - description = "An IRC client library"; - license = stdenv.lib.licenses.mit; - }) {}; - "irc-conduit" = callPackage - ({ mkDerivation, async, base, bytestring, conduit, conduit-extra - , connection, irc, irc-ctcp, network-conduit-tls, profunctors - , stdenv, text, time, tls, transformers, x509-validation - }: - mkDerivation { - pname = "irc-conduit"; - version = "0.3.0.1"; - sha256 = "b0a8f935eb3b4613e74efce7a913592f72835194b8977271f35eb09c578b3b52"; - libraryHaskellDepends = [ - async base bytestring conduit conduit-extra connection irc irc-ctcp - network-conduit-tls profunctors text time tls transformers - x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/irc-conduit"; - description = "Streaming IRC message library using conduits"; - license = stdenv.lib.licenses.mit; - }) {}; - "irc-ctcp" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "irc-ctcp"; - version = "0.1.3.0"; - sha256 = "d67cd91a5521173565033777cea76636e4d2be6e6224f681392d9e726f4bb79a"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/irc-ctcp"; - description = "A CTCP encoding and decoding library for IRC clients"; - license = stdenv.lib.licenses.mit; - }) {}; - "islink" = callPackage - ({ mkDerivation, base, stdenv, unordered-containers }: - mkDerivation { - pname = "islink"; - version = "0.1.0.0"; - sha256 = "cfbf9c1a6dc46327b7ed7bf9336e245a255626c9d04aeba3d887d90f26d2aed7"; - libraryHaskellDepends = [ base unordered-containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/islink"; - description = "Check if an HTML element is a link"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "iso3166-country-codes" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "iso3166-country-codes"; - version = "0.20140203.8"; - sha256 = "b4d6e01cd61bcaef9a8e455c331a8e7a2298531cb587ef6f23675eae7a6b0a36"; - revision = "1"; - editedCabalFile = "0n01pmvkqi0w9l203i1v7kb6bb867plv4h5hmzlkpnhrf5abf0zf"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A datatype for ISO 3166 country codes"; - license = "LGPL"; - }) {}; - "iso639" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "iso639"; - version = "0.1.0.3"; - sha256 = "124b8322fabaedb4de3dbc39880b36d0eab0e28d5775954aadb6630bc0da25e8"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/HugoDaniel/iso639"; - description = "ISO-639-1 language codes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "iso8601-time" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "iso8601-time"; - version = "0.1.5"; - sha256 = "f2cd444b2be68402c773a4b451912817f06d33093aea691b42ebeed3630ff0c8"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/iso8601-time"; - description = "Convert to/from the ISO 8601 time format"; - license = stdenv.lib.licenses.mit; - }) {}; - "iterable" = callPackage - ({ mkDerivation, base, mtl, stdenv, tagged, template-haskell - , vector - }: - mkDerivation { - pname = "iterable"; - version = "3.0"; - sha256 = "6cd13d621144e937cc88acfed1663bd2e208dcbe54be4bad1f7b7279250a87a4"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base mtl tagged template-haskell vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/BioHaskell/iterable"; - description = "API for hierarchical multilevel collections"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ix-shapable" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "ix-shapable"; - version = "0.1.0"; - sha256 = "5007ffb6a8a7bb490f962cedceed5ceb7c435126d09bc565441070cbfda79222"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - description = "Reshape multi-dimensional arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ixset-typed" = callPackage - ({ mkDerivation, base, containers, deepseq, safecopy, stdenv, syb - , template-haskell - }: - mkDerivation { - pname = "ixset-typed"; - version = "0.4.0.1"; - sha256 = "a8d3655f4cebf66013363a4456287052391faad76f00f5b4001ba7d11073ac8c"; - libraryHaskellDepends = [ - base containers deepseq safecopy syb template-haskell - ]; - doHaddock = false; - doCheck = false; - description = "Efficient relational queries on Haskell sets"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "jack" = callPackage - ({ mkDerivation, array, base, bytestring, enumset, event-list - , explicit-exception, libjack2, midi, non-negative, semigroups - , stdenv, transformers - }: - mkDerivation { - pname = "jack"; - version = "0.7.1.4"; - sha256 = "42aeb281fb62a08bbaca4b20801d55879b0688e25a92962158fbd0578bd21405"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base bytestring enumset event-list explicit-exception midi - non-negative semigroups transformers - ]; - libraryPkgconfigDepends = [ libjack2 ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/JACK"; - description = "Bindings for the JACK Audio Connection Kit"; - license = "GPL"; - }) {inherit (pkgs) libjack2;}; - "jailbreak-cabal" = callPackage - ({ mkDerivation, base, Cabal, stdenv }: - mkDerivation { - pname = "jailbreak-cabal"; - version = "1.3.3"; - sha256 = "6bac08ad1a1ff7452a2963272f96f5de0a3df200fb3219dde6ee93e4963dd01c"; - revision = "3"; - editedCabalFile = "0f4gqssh2ayl089zzl8m5rwa66x430dg1q5hfwcfd56r6xr6wi1l"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ base Cabal ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/jailbreak-cabal#readme"; - description = "Strip version restrictions from Cabal files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "jose" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base64-bytestring - , bytestring, concise, containers, cryptonite, lens, memory - , monad-time, mtl, network-uri, QuickCheck, quickcheck-instances - , safe, semigroups, stdenv, template-haskell, text, time, unix - , unordered-containers, vector, x509 - }: - mkDerivation { - pname = "jose"; - version = "0.8.0.0"; - sha256 = "84e1bc59670a49430aa4197926bf0cd184cbf12f4c8f0e04b111d1823b4ae608"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson attoparsec base base64-bytestring bytestring concise - containers cryptonite lens memory monad-time mtl network-uri - QuickCheck quickcheck-instances safe semigroups template-haskell - text time unordered-containers vector x509 - ]; - executableHaskellDepends = [ - aeson base bytestring lens mtl semigroups text unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/frasertweedale/hs-jose"; - description = "Javascript Object Signing and Encryption and JSON Web Token library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "jose-jwt" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, cereal - , containers, cryptonite, either, memory, mtl, stdenv, text, time - , transformers, transformers-compat, unordered-containers, vector - }: - mkDerivation { - pname = "jose-jwt"; - version = "0.8.0"; - sha256 = "4fb098e8ec18ebec7ab93f229dbaca992c704d006bc0f1ca98e8f00a579db6c2"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring cereal containers cryptonite - either memory mtl text time transformers transformers-compat - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/tekul/jose-jwt"; - description = "JSON Object Signing and Encryption Library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "js-flot" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "js-flot"; - version = "0.8.3"; - sha256 = "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/js-flot#readme"; - description = "Obtain minified flot code"; - license = stdenv.lib.licenses.mit; - }) {}; - "js-jquery" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "js-jquery"; - version = "3.3.1"; - sha256 = "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/js-jquery#readme"; - description = "Obtain minified jQuery code"; - license = stdenv.lib.licenses.mit; - }) {}; - "json" = callPackage - ({ mkDerivation, array, base, bytestring, containers, mtl, parsec - , pretty, stdenv, syb, text - }: - mkDerivation { - pname = "json"; - version = "0.9.3"; - sha256 = "8baf1de09983df8036fda854c4d1446f156a52d4988b863175e29af35c1d1afd"; - libraryHaskellDepends = [ - array base bytestring containers mtl parsec pretty syb text - ]; - doHaddock = false; - doCheck = false; - description = "Support for serialising Haskell to and from JSON"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "json-alt" = callPackage - ({ mkDerivation, aeson, base, stdenv }: - mkDerivation { - pname = "json-alt"; - version = "1.0.0"; - sha256 = "b850533adf93fbda01d4aee1f0116cfd67bfce17baf0a035ddc20cfe4a5d75c7"; - libraryHaskellDepends = [ aeson base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mgajda/json-autotype"; - description = "Union 'alternative' or Either that has untagged JSON encoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "json-autotype" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, filepath - , GenericPretty, hashable, json-alt, lens, mtl - , optparse-applicative, pretty, process, QuickCheck, scientific - , smallcheck, stdenv, template-haskell, text, uniplate - , unordered-containers, vector, yaml - }: - mkDerivation { - pname = "json-autotype"; - version = "3.0.1"; - sha256 = "6aae99110b29fcdbd3e7918eabc4ebf1d1f4bc1a6a94a33f0814324eba25395a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base containers filepath GenericPretty hashable json-alt lens - mtl pretty process QuickCheck scientific smallcheck - template-haskell text uniplate unordered-containers vector - ]; - executableHaskellDepends = [ - aeson base bytestring containers filepath GenericPretty hashable - json-alt lens mtl optparse-applicative pretty process scientific - template-haskell text uniplate unordered-containers vector yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mgajda/json-autotype"; - description = "Automatic type declaration for JSON input data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "json-feed" = callPackage - ({ mkDerivation, aeson, base, bytestring, mime-types, network-uri - , stdenv, tagsoup, text, time - }: - mkDerivation { - pname = "json-feed"; - version = "1.0.6"; - sha256 = "c7edd32e030dd956ec7d09bea9e95e8f1000fe45db854a2a2223a0ae562cbdc8"; - libraryHaskellDepends = [ - aeson base bytestring mime-types network-uri tagsoup text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/json-feed#readme"; - description = "JSON Feed"; - license = stdenv.lib.licenses.mit; - }) {}; - "json-rpc" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit - , conduit-extra, deepseq, hashable, monad-logger, mtl, QuickCheck - , stdenv, stm-conduit, text, time, unliftio, unordered-containers - , vector - }: - mkDerivation { - pname = "json-rpc"; - version = "1.0.0"; - sha256 = "73b1f10ebccbd8860f10da5362399dc15a5b1b4da73e83f4c125239e06e6f85a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson attoparsec base bytestring conduit conduit-extra deepseq - hashable monad-logger mtl QuickCheck stm-conduit text time unliftio - unordered-containers vector - ]; - executableHaskellDepends = [ - aeson base bytestring conduit conduit-extra monad-logger mtl - QuickCheck stm-conduit text time unliftio unordered-containers - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xenog/json-rpc.git#readme"; - description = "Fully-featured JSON-RPC 2.0 library"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "json-rpc-client" = callPackage - ({ mkDerivation, aeson, base, bytestring, json-rpc-server, mtl - , stdenv, text, unordered-containers, vector, vector-algorithms - }: - mkDerivation { - pname = "json-rpc-client"; - version = "0.2.5.0"; - sha256 = "5349f5c0b0fa8f6c5433152d6effc10846cfb3480e78c5aa99adb7540bcff49c"; - revision = "10"; - editedCabalFile = "19vf7gibvqgcm27b5n0ls4s7wi1kr87crn776ifqc9gbr2l9bfpi"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring json-rpc-server mtl text unordered-containers - vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/grayjay/json-rpc-client"; - description = "JSON-RPC 2.0 on the client side."; - license = stdenv.lib.licenses.mit; - }) {}; - "json-rpc-generic" = callPackage - ({ mkDerivation, aeson, aeson-generic-compat, base, containers - , dlist, scientific, stdenv, text, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "json-rpc-generic"; - version = "0.2.1.5"; - sha256 = "9f917ba4b01e1a439482cda9be9fff865043915067cc26571e3df682a3bf3ac0"; - libraryHaskellDepends = [ - aeson aeson-generic-compat base containers dlist scientific text - transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/khibino/haskell-json-rpc-generic"; - description = "Generic encoder and decode for JSON-RPC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "json-rpc-server" = callPackage - ({ mkDerivation, aeson, base, bytestring, deepseq, mtl, stdenv - , text, unordered-containers, vector - }: - mkDerivation { - pname = "json-rpc-server"; - version = "0.2.6.0"; - sha256 = "169e9997734bd1d7d07a13b5ae0223d5363c43de93b0d5fbb845a598f9eaccf5"; - revision = "6"; - editedCabalFile = "1rfabr679pk605v141gm0ynbp3l6x87s3ip3wa49lwnpab495mxs"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring deepseq mtl text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/grayjay/json-rpc-server"; - description = "JSON-RPC 2.0 on the server side."; - license = stdenv.lib.licenses.mit; - }) {}; - "justified-containers" = callPackage - ({ mkDerivation, base, containers, roles, stdenv }: - mkDerivation { - pname = "justified-containers"; - version = "0.3.0.0"; - sha256 = "d830c0ccd036e98ec6bab2bd336bb0bd580ce0495dedf3bf2176bd8084733e87"; - libraryHaskellDepends = [ base containers roles ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/matt-noonan/justified-containers"; - description = "Keyed container types with type-checked proofs of key presence"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "kademlia" = callPackage - ({ mkDerivation, base, bytestring, containers, contravariant - , cryptonite, extra, fetchgit, memory, MonadRandom, mtl, network - , random, random-shuffle, stdenv, stm, time, transformers - }: - mkDerivation { - pname = "kademlia"; - version = "1.1.0.1"; - src = fetchgit { - url = "https://github.com/CodaProtocol/kademlia.git"; - sha256 = "1qdnhsvja958a83llj5xpghj5bri0wbw6776bf627abd6jfc0712"; - rev = "bd02de9c5cda6204e881bbc5bbc6e0e445706b1c"; - fetchSubmodules = true; - }; - libraryHaskellDepends = [ - base bytestring containers contravariant cryptonite extra memory - MonadRandom mtl network random random-shuffle stm time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bkase/kademlia"; - description = "An implementation of the Kademlia DHT Protocol"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kademlia-haskell" = callPackage - ({ mkDerivation, base, base64-bytestring, binary, bytestring - , containers, data-default, extra, hashable, hpack, kademlia - , MonadRandom, mtl, network, random, random-shuffle, stdenv - , transformers, transformers-compat, unix - }: - mkDerivation { - pname = "kademlia-haskell"; - version = "0.1.0.0"; - src = ./.; - isLibrary = false; - isExecutable = true; - libraryToolDepends = [ hpack ]; - executableHaskellDepends = [ - base base64-bytestring binary bytestring containers data-default - extra hashable kademlia MonadRandom mtl network random - random-shuffle transformers transformers-compat unix - ]; - doHaddock = false; - doCheck = false; - preConfigure = "hpack"; - homepage = "https://github.com/o1labs/kademlia-haskell#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "kan-extensions" = callPackage - ({ mkDerivation, adjunctions, array, base, comonad, containers - , contravariant, distributive, free, invariant, mtl, profunctors - , semigroupoids, stdenv, tagged, transformers, transformers-compat - }: - mkDerivation { - pname = "kan-extensions"; - version = "5.2"; - sha256 = "6b727e586f744b96529415eeabc745dfe05feea61f6b6bad90c224c879f4dbd3"; - libraryHaskellDepends = [ - adjunctions array base comonad containers contravariant - distributive free invariant mtl profunctors semigroupoids tagged - transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/kan-extensions/"; - description = "Kan extensions, Kan lifts, the Yoneda lemma, and (co)density (co)monads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kanji" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, containers, deepseq - , hashable, microlens, microlens-aeson, optparse-applicative - , stdenv, text, transformers - }: - mkDerivation { - pname = "kanji"; - version = "3.4.0"; - sha256 = "d945ded925216b8f260c62c2fce593631d772bffa1f203550a6b9750ca3a81f1"; - revision = "2"; - editedCabalFile = "1bcc3kh6kndmkqi3vaxp27mg1qb7xbg1h8pgjc1kk1iawnhl930j"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base containers deepseq hashable text - ]; - executableHaskellDepends = [ - aeson aeson-pretty base containers microlens microlens-aeson - optparse-applicative text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fosskers/kanji"; - description = "Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "katip" = callPackage - ({ mkDerivation, aeson, async, auto-update, base, bytestring - , containers, either, hostname, microlens, microlens-th - , monad-control, mtl, old-locale, resourcet, safe-exceptions - , scientific, semigroups, stdenv, stm, string-conv - , template-haskell, text, time, transformers, transformers-base - , transformers-compat, unix, unliftio-core, unordered-containers - }: - mkDerivation { - pname = "katip"; - version = "0.7.0.0"; - sha256 = "0ba53e13cfa9e717c3e040f0c858f0d1de1417cffaf670542d546951d21885fc"; - revision = "1"; - editedCabalFile = "1lzla1iv5ll9iks5xh8399vs2mjxb33pbdg115kqbq9r5z3h84qp"; - libraryHaskellDepends = [ - aeson async auto-update base bytestring containers either hostname - microlens microlens-th monad-control mtl old-locale resourcet - safe-exceptions scientific semigroups stm string-conv - template-haskell text time transformers transformers-base - transformers-compat unix unliftio-core unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Soostone/katip"; - description = "A structured logging framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kawhi" = callPackage - ({ mkDerivation, aeson, base, bytestring, exceptions, http-client - , http-conduit, http-types, mtl, safe, scientific, stdenv, text - }: - mkDerivation { - pname = "kawhi"; - version = "0.3.0"; - sha256 = "2321387a3ddaa17c09db3a8e7a41a39f8e211467bd80bccd73791de8fca2a44f"; - libraryHaskellDepends = [ - aeson base bytestring exceptions http-client http-conduit - http-types mtl safe scientific text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/thunky-monk/kawhi"; - description = "stats.NBA.com library"; - license = stdenv.lib.licenses.mit; - }) {}; - "kazura-queue" = callPackage - ({ mkDerivation, atomic-primops, base, primitive, stdenv }: - mkDerivation { - pname = "kazura-queue"; - version = "0.1.0.4"; - sha256 = "5e5441f0eee97a4752f485ad2a3e7c0add7a2928190d416b8f83e2939a59237e"; - libraryHaskellDepends = [ atomic-primops base primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/asakamirai/kazura-queue#readme"; - description = "Fast concurrent queues much inspired by unagi-chan"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kdt" = callPackage - ({ mkDerivation, base, deepseq, deepseq-generics, heap, stdenv }: - mkDerivation { - pname = "kdt"; - version = "0.2.4"; - sha256 = "bc0f8f9ac0cb01466273171f47b627abe170d1130bd59657fb9198b4f9479f9a"; - libraryHaskellDepends = [ base deepseq deepseq-generics heap ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/giogadi/kdt"; - description = "Fast and flexible k-d trees for various types of point queries"; - license = stdenv.lib.licenses.mit; - }) {}; - "keycode" = callPackage - ({ mkDerivation, base, containers, ghc-prim, stdenv - , template-haskell - }: - mkDerivation { - pname = "keycode"; - version = "0.2.2"; - sha256 = "56f9407cf182b01e5f0fda80f569ff629f37d894f75ef28b6b8af3024343d310"; - revision = "4"; - editedCabalFile = "081spzhywygv90i7jwhbcm7p1aqz6qqph02ddxvqncghar5kjc7n"; - libraryHaskellDepends = [ - base containers ghc-prim template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/keycode"; - description = "Maps web browser keycodes to their corresponding keyboard keys"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "keys" = callPackage - ({ mkDerivation, array, base, comonad, containers, free, hashable - , semigroupoids, semigroups, stdenv, tagged, transformers - , transformers-compat, unordered-containers - }: - mkDerivation { - pname = "keys"; - version = "3.12.1"; - sha256 = "7fcea48187df82c02c159dea07a581cddf371023e6a3c34de7fa69a8ef2315fb"; - libraryHaskellDepends = [ - array base comonad containers free hashable semigroupoids - semigroups tagged transformers transformers-compat - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/keys/"; - description = "Keyed functors and containers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kind-apply" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "kind-apply"; - version = "0.3.0.0"; - sha256 = "078bcb06aeb6b0942b5065c96ee0a4a242ed8a78ee1753e296570379dca497cc"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Utilities to work with lists of types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kind-generics" = callPackage - ({ mkDerivation, base, kind-apply, stdenv }: - mkDerivation { - pname = "kind-generics"; - version = "0.3.0.0"; - sha256 = "1df923a4a223c8c3c69135bd4be65bab6d6404cad026d90539fd350ab98c7976"; - libraryHaskellDepends = [ base kind-apply ]; - doHaddock = false; - doCheck = false; - description = "Generic programming in GHC style for arbitrary kinds and GADTs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kind-generics-th" = callPackage - ({ mkDerivation, base, kind-generics, stdenv, template-haskell - , th-abstraction - }: - mkDerivation { - pname = "kind-generics-th"; - version = "0.1.0.0"; - sha256 = "ed6f8f2ff36b2b4535a77f6b10d3ee54c3df261367989eac3ebe46b43c117db5"; - libraryHaskellDepends = [ - base kind-generics template-haskell th-abstraction - ]; - doHaddock = false; - doCheck = false; - description = "Template Haskell support for generating `GenericK` instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kleene" = callPackage - ({ mkDerivation, base, base-compat-batteries, containers, lattices - , MemoTrie, QuickCheck, range-set-list, regex-applicative, stdenv - , step-function, text, transformers - }: - mkDerivation { - pname = "kleene"; - version = "0"; - sha256 = "c652aecfb2a42fec6b7cc0135fe95764a27fe099c6934071ef5fa55075cd0b02"; - revision = "1"; - editedCabalFile = "1izdmr7a2d7qssnj732m2qc02inm3hrc882x9nyvz68648pvwwsx"; - libraryHaskellDepends = [ - base base-compat-batteries containers lattices MemoTrie QuickCheck - range-set-list regex-applicative step-function text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/kleene"; - description = "Kleene algebra"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "kmeans" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "kmeans"; - version = "0.1.3"; - sha256 = "3d9e24a12ce01354c2a731ee079144c3bea2c9f011ffd51db82e5c26da1a2c0b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "K-means clustering algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "koofr-client" = callPackage - ({ mkDerivation, aeson, base, bytestring, filepath, http-client - , http-client-tls, http-types, mtl, stdenv - }: - mkDerivation { - pname = "koofr-client"; - version = "1.0.0.3"; - sha256 = "2ab6f0af8be4f1912ad06ad860db993f9c33c8f0206f87ff0b566b7dda54e7af"; - revision = "1"; - editedCabalFile = "0qaipcg9n93z0za2a8jy3mv73a3q2b1dv98v2g5wwcv1qx7rvvhv"; - libraryHaskellDepends = [ - aeson base bytestring filepath http-client http-client-tls - http-types mtl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/edofic/koofr-api-hs"; - description = "Client to Koofr API"; - license = stdenv.lib.licenses.mit; - }) {}; - "kraken" = callPackage - ({ mkDerivation, aeson, base, bytestring, http-client - , http-client-tls, mtl, stdenv - }: - mkDerivation { - pname = "kraken"; - version = "0.1.0"; - sha256 = "335ce7cb85f7d3ed71eb067ad9642d13d2ca1d62ce8670596c8b69aacc27828a"; - revision = "2"; - editedCabalFile = "141qx2fb3dimv20qsl2q1bagwcn9i0r72z2ha1w7191m557in319"; - libraryHaskellDepends = [ - aeson base bytestring http-client http-client-tls mtl - ]; - doHaddock = false; - doCheck = false; - description = "Kraken.io API client"; - license = stdenv.lib.licenses.mit; - }) {}; - "l10n" = callPackage - ({ mkDerivation, base, stdenv, text, time }: - mkDerivation { - pname = "l10n"; - version = "0.1.0.1"; - sha256 = "0a7032476d257981eb7c274600bef809b4a515ab162a1772a7887f0113455ca0"; - libraryHaskellDepends = [ base text time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/l10n#readme"; - description = "Enables providing localization as typeclass instances in separate files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "labels" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "labels"; - version = "0.3.3"; - sha256 = "e6b4c02b5340c68b911fd2df157766260e06939ad2919f555339356613433013"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chrisdone/labels#readme"; - description = "Anonymous records via named tuples"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lackey" = callPackage - ({ mkDerivation, base, servant, servant-foreign, stdenv, text }: - mkDerivation { - pname = "lackey"; - version = "1.0.8"; - sha256 = "751375ed4cc752c4612b690941308b5500e76d217a5fee2c40961faa97c83e5b"; - libraryHaskellDepends = [ base servant servant-foreign text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/lackey#readme"; - description = "Generate Ruby clients from Servant APIs"; - license = stdenv.lib.licenses.mit; - }) {}; - "lambdabot-core" = callPackage - ({ mkDerivation, base, binary, bytestring, containers - , dependent-map, dependent-sum, dependent-sum-template, directory - , edit-distance, filepath, haskeline, hslogger, HTTP, lifted-base - , monad-control, mtl, network, parsec, prim-uniq, random, random-fu - , random-source, regex-tdfa, SafeSemaphore, split, stdenv, syb - , template-haskell, time, transformers, transformers-base, unix - , utf8-string, zlib - }: - mkDerivation { - pname = "lambdabot-core"; - version = "5.1.0.4"; - sha256 = "f33bcef0e390c50569613696fa2dad8e5b5f6407a981e5e90f1a5c770807d7b2"; - revision = "3"; - editedCabalFile = "0rj67mygyclp9aczr4kadl0azngn8xmi5v2rzha780pjz483a6hj"; - libraryHaskellDepends = [ - base binary bytestring containers dependent-map dependent-sum - dependent-sum-template directory edit-distance filepath haskeline - hslogger HTTP lifted-base monad-control mtl network parsec - prim-uniq random random-fu random-source regex-tdfa SafeSemaphore - split syb template-haskell time transformers transformers-base unix - utf8-string zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://wiki.haskell.org/Lambdabot"; - description = "Lambdabot core functionality"; - license = "GPL"; - }) {}; - "lambdabot-irc-plugins" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , lambdabot-core, lifted-base, mtl, network, SafeSemaphore, split - , stdenv, time - }: - mkDerivation { - pname = "lambdabot-irc-plugins"; - version = "5.1.0.4"; - sha256 = "4e3d5b8e464c1ccbf12c5a255785c07cdd7208943d2cdeab4a537b899b9e4c4f"; - libraryHaskellDepends = [ - base bytestring containers directory filepath lambdabot-core - lifted-base mtl network SafeSemaphore split time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://wiki.haskell.org/Lambdabot"; - description = "IRC plugins for lambdabot"; - license = "GPL"; - }) {}; - "lame" = callPackage - ({ mkDerivation, base, bytestring, data-default-class, directory - , exceptions, filepath, mp3lame, stdenv, text, transformers, wave - }: - mkDerivation { - pname = "lame"; - version = "0.1.1"; - sha256 = "b36009a35c02f7f18b4ba91d9ead7e5b47aef4eb5c0d014d4d60dd0bddfd6548"; - revision = "4"; - editedCabalFile = "0r364limqm570a8xd82wwpcvmcx2j7nfndg5kad022vz2v5n0smz"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring data-default-class directory exceptions filepath - text transformers wave - ]; - librarySystemDepends = [ mp3lame ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/lame"; - description = "Fairly complete high-level binding to LAME encoder"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) mp3lame;}; - "language-c" = callPackage - ({ mkDerivation, alex, array, base, bytestring, containers, deepseq - , directory, filepath, happy, pretty, process, stdenv, syb - }: - mkDerivation { - pname = "language-c"; - version = "0.8.2"; - sha256 = "b729d3b2263b0f029a66c37ae1c05b86b68bad1cde6c0b407bfd5201b91fce15"; - revision = "1"; - editedCabalFile = "1xg49j4bykgdm6l14m65wyz8r3s4v4dqc7a9zjcsr12ffkiv8nam"; - libraryHaskellDepends = [ - array base bytestring containers deepseq directory filepath pretty - process syb - ]; - libraryToolDepends = [ alex happy ]; - doHaddock = false; - doCheck = false; - homepage = "http://visq.github.io/language-c/"; - description = "Analysis and generation of C code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-c-quote" = callPackage - ({ mkDerivation, alex, array, base, bytestring, containers - , exception-mtl, exception-transformers, filepath, happy - , haskell-src-meta, mainland-pretty, mtl, srcloc, stdenv, syb - , symbol, template-haskell - }: - mkDerivation { - pname = "language-c-quote"; - version = "0.12.2"; - sha256 = "eb319b4d1154f88f4d0f8817c85efad34c14d774c47d4c9193c89c9064cb8695"; - revision = "1"; - editedCabalFile = "099w1lln1vm000sf06wrmq6gya5sx2w4flrlwqz2c8wwvv8c9j9h"; - libraryHaskellDepends = [ - array base bytestring containers exception-mtl - exception-transformers filepath haskell-src-meta mainland-pretty - mtl srcloc syb symbol template-haskell - ]; - libraryToolDepends = [ alex happy ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mainland/language-c-quote"; - description = "C/CUDA/OpenCL/Objective-C quasiquoting library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-docker" = callPackage - ({ mkDerivation, base, bytestring, containers, free, megaparsec - , mtl, prettyprinter, split, stdenv, template-haskell, text - , th-lift, time - }: - mkDerivation { - pname = "language-docker"; - version = "8.0.0"; - sha256 = "f64c31a468ad70d6ee5f4c6747c7586883535bb9313c84b53fe100a6edf4f903"; - revision = "1"; - editedCabalFile = "0pzlrc2rgsr6533spij42kpr8kgsvi6sc3c1yzs06n47lsxzjb1f"; - libraryHaskellDepends = [ - base bytestring containers free megaparsec mtl prettyprinter split - template-haskell text th-lift time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hadolint/language-docker#readme"; - description = "Dockerfile parser, pretty-printer and embedded DSL"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "language-ecmascript" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, charset, containers - , data-default-class, Diff, mtl, parsec, QuickCheck, stdenv - , template-haskell, uniplate - }: - mkDerivation { - pname = "language-ecmascript"; - version = "0.19"; - sha256 = "570a4b7bdebf4532e9c059f2afa7575247be2b7f539361995297308c387c658f"; - libraryHaskellDepends = [ - ansi-wl-pprint base charset containers data-default-class Diff mtl - parsec QuickCheck template-haskell uniplate - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jswebtools/language-ecmascript"; - description = "JavaScript parser and pretty-printer library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-haskell-extract" = callPackage - ({ mkDerivation, base, regex-posix, stdenv, template-haskell }: - mkDerivation { - pname = "language-haskell-extract"; - version = "0.2.4"; - sha256 = "14da16e56665bf971723e0c5fd06dbb7cc30b4918cf8fb5748570785ded1acdb"; - libraryHaskellDepends = [ base regex-posix template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/finnsson/template-helper"; - description = "Module to automatically extract functions from the local code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-java" = callPackage - ({ mkDerivation, alex, array, base, parsec, pretty, stdenv }: - mkDerivation { - pname = "language-java"; - version = "0.2.9"; - sha256 = "1d15c8ad2a1eff6b195ec1ed799b8523aeda1c183392b9b713bc4aff2092190e"; - revision = "1"; - editedCabalFile = "0fnbg9b8isyk8dpmggh736mms7a2m65956y1z15wds63imzhs2ik"; - libraryHaskellDepends = [ array base parsec pretty ]; - libraryToolDepends = [ alex ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/language-java"; - description = "Java source manipulation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-javascript" = callPackage - ({ mkDerivation, alex, array, base, blaze-builder, bytestring - , containers, happy, mtl, stdenv, text, utf8-string - }: - mkDerivation { - pname = "language-javascript"; - version = "0.6.0.11"; - sha256 = "d4756e9bc9a180cb93701e964a3157a03d4db4c7cb5a7b6b196067e587cc6143"; - libraryHaskellDepends = [ - array base blaze-builder bytestring containers mtl text utf8-string - ]; - libraryToolDepends = [ alex happy ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/erikd/language-javascript"; - description = "Parser for JavaScript"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-nix" = callPackage - ({ mkDerivation, base, base-compat, Cabal, deepseq, lens, pretty - , QuickCheck, stdenv - }: - mkDerivation { - pname = "language-nix"; - version = "2.1.0.1"; - sha256 = "f0147300724ac39ce388cd6cd717ac3ccc6ed1884ffaafebb18d0f3021e01acf"; - revision = "1"; - editedCabalFile = "1zv12p4ralrks0517zs52rzmzmsxxkcxkqz7zijfgcsvh6bsmafi"; - libraryHaskellDepends = [ - base base-compat Cabal deepseq lens pretty QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/language-nix#readme"; - description = "Data types and useful functions to represent and manipulate the Nix language"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "language-puppet" = callPackage - ({ mkDerivation, aeson, ansi-wl-pprint, async, attoparsec, base - , base16-bytestring, bytestring, case-insensitive, containers - , cryptonite, directory, filecache, filepath, formatting, Glob - , hashable, hruby, hslogger, http-api-data, http-client, lens - , lens-aeson, megaparsec, memory, mtl, operational - , optparse-applicative, parsec, parser-combinators, pcre-utils - , protolude, random, regex-pcre-builtin, scientific, servant - , servant-client, split, stdenv, stm, strict-base-types, text, time - , transformers, unix, unordered-containers, vector, yaml - }: - mkDerivation { - pname = "language-puppet"; - version = "1.4.2"; - sha256 = "18976ee3ada02c828342c4194c94e84fb5ee775ad4483c2943a4222a5928b12d"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson ansi-wl-pprint attoparsec base base16-bytestring bytestring - case-insensitive containers cryptonite directory filecache filepath - formatting hashable hruby hslogger http-api-data http-client lens - lens-aeson megaparsec memory mtl operational parsec - parser-combinators pcre-utils protolude random regex-pcre-builtin - scientific servant servant-client split stm strict-base-types text - time transformers unix unordered-containers vector yaml - ]; - executableHaskellDepends = [ - aeson ansi-wl-pprint async base bytestring containers Glob hslogger - http-client lens mtl optparse-applicative regex-pcre-builtin - strict-base-types text transformers unordered-containers vector - yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "http://lpuppet.banquise.net/"; - description = "Tools to parse and evaluate the Puppet DSL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lapack-ffi" = callPackage - ({ mkDerivation, base, liblapack, netlib-ffi, stdenv }: - mkDerivation { - pname = "lapack-ffi"; - version = "0.0.2"; - sha256 = "d4b73268bb25244f0234ef4a8b4407818e244d297612a189c7f34fe0b64ae584"; - libraryHaskellDepends = [ base netlib-ffi ]; - libraryPkgconfigDepends = [ liblapack ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/lapack-ffi/"; - description = "Auto-generated interface to Fortran LAPACK"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) liblapack;}; - "lapack-ffi-tools" = callPackage - ({ mkDerivation, base, bytestring, cassava, containers - , explicit-exception, filepath, non-empty, optparse-applicative - , parsec, pathtype, stdenv, transformers, unordered-containers - , utility-ht, vector - }: - mkDerivation { - pname = "lapack-ffi-tools"; - version = "0.1.2"; - sha256 = "186861751469b27097b3360a68f663501d55ed694b3d3e2a44901de55bb38e93"; - isLibrary = false; - isExecutable = true; - enableSeparateDataOutput = true; - executableHaskellDepends = [ - base bytestring cassava containers explicit-exception filepath - non-empty optparse-applicative parsec pathtype transformers - unordered-containers utility-ht vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/lapack-ffi-tools/"; - description = "Generator for Haskell interface to Fortran LAPACK"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "largeword" = callPackage - ({ mkDerivation, base, binary, stdenv }: - mkDerivation { - pname = "largeword"; - version = "1.2.5"; - sha256 = "00b3b06d846649bf404f52a725c88349a38bc8c810e16c99f3100c4e1e9d7d46"; - libraryHaskellDepends = [ base binary ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/idontgetoutmuch/largeword"; - description = "Provides Word128, Word192 and Word256 and a way of producing other large words if required"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "latex" = callPackage - ({ mkDerivation, base, containers, stdenv, utility-ht }: - mkDerivation { - pname = "latex"; - version = "0.1.0.4"; - sha256 = "1c2a8b9cefebc3ce5493071670d9c71e4fc30d6527d6a6c92174ce4c39a0a082"; - libraryHaskellDepends = [ base containers utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/LaTeX"; - description = "Parse, format and process LaTeX files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lattices" = callPackage - ({ mkDerivation, base, base-compat, containers, deepseq, hashable - , semigroupoids, stdenv, tagged, universe-base - , universe-reverse-instances, unordered-containers - }: - mkDerivation { - pname = "lattices"; - version = "1.7.1.1"; - sha256 = "797c89a34c6d631f76ff3bf342275f090ebceb705d6ad69c1a4108582b14ddaf"; - revision = "2"; - editedCabalFile = "0qxz4v5pqwvhb79mz4b7wc66r2c0xc9ixfhss4h56jk3vb1hriys"; - libraryHaskellDepends = [ - base base-compat containers deepseq hashable semigroupoids tagged - universe-base universe-reverse-instances unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/phadej/lattices/"; - description = "Fine-grained library for constructing and manipulating lattices"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lawful" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "lawful"; - version = "0.1.0.0"; - sha256 = "0056794106bbf7fa4d8d4d943fdc75a39b8a5ac1e18ceac2909183a1a7cc8d04"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/matt-noonan/lawful#readme"; - description = "Assert the lawfulness of your typeclass instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lazyio" = callPackage - ({ mkDerivation, base, stdenv, transformers, unsafe }: - mkDerivation { - pname = "lazyio"; - version = "0.1.0.4"; - sha256 = "8b54f0bccdc1c836393ce667ea0f1ad069d52c04762e61fad633d4d44916cf6c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base transformers unsafe ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Lazy_IO"; - description = "Run IO actions lazily while respecting their order"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lca" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, stdenv }: - mkDerivation { - pname = "lca"; - version = "0.3.1"; - sha256 = "8a8d045ae00d82ddb491e873cc36f1ca89e91556a183c343b99f4df6abfe434e"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/lca/"; - description = "O(log n) persistent online lowest common ancestor search without preprocessing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "leancheck" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "leancheck"; - version = "0.8.0"; - sha256 = "3a7cd0b60131a254f4f4fe5176e76347479ffbdf519bddd6c35a05841eed74d1"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/leancheck#readme"; - description = "Enumerative property-based testing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "leancheck-instances" = callPackage - ({ mkDerivation, array, base, bytestring, containers, leancheck - , nats, stdenv, text, time - }: - mkDerivation { - pname = "leancheck-instances"; - version = "0.0.3"; - sha256 = "a671ee53d343208ef3dccc93f3f64b1ed8e9ed4f6c509072fa4ab2b69de0cac0"; - libraryHaskellDepends = [ - array base bytestring containers leancheck nats text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/leancheck-instances#readme"; - description = "Common LeanCheck instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "leapseconds-announced" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "leapseconds-announced"; - version = "2017.1.0.1"; - sha256 = "cd3bb27caf704a975ef5718a9a8e641cd9cf9a9f2df27153f7cf80405292a8d6"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bjornbm/leapseconds-announced"; - description = "Leap seconds announced at library release time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens" = callPackage - ({ mkDerivation, array, base, base-orphans, bifunctors, bytestring - , Cabal, cabal-doctest, call-stack, comonad, containers - , contravariant, distributive, exceptions, filepath, free, ghc-prim - , hashable, kan-extensions, mtl, parallel, profunctors, reflection - , semigroupoids, semigroups, stdenv, tagged, template-haskell, text - , th-abstraction, transformers, transformers-compat - , unordered-containers, vector, void - }: - mkDerivation { - pname = "lens"; - version = "4.17"; - sha256 = "473664de541023bef44aa29105abbb1e35542e9254cdc846963183e0dd3f08cc"; - setupHaskellDepends = [ base Cabal cabal-doctest filepath ]; - libraryHaskellDepends = [ - array base base-orphans bifunctors bytestring call-stack comonad - containers contravariant distributive exceptions filepath free - ghc-prim hashable kan-extensions mtl parallel profunctors - reflection semigroupoids semigroups tagged template-haskell text - th-abstraction transformers transformers-compat - unordered-containers vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/lens/"; - description = "Lenses, Folds and Traversals"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "lens-action" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, comonad, contravariant - , lens, mtl, profunctors, semigroupoids, semigroups, stdenv - , transformers - }: - mkDerivation { - pname = "lens-action"; - version = "0.2.3"; - sha256 = "06848a6c7f217c3dd3228633bedc9a73b2cce139c1a6dff61af0994d410a98e0"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base comonad contravariant lens mtl profunctors semigroupoids - semigroups transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/lens-action/"; - description = "Monadic Getters and Folds"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-aeson" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal - , cabal-doctest, lens, scientific, stdenv, text - , unordered-containers, vector - }: - mkDerivation { - pname = "lens-aeson"; - version = "1.0.2"; - sha256 = "4311f035caa39db3a70915a165bcbfb55ad22376085d95a9b4f57c58994702cc"; - revision = "6"; - editedCabalFile = "1pg5v8fnlqw1krgi3d2a03a0zkjjdv5yp5f5z6q4mlb5jldz99a8"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson attoparsec base bytestring lens scientific text - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lens/lens-aeson/"; - description = "Law-abiding lenses for aeson"; - license = stdenv.lib.licenses.mit; - }) {}; - "lens-datetime" = callPackage - ({ mkDerivation, base, lens, stdenv, time }: - mkDerivation { - pname = "lens-datetime"; - version = "0.3"; - sha256 = "bb1f8d7bf71c9ef8901bc39e2a2d629b1101307115c0c4d844fcbd8e86b6ccd4"; - libraryHaskellDepends = [ base lens time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nilcons/lens-datetime"; - description = "Lenses for Data.Time.* types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-family" = callPackage - ({ mkDerivation, base, containers, lens-family-core, mtl, stdenv - , transformers - }: - mkDerivation { - pname = "lens-family"; - version = "1.2.3"; - sha256 = "8059e2b7a917e0108861ca795b0adfbb0bf1db5b1bdb55e677256a37d8de0e29"; - libraryHaskellDepends = [ - base containers lens-family-core mtl transformers - ]; - doHaddock = false; - doCheck = false; - description = "Lens Families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-family-core" = callPackage - ({ mkDerivation, base, containers, stdenv, transformers }: - mkDerivation { - pname = "lens-family-core"; - version = "1.2.3"; - sha256 = "914f5f077d7bed8a93866ac696e69c35bb8d0fbe81314236288b057941703901"; - libraryHaskellDepends = [ base containers transformers ]; - doHaddock = false; - doCheck = false; - description = "Haskell 98 Lens Families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-family-th" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "lens-family-th"; - version = "0.5.0.2"; - sha256 = "9c275afad37a5064b9a13c6207ee2307f6ccccc3a5517c0fae84524bad65b0e6"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/DanBurton/lens-family-th#readme"; - description = "Generate lens-family style lenses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-labels" = callPackage - ({ mkDerivation, base, ghc-prim, profunctors, stdenv, tagged }: - mkDerivation { - pname = "lens-labels"; - version = "0.3.0.1"; - sha256 = "e71772f4ad0b6c1c926da9f29257b44f03b8e16ae321b993fd416a3b03e0e27f"; - libraryHaskellDepends = [ base ghc-prim profunctors tagged ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Integration of lenses with OverloadedLabels"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-misc" = callPackage - ({ mkDerivation, base, lens, stdenv, tagged, template-haskell }: - mkDerivation { - pname = "lens-misc"; - version = "0.0.2.0"; - sha256 = "59925fe9125e297df0f1afcc8ac0f25de14fd017f7848ac2687ed63850ecd8cb"; - libraryHaskellDepends = [ base lens tagged template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/lens-misc#readme"; - description = "Miscellaneous lens utilities"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-properties" = callPackage - ({ mkDerivation, base, lens, QuickCheck, stdenv, transformers }: - mkDerivation { - pname = "lens-properties"; - version = "4.11.1"; - sha256 = "4f7c5b75a7204c151dbe62160a6917a22ab9e2a1b2e3848b7043d972ac8f4cb1"; - revision = "3"; - editedCabalFile = "1ll8j0zymxnr2xxp2h1aaqfcwd6ihjdllk5b7q02r5kw2b8a266b"; - libraryHaskellDepends = [ base lens QuickCheck transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/lens/"; - description = "QuickCheck properties for lens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-regex" = callPackage - ({ mkDerivation, array, base, lens, regex-base, stdenv - , template-haskell - }: - mkDerivation { - pname = "lens-regex"; - version = "0.1.1"; - sha256 = "0d946baa2be86452fe0a2185575e1d00752a075c92c48acdb3ed7833cd1ec730"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base lens regex-base template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/himura/lens-regex"; - description = "Lens powered regular expression"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-simple" = callPackage - ({ mkDerivation, base, lens-family, lens-family-core - , lens-family-th, mtl, stdenv, transformers - }: - mkDerivation { - pname = "lens-simple"; - version = "0.1.0.9"; - sha256 = "613d99b8074197f8a026a641a9940dd188e0d81e808169f420981a9ca15b832a"; - libraryHaskellDepends = [ - base lens-family lens-family-core lens-family-th mtl transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/michaelt/lens-simple"; - description = "simplified import of elementary lens-family combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lens-typelevel" = callPackage - ({ mkDerivation, base, singletons, stdenv }: - mkDerivation { - pname = "lens-typelevel"; - version = "0.1.1.0"; - sha256 = "773d07872000869d3fd4b45256e4ce8da16f85754da87bdd084a33f5b2b94d53"; - libraryHaskellDepends = [ base singletons ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/lens-typelevel#readme"; - description = "Type-level lenses using singletons"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lenz" = callPackage - ({ mkDerivation, base, base-unicode-symbols, hs-functors, stdenv - , transformers - }: - mkDerivation { - pname = "lenz"; - version = "0.3.0.0"; - sha256 = "632232db41f7c49359f37ed541bbbbe99f74d45c1cf583d1081b83af426a439d"; - libraryHaskellDepends = [ - base base-unicode-symbols hs-functors transformers - ]; - doHaddock = false; - doCheck = false; - description = "Van Laarhoven lenses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "leveldb-haskell" = callPackage - ({ mkDerivation, base, bytestring, data-default, exceptions - , filepath, leveldb, resourcet, stdenv, transformers - }: - mkDerivation { - pname = "leveldb-haskell"; - version = "0.6.5"; - sha256 = "a417b088068deba73a77936c1345302bac7ce06019fb10254857cafad1d76c28"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring data-default exceptions filepath resourcet - transformers - ]; - librarySystemDepends = [ leveldb ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/kim/leveldb-haskell"; - description = "Haskell bindings to LevelDB"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) leveldb;}; - "libffi" = callPackage - ({ mkDerivation, base, bytestring, ffi, libffi, stdenv }: - mkDerivation { - pname = "libffi"; - version = "0.1"; - sha256 = "48387067c0f33bcfadf7a3bebbf48a55294202500f2b754229ffc8f12cb4f23c"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ ffi ]; - libraryPkgconfigDepends = [ libffi ]; - doHaddock = false; - doCheck = false; - description = "A binding to libffi"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) ffi; inherit (pkgs) libffi;}; - "libgit" = callPackage - ({ mkDerivation, base, mtl, process, stdenv }: - mkDerivation { - pname = "libgit"; - version = "0.3.1"; - sha256 = "1d4c60dd987c363d77c4be947678d01a51ab4b568964c30a33827ccc854f7522"; - libraryHaskellDepends = [ base mtl process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-libgit"; - description = "Simple Git Wrapper"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "libgraph" = callPackage - ({ mkDerivation, array, base, containers, monads-tf, process - , stdenv, union-find - }: - mkDerivation { - pname = "libgraph"; - version = "1.14"; - sha256 = "b7978be50d6182101ca79fb3ea83d0621f5394d483d1fa1eb7d590e45f8d3f3f"; - revision = "1"; - editedCabalFile = "12xyrvvyh73b93k74lj55zwaygsvd93p4bm51kcd54m0pv0lclbq"; - libraryHaskellDepends = [ - array base containers monads-tf process union-find - ]; - doHaddock = false; - doCheck = false; - homepage = "http://maartenfaddegon.nl"; - description = "Store and manipulate data in a graph"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "libmpd" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers - , data-default-class, filepath, mtl, network, old-locale, stdenv - , text, time, utf8-string - }: - mkDerivation { - pname = "libmpd"; - version = "0.9.0.9"; - sha256 = "5b867ee675de1f490e58f5cb3903e1ea7e430ebca4b6d86e6b9c2c1c87a861a4"; - revision = "1"; - editedCabalFile = "16pzbmhyzlpxy2djmxrs0wrv8mad3ahb040lx5kmf57say3qxgdl"; - libraryHaskellDepends = [ - attoparsec base bytestring containers data-default-class filepath - mtl network old-locale text time utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vimus/libmpd-haskell#readme"; - description = "An MPD client library"; - license = stdenv.lib.licenses.mit; - }) {}; - "libraft" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, cereal, concurrency - , containers, directory, exceptions, haskeline, mtl, network - , network-simple, parsec, protolude, random, repline, stdenv, stm - , text, time, transformers, word8 - }: - mkDerivation { - pname = "libraft"; - version = "0.1.1.0"; - sha256 = "0cc94b7b17def34206358ec0e7107f1d94decf6d36f77296e6c199c8decd59ce"; - revision = "1"; - editedCabalFile = "0bzfkay18wphlqfm0i6rmr7rm1d6s16nxvrmc4wp0szim1k9k0gh"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - attoparsec base bytestring cereal concurrency containers directory - exceptions haskeline mtl network network-simple parsec protolude - random repline text time transformers word8 - ]; - executableHaskellDepends = [ - attoparsec base bytestring cereal concurrency containers directory - exceptions haskeline mtl network network-simple parsec protolude - random repline stm text time transformers word8 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/raft#readme"; - description = "Raft consensus algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "libyaml" = callPackage - ({ mkDerivation, base, bytestring, conduit, resourcet, stdenv }: - mkDerivation { - pname = "libyaml"; - version = "0.1.0.0"; - sha256 = "9cd688e316938d8a80536cb1b329c4b651c845e34e045b0c443b345580fb6f07"; - libraryHaskellDepends = [ base bytestring conduit resourcet ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/yaml#readme"; - description = "Low-level, streaming YAML interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lift-generics" = callPackage - ({ mkDerivation, base, generic-deriving, ghc-prim, stdenv - , template-haskell - }: - mkDerivation { - pname = "lift-generics"; - version = "0.1.2"; - sha256 = "0e9fbd17cd3e1af6ef1e994e7c14cfd42896e56499864e707f72246b6e2b604e"; - revision = "3"; - editedCabalFile = "0ackkmjfqxyxhy9w03zlqvmi68la9yv4jf0sc8qdhyr5y30ac68s"; - libraryHaskellDepends = [ - base generic-deriving ghc-prim template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/lift-generics"; - description = "GHC.Generics-based Language.Haskell.TH.Syntax.lift implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lifted-async" = callPackage - ({ mkDerivation, async, base, constraints, lifted-base - , monad-control, stdenv, transformers-base - }: - mkDerivation { - pname = "lifted-async"; - version = "0.10.0.3"; - sha256 = "83d09c355cf7c5d35f179f6f084524f451966ed29beac721f0500ee607822b8c"; - libraryHaskellDepends = [ - async base constraints lifted-base monad-control transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/maoe/lifted-async"; - description = "Run lifted IO operations asynchronously and wait for their results"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lifted-base" = callPackage - ({ mkDerivation, base, monad-control, stdenv, transformers-base }: - mkDerivation { - pname = "lifted-base"; - version = "0.2.3.12"; - sha256 = "c134a95f56750aae806e38957bb03c59627cda16034af9e00a02b699474317c5"; - libraryHaskellDepends = [ base monad-control transformers-base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/lifted-base"; - description = "lifted IO operations from the base library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "line" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring - , cryptohash-sha256, http-conduit, http-types, scotty, stdenv, text - , time, transformers, wai - }: - mkDerivation { - pname = "line"; - version = "4.0.1"; - sha256 = "a1dfab5dcd078747920fc61a024eb096a554f465d57c8bc642c155150f41667c"; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring cryptohash-sha256 - http-conduit http-types scotty text time transformers wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/utatti/line"; - description = "Haskell SDK for the LINE API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "linear" = callPackage - ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes - , Cabal, cabal-doctest, cereal, containers, deepseq, distributive - , ghc-prim, hashable, lens, reflection, semigroupoids, semigroups - , stdenv, tagged, template-haskell, transformers - , transformers-compat, unordered-containers, vector, void - }: - mkDerivation { - pname = "linear"; - version = "1.20.8"; - sha256 = "5ebd1b99837f2e3c7386bcd2ca425d9c66b09a61409792b141428345fb9edb10"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - adjunctions base base-orphans binary bytes cereal containers - deepseq distributive ghc-prim hashable lens reflection - semigroupoids semigroups tagged template-haskell transformers - transformers-compat unordered-containers vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/linear/"; - description = "Linear Algebra"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "linux-file-extents" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "linux-file-extents"; - version = "0.2.0.0"; - sha256 = "6c7cd9e700f666f774736d31a0e6aa7bfe9bd1e075c11eed701ba95095fd9bd0"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/linux-file-extents"; - description = "Retrieve file fragmentation information under Linux"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "linux-namespaces" = callPackage - ({ mkDerivation, base, bytestring, stdenv, unix }: - mkDerivation { - pname = "linux-namespaces"; - version = "0.1.3.0"; - sha256 = "1412db341c574b6a18e2fa23ee5e3ca6f32719409ea602a6215f1fd0aafb73e7"; - libraryHaskellDepends = [ base bytestring unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/redneb/hs-linux-namespaces"; - description = "Work with linux namespaces: create new or enter existing ones"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "list-t" = callPackage - ({ mkDerivation, base, mmorph, monad-control, mtl, stdenv - , transformers, transformers-base - }: - mkDerivation { - pname = "list-t"; - version = "1.0.3.1"; - sha256 = "c9930779f25fe83b103b3c7678d766f2b36de9a32f9480b50b1533e025e5cb40"; - libraryHaskellDepends = [ - base mmorph monad-control mtl transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/list-t"; - description = "ListT done right"; - license = stdenv.lib.licenses.mit; - }) {}; - "listsafe" = callPackage - ({ mkDerivation, base, exceptions, stdenv }: - mkDerivation { - pname = "listsafe"; - version = "0.1.0.1"; - sha256 = "1a073247edfbea7dd7b7f9629fc64ddd3bce67fa61695da23ff43fb31d398d69"; - libraryHaskellDepends = [ base exceptions ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ombocomp/listsafe"; - description = "Safe wrappers for partial list functions, supporting MonadThrow"; - license = stdenv.lib.licenses.asl20; - }) {}; - "llvm-hs-pure" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers, fail - , mtl, stdenv, template-haskell, transformers, unordered-containers - }: - mkDerivation { - pname = "llvm-hs-pure"; - version = "7.0.0"; - sha256 = "af9d7cdd512c4d33f7ad60deb445b72b1ecccff4e3968dd3f51327846c6402ad"; - libraryHaskellDepends = [ - attoparsec base bytestring containers fail mtl template-haskell - transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/llvm-hs/llvm-hs/"; - description = "Pure Haskell LLVM functionality (no FFI)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lmdb" = callPackage - ({ mkDerivation, array, base, lmdb, stdenv }: - mkDerivation { - pname = "lmdb"; - version = "0.2.5"; - sha256 = "80552856211cdce06b808685d621bdd9c33a5ac5540a4dafe120c6b20c901c7d"; - libraryHaskellDepends = [ array base ]; - librarySystemDepends = [ lmdb ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/dmbarbour/haskell-lmdb"; - description = "Lightning MDB bindings"; - license = stdenv.lib.licenses.bsd2; - }) {inherit (pkgs) lmdb;}; - "load-env" = callPackage - ({ mkDerivation, base, directory, filepath, parsec, stdenv }: - mkDerivation { - pname = "load-env"; - version = "0.2.0.2"; - sha256 = "819372c454adb5948329d265e5d7e7293970444f396618bc6bd62fbeac687f18"; - libraryHaskellDepends = [ base directory filepath parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pbrisbin/load-env#readme"; - description = "Load environment variables from a file"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "loc" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "loc"; - version = "0.1.3.4"; - sha256 = "c263ff5fbbd7d8cb597e617cb4a0cf961cac3b62c64de777e27d784e32b6b8f5"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chris-martin/loc"; - description = "Types representing line and column positions and ranges in text files"; - license = stdenv.lib.licenses.asl20; - }) {}; - "locators" = callPackage - ({ mkDerivation, base, bytestring, containers, cryptohash, stdenv - }: - mkDerivation { - pname = "locators"; - version = "0.2.4.4"; - sha256 = "2d6d0940206e285a086ea66c7b5f8b3a082fa629a8d335323dbbf78547e09aa5"; - libraryHaskellDepends = [ base bytestring containers cryptohash ]; - doHaddock = false; - doCheck = false; - description = "Human exchangable identifiers and locators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "loch-th" = callPackage - ({ mkDerivation, base, pretty, stdenv, template-haskell }: - mkDerivation { - pname = "loch-th"; - version = "0.2.2"; - sha256 = "cc059372b12a79375a0f268db7dc5a2973307a200440d4112e665b9a3d9b6dc3"; - libraryHaskellDepends = [ base pretty template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/liskin/loch-th"; - description = "Support for precise error locations in source files (Template Haskell version)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lockfree-queue" = callPackage - ({ mkDerivation, abstract-deque, atomic-primops, base, bytestring - , ghc-prim, stdenv - }: - mkDerivation { - pname = "lockfree-queue"; - version = "0.2.3.1"; - sha256 = "2a576a54bae8eabde01ebe901c9fd26a11bebb30516841de4525b5b60c0f3a8c"; - libraryHaskellDepends = [ - abstract-deque atomic-primops base bytestring ghc-prim - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/haskell-lockfree/wiki"; - description = "Michael and Scott lock-free queues"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "log-base" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, deepseq - , exceptions, mmorph, monad-control, monad-time, mtl, semigroups - , stdenv, stm, text, time, transformers-base, unordered-containers - }: - mkDerivation { - pname = "log-base"; - version = "0.7.4.0"; - sha256 = "4067eba80db49eb4509c10770959d0350f9eb9df5e0bde2fbf9024f106dc3f1b"; - libraryHaskellDepends = [ - aeson aeson-pretty base bytestring deepseq exceptions mmorph - monad-control monad-time mtl semigroups stm text time - transformers-base unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/scrive/log"; - description = "Structured logging solution (base package)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "log-domain" = callPackage - ({ mkDerivation, base, binary, bytes, Cabal, cabal-doctest, cereal - , comonad, deepseq, distributive, hashable, semigroupoids - , semigroups, stdenv, vector - }: - mkDerivation { - pname = "log-domain"; - version = "0.12"; - sha256 = "7191cba40b9b348c54171f2b86caabb75a30e52b6d7e4c57321bf5dcdf1f367e"; - revision = "4"; - editedCabalFile = "1z7p87dl1rj0v2gnfwfa7zmgaxccd093hvjkijc56whyg4b4az4y"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base binary bytes cereal comonad deepseq distributive hashable - semigroupoids semigroups vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/log-domain/"; - description = "Log-domain arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "logfloat" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "logfloat"; - version = "0.13.3.3"; - sha256 = "f774bd71d82ae053046ab602aa451ce4f65440d5c634dc8d950ae87f53527f82"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Log-domain floating point numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "logger-thread" = callPackage - ({ mkDerivation, base, fast-logger, protolude, safe-exceptions - , stdenv, stm, text, time - }: - mkDerivation { - pname = "logger-thread"; - version = "0.1.0.2"; - sha256 = "ac0a54001a69cff6f975209c4d9d399fb58ef59bb0ad6ac742c5ffedeac04a2a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base fast-logger protolude safe-exceptions stm text time - ]; - executableHaskellDepends = [ base protolude stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/joe9/logger-thread#readme"; - description = "Run FastLogger in a thread and direct all queued messages to it"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "logging-effect" = callPackage - ({ mkDerivation, async, base, exceptions, free, monad-control, mtl - , prettyprinter, semigroups, stdenv, stm, stm-delay, text, time - , transformers, transformers-base, unliftio-core - }: - mkDerivation { - pname = "logging-effect"; - version = "1.3.3"; - sha256 = "996ae52b545d1e86ffd08c25ace247c90cf437ebdbbafd4879f587ad207cf182"; - libraryHaskellDepends = [ - async base exceptions free monad-control mtl prettyprinter - semigroups stm stm-delay text time transformers transformers-base - unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocharles/logging-effect"; - description = "A mtl-style monad transformer for general purpose & compositional logging"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "logging-facade" = callPackage - ({ mkDerivation, base, call-stack, stdenv, transformers }: - mkDerivation { - pname = "logging-facade"; - version = "0.3.0"; - sha256 = "8e7115258b76e0bf5d21b532dd916c63e79b32d1776cc355d2d184f67ae71434"; - libraryHaskellDepends = [ base call-stack transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/logging-facade#readme"; - description = "Simple logging abstraction that allows multiple back-ends"; - license = stdenv.lib.licenses.mit; - }) {}; - "logging-facade-syslog" = callPackage - ({ mkDerivation, base, hsyslog, logging-facade, stdenv }: - mkDerivation { - pname = "logging-facade-syslog"; - version = "1"; - sha256 = "eb8b23c3f77a788891eac00e2d84bf489b683d761028a7938cf93e36729d8ea9"; - libraryHaskellDepends = [ base hsyslog logging-facade ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/logging-facade-syslog#readme"; - description = "A logging back-end to syslog(3) for the logging-facade library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "logict" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "logict"; - version = "0.6.0.2"; - sha256 = "1182b68e8d00279460c7fb9b8284bf129805c07754c678b2a8de5a6d768e161e"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~dolio/"; - description = "A backtracking logic-programming monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "long-double" = callPackage - ({ mkDerivation, base, integer-gmp, stdenv }: - mkDerivation { - pname = "long-double"; - version = "0.1"; - sha256 = "9218e8175afe5fb69aae72ad65c8b4dfdc943f137a5e95184673a03dc3765e1c"; - revision = "1"; - editedCabalFile = "12vmzzrxgb4yqf9axf1fildl4m0dfm3zqxk4vg6k6m5qi6haz1yn"; - libraryHaskellDepends = [ base integer-gmp ]; - doHaddock = false; - doCheck = false; - homepage = "https://code.mathr.co.uk/long-double"; - description = "FFI bindings for C long double"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "loop" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "loop"; - version = "0.3.0"; - sha256 = "92962010bdab28cc0092dd3fe42819d6f215c717dd10d9349626d92a0d0b3ecf"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/loop"; - description = "Fast loops (for when GHC can't optimize forM_)"; - license = stdenv.lib.licenses.mit; - }) {}; - "lrucaching" = callPackage - ({ mkDerivation, base, base-compat, deepseq, hashable, psqueues - , stdenv, vector - }: - mkDerivation { - pname = "lrucaching"; - version = "0.3.3"; - sha256 = "aa7e5fd27963c70fc1108a7c0526ca0e05f76ccd885844bc50bdae70d5174aa4"; - revision = "7"; - editedCabalFile = "0bwl2hpj0w1wg86az52iwz0afs1h99b599vdn0fgygw2ivhbvqjv"; - libraryHaskellDepends = [ - base base-compat deepseq hashable psqueues vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cocreature/lrucaching#readme"; - description = "LRU cache"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lsp-test" = callPackage - ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, base - , bytestring, conduit, conduit-parse, containers, data-default - , Diff, directory, filepath, haskell-lsp, lens, mtl - , parser-combinators, process, stdenv, text, transformers, unix - , unordered-containers, yi-rope - }: - mkDerivation { - pname = "lsp-test"; - version = "0.5.0.2"; - sha256 = "aa33cf1bd1e68122f86d71147cda41931f0c020a2ef2ff8ffcbead543ce2b33c"; - revision = "1"; - editedCabalFile = "0ffrlrhkkd7amimljknqc93s742d43ikppi4b10mfzv2lkw1bgnx"; - libraryHaskellDepends = [ - aeson aeson-pretty ansi-terminal base bytestring conduit - conduit-parse containers data-default Diff directory filepath - haskell-lsp lens mtl parser-combinators process text transformers - unix unordered-containers yi-rope - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Bubba/haskell-lsp-test#readme"; - description = "Functional test framework for LSP servers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lucid" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, containers - , hashable, mmorph, mtl, stdenv, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "lucid"; - version = "2.9.11"; - sha256 = "8ca524b9ca7984a83b18916b0c9dfb79002cb3bbe88f5139f68bfbe46010bf8f"; - libraryHaskellDepends = [ - base blaze-builder bytestring containers hashable mmorph mtl text - transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chrisdone/lucid"; - description = "Clear to write, read and edit DSL for HTML"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "lucid-extras" = callPackage - ({ mkDerivation, aeson, base, blaze-builder, bytestring, lucid - , stdenv, text - }: - mkDerivation { - pname = "lucid-extras"; - version = "0.1.0.1"; - sha256 = "5cc5e269c313cba6871b70d48825e6b63ae49db91d507b7f9dccc10bf12dcb73"; - revision = "1"; - editedCabalFile = "030mj3yddbia6dkbl8d6mssi42l3z8gs79z50r78gwiif6mh5dny"; - libraryHaskellDepends = [ - aeson base blaze-builder bytestring lucid text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/diffusionkinetics/open/lucid-extras"; - description = "Generate more HTML with Lucid"; - license = stdenv.lib.licenses.mit; - }) {}; - "lxd-client-config" = callPackage - ({ mkDerivation, aeson, base, containers, directory, filepath - , stdenv, text, yaml - }: - mkDerivation { - pname = "lxd-client-config"; - version = "0.1.0.1"; - sha256 = "903852c99bebc0af3cc3a26734056003f9097ada08eb1f361abce097a120afcf"; - libraryHaskellDepends = [ - aeson base containers directory filepath text yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hverr/haskell-lxd-client-config#readme"; - description = "Read the configuration file of the standard LXD client"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "lzma" = callPackage - ({ mkDerivation, base, bytestring, lzma, stdenv }: - mkDerivation { - pname = "lzma"; - version = "0.0.0.3"; - sha256 = "af8321c3511bde3e2745093fa3bd74c642e386db7d2e7c43b3a54814f1338144"; - revision = "3"; - editedCabalFile = "1sify6gnsalyp6dakfzi0mdy5jcz2kcp9jsdsgkmxd40nfzgd44m"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ lzma ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/lzma"; - description = "LZMA/XZ compression and decompression"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) lzma;}; - "lzma-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, lzma, resourcet, stdenv - , transformers - }: - mkDerivation { - pname = "lzma-conduit"; - version = "1.2.1"; - sha256 = "e955da2b8b108b3bf07073e12e5b01c46d42c8f3e40828fb1f34cd7e5413a742"; - libraryHaskellDepends = [ - base bytestring conduit lzma resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/alphaHeavy/lzma-conduit"; - description = "Conduit interface for lzma/xz compression"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "machines" = callPackage - ({ mkDerivation, adjunctions, base, Cabal, cabal-doctest, comonad - , containers, distributive, mtl, pointed, profunctors - , semigroupoids, semigroups, stdenv, transformers - , transformers-compat, void - }: - mkDerivation { - pname = "machines"; - version = "0.6.4"; - sha256 = "72de2b2e27cb36832ec4a66de36f1ba6c53d2abd197b7f0351865b4567db7768"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - adjunctions base comonad containers distributive mtl pointed - profunctors semigroupoids semigroups transformers - transformers-compat void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/machines/"; - description = "Networked stream transducers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "machines-binary" = callPackage - ({ mkDerivation, base, binary, bytestring, machines, stdenv }: - mkDerivation { - pname = "machines-binary"; - version = "0.3.0.3"; - sha256 = "60ff456d658ea1a427f32ee5ae1c726e2e7703942bd33edf28b457d753c20652"; - libraryHaskellDepends = [ base binary bytestring machines ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aloiscochard/machines-binary"; - description = "Binary utilities for the machines library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "machines-directory" = callPackage - ({ mkDerivation, base, directory, filepath, machines, machines-io - , stdenv, transformers - }: - mkDerivation { - pname = "machines-directory"; - version = "0.2.1.0"; - sha256 = "849c07db6ff6cfd88348d228a7a3f8ccb16e99568230ee0d20faa5670474deb4"; - libraryHaskellDepends = [ - base directory filepath machines machines-io transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aloiscochard/machines-directory"; - description = "Directory (system) utilities for the machines library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "machines-io" = callPackage - ({ mkDerivation, base, bytestring, chunked-data, machines, stdenv - , transformers - }: - mkDerivation { - pname = "machines-io"; - version = "0.2.0.13"; - sha256 = "4d579d5e9e94fafcfca91322734263498999d2e2af45c40ff0d1db78f4a8f5d4"; - libraryHaskellDepends = [ - base bytestring chunked-data machines transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aloiscochard/machines-io"; - description = "IO utilities for the machines library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "main-tester" = callPackage - ({ mkDerivation, base, bytestring, directory, stdenv }: - mkDerivation { - pname = "main-tester"; - version = "0.2.0.0"; - sha256 = "ccb278588b0d68eb98626acc5e588348cdae5acffbb6e699becf6b08d23d0b47"; - libraryHaskellDepends = [ base bytestring directory ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/igrep/main-tester#readme"; - description = "Capture stdout/stderr/exit code, and replace stdin of your main function"; - license = stdenv.lib.licenses.asl20; - }) {}; - "mainland-pretty" = callPackage - ({ mkDerivation, base, containers, srcloc, stdenv, text - , transformers - }: - mkDerivation { - pname = "mainland-pretty"; - version = "0.7"; - sha256 = "11777bd365251813c512a3e17e0303b30f2a86411a12118751858cbb20dbeaf7"; - revision = "1"; - editedCabalFile = "1apyqnbcsbjfkqc1d6mk74pxl12130r6ijwhj555gddls9g0qdf3"; - libraryHaskellDepends = [ - base containers srcloc text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mainland/mainland-pretty"; - description = "Pretty printing designed for printing source code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "makefile" = callPackage - ({ mkDerivation, attoparsec, base, stdenv, text }: - mkDerivation { - pname = "makefile"; - version = "1.1.0.0"; - sha256 = "ed7a12094fe93ef0c6350ed6607ad488703f54bc2ad5d8cb2f9d89eb10b75c07"; - libraryHaskellDepends = [ attoparsec base text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/nmattia/mask"; - description = "Simple Makefile parser and generator"; - license = stdenv.lib.licenses.mit; - }) {}; - "managed" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "managed"; - version = "1.0.6"; - sha256 = "f1a70a23c0866b75d609b2c818b426712d7a2b4256f43a3d5da517e853e279cd"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - description = "A monad for managed values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mapquest-api" = callPackage - ({ mkDerivation, aeson, base, bytestring, exceptions, goggles, mtl - , req, stdenv, text - }: - mkDerivation { - pname = "mapquest-api"; - version = "0.3.1"; - sha256 = "43339221b91816e8f793a98a4d281285e8e9de8788f13bb30ec345ef855a7b85"; - libraryHaskellDepends = [ - aeson base bytestring exceptions goggles mtl req text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocramz/mapquest-api"; - description = "Bindings to the MapQuest API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "markdown" = callPackage - ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup - , conduit, conduit-extra, containers, data-default, stdenv, text - , transformers, xml-conduit, xml-types, xss-sanitize - }: - mkDerivation { - pname = "markdown"; - version = "0.1.17.4"; - sha256 = "c2e3e742be2b4af6ed62be262cab59d2366556e120b1f8856cff6e7ef270fdd4"; - libraryHaskellDepends = [ - attoparsec base blaze-html blaze-markup conduit conduit-extra - containers data-default text transformers xml-conduit xml-types - xss-sanitize - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/markdown"; - description = "Convert Markdown to HTML, with XSS protection"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "markdown-unlit" = callPackage - ({ mkDerivation, base, base-compat, stdenv }: - mkDerivation { - pname = "markdown-unlit"; - version = "0.5.0"; - sha256 = "e72d0d7b82525e2a2c664012ce9dc35835b3fff91040d9f20897ed82f24ec7bf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base base-compat ]; - executableHaskellDepends = [ base base-compat ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/markdown-unlit#readme"; - description = "Literate Haskell support for Markdown"; - license = stdenv.lib.licenses.mit; - }) {}; - "markov-chain" = callPackage - ({ mkDerivation, base, containers, random, stdenv, transformers }: - mkDerivation { - pname = "markov-chain"; - version = "0.0.3.4"; - sha256 = "6e51b800101a28593be28ce7ef1b21b7cc7a177a821fb99ecd8a28c69b7b92cd"; - libraryHaskellDepends = [ base containers random transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/markov-chain/"; - description = "Markov Chains for generating random sequences with a user definable behaviour"; - license = "GPL"; - }) {}; - "massiv" = callPackage - ({ mkDerivation, base, bytestring, data-default-class, deepseq - , ghc-prim, primitive, stdenv, vector - }: - mkDerivation { - pname = "massiv"; - version = "0.2.7.0"; - sha256 = "87f19ef810ccc917c5dc00950f12a3c0b8ffdabb4dfbd99a42c079b3e06b1720"; - libraryHaskellDepends = [ - base bytestring data-default-class deepseq ghc-prim primitive - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lehins/massiv"; - description = "Massiv (Массив) is an Array Library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "massiv-io" = callPackage - ({ mkDerivation, base, bytestring, data-default, deepseq, directory - , filepath, JuicyPixels, massiv, netpbm, process, stdenv, vector - }: - mkDerivation { - pname = "massiv-io"; - version = "0.1.5.0"; - sha256 = "dc89ab0f965adec0c16784f6feec75903b99b8366426c85e167b405b5b36f8ed"; - libraryHaskellDepends = [ - base bytestring data-default deepseq directory filepath JuicyPixels - massiv netpbm process vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lehins/massiv"; - description = "Import/export of Image files into massiv Arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "math-functions" = callPackage - ({ mkDerivation, base, data-default-class, deepseq, primitive - , stdenv, vector, vector-th-unbox - }: - mkDerivation { - pname = "math-functions"; - version = "0.3.1.0"; - sha256 = "3340ebec0ab91444f86ce3f785db920b8acfd5fbad70d38abcb02b77ac0f6655"; - libraryHaskellDepends = [ - base data-default-class deepseq primitive vector vector-th-unbox - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/math-functions"; - description = "Collection of tools for numeric computations"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "mathexpr" = callPackage - ({ mkDerivation, base, data-default-class, stdenv }: - mkDerivation { - pname = "mathexpr"; - version = "0.3.0.0"; - sha256 = "23c30ae0c962a7858d57bed320be6421baeb82fa795260e1eea0bc8fcc4871ad"; - libraryHaskellDepends = [ base data-default-class ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mdibaiee/mathexpr"; - description = "Parse and evaluate math expressions with variables and functions"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "matrices" = callPackage - ({ mkDerivation, base, deepseq, primitive, stdenv, vector }: - mkDerivation { - pname = "matrices"; - version = "0.4.5"; - sha256 = "2d396f130d675eabaa435caba122fe2b2c1d2dfc5343471131b7392e479b7397"; - libraryHaskellDepends = [ base deepseq primitive vector ]; - doHaddock = false; - doCheck = false; - description = "native matrix based on vector"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "matrix" = callPackage - ({ mkDerivation, base, deepseq, loop, primitive, semigroups, stdenv - , vector - }: - mkDerivation { - pname = "matrix"; - version = "0.3.6.1"; - sha256 = "fa976ca3bc98149ce59b7ae37869eda615562711e1fef90889f6e0c4f2093b2c"; - revision = "1"; - editedCabalFile = "0iy0gdgg68ldhgm4lzvzl5pmzflx0r4brdbdkq75rkarm7cigawn"; - libraryHaskellDepends = [ - base deepseq loop primitive semigroups vector - ]; - doHaddock = false; - doCheck = false; - description = "A native implementation of matrix operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "matrix-market-attoparsec" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, exceptions - , scientific, stdenv - }: - mkDerivation { - pname = "matrix-market-attoparsec"; - version = "0.1.0.8"; - sha256 = "5e41aa81abdfd6062dc4607ea7c684b9ac09a286d2ebf76829504acf09260a77"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base bytestring exceptions scientific - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocramz/matrix-market-attoparsec"; - description = "Parsing and serialization functions for the NIST Matrix Market format"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "matrix-static" = callPackage - ({ mkDerivation, base, deepseq, ghc-typelits-knownnat - , ghc-typelits-natnormalise, matrix, stdenv, vector - }: - mkDerivation { - pname = "matrix-static"; - version = "0.2"; - sha256 = "07e46233ba35c0f8fcb14af7863cfd728895b603a2196495e89a7069d89f9b3c"; - libraryHaskellDepends = [ - base deepseq ghc-typelits-knownnat ghc-typelits-natnormalise matrix - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/wchresta/matrix-static#readme"; - description = "Type-safe matrix operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "maximal-cliques" = callPackage - ({ mkDerivation, base, containers, stdenv, vector }: - mkDerivation { - pname = "maximal-cliques"; - version = "0.1.1"; - sha256 = "709d05c753c7d2d7466ade515da0255fc79241432d0118b3182dd3b2def475e9"; - libraryHaskellDepends = [ base containers vector ]; - doHaddock = false; - doCheck = false; - description = "Enumerate all maximal cliques of a graph"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mbox" = callPackage - ({ mkDerivation, base, safe, stdenv, text, time, time-locale-compat - }: - mkDerivation { - pname = "mbox"; - version = "0.3.4"; - sha256 = "dce4b538bbe03928a1d1438bf80b4d341ffb1a9d23ead1c2b16a04b0fa5371de"; - revision = "1"; - editedCabalFile = "11jikczq21fnhsvr6n33qbb5q6ixbhab4s0js8n39zwgmglighz5"; - libraryHaskellDepends = [ base safe text time time-locale-compat ]; - doHaddock = false; - doCheck = false; - description = "Read and write standard mailbox files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mbox-utility" = callPackage - ({ mkDerivation, base, bytestring, hsemail, non-empty, old-time - , parsec, spreadsheet, stdenv, utility-ht - }: - mkDerivation { - pname = "mbox-utility"; - version = "0.0.1"; - sha256 = "e5e009f83c95b20d85c4b39d233b2f32ee15eae08d54edbaa7928848ae15e9f8"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bytestring hsemail non-empty old-time parsec spreadsheet - utility-ht - ]; - doHaddock = false; - doCheck = false; - description = "List contents of an mbox file containing e-mails"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mbtiles" = callPackage - ({ mkDerivation, base, bytestring, directory, monad-control, mtl - , resource-pool, sqlite-simple, stdenv, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "mbtiles"; - version = "0.6.0.0"; - sha256 = "b8a82f0a1c551a59961449587f031f679dd2f5f082ce45b6f7d88d81f99ad62f"; - libraryHaskellDepends = [ - base bytestring directory monad-control mtl resource-pool - sqlite-simple text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/caneroj1/mbtiles#readme"; - description = "Haskell MBTiles client"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mbug" = callPackage - ({ mkDerivation, base, bytestring, directory, extra, formatting - , http-client, http-client-tls, mtl, optparse-applicative, process - , scalpel-core, stdenv, tagsoup, text, time, xdg-basedir - }: - mkDerivation { - pname = "mbug"; - version = "1.3.2"; - sha256 = "cd0e82e9470616bdcd03a32f0f4cb7204cca554310893ca5548149beb9fd9e15"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring directory extra formatting http-client - http-client-tls mtl optparse-applicative process scalpel-core - tagsoup text time xdg-basedir - ]; - executableHaskellDepends = [ - base bytestring directory extra formatting http-client - http-client-tls mtl optparse-applicative process scalpel-core - tagsoup text time xdg-basedir - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/iu-guest/mbug"; - description = "download bugs mailboxes"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "mcmc-types" = callPackage - ({ mkDerivation, base, containers, mwc-probability, stdenv - , transformers - }: - mkDerivation { - pname = "mcmc-types"; - version = "1.0.3"; - sha256 = "3c4b25030b05567694ddc313ca808a32133ad5433b4d89837e1ed00bbfcefc6e"; - libraryHaskellDepends = [ - base containers mwc-probability transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jtobin/mcmc-types"; - description = "Common types for sampling"; - license = stdenv.lib.licenses.mit; - }) {}; - "median-stream" = callPackage - ({ mkDerivation, base, heap, stdenv }: - mkDerivation { - pname = "median-stream"; - version = "0.7.0.0"; - sha256 = "e92fc44be8189dafe9190aad225462780f26d0b1fe1823376342329db6c71f3d"; - libraryHaskellDepends = [ base heap ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/caneroj1/median-stream#readme"; - description = "Constant-time queries for the median of a stream of numeric data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mega-sdist" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , http-conduit, optparse-simple, rio, rio-orphans, stdenv - , tar-conduit, yaml - }: - mkDerivation { - pname = "mega-sdist"; - version = "0.3.3.2"; - sha256 = "a4e1c3ba865a59161bf3ef30fa78310201b2d88ff9e72a6691578f723857144a"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bytestring conduit conduit-extra http-conduit optparse-simple - rio rio-orphans tar-conduit yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mega-sdist#readme"; - description = "Handles uploading to Hackage from mega repos"; - license = stdenv.lib.licenses.mit; - }) {}; - "megaparsec" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, containers - , deepseq, mtl, parser-combinators, scientific, stdenv, text - , transformers - }: - mkDerivation { - pname = "megaparsec"; - version = "7.0.4"; - sha256 = "325ba5cee8cdef91e351fb2db0b38562f8345b0bcdfed97045671357501de8c1"; - libraryHaskellDepends = [ - base bytestring case-insensitive containers deepseq mtl - parser-combinators scientific text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/megaparsec"; - description = "Monadic parser combinators"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "memory" = callPackage - ({ mkDerivation, base, basement, bytestring, deepseq, ghc-prim - , stdenv - }: - mkDerivation { - pname = "memory"; - version = "0.14.18"; - sha256 = "f5458d170a291788ac8da896bb44b0cc84021c99dd596c52adf2f7a7f6c03507"; - revision = "1"; - editedCabalFile = "0h4d0avv8kv3my4rim79lcamv2dyibld7w6ianq46nhwgr0h2lzm"; - libraryHaskellDepends = [ - base basement bytestring deepseq ghc-prim - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-memory"; - description = "memory and related abstraction stuff"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "menshen" = callPackage - ({ mkDerivation, base, regex-tdfa, scientific, stdenv, text }: - mkDerivation { - pname = "menshen"; - version = "0.0.1"; - sha256 = "5ccb28acf8fa6607d498c46951b101e3ae767e78aa9eeb3f34869cd2862e90c4"; - libraryHaskellDepends = [ base regex-tdfa scientific text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/leptonyu/menshen#readme"; - description = "Data Validation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mercury-api" = callPackage - ({ mkDerivation, ansi-terminal, base, bytestring, clock, hashable - , optparse-applicative, stdenv, text, unordered-containers - }: - mkDerivation { - pname = "mercury-api"; - version = "0.1.0.2"; - sha256 = "0f4ed76a96029413aef856a00defaa5d75be196a12a0dc1e75b9a0a866607779"; - revision = "2"; - editedCabalFile = "02sbbiznppvdmpb373xyh8i84sywlzzvhhx5nd9ix5lmx50813qw"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base bytestring clock hashable text - unordered-containers - ]; - executableHaskellDepends = [ - ansi-terminal base bytestring optparse-applicative text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ppelleti/hs-mercury-api"; - description = "Haskell binding to Mercury API for ThingMagic RFID readers"; - license = stdenv.lib.licenses.mit; - }) {}; - "merkle-tree" = callPackage - ({ mkDerivation, base, bytestring, cereal, cryptonite, memory - , protolude, random, stdenv - }: - mkDerivation { - pname = "merkle-tree"; - version = "0.1.1"; - sha256 = "215a62476230374b8bbf2f7a0a3e88345a18cf9c6f672ef7d422c3f6bd5ba2aa"; - libraryHaskellDepends = [ - base bytestring cereal cryptonite memory protolude random - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/merkle-tree#readme"; - description = "An implementation of a Merkle tree and merkle tree proofs of inclusion"; - license = stdenv.lib.licenses.asl20; - }) {}; - "mersenne-random-pure64" = callPackage - ({ mkDerivation, base, random, stdenv, time }: - mkDerivation { - pname = "mersenne-random-pure64"; - version = "0.2.2.0"; - sha256 = "ef1400ddc1ddafb0b98d4331a58bdbe3b5209a81579e17f85f180731a96d75d1"; - revision = "1"; - editedCabalFile = "0pxq0xz42x60993rl4pr4pia80jv1xcqh6njvjzfvn75018j4gw5"; - configureFlags = [ "-f-small_base" ]; - libraryHaskellDepends = [ base random time ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~dons/code/mersenne-random-pure64/"; - description = "Generate high quality pseudorandom numbers purely using a Mersenne Twister"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "metrics" = callPackage - ({ mkDerivation, ansi-terminal, base, bytestring, containers, lens - , mwc-random, primitive, stdenv, text, time, transformers - , transformers-base, unix-compat, unordered-containers, vector - , vector-algorithms - }: - mkDerivation { - pname = "metrics"; - version = "0.4.1.1"; - sha256 = "d55f6e704ec6f0c6bab0da46417049b7de3e76ca69a0be4c49a790db28c75bb8"; - libraryHaskellDepends = [ - ansi-terminal base bytestring containers lens mwc-random primitive - text time transformers transformers-base unix-compat - unordered-containers vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - description = "High-performance application metric tracking"; - license = stdenv.lib.licenses.mit; - }) {}; - "mfsolve" = callPackage - ({ mkDerivation, base, hashable, mtl, mtl-compat, stdenv - , unordered-containers - }: - mkDerivation { - pname = "mfsolve"; - version = "0.3.2.0"; - sha256 = "232167442f9c0f326b7514b362d4521b3937b716fd4155c65060d34430aa42f1"; - libraryHaskellDepends = [ - base hashable mtl mtl-compat unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Equation solver and calculator à la metafont"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microbench" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "microbench"; - version = "0.1"; - sha256 = "6fee3c592c9afb72bd7b5574872119464055b717491c612ffee7f57c8e85d717"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "http://neugierig.org/software/darcs/browse/?r=microbench;a=summary"; - description = "Microbenchmark Haskell code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microformats2-parser" = callPackage - ({ mkDerivation, aeson, aeson-pretty, aeson-qq, attoparsec, base - , base-compat, blaze-html, blaze-markup, bytestring, containers - , data-default, either, errors, html-conduit, lens-aeson, network - , network-uri, options, pcre-heavy, safe, scotty, stdenv, tagsoup - , text, time, transformers, unordered-containers, vector, wai-cli - , wai-extra, xml-lens, xss-sanitize - }: - mkDerivation { - pname = "microformats2-parser"; - version = "1.0.1.9"; - sha256 = "50c71d9cd57991011855ad16759a6d43f56abc0e7424475db5263c5f04e2abd3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-qq attoparsec base base-compat blaze-markup bytestring - containers data-default either errors html-conduit lens-aeson - network-uri pcre-heavy safe tagsoup text time transformers - unordered-containers vector xml-lens xss-sanitize - ]; - executableHaskellDepends = [ - aeson aeson-pretty base base-compat blaze-html blaze-markup - data-default network network-uri options scotty text wai-cli - wai-extra - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/myfreeweb/microformats2-parser"; - description = "A Microformats 2 parser"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "microlens" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "microlens"; - version = "0.4.10"; - sha256 = "9c55a89d1c91fddcafca4bb1fa99a3ef29223436d75191fb29385de2bd3f47ec"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/monadfix/microlens"; - description = "A tiny lens library with no dependencies. If you're writing an app, you probably want microlens-platform, not this."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microlens-aeson" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq - , hashable, microlens, scientific, stdenv, text - , unordered-containers, vector - }: - mkDerivation { - pname = "microlens-aeson"; - version = "2.3.0.1"; - sha256 = "9acd281091453275bacb8c4e1729332b2242d92030300410e25e980c61038bd9"; - revision = "1"; - editedCabalFile = "18490w9yvsn8rx18wb29bg1wj5vxa7il3gsi3cz2myx9iawhnnxq"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring deepseq hashable microlens - scientific text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/fosskers/microlens-aeson/"; - description = "Law-abiding lenses for Aeson, using microlens"; - license = stdenv.lib.licenses.mit; - }) {}; - "microlens-contra" = callPackage - ({ mkDerivation, base, microlens, stdenv }: - mkDerivation { - pname = "microlens-contra"; - version = "0.1.0.2"; - sha256 = "b57848cf35305f972f450fb6fb743605a9e82a818f3549f06cdfe5d336c4c9db"; - libraryHaskellDepends = [ base microlens ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/monadfix/microlens"; - description = "True folds and getters for microlens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microlens-ghc" = callPackage - ({ mkDerivation, array, base, bytestring, containers, microlens - , stdenv, transformers - }: - mkDerivation { - pname = "microlens-ghc"; - version = "0.4.10"; - sha256 = "63784af17969f63fee64684d7ad43187a0b978d85ba1bee15abda9a65b5e4d80"; - libraryHaskellDepends = [ - array base bytestring containers microlens transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/monadfix/microlens"; - description = "microlens + array, bytestring, containers, transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microlens-mtl" = callPackage - ({ mkDerivation, base, microlens, mtl, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "microlens-mtl"; - version = "0.1.11.1"; - sha256 = "d3e74f46a72aad12b71d8549a98fbc023fb364766f17d75742fb32fee70bdf50"; - libraryHaskellDepends = [ - base microlens mtl transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/microlens"; - description = "microlens support for Reader/Writer/State from mtl"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microlens-platform" = callPackage - ({ mkDerivation, base, hashable, microlens, microlens-ghc - , microlens-mtl, microlens-th, stdenv, text, unordered-containers - , vector - }: - mkDerivation { - pname = "microlens-platform"; - version = "0.3.11"; - sha256 = "8b77f0630d022e42deb8438d8383c361555975d07f44efb79ee5e9fa3a0525a1"; - revision = "1"; - editedCabalFile = "14v7ffibzsa1fhf4pwvpw9ia67kgmk8wmxwibj7vr9rayrxy1ffv"; - libraryHaskellDepends = [ - base hashable microlens microlens-ghc microlens-mtl microlens-th - text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/monadfix/microlens"; - description = "Feature-complete microlens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microlens-th" = callPackage - ({ mkDerivation, base, containers, microlens, stdenv - , template-haskell, th-abstraction, transformers - }: - mkDerivation { - pname = "microlens-th"; - version = "0.4.2.3"; - sha256 = "321018c6c0aad3f68eb26f6c7e7a518db43039e3f8f19c4634ceb4c7f8051c8f"; - revision = "1"; - editedCabalFile = "167in7b1qhgrspx81bdm2jyg9qji66sk7id282c0s99kmp0d01n6"; - libraryHaskellDepends = [ - base containers microlens template-haskell th-abstraction - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/microlens"; - description = "Automatic generation of record lenses for microlens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microspec" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv, time }: - mkDerivation { - pname = "microspec"; - version = "0.2.1.3"; - sha256 = "8bf530a4bce642431014d5395e4c8ab412bed44fe6caa6c2e1239ea9577b2518"; - libraryHaskellDepends = [ base QuickCheck time ]; - doHaddock = false; - doCheck = false; - description = "Tiny QuickCheck test library with minimal dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "microstache" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, deepseq - , directory, filepath, parsec, stdenv, text, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "microstache"; - version = "1.0.1.1"; - sha256 = "5de98542313eb75f84961366ff8a70ed632387ba6518215035b2dd1b32d6a120"; - revision = "3"; - editedCabalFile = "1pq0h64vxc7zlncn2ld6k02wi6rfa5ccqc4z0hfkvaldj41y2sb1"; - libraryHaskellDepends = [ - aeson base bytestring containers deepseq directory filepath parsec - text transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/microstache"; - description = "Mustache templates for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "midair" = callPackage - ({ mkDerivation, base, containers, safe, stdenv, stm }: - mkDerivation { - pname = "midair"; - version = "0.2.0.1"; - sha256 = "421f941bc6b4a4d27c3de2d618557188e59e929b56860dade281e89b555172b6"; - libraryHaskellDepends = [ base containers safe stm ]; - doHaddock = false; - doCheck = false; - description = "Hot-swappable FRP"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "midi" = callPackage - ({ mkDerivation, base, binary, bytestring, event-list - , explicit-exception, monoid-transformer, non-negative, QuickCheck - , random, semigroups, stdenv, transformers, utility-ht - }: - mkDerivation { - pname = "midi"; - version = "0.2.2.2"; - sha256 = "de7cb58971a43f23e2a1ec0c4c01f690c1dd11ba55bc71264e1b9731014a693b"; - libraryHaskellDepends = [ - base binary bytestring event-list explicit-exception - monoid-transformer non-negative QuickCheck random semigroups - transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/MIDI"; - description = "Handling of MIDI messages and files"; - license = "GPL"; - }) {}; - "mighty-metropolis" = callPackage - ({ mkDerivation, base, kan-extensions, mcmc-types, mwc-probability - , pipes, primitive, stdenv, transformers - }: - mkDerivation { - pname = "mighty-metropolis"; - version = "1.2.0"; - sha256 = "8d3c0b4b65024846291c4f547c45e5c04f587aefd0e8d041d54679bb519871c0"; - libraryHaskellDepends = [ - base kan-extensions mcmc-types mwc-probability pipes primitive - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jtobin/mighty-metropolis"; - description = "The Metropolis algorithm"; - license = stdenv.lib.licenses.mit; - }) {}; - "mime-mail" = callPackage - ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring - , filepath, process, random, stdenv, text - }: - mkDerivation { - pname = "mime-mail"; - version = "0.4.14"; - sha256 = "9632c3d54c9741fece0a3ea705d965485a1299ebe5798d2aa7cca2c8e4baaa3e"; - revision = "1"; - editedCabalFile = "14zadyz63gjpf58h6v36w3jwwpxpg86czw19r4211wprqfclvr92"; - libraryHaskellDepends = [ - base base64-bytestring blaze-builder bytestring filepath process - random text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/mime-mail"; - description = "Compose MIME email messages"; - license = stdenv.lib.licenses.mit; - }) {}; - "mime-mail-ses" = callPackage - ({ mkDerivation, base, base64-bytestring, byteable, bytestring - , conduit, cryptohash, http-client, http-client-tls, http-conduit - , http-types, mime-mail, old-locale, stdenv, text, time - , transformers, xml-conduit, xml-types - }: - mkDerivation { - pname = "mime-mail-ses"; - version = "0.4.1"; - sha256 = "a76f29d1e52d8fbfc7ea8119f6ede5ed87f9e5b9d5587f1e6c69295f2a23d3f0"; - libraryHaskellDepends = [ - base base64-bytestring byteable bytestring conduit cryptohash - http-client http-client-tls http-conduit http-types mime-mail - old-locale text time transformers xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/mime-mail"; - description = "Send mime-mail messages via Amazon SES"; - license = stdenv.lib.licenses.mit; - }) {}; - "mime-types" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv, text }: - mkDerivation { - pname = "mime-types"; - version = "0.1.0.9"; - sha256 = "0a32435169ef4ba59f4a4b8addfd0c04479410854d1b8d69a1e38fb389ba71d2"; - libraryHaskellDepends = [ base bytestring containers text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/wai"; - description = "Basic mime-type handling types and functions"; - license = stdenv.lib.licenses.mit; - }) {}; - "minimorph" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "minimorph"; - version = "0.2.1.0"; - sha256 = "127eb21b889ca9411bee0612ac8aebac7992b9f790dc94b83e28312441d317de"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Mikolaj/minimorph"; - description = "English spelling functions with an emphasis on simplicity"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "minio-hs" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring - , case-insensitive, conduit, conduit-extra, containers, cryptonite - , cryptonite-conduit, directory, filepath, http-client - , http-conduit, http-types, ini, memory, protolude, resourcet - , stdenv, text, time, transformers, unliftio, unliftio-core - , xml-conduit - }: - mkDerivation { - pname = "minio-hs"; - version = "1.2.0"; - sha256 = "311494977fdab5f112807b13d485542c5b57147039063ad57c09bc1367541093"; - configureFlags = [ "-f-live-test" ]; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring case-insensitive conduit - conduit-extra containers cryptonite cryptonite-conduit directory - filepath http-client http-conduit http-types ini memory protolude - resourcet text time transformers unliftio unliftio-core xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minio/minio-hs#readme"; - description = "A Minio Haskell Library for Amazon S3 compatible cloud storage"; - license = stdenv.lib.licenses.asl20; - }) {}; - "miniutter" = callPackage - ({ mkDerivation, base, binary, containers, minimorph, stdenv, text - }: - mkDerivation { - pname = "miniutter"; - version = "0.5.0.0"; - sha256 = "ee30db437e6f7012b8862061c842dfaae7e52ea46832fd743e891ca04999fa41"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base binary containers minimorph text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Mikolaj/miniutter"; - description = "Simple English clause creation from arbitrary words"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mintty" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "mintty"; - version = "0.1.2"; - sha256 = "7c8af77bcde4e9b54692e3761f41adf35a50664974ba77f2ba65ea2af9f950da"; - configureFlags = [ "-fwin32-2-5-3" ]; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/mintty"; - description = "A reliable way to detect the presence of a MinTTY console on Windows"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "miso" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, http-api-data - , http-types, lucid, network-uri, servant, servant-lucid, stdenv - , text, transformers, vector - }: - mkDerivation { - pname = "miso"; - version = "0.21.2.0"; - sha256 = "d52d7950eba48f88e6fe7a08bb797e36c599aa24f790242182fa1acdfa962b18"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers http-api-data http-types lucid - network-uri servant servant-lucid text transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/dmjio/miso"; - description = "A tasty Haskell front-end framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "missing-foreign" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "missing-foreign"; - version = "0.1.1"; - sha256 = "9e1b36cdb8626d848386c1c4d54f3b9f80b3458398aa6a4d499266b5ecbcc885"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Convenience functions for FFI work"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mixed-types-num" = callPackage - ({ mkDerivation, base, convertible, hspec, hspec-smallcheck - , QuickCheck, smallcheck, stdenv, template-haskell - }: - mkDerivation { - pname = "mixed-types-num"; - version = "0.3.1.5"; - sha256 = "7cf0bf14c2ddc643cfaa0e2526b6c2c0c2b1200f29b6f30b5bd550e377d1c058"; - libraryHaskellDepends = [ - base convertible hspec hspec-smallcheck QuickCheck smallcheck - template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/michalkonecny/mixed-types-num"; - description = "Alternative Prelude with numeric and logic expressions typed bottom-up"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mixpanel-client" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring - , http-client, http-client-tls, servant, servant-client, stdenv - , string-conv, text, time - }: - mkDerivation { - pname = "mixpanel-client"; - version = "0.1.1"; - sha256 = "5525bb5bd0c446f275a211be0a1559884438091e58476bfe5256d7a1358227b7"; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring http-client http-client-tls - servant servant-client string-conv text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/domenkozar/mixpanel-client#readme"; - description = "Mixpanel client"; - license = stdenv.lib.licenses.asl20; - }) {}; - "mltool" = callPackage - ({ mkDerivation, ascii-progress, base, deepseq, hmatrix - , hmatrix-gsl, hmatrix-morpheus, MonadRandom, random, stdenv - , vector - }: - mkDerivation { - pname = "mltool"; - version = "0.2.0.1"; - sha256 = "716ec75fc8eb573c9c6ab327a9658685f5131eacff69fbbc72289cdd0133e0ff"; - libraryHaskellDepends = [ - ascii-progress base deepseq hmatrix hmatrix-gsl hmatrix-morpheus - MonadRandom random vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aligusnet/mltool"; - description = "Machine Learning Toolbox"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mmap" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "mmap"; - version = "0.5.9"; - sha256 = "58fcbb04e1cb8e7c36c05823b02dce2faaa989c53d745a7f36192de2fc98b5f8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "Memory mapped files for POSIX and Windows"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mmark" = callPackage - ({ mkDerivation, aeson, base, case-insensitive, containers, deepseq - , dlist, email-validate, foldl, hashable, html-entity-map, lucid - , megaparsec, microlens, microlens-th, modern-uri, mtl - , parser-combinators, stdenv, text, text-metrics - , unordered-containers, yaml - }: - mkDerivation { - pname = "mmark"; - version = "0.0.6.1"; - sha256 = "bc2b0cc2bc1dbad3d0760dc755f1ba74304d9de214b8bd134723998791fb3166"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base case-insensitive containers deepseq dlist email-validate - foldl hashable html-entity-map lucid megaparsec microlens - microlens-th modern-uri mtl parser-combinators text text-metrics - unordered-containers yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mmark-md/mmark"; - description = "Strict markdown processor for writers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mmark-cli" = callPackage - ({ mkDerivation, aeson, base, bytestring, directory - , ghc-syntax-highlighter, gitrev, lucid, megaparsec, mmark - , mmark-ext, optparse-applicative, stache, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "mmark-cli"; - version = "0.0.5.0"; - sha256 = "7ec1e69f4ce0ed638f8a979f0da2e3173d2c034ffd23b9b166a95317b0b81997"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - aeson base bytestring directory ghc-syntax-highlighter gitrev lucid - megaparsec mmark mmark-ext optparse-applicative stache text - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mmark-md/mmark-cli"; - description = "Command line interface to the MMark markdown processor"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mmark-ext" = callPackage - ({ mkDerivation, base, foldl, ghc-syntax-highlighter, lucid - , microlens, mmark, modern-uri, skylighting, stdenv, text - }: - mkDerivation { - pname = "mmark-ext"; - version = "0.2.1.1"; - sha256 = "98554e8b04c47e208cb0e3d5a61fb064eb25fbdaf9eb3ebf4faf9663533b5b05"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri - skylighting text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mmark-md/mmark-ext"; - description = "Commonly useful extensions for the MMark markdown processor"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mmorph" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "mmorph"; - version = "1.1.2"; - sha256 = "c90afd7996c94be2b9a5796a7b94918d198c53b0c1d7a3eaf2982293560c5fbe"; - libraryHaskellDepends = [ - base mtl transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - description = "Monad morphisms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mnist-idx" = callPackage - ({ mkDerivation, base, binary, bytestring, stdenv, vector }: - mkDerivation { - pname = "mnist-idx"; - version = "0.1.2.8"; - sha256 = "42ff167e84414821ed47d783042cad20a0bd198f935648aa6cdf97bdc291b2fe"; - libraryHaskellDepends = [ base binary bytestring vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kryoxide/mnist-idx/"; - description = "Read and write IDX data that is used in e.g. the MNIST database."; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "mockery" = callPackage - ({ mkDerivation, base, base-compat, bytestring, directory, filepath - , logging-facade, stdenv, temporary - }: - mkDerivation { - pname = "mockery"; - version = "0.3.5"; - sha256 = "b7a1edacd3d32dc7f0e28c67877209d3ca3551d1da186f6445f825f3477dd727"; - libraryHaskellDepends = [ - base base-compat bytestring directory filepath logging-facade - temporary - ]; - doHaddock = false; - doCheck = false; - description = "Support functions for automated testing"; - license = stdenv.lib.licenses.mit; - }) {}; - "modern-uri" = callPackage - ({ mkDerivation, base, bytestring, containers, contravariant - , deepseq, exceptions, megaparsec, mtl, profunctors, QuickCheck - , reflection, stdenv, tagged, template-haskell, text - }: - mkDerivation { - pname = "modern-uri"; - version = "0.3.0.1"; - sha256 = "e8e845837ddc327c027128faf36a76c69e8514a9f8b5a4666282ae89b6954505"; - revision = "1"; - editedCabalFile = "13q0lapxk1v3ci3bqv21942jf2fw87frbbam53apd3i2iv69bqyr"; - libraryHaskellDepends = [ - base bytestring containers contravariant deepseq exceptions - megaparsec mtl profunctors QuickCheck reflection tagged - template-haskell text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/modern-uri"; - description = "Modern library for working with URIs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "modular" = callPackage - ({ mkDerivation, base, ghc-typelits-knownnat, stdenv }: - mkDerivation { - pname = "modular"; - version = "0.1.0.8"; - sha256 = "430b462330bd795c554f1fe87073022216abb0cea3a872fddd6e864faa3aefc5"; - libraryHaskellDepends = [ base ghc-typelits-knownnat ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pgujjula/modular#readme"; - description = "Type-safe modular arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-control" = callPackage - ({ mkDerivation, base, stdenv, stm, transformers, transformers-base - , transformers-compat - }: - mkDerivation { - pname = "monad-control"; - version = "1.0.2.3"; - sha256 = "6c1034189d237ae45368c70f0e68f714dd3beda715dd265b6c8a99fcc64022b1"; - libraryHaskellDepends = [ - base stm transformers transformers-base transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/monad-control"; - description = "Lift control operations, like exception catching, through monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-control-aligned" = callPackage - ({ mkDerivation, base, stdenv, stm, transformers, transformers-base - , transformers-compat - }: - mkDerivation { - pname = "monad-control-aligned"; - version = "0.0.1.1"; - sha256 = "44e78fd32d6644e974ab0644dc79331643c8ada4837c8f3c94f4a30b5ee011f6"; - libraryHaskellDepends = [ - base stm transformers transformers-base transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/monad-control#readme"; - description = "Just like monad-control, except less efficient, and the monadic state terms are all * -> *"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-coroutine" = callPackage - ({ mkDerivation, base, monad-parallel, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "monad-coroutine"; - version = "0.9.0.4"; - sha256 = "13e0ff12046296390ea69dda5001aa02b1b57e968447d27712a24c8c7cfe5de7"; - libraryHaskellDepends = [ - base monad-parallel transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://trac.haskell.org/SCC/wiki/monad-coroutine"; - description = "Coroutine monad transformer for suspending and resuming monadic computations"; - license = "GPL"; - }) {}; - "monad-extras" = callPackage - ({ mkDerivation, base, mmorph, monad-control, stdenv, stm - , transformers, transformers-base - }: - mkDerivation { - pname = "monad-extras"; - version = "0.6.0"; - sha256 = "df33d7c51a97d16226b8160d9bc09686cb6f7b7bf5c54557381c6fe4a3c84f2c"; - libraryHaskellDepends = [ - base mmorph monad-control stm transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jwiegley/monad-extras"; - description = "Extra utility functions for working with monads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-journal" = callPackage - ({ mkDerivation, base, monad-control, mtl, stdenv, transformers - , transformers-base - }: - mkDerivation { - pname = "monad-journal"; - version = "0.8.1"; - sha256 = "e20ac220086081b5cf1964e9486e04113ec03b15f247512a2193898100a105ac"; - libraryHaskellDepends = [ - base monad-control mtl transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/phaazon/monad-journal"; - description = "Pure logger typeclass and monad transformer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-logger" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , exceptions, fast-logger, lifted-base, monad-control, monad-loops - , mtl, resourcet, stdenv, stm, stm-chans, template-haskell, text - , transformers, transformers-base, transformers-compat - , unliftio-core - }: - mkDerivation { - pname = "monad-logger"; - version = "0.3.30"; - sha256 = "e7ce990978b7395c615441775b64b487ad6cd6f2e4f9787dae732f58ce065480"; - libraryHaskellDepends = [ - base bytestring conduit conduit-extra exceptions fast-logger - lifted-base monad-control monad-loops mtl resourcet stm stm-chans - template-haskell text transformers transformers-base - transformers-compat unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/monad-logger#readme"; - description = "A class of monads which can log messages"; - license = stdenv.lib.licenses.mit; - }) {}; - "monad-logger-json" = callPackage - ({ mkDerivation, aeson, base, monad-logger, stdenv - , template-haskell, text - }: - mkDerivation { - pname = "monad-logger-json"; - version = "0.1.0.0"; - sha256 = "10871c4aef838c01c8fdd7586161367b4d66907a53cbd9737efb717a1041e9aa"; - libraryHaskellDepends = [ - aeson base monad-logger template-haskell text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/fpco/monad-logger-json"; - description = "JSON-friendly Logging APIs"; - license = stdenv.lib.licenses.mit; - }) {}; - "monad-logger-prefix" = callPackage - ({ mkDerivation, base, exceptions, monad-control, monad-logger, mtl - , resourcet, stdenv, text, transformers, transformers-base - }: - mkDerivation { - pname = "monad-logger-prefix"; - version = "0.1.10"; - sha256 = "a3ac2d043a13d9e9296692dc729a299361b04757690894cac1b6904510a0d975"; - libraryHaskellDepends = [ - base exceptions monad-control monad-logger mtl resourcet text - transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/parsonsmatt/monad-logger-prefix#readme"; - description = "Add prefixes to your monad-logger output"; - license = stdenv.lib.licenses.asl20; - }) {}; - "monad-logger-syslog" = callPackage - ({ mkDerivation, base, bytestring, fast-logger, hsyslog - , monad-logger, stdenv, text, transformers - }: - mkDerivation { - pname = "monad-logger-syslog"; - version = "0.1.4.0"; - sha256 = "052c3e13e235e7fb31caecc117e3ab4629e85bbfd3b35ec03f74d732acbc9ccb"; - libraryHaskellDepends = [ - base bytestring fast-logger hsyslog monad-logger text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/monad-logger-syslog"; - description = "syslog output for monad-logger"; - license = stdenv.lib.licenses.mit; - }) {}; - "monad-loops" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "monad-loops"; - version = "0.4.3"; - sha256 = "7eaaaf6bc43661e9e86e310ff8c56fbea16eb6bf13c31a2e28103138ac164c18"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/monad-loops"; - description = "Monadic loops"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "monad-memo" = callPackage - ({ mkDerivation, array, base, containers, primitive, stdenv - , transformers, vector - }: - mkDerivation { - pname = "monad-memo"; - version = "0.5.1"; - sha256 = "c65a4a3c3e05757c251557b392f2cc7edcc09c2c46cbb0e72f4efe291eb85bff"; - libraryHaskellDepends = [ - array base containers primitive transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/EduardSergeev/monad-memo"; - description = "Memoization monad transformer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-par" = callPackage - ({ mkDerivation, abstract-deque, abstract-par, array, base - , containers, deepseq, monad-par-extras, mtl, mwc-random, parallel - , stdenv - }: - mkDerivation { - pname = "monad-par"; - version = "0.3.4.8"; - sha256 = "f84cdf51908a1c41c3f672be9520a8fdc028ea39d90a25ecfe5a3b223cfeb951"; - libraryHaskellDepends = [ - abstract-deque abstract-par array base containers deepseq - monad-par-extras mtl mwc-random parallel - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/monad-par"; - description = "A library for parallel programming based on a monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-par-extras" = callPackage - ({ mkDerivation, abstract-par, base, cereal, deepseq, mtl, random - , stdenv, transformers - }: - mkDerivation { - pname = "monad-par-extras"; - version = "0.3.3"; - sha256 = "e21e33190bc248afa4ae467287ac37d24037ef3de6050c44fd85b52f4d5b842e"; - libraryHaskellDepends = [ - abstract-par base cereal deepseq mtl random transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmar/monad-par"; - description = "Combinators and extra features for Par monads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-parallel" = callPackage - ({ mkDerivation, base, parallel, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "monad-parallel"; - version = "0.7.2.3"; - sha256 = "128fb8c36be717f82aa3146d855303f48d04c56ba025078e6cd35d6050b45089"; - libraryHaskellDepends = [ - base parallel transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://trac.haskell.org/SCC/wiki/monad-parallel"; - description = "Parallel execution of monadic computations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-peel" = callPackage - ({ mkDerivation, base, extensible-exceptions, stdenv, transformers - }: - mkDerivation { - pname = "monad-peel"; - version = "0.2.1.2"; - sha256 = "2dd5e9090f3951dbc298e35c3cea7099818aba0485a55059475c4f346fc933f4"; - libraryHaskellDepends = [ - base extensible-exceptions transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://andersk.mit.edu/haskell/monad-peel/"; - description = "Lift control operations like exception catching through monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-products" = callPackage - ({ mkDerivation, base, semigroupoids, stdenv }: - mkDerivation { - pname = "monad-products"; - version = "4.0.1"; - sha256 = "02bfe1db2ae1a5cff19f73736a219605b1f0649f6af44ca848d09160a7946cea"; - libraryHaskellDepends = [ base semigroupoids ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/monad-products"; - description = "Monad products"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-skeleton" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "monad-skeleton"; - version = "0.1.5"; - sha256 = "a96840713ffdbb97d58e8dc7a47d2b725993868f005903fa9aa26bcf6f32559e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/monad-skeleton"; - description = "Monads of program skeleta"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-st" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "monad-st"; - version = "0.2.4.1"; - sha256 = "8e1818576bc486e884b953680fe41c524ff23eef2ec382b5f28f47fa7b8abf08"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/monad-st"; - description = "Provides a MonadST class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-time" = callPackage - ({ mkDerivation, base, mtl, stdenv, time }: - mkDerivation { - pname = "monad-time"; - version = "0.3.1.0"; - sha256 = "0af450bfc710a9653e008de3df4cff094423e434d54ac5b7419fe2552660607c"; - libraryHaskellDepends = [ base mtl time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/scrive/monad-time"; - description = "Type class for monads which carry the notion of the current time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monad-unlift" = callPackage - ({ mkDerivation, base, constraints, monad-control, stdenv - , transformers, transformers-base - }: - mkDerivation { - pname = "monad-unlift"; - version = "0.2.0"; - sha256 = "4b5e638619e4821918b4ec67aeffb581ab9df23d168fbb72164137009a15ee0f"; - libraryHaskellDepends = [ - base constraints monad-control transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/monad-unlift"; - description = "Typeclasses for representing monad transformer unlifting"; - license = stdenv.lib.licenses.mit; - }) {}; - "monad-unlift-ref" = callPackage - ({ mkDerivation, base, constraints, exceptions, monad-control - , monad-unlift, mtl, mutable-containers, resourcet, stdenv, stm - , transformers, transformers-base - }: - mkDerivation { - pname = "monad-unlift-ref"; - version = "0.2.1"; - sha256 = "0f059539297478ad8b7e861682207b37b91eaf7e36bd8fdcc3f865a3c6971d1d"; - libraryHaskellDepends = [ - base constraints exceptions monad-control monad-unlift mtl - mutable-containers resourcet stm transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/monad-unlift"; - description = "Typeclasses for representing monad transformer unlifting"; - license = stdenv.lib.licenses.mit; - }) {}; - "monadic-arrays" = callPackage - ({ mkDerivation, array, base, stdenv, stm, transformers - , transformers-compat - }: - mkDerivation { - pname = "monadic-arrays"; - version = "0.2.2"; - sha256 = "667714c6100272b48c4377cf2e2984b67a4445521a2a2e9c37539128c7e276a0"; - libraryHaskellDepends = [ - array base stm transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/monadic-arrays/"; - description = "Boxed and unboxed arrays for monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monads-tf" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "monads-tf"; - version = "0.1.0.3"; - sha256 = "249dd2aa55c4dd6530f1e49f6b052ec91bc590ecfef2bd24c58837a3f8d4b0f1"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - description = "Monad classes, using type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mongoDB" = callPackage - ({ mkDerivation, array, base, base16-bytestring, base64-bytestring - , binary, bson, bytestring, conduit, conduit-extra, containers - , cryptohash, data-default-class, hashtables, lifted-base - , monad-control, mtl, network, nonce, parsec, pureMD5, random - , random-shuffle, resourcet, stdenv, stm, tagged, text, time, tls - , transformers, transformers-base - }: - mkDerivation { - pname = "mongoDB"; - version = "2.4.0.0"; - sha256 = "fdb80241825c70d795a1e552b25afc916e58d7755ec31feaf7ab7afdd5aee719"; - libraryHaskellDepends = [ - array base base16-bytestring base64-bytestring binary bson - bytestring conduit conduit-extra containers cryptohash - data-default-class hashtables lifted-base monad-control mtl network - nonce parsec pureMD5 random random-shuffle resourcet stm tagged - text time tls transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mongodb-haskell/mongodb"; - description = "Driver (client) for MongoDB, a free, scalable, fast, document DBMS"; - license = stdenv.lib.licenses.asl20; - }) {}; - "mono-traversable" = callPackage - ({ mkDerivation, base, bytestring, containers, hashable, split - , stdenv, text, transformers, unordered-containers, vector - , vector-algorithms - }: - mkDerivation { - pname = "mono-traversable"; - version = "1.0.11.0"; - sha256 = "c1a0d727a06131174bf6da3733084c284ec70e4f6aa398981e8ba5d4289137d2"; - libraryHaskellDepends = [ - base bytestring containers hashable split text transformers - unordered-containers vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "Type classes for mapping, folding, and traversing monomorphic containers"; - license = stdenv.lib.licenses.mit; - }) {}; - "mono-traversable-instances" = callPackage - ({ mkDerivation, base, comonad, containers, dlist, dlist-instances - , mono-traversable, semigroupoids, semigroups, stdenv, transformers - , vector-instances - }: - mkDerivation { - pname = "mono-traversable-instances"; - version = "0.1.0.0"; - sha256 = "b5ff2b8bcebe31ffcc652a8dd3adde6aa7cd7f27a1cf6d058d4c658b370c087e"; - libraryHaskellDepends = [ - base comonad containers dlist dlist-instances mono-traversable - semigroupoids semigroups transformers vector-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "Extra typeclass instances for mono-traversable"; - license = stdenv.lib.licenses.mit; - }) {}; - "monoid-extras" = callPackage - ({ mkDerivation, base, groups, semigroupoids, semigroups, stdenv }: - mkDerivation { - pname = "monoid-extras"; - version = "0.5"; - sha256 = "c6571ab25a24e4300d507beeb8e534c20b3e530c6bd19c82694f1d6d5d0d4d9c"; - revision = "2"; - editedCabalFile = "1q73ghd12fd451zm4m045h8v3y61jmfhj6k890gnv6z7lyb7xwg2"; - libraryHaskellDepends = [ base groups semigroupoids semigroups ]; - doHaddock = false; - doCheck = false; - description = "Various extra monoid-related definitions and utilities"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monoid-subclasses" = callPackage - ({ mkDerivation, base, bytestring, containers, primes, stdenv, text - , vector - }: - mkDerivation { - pname = "monoid-subclasses"; - version = "0.4.6.1"; - sha256 = "d097876d8778fc550a071fc5fb564e8969903e8022c5f2dc25697bd8269daea6"; - libraryHaskellDepends = [ - base bytestring containers primes text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/blamario/monoid-subclasses/"; - description = "Subclasses of Monoid"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monoid-transformer" = callPackage - ({ mkDerivation, base, semigroups, stdenv }: - mkDerivation { - pname = "monoid-transformer"; - version = "0.0.4"; - sha256 = "43abf147e4d1b57c5d306d9533e42fb52828d64e761e0e3d8797fb52cfc98388"; - libraryHaskellDepends = [ base semigroups ]; - doHaddock = false; - doCheck = false; - description = "Monoid counterparts to some ubiquitous monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "monoidal-containers" = callPackage - ({ mkDerivation, aeson, base, containers, deepseq, hashable, lens - , newtype, semigroups, stdenv, unordered-containers - }: - mkDerivation { - pname = "monoidal-containers"; - version = "0.4.0.0"; - sha256 = "a132b8adc82cd132ffdf1079b137176a2ccb9c80603cb17ec92f0c753a14b096"; - libraryHaskellDepends = [ - aeson base containers deepseq hashable lens newtype semigroups - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bgamari/monoidal-containers"; - description = "Containers with monoidal accumulation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mountpoints" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "mountpoints"; - version = "1.0.2"; - sha256 = "67fcdf64fdb8111f58939c64b168a9dfa519d7068e0f439887d739866f18d5c2"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "list mount points"; - license = "LGPL"; - }) {}; - "mtl" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "mtl"; - version = "2.2.2"; - sha256 = "8803f48a8ed33296c3a3272f448198737a287ec31baa901af09e2118c829bef6"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell/mtl"; - description = "Monad classes, using functional dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mtl-compat" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "mtl-compat"; - version = "0.2.1.3"; - sha256 = "6458ca53593a31ebce1d94ef8dd4f6a06d050dd7ed32335f6cc6b6e5d3456894"; - revision = "4"; - editedCabalFile = "1mfrx8cpx0502sjv0bmlfkl0h46c4krldg8m89k4fj6iawwg2ab5"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-compat/mtl-compat"; - description = "Backported Control.Monad.Except module from mtl"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mtl-prelude" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers }: - mkDerivation { - pname = "mtl-prelude"; - version = "2.0.3.1"; - sha256 = "c4a6dda093d63bd2161f55030c5825903dfa9b7d5e766c487fd848cb2aa01233"; - libraryHaskellDepends = [ base mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/mtl-prelude"; - description = "Reexports of most definitions from \"mtl\" and \"transformers\""; - license = stdenv.lib.licenses.mit; - }) {}; - "multiarg" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "multiarg"; - version = "0.30.0.10"; - sha256 = "c9fa623a8e06d62addc2b7ad5102ceac3a6f0db6a67afbc8e693d0d0aec417a1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/massysett/multiarg"; - description = "Command lines for options that take multiple arguments"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "multimap" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "multimap"; - version = "1.2.1"; - sha256 = "6332c529475177b9e08d762d5701804dc2edc0ff26dd98a2a1dcd7ed092e7434"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/scravy/multimap"; - description = "A multimap"; - license = stdenv.lib.licenses.mit; - }) {}; - "multipart" = callPackage - ({ mkDerivation, base, bytestring, parsec, stdenv, stringsearch }: - mkDerivation { - pname = "multipart"; - version = "0.1.3"; - sha256 = "9f60512e7b04c78442bd7c9de621597f6f2c4288b3bc1bb2834d08b5bd2796f4"; - libraryHaskellDepends = [ base bytestring parsec stringsearch ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/silkapp/multipart"; - description = "HTTP multipart split out of the cgi package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "multiset" = callPackage - ({ mkDerivation, base, containers, deepseq, stdenv }: - mkDerivation { - pname = "multiset"; - version = "0.3.4.1"; - sha256 = "b0ff7deec3dcb65145dd2368dadcf8bb2c087345d106440f8ddcbd4acab63e16"; - revision = "1"; - editedCabalFile = "1ddnvzpa9h21p013dwzf0iv2fvvf8mba6vaccf4anamvwa327kcl"; - libraryHaskellDepends = [ base containers deepseq ]; - doHaddock = false; - doCheck = false; - description = "The Data.MultiSet container type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "murmur-hash" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "murmur-hash"; - version = "0.1.0.9"; - sha256 = "89b9db94ead4cc0784dbcfb47c51b5664c1718860db00cd8ada3ef6fdd4465ad"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/nominolo/murmur-hash"; - description = "MurmurHash2 implementation for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "murmur3" = callPackage - ({ mkDerivation, base, bytestring, cereal, stdenv }: - mkDerivation { - pname = "murmur3"; - version = "1.0.3"; - sha256 = "102c81e0e6ae604f51bccced6d2d493f4de0b65e856cd0492a17f9f8e4d51f2a"; - libraryHaskellDepends = [ base bytestring cereal ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/plaprade/murmur3"; - description = "Pure Haskell implementation of the MurmurHash3 x86_32 algorithm"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "mustache" = callPackage - ({ mkDerivation, aeson, base, bytestring, cmdargs, containers - , directory, either, filepath, mtl, parsec, scientific, stdenv - , template-haskell, text, th-lift, unordered-containers, vector - , yaml - }: - mkDerivation { - pname = "mustache"; - version = "2.3.0"; - sha256 = "018863e578e971e393edc65dd7e0ed92a0e37fc152a47bb379fd8abd59537be0"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers directory either filepath mtl - parsec scientific template-haskell text th-lift - unordered-containers vector - ]; - executableHaskellDepends = [ - aeson base bytestring cmdargs filepath text yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/JustusAdam/mustache"; - description = "A mustache template parser library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mutable-containers" = callPackage - ({ mkDerivation, base, containers, ghc-prim, mono-traversable - , primitive, stdenv, vector - }: - mkDerivation { - pname = "mutable-containers"; - version = "0.3.4"; - sha256 = "641966e0adee48badb8bf07037af6c879480e4e97f673d9e2b84fbf43685137e"; - libraryHaskellDepends = [ - base containers ghc-prim mono-traversable primitive vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/mono-traversable#readme"; - description = "Abstactions and concrete implementations of mutable containers"; - license = stdenv.lib.licenses.mit; - }) {}; - "mwc-probability" = callPackage - ({ mkDerivation, base, mwc-random, primitive, stdenv, transformers - }: - mkDerivation { - pname = "mwc-probability"; - version = "2.0.4"; - sha256 = "9fe9ed0e264bf85420a3086a1af9d6e749ff33c9c59428891dfaaa72b1385157"; - revision = "1"; - editedCabalFile = "1b4wbxkxx0szjgzgn5jc1qap80zx6ispxrd51yxs4z7llv15w5k6"; - libraryHaskellDepends = [ base mwc-random primitive transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jtobin/mwc-probability"; - description = "Sampling function-based probability distributions"; - license = stdenv.lib.licenses.mit; - }) {}; - "mwc-probability-transition" = callPackage - ({ mkDerivation, base, exceptions, ghc-prim, hspec, logging-effect - , mtl, mwc-probability, primitive, QuickCheck, stdenv, transformers - }: - mkDerivation { - pname = "mwc-probability-transition"; - version = "0.4"; - sha256 = "3e44b6f3f3b2a739776484e7d4ab98ab1d5c7e50bcba53a40d2f0ac96003e768"; - libraryHaskellDepends = [ - base exceptions ghc-prim hspec logging-effect mtl mwc-probability - primitive QuickCheck transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocramz/mwc-probability-transition"; - description = "A Markov stochastic transition operator with logging"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mwc-random" = callPackage - ({ mkDerivation, base, math-functions, primitive, stdenv, time - , vector - }: - mkDerivation { - pname = "mwc-random"; - version = "0.14.0.0"; - sha256 = "00370edaa60a51c86663868ecc2b1995824970001875cec458e9acc13511efa2"; - libraryHaskellDepends = [ - base math-functions primitive time vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/mwc-random"; - description = "Fast, high quality pseudo random number generation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mysql" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, mysql, stdenv - }: - mkDerivation { - pname = "mysql"; - version = "0.1.7"; - sha256 = "ef2d7bc6791171f0c5efa8a6b40c2be386867e8b0c72580343a6646d514972d9"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base bytestring containers ]; - librarySystemDepends = [ mysql ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/paul-rouse/mysql"; - description = "A low-level MySQL client library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) mysql;}; - "mysql-haskell" = callPackage - ({ mkDerivation, base, binary, binary-ieee754, binary-parsers - , blaze-textual, bytestring, bytestring-lexing, cryptonite - , io-streams, memory, monad-loops, network, scientific, stdenv - , tcp-streams, text, time, tls, vector, wire-streams, word24 - }: - mkDerivation { - pname = "mysql-haskell"; - version = "0.8.4.2"; - sha256 = "5f51eb5a77934cd9046d85bce7477288752e3de0d4119111493d5bc967e2e9d1"; - libraryHaskellDepends = [ - base binary binary-ieee754 binary-parsers blaze-textual bytestring - bytestring-lexing cryptonite io-streams memory monad-loops network - scientific tcp-streams text time tls vector wire-streams word24 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/mysql-haskell"; - description = "pure haskell MySQL driver"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mysql-haskell-nem" = callPackage - ({ mkDerivation, base, bytestring, io-streams, mysql-haskell - , scientific, stdenv, text, time - }: - mkDerivation { - pname = "mysql-haskell-nem"; - version = "0.1.0.0"; - sha256 = "7a0868b76edc96a7aff7860f96436b9040f6cb9319dd67f68bfd700948721f0d"; - libraryHaskellDepends = [ - base bytestring io-streams mysql-haskell scientific text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lorenzo/mysql-haskell-nem#readme"; - description = "Adds a interface like mysql-simple to mysql-haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "mysql-simple" = callPackage - ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder - , blaze-textual, bytestring, containers, mysql, old-locale - , pcre-light, stdenv, text, time - }: - mkDerivation { - pname = "mysql-simple"; - version = "0.4.5"; - sha256 = "b03c422ed8a62fa7f98b62634a06da8454980c6a733e275020ca7cedbb6e7cb1"; - libraryHaskellDepends = [ - attoparsec base base16-bytestring blaze-builder blaze-textual - bytestring containers mysql old-locale pcre-light text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/paul-rouse/mysql-simple"; - description = "A mid-level MySQL client library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "n2o" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, stdenv, text - }: - mkDerivation { - pname = "n2o"; - version = "0.11.1"; - sha256 = "674d30b2971f7aaf9fee85b82767895fdcb012ab1df90b8ab7ed49b1858e6f7b"; - libraryHaskellDepends = [ base binary bytestring containers text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xafizoff/n2o#readme"; - description = "Abstract Protocol Loop"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nagios-check" = callPackage - ({ mkDerivation, base, bifunctors, exceptions, mtl, stdenv, text }: - mkDerivation { - pname = "nagios-check"; - version = "0.3.2"; - sha256 = "1bc9b85cb10c396943d53c44e2701c5bc2a02ecdf3e8f46da238981f8b7860b7"; - libraryHaskellDepends = [ base bifunctors exceptions mtl text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/olorin/haskell-nagios-check"; - description = "Package for writing monitoring plugins"; - license = stdenv.lib.licenses.mit; - }) {}; - "named" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "named"; - version = "0.2.0.0"; - sha256 = "c01a5bb4cf36082da40a90880fbf8fbe72f7ab57027e788be42901777ddf8d9e"; - revision = "2"; - editedCabalFile = "0h9d74h6g685g1g0ylqf7kws1ancdy3q6fi39vinf5alkqa7kxwd"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Named parameters (keyword arguments) for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "names-th" = callPackage - ({ mkDerivation, base, containers, stdenv, template-haskell }: - mkDerivation { - pname = "names-th"; - version = "0.3.0.0"; - sha256 = "0be38f6a22afb69ddda5a3cae095b51835bdae853256403e97078679a9fba526"; - libraryHaskellDepends = [ base containers template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "Manipulate name strings for TH"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nano-erl" = callPackage - ({ mkDerivation, base, stdenv, stm }: - mkDerivation { - pname = "nano-erl"; - version = "0.1.0.1"; - sha256 = "370a60682b38ca77b793ee7326c54d5e74dd688f316f31fdd5cf999ad498ee12"; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - description = "Small library for Erlang-style actor semantics"; - license = stdenv.lib.licenses.mit; - }) {}; - "nanospec" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "nanospec"; - version = "0.2.2"; - sha256 = "cf14ccc2b296c910000cdc3eb51b37389b3eb94139384b9555db79b8128595e5"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/nanospec#readme"; - description = "A lightweight implementation of a subset of Hspec's API"; - license = stdenv.lib.licenses.mit; - }) {}; - "nats" = callPackage - ({ mkDerivation, stdenv }: - mkDerivation { - pname = "nats"; - version = "1.1.2"; - sha256 = "b9d2d85d8612f9b06f8c9bfd1acecd848e03ab82cfb53afe1d93f5086b6e80ec"; - revision = "2"; - editedCabalFile = "1654j2zngjzp71hra6s980hd9xgx0xlk6rvqm504n7h9vmyycrjx"; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/nats/"; - description = "Natural numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "natural-induction" = callPackage - ({ mkDerivation, base, peano, stdenv }: - mkDerivation { - pname = "natural-induction"; - version = "0.2.0.0"; - sha256 = "99aa944a9bf54f549a867b73de56e56adf95d67408822054ee1abfcbe7ae33af"; - libraryHaskellDepends = [ base peano ]; - doHaddock = false; - doCheck = false; - description = "Induction over natural numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "natural-sort" = callPackage - ({ mkDerivation, base, bytestring, parsec, stdenv, text }: - mkDerivation { - pname = "natural-sort"; - version = "0.1.2"; - sha256 = "7b72b734680827ab07df38a004d4f523540055389d62fcd587edd2fcf19a6b50"; - libraryHaskellDepends = [ base bytestring parsec text ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/natural-sort/"; - description = "User-friendly text collation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "natural-transformation" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "natural-transformation"; - version = "0.4"; - sha256 = "aac28e2c1147ed77c1ec0f0eb607a577fa26d0fd67474293ba860ec124efc8af"; - revision = "7"; - editedCabalFile = "03nkhdrwki9j81clgfck4yl7ylv6dwa7gi77kknzq3s3nqlp728v"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ku-fpg/natural-transformation"; - description = "A natural transformation package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ndjson-conduit" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit - , stdenv - }: - mkDerivation { - pname = "ndjson-conduit"; - version = "0.1.0.5"; - sha256 = "c037b8f7c47b146f1384585541ae8a4f9218bc4456f428935f973ae07da49db1"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/srijs/haskell-ndjson-conduit"; - description = "Conduit-based parsing and serialization for newline delimited JSON"; - license = stdenv.lib.licenses.mit; - }) {}; - "neat-interpolation" = callPackage - ({ mkDerivation, base, base-prelude, megaparsec, stdenv - , template-haskell, text - }: - mkDerivation { - pname = "neat-interpolation"; - version = "0.3.2.4"; - sha256 = "de7370d938ffd8c7b52d732f4f088387ed8216cf9767d818e99b7ec827931752"; - libraryHaskellDepends = [ - base base-prelude megaparsec template-haskell text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/neat-interpolation"; - description = "A quasiquoter for neat and simple multiline text interpolation"; - license = stdenv.lib.licenses.mit; - }) {}; - "netlib-ffi" = callPackage - ({ mkDerivation, base, guarded-allocation, stdenv, storable-complex - , transformers - }: - mkDerivation { - pname = "netlib-ffi"; - version = "0.1.1"; - sha256 = "211016f9dc28f0519b1151ce5b1f74e8371a32f53fdb34c69277f099d82b2e47"; - libraryHaskellDepends = [ - base guarded-allocation storable-complex transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/netlib-ffi/"; - description = "Helper modules for FFI to BLAS and LAPACK"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "netpbm" = callPackage - ({ mkDerivation, attoparsec, attoparsec-binary, base, bytestring - , stdenv, storable-record, unordered-containers, vector - , vector-th-unbox - }: - mkDerivation { - pname = "netpbm"; - version = "1.0.2"; - sha256 = "846a04bca94be31c779888febc390c64cfba93e40f3a7a2f80ff6a6e44fcc2d7"; - revision = "1"; - editedCabalFile = "1vhwjv5c5gxn9l9982da54nzczbmj8rl09xn8ac7rix0zmmyvl50"; - libraryHaskellDepends = [ - attoparsec attoparsec-binary base bytestring storable-record - unordered-containers vector vector-th-unbox - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/haskell-netpbm"; - description = "Loading PBM, PGM, PPM image files"; - license = stdenv.lib.licenses.mit; - }) {}; - "nettle" = callPackage - ({ mkDerivation, base, byteable, bytestring, crypto-cipher-types - , nettle, securemem, stdenv, tagged - }: - mkDerivation { - pname = "nettle"; - version = "0.3.0"; - sha256 = "cf3f08980e8e52190301d33db3b1fe7f02bcf5d276a74a8b8283b79e72bf7d5d"; - revision = "1"; - editedCabalFile = "1j8h6m4cj1ykxrsxmjiyb1c4mv6cawssgb8phl0aijrjn3b79f2b"; - libraryHaskellDepends = [ - base byteable bytestring crypto-cipher-types securemem tagged - ]; - libraryPkgconfigDepends = [ nettle ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stbuehler/haskell-nettle"; - description = "safe nettle binding"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) nettle;}; - "netwire" = callPackage - ({ mkDerivation, base, containers, deepseq, parallel, profunctors - , random, semigroups, stdenv, time, transformers - }: - mkDerivation { - pname = "netwire"; - version = "5.0.3"; - sha256 = "f1dde7293efe9cdb3080f53a1be702f473ef0bcc0d3e4ea2d23b847fa3ef222e"; - libraryHaskellDepends = [ - base containers deepseq parallel profunctors random semigroups time - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/esoeylemez/netwire"; - description = "Functional reactive programming library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "netwire-input" = callPackage - ({ mkDerivation, base, deepseq, netwire, stdenv }: - mkDerivation { - pname = "netwire-input"; - version = "0.0.7"; - sha256 = "29c6b087c2092ca409442b28aca500642b870461ad820d8bc579097f19ed3db9"; - libraryHaskellDepends = [ base deepseq netwire ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.github.com/Mokosha/netwire-input"; - description = "Input handling abstractions for netwire"; - license = stdenv.lib.licenses.mit; - }) {}; - "netwire-input-glfw" = callPackage - ({ mkDerivation, base, containers, deepseq, GLFW-b, mtl - , netwire-input, stdenv, stm - }: - mkDerivation { - pname = "netwire-input-glfw"; - version = "0.0.10"; - sha256 = "1ea458273055fa2f82451b889b9a2c54e0b5bbdf55a16c35d0ccd392793728e4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers deepseq GLFW-b mtl netwire-input stm - ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.github.com/Mokosha/netwire-input-glfw"; - description = "GLFW instance of netwire-input"; - license = stdenv.lib.licenses.mit; - }) {}; - "network" = callPackage - ({ mkDerivation, base, bytestring, stdenv, unix }: - mkDerivation { - pname = "network"; - version = "2.8.0.0"; - sha256 = "c8905268b7e3b4cf624a40245bf11b35274a6dd836a5d4d531b5760075645303"; - libraryHaskellDepends = [ base bytestring unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/network"; - description = "Low-level networking interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-anonymous-i2p" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, exceptions, mtl - , network, network-attoparsec, network-simple, stdenv, text - , transformers, uuid - }: - mkDerivation { - pname = "network-anonymous-i2p"; - version = "0.10.0"; - sha256 = "cff5796c36c1ebbb969e5433538eb3f3979acef9825a7bfb683ed002023fff2c"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base bytestring exceptions mtl network - network-attoparsec network-simple text transformers uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/solatis/haskell-network-anonymous-i2p"; - description = "Haskell API for I2P anonymous networking"; - license = stdenv.lib.licenses.mit; - }) {}; - "network-anonymous-tor" = callPackage - ({ mkDerivation, attoparsec, base, base32string, bytestring - , exceptions, hexstring, network, network-attoparsec - , network-simple, socks, splice, stdenv, text, transformers - }: - mkDerivation { - pname = "network-anonymous-tor"; - version = "0.11.0"; - sha256 = "41aee5b34aaaec6fa47a56cca61fafec22097bda25d13d5baef6b7924e127549"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base base32string bytestring exceptions hexstring - network network-attoparsec network-simple socks text transformers - ]; - executableHaskellDepends = [ - base exceptions network network-simple splice - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.leonmergen.com/opensource.html"; - description = "Haskell API for Tor anonymous networking"; - license = stdenv.lib.licenses.mit; - }) {}; - "network-attoparsec" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, enclosed-exceptions - , exceptions, lifted-base, monad-control, mtl, network, stdenv - , transformers - }: - mkDerivation { - pname = "network-attoparsec"; - version = "0.12.2"; - sha256 = "9790a9bad286ab1474dadbece3e4b2e1dd068d4ede3847cb73bcd66386bf08f0"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base bytestring enclosed-exceptions exceptions - lifted-base monad-control mtl network transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/solatis/haskell-network-attoparsec"; - description = "Utility functions for running a parser against a socket"; - license = stdenv.lib.licenses.mit; - }) {}; - "network-byte-order" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "network-byte-order"; - version = "0.0.0.0"; - sha256 = "3bb6f1110d9ac16a18f0c2d5921af584044e667e46fcfbdebd7a1e74e329de71"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "Network byte order utilities"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-conduit-tls" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , connection, data-default-class, network, stdenv - , streaming-commons, tls, transformers, unliftio-core - }: - mkDerivation { - pname = "network-conduit-tls"; - version = "1.3.2"; - sha256 = "ecfd60e162de3993a71906293dcf2ec8bd4c794471eb8dca13746c1d8fd3ad7f"; - libraryHaskellDepends = [ - base bytestring conduit conduit-extra connection data-default-class - network streaming-commons tls transformers unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/conduit"; - description = "Create TLS-aware network code with conduits"; - license = stdenv.lib.licenses.mit; - }) {}; - "network-house" = callPackage - ({ mkDerivation, array, base, containers, mtl, stdenv }: - mkDerivation { - pname = "network-house"; - version = "0.1.0.2"; - sha256 = "071fbc22fc516175e78235d9e29ccefd8eec7c3caa2e6de74dddf62cdbffab43"; - libraryHaskellDepends = [ array base containers mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/network-house"; - description = "data and parsers for Ethernet, TCP, UDP, IPv4, IPv6, ICMP, DHCP, TFTP"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "network-info" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "network-info"; - version = "0.2.0.10"; - sha256 = "5680f6975d34cf4f81fa7ca0c8efd682261d6a1119e06dece0f67c7bd97fd52a"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jystic/network-info"; - description = "Access the local computer's basic network configuration"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-ip" = callPackage - ({ mkDerivation, base, data-default-class, data-dword, data-endian - , data-serializer, data-textual, hashable, parsers, stdenv - , text-printer, type-hint - }: - mkDerivation { - pname = "network-ip"; - version = "0.3.0.2"; - sha256 = "ee259d236312aafc4bd08dfeff2ebe4b4f930b2f5879764e1a6d5675c5105efe"; - libraryHaskellDepends = [ - base data-default-class data-dword data-endian data-serializer - data-textual hashable parsers text-printer type-hint - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/network-ip"; - description = "Internet Protocol data structures"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-messagepack-rpc" = callPackage - ({ mkDerivation, base, bytestring, data-msgpack, safe-exceptions - , stdenv, text, unordered-containers - }: - mkDerivation { - pname = "network-messagepack-rpc"; - version = "0.1.1.0"; - sha256 = "10640121caf2f8b9e8e02d90baf6e1ac4f83b82d502c389269bea842416e038f"; - libraryHaskellDepends = [ - base bytestring data-msgpack safe-exceptions text - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iij-ii/direct-hs/tree/master/network-messagepack-rpc"; - description = "MessagePack RPC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-multicast" = callPackage - ({ mkDerivation, base, network, stdenv }: - mkDerivation { - pname = "network-multicast"; - version = "0.2.0"; - sha256 = "0f3b50abc3a401c20cc6a0ec51a49d2a48e5b467d9fbd63b7cf803165fe975f2"; - revision = "2"; - editedCabalFile = "1hha4vvyrx29d2lwwjl0bfpbaj00k85bd4w83s4hvawqbxqvvhkw"; - libraryHaskellDepends = [ base network ]; - doHaddock = false; - doCheck = false; - description = "Simple multicast library"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "network-simple" = callPackage - ({ mkDerivation, base, bytestring, network, safe-exceptions, socks - , stdenv, transformers - }: - mkDerivation { - pname = "network-simple"; - version = "0.4.3"; - sha256 = "0dd5cf1ed308bbe9601dc39026419151f552f386ec5e82417ad4f86cc4539028"; - revision = "2"; - editedCabalFile = "073g0agplvgan62s638w5hcq25biq8f811xhha6drfyxybs6cspn"; - libraryHaskellDepends = [ - base bytestring network safe-exceptions socks transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/network-simple"; - description = "Simple network sockets usage patterns"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-simple-tls" = callPackage - ({ mkDerivation, base, bytestring, data-default, network - , network-simple, safe-exceptions, stdenv, tls, transformers, x509 - , x509-store, x509-system, x509-validation - }: - mkDerivation { - pname = "network-simple-tls"; - version = "0.3.1"; - sha256 = "d25f5b0ecf1d11755e01c23b60714910f6091d14d8fac33307613cc4a4887c8a"; - libraryHaskellDepends = [ - base bytestring data-default network network-simple safe-exceptions - tls transformers x509 x509-store x509-system x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/network-simple-tls"; - description = "Simple interface to TLS secured network sockets"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-transport" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, hashable - , stdenv, transformers - }: - mkDerivation { - pname = "network-transport"; - version = "0.5.2"; - sha256 = "e795672b43d67ac7bfade72173548ae6bf8208c1890e22aba7809098558f9054"; - libraryHaskellDepends = [ - base binary bytestring deepseq hashable transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-distributed.github.com"; - description = "Network abstraction layer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-transport-composed" = callPackage - ({ mkDerivation, base, bytestring, network-transport, stdenv }: - mkDerivation { - pname = "network-transport-composed"; - version = "0.2.1"; - sha256 = "a35bbfbe35a7a6c6e20e9d839f9f5b30f82f3680863968f73ce82e0e03e55944"; - libraryHaskellDepends = [ base bytestring network-transport ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-distributed.github.com"; - description = "Compose network transports"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "network-uri" = callPackage - ({ mkDerivation, base, deepseq, parsec, stdenv }: - mkDerivation { - pname = "network-uri"; - version = "2.6.1.0"; - sha256 = "423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0"; - revision = "1"; - editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32"; - libraryHaskellDepends = [ base deepseq parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/network-uri"; - description = "URI manipulation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "newtype" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "newtype"; - version = "0.2"; - sha256 = "b714033abd9a8b0903bcef0d36d0913de2a5003c852f43f97fa688717289e459"; - revision = "1"; - editedCabalFile = "0rbhpa1krcmvv4hsy3h5h8l4vqjk9wckddcz34rfcq0m7zlmsrfz"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A typeclass and set of functions for working with newtypes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "newtype-generics" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "newtype-generics"; - version = "0.5.3"; - sha256 = "f295f001a86bdbcf759d6b91b9e7ae27cd431ccf41d9b9d34ee1c926b88efe45"; - revision = "1"; - editedCabalFile = "1glnwq1lw7780qgahqvh1qfx6k2ciwmbhc2wcc78v3aa3s954c8v"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/sjakobi/newtype-generics"; - description = "A typeclass and set of functions for working with newtypes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nicify-lib" = callPackage - ({ mkDerivation, base, parsec, stdenv, transformers }: - mkDerivation { - pname = "nicify-lib"; - version = "1.0.1"; - sha256 = "7d26f86d792dda166805e9dda17cfbc7a2101f3654fe798f4231385d8136e732"; - libraryHaskellDepends = [ base parsec transformers ]; - doHaddock = false; - doCheck = false; - description = "Pretty print the standard output of default `Show` instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "nix-paths" = callPackage - ({ mkDerivation, base, process, stdenv }: - mkDerivation { - pname = "nix-paths"; - version = "1.0.1"; - sha256 = "ab37163bc2970ea16c2eb6e091d1e99ab50b8e2ba93c23d24dac761803e509f8"; - configureFlags = [ "-fallow-relative-paths" ]; - libraryHaskellDepends = [ base process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/nix-paths"; - description = "Knowledge of Nix's installation directories"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "non-empty" = callPackage - ({ mkDerivation, base, containers, deepseq, QuickCheck, stdenv - , utility-ht - }: - mkDerivation { - pname = "non-empty"; - version = "0.3.1"; - sha256 = "70010fbf85651e9aa033015d9fafabb9edf2bb4eac2ad2ffd5a1ff8b90db2804"; - libraryHaskellDepends = [ - base containers deepseq QuickCheck utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/non-empty/"; - description = "List-like structures with static restrictions on the number of elements"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "non-empty-sequence" = callPackage - ({ mkDerivation, base, containers, semigroups, stdenv }: - mkDerivation { - pname = "non-empty-sequence"; - version = "0.2.0.2"; - sha256 = "d9a3604c0c140197731895af56413edbf1cf6866f9c0636ece9d8314366dd1e1"; - libraryHaskellDepends = [ base containers semigroups ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/massysett/non-empty-sequence"; - description = "Non-empty sequence"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "non-negative" = callPackage - ({ mkDerivation, base, QuickCheck, semigroups, stdenv, utility-ht - }: - mkDerivation { - pname = "non-negative"; - version = "0.1.2"; - sha256 = "5614acf55f3c16a21fea263e375e8993f9b859e21997b0410c74fe6642c20138"; - libraryHaskellDepends = [ base QuickCheck semigroups utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/non-negative/"; - description = "Non-negative numbers"; - license = "GPL"; - }) {}; - "nonce" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, entropy - , stdenv, text, transformers, unliftio, unliftio-core - }: - mkDerivation { - pname = "nonce"; - version = "1.0.7"; - sha256 = "4b4f6232b2cb07a6de47a838b4dc35c346a745683866dbfc6ebb8682158037e1"; - libraryHaskellDepends = [ - base base64-bytestring bytestring entropy text transformers - unliftio unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/prowdsponsor/nonce"; - description = "Generate cryptographic nonces"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nondeterminism" = callPackage - ({ mkDerivation, base, containers, mtl, stdenv }: - mkDerivation { - pname = "nondeterminism"; - version = "1.4"; - sha256 = "3037c93b0277037ab51ad8640f72a7975dcf48ba81570640be12d390d7b47dc5"; - libraryHaskellDepends = [ base containers mtl ]; - doHaddock = false; - doCheck = false; - description = "A monad and monad transformer for nondeterministic computations"; - license = "LGPL"; - }) {}; - "nonempty-containers" = callPackage - ({ mkDerivation, base, comonad, containers, deepseq, semigroupoids - , stdenv, these - }: - mkDerivation { - pname = "nonempty-containers"; - version = "0.1.1.0"; - sha256 = "33981526acb8b0d3b8aa2e787e50e6e56497ee4c2ef6691093d41d5bbe5517ee"; - libraryHaskellDepends = [ - base comonad containers deepseq semigroupoids these - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/nonempty-containers#readme"; - description = "Non-empty variants of containers data types, with full API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nonemptymap" = callPackage - ({ mkDerivation, base, containers, semigroupoids, stdenv }: - mkDerivation { - pname = "nonemptymap"; - version = "0.0.6.0"; - sha256 = "24bd4c4c3569ca103352493fc61739574eda0587532f8c85d959795d6728fadf"; - libraryHaskellDepends = [ base containers semigroupoids ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChristopherDavenport/nonemptymap#readme"; - description = "A NonEmptyMap Implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nowdoc" = callPackage - ({ mkDerivation, base, bytestring, stdenv, template-haskell }: - mkDerivation { - pname = "nowdoc"; - version = "0.1.1.0"; - sha256 = "4ffe490b2c161a53f0d636d54269df357d41c7b212c70dcb1c7e2cffd33f5268"; - revision = "1"; - editedCabalFile = "074xgrxs8ynq29bsx66an03q0457f80ga9jf4sqi0q34jgfpmbcv"; - libraryHaskellDepends = [ base bytestring template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/YoshikuniJujo/nowdoc#readme"; - description = "Here document without variable expansion like PHP Nowdoc"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nqe" = callPackage - ({ mkDerivation, base, conduit, containers, hashable, mtl, stdenv - , stm, unique, unliftio - }: - mkDerivation { - pname = "nqe"; - version = "0.6.1"; - sha256 = "adf772bca05f8445e585537e3807df394a8d7c7e3a095fd532ee55cc60f30dd0"; - libraryHaskellDepends = [ - base conduit containers hashable mtl stm unique unliftio - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xenog/nqe#readme"; - description = "Concurrency library in the style of Erlang/OTP"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "nsis" = callPackage - ({ mkDerivation, base, stdenv, transformers, uniplate }: - mkDerivation { - pname = "nsis"; - version = "0.3.2"; - sha256 = "b9985b8d62569c192d89b20965eed2b98186a67148b667202823c6389b8f15ca"; - libraryHaskellDepends = [ base transformers uniplate ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/nsis#readme"; - description = "DSL for producing Windows Installer using NSIS"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "numbers" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "numbers"; - version = "3000.2.0.2"; - sha256 = "f0cee40b90c3746bd0bc0559d3827d3cf1b1e2c43270b7ec9bf4fa458fcb5a77"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jwiegley/numbers#readme"; - description = "Various number types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "numeric-extras" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "numeric-extras"; - version = "0.1"; - sha256 = "c700711021d96334be43a21fbd80a5f7146fdd6706ef8656f1d287ff000b61d6"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/numeric-extras"; - description = "Useful tools from the C standard library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "numeric-prelude" = callPackage - ({ mkDerivation, array, base, containers, deepseq, non-negative - , parsec, QuickCheck, random, semigroups, stdenv, storable-record - , utility-ht - }: - mkDerivation { - pname = "numeric-prelude"; - version = "0.4.3.1"; - sha256 = "c9e4b6f20c47ab38faea9a6a230a722f3b50462989d1b0ad1e7bfd1cb8f46114"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base containers deepseq non-negative parsec QuickCheck random - semigroups storable-record utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Numeric_Prelude"; - description = "An experimental alternative hierarchy of numeric type classes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "numtype-dk" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "numtype-dk"; - version = "0.5.0.2"; - sha256 = "98787dc0dd1757e6ed9c37e7d735b448fb9a9281988d97625292c9d8e16a732b"; - revision = "1"; - editedCabalFile = "0892xm8vyyvl1glg4vniz8r5ydg1nz3zmbpgk5mxdih6wi6nmpy4"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bjornbm/numtype-dk"; - description = "Type-level integers, using TypeNats, Data Kinds, and Closed Type Families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nuxeo" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit - , conduit-extra, http-conduit, http-types, optparse-applicative - , stdenv, text, time, url - }: - mkDerivation { - pname = "nuxeo"; - version = "0.3.2"; - sha256 = "e230a92a3f4b2f56128bfce8b478cdedcbb68b5a8b99d60e895b24af58b61954"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson attoparsec base bytestring conduit conduit-extra http-conduit - http-types text time url - ]; - executableHaskellDepends = [ base optparse-applicative text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/apeyroux/nuxeo#readme"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "nvvm" = callPackage - ({ mkDerivation, base, bytestring, c2hs, Cabal, cuda, directory - , filepath, stdenv, template-haskell - }: - mkDerivation { - pname = "nvvm"; - version = "0.9.0.0"; - sha256 = "0bc2367b662ce414aa5f989cc1d1266daa0c552868cb374f304bfca29957ef01"; - setupHaskellDepends = [ - base Cabal cuda directory filepath template-haskell - ]; - libraryHaskellDepends = [ base bytestring cuda template-haskell ]; - libraryToolDepends = [ c2hs ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tmcdonell/nvvm"; - description = "FFI bindings to NVVM"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "oauthenticated" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, blaze-builder - , bytestring, case-insensitive, cryptonite, exceptions, http-client - , http-types, memory, mtl, network, network-uri, stdenv, text, time - , transformers - }: - mkDerivation { - pname = "oauthenticated"; - version = "0.2.1.0"; - sha256 = "d44cd060a4bfb26b0b958a8a203fb25dc171c146093eab82827542264f57d222"; - libraryHaskellDepends = [ - aeson base base64-bytestring blaze-builder bytestring - case-insensitive cryptonite exceptions http-client http-types - memory mtl network network-uri text time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tel/oauthenticated.git#readme"; - description = "Simple OAuth for http-client"; - license = stdenv.lib.licenses.mit; - }) {}; - "oblivious-transfer" = callPackage - ({ mkDerivation, base, bytestring, cryptonite, memory, protolude - , random, stdenv - }: - mkDerivation { - pname = "oblivious-transfer"; - version = "0.1.0"; - sha256 = "5f1fcaf951a7828bbac3aef6ff8c540b187b0117f51b49428d018712eabd05cf"; - revision = "1"; - editedCabalFile = "1v9js45kc94zirg530d0f3r9wwsx60xnz7diqzvfxlbvw01649yk"; - libraryHaskellDepends = [ - base bytestring cryptonite memory protolude random - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/oblivious-transfer#readme"; - description = "An implementation of the Oblivious Transfer protocol in Haskell"; - license = stdenv.lib.licenses.asl20; - }) {}; - "odbc" = callPackage - ({ mkDerivation, async, base, bytestring, containers, deepseq - , formatting, optparse-applicative, parsec, semigroups, stdenv - , template-haskell, text, time, transformers, unixODBC - , unliftio-core - }: - mkDerivation { - pname = "odbc"; - version = "0.2.2"; - sha256 = "659a124883696168daf3cd20403394616a56837c904810073183ce41769e7336"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base bytestring containers deepseq formatting parsec - semigroups template-haskell text time transformers unliftio-core - ]; - librarySystemDepends = [ unixODBC ]; - executableHaskellDepends = [ - base bytestring optparse-applicative text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/odbc"; - description = "Haskell binding to the ODBC API, aimed at SQL Server driver"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) unixODBC;}; - "oeis" = callPackage - ({ mkDerivation, base, HTTP, network, network-uri, stdenv }: - mkDerivation { - pname = "oeis"; - version = "0.3.9"; - sha256 = "8a692c0b898f5d89e607f9593697a24827981a1cfee53045c192084015061b8e"; - revision = "1"; - editedCabalFile = "0rb6l3qblay8aiwaznp35gj7vwmhm87y57wvf3babwrh91s88jaj"; - libraryHaskellDepends = [ base HTTP network network-uri ]; - doHaddock = false; - doCheck = false; - description = "Interface to the Online Encyclopedia of Integer Sequences (OEIS)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ofx" = callPackage - ({ mkDerivation, base, parsec, pretty, stdenv, time }: - mkDerivation { - pname = "ofx"; - version = "0.4.2.0"; - sha256 = "0e22e2269f099603832f666814235051fadf92cbdec3dfacf7d1e8231ccd95f1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base parsec pretty time ]; - executableHaskellDepends = [ base parsec pretty time ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/massysett/ofx"; - description = "Parser for OFX data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "old-locale" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "old-locale"; - version = "1.0.0.7"; - sha256 = "dbaf8bf6b888fb98845705079296a23c3f40ee2f449df7312f7f7f1de18d7b50"; - revision = "2"; - editedCabalFile = "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "locale library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "old-time" = callPackage - ({ mkDerivation, base, old-locale, stdenv }: - mkDerivation { - pname = "old-time"; - version = "1.1.0.3"; - sha256 = "1ccb158b0f7851715d36b757c523b026ca1541e2030d02239802ba39b4112bc1"; - revision = "2"; - editedCabalFile = "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9"; - libraryHaskellDepends = [ base old-locale ]; - doHaddock = false; - doCheck = false; - description = "Time library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "once" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv - , template-haskell, unordered-containers - }: - mkDerivation { - pname = "once"; - version = "0.4"; - sha256 = "30bd9195db5c55bc6f9252d10ac03855c792c6dd2ff401f757c155f2d838e92b"; - libraryHaskellDepends = [ - base containers hashable template-haskell unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/kaction/haskell-once"; - description = "memoization for IO actions and functions"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "one-liner" = callPackage - ({ mkDerivation, base, bifunctors, contravariant, ghc-prim - , profunctors, stdenv, tagged, transformers - }: - mkDerivation { - pname = "one-liner"; - version = "1.0"; - sha256 = "c7f4fbea856adcaa145eb4ff9c81bb730f0a1796b24f4075c0a8028ae87a31b6"; - revision = "1"; - editedCabalFile = "1ijc5mj93zyfj7hh12aw3xh30kc1xsp7wf6rbbfal36yllnl2xhs"; - libraryHaskellDepends = [ - base bifunctors contravariant ghc-prim profunctors tagged - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sjoerdvisscher/one-liner"; - description = "Constraint-based generics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "one-liner-instances" = callPackage - ({ mkDerivation, base, one-liner, random, stdenv }: - mkDerivation { - pname = "one-liner-instances"; - version = "0.1.2.1"; - sha256 = "9384f47a3bdd5be17fa8ac3deca8e406794a1e9e140ec3b173ccd8d22c00c9bf"; - libraryHaskellDepends = [ base one-liner random ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/one-liner-instances#readme"; - description = "Generics-based implementations for common typeclasses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "oo-prototypes" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "oo-prototypes"; - version = "0.1.0.0"; - sha256 = "9eaee40e3221f817b957e472917977bdb06ac0e163a0c6ef87941de29a12f576"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yi-editor/oo-prototypes"; - description = "Support for OO-like prototypes"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "opaleye" = callPackage - ({ mkDerivation, aeson, base, base16-bytestring, bytestring - , case-insensitive, contravariant, postgresql-simple, pretty - , product-profunctors, profunctors, scientific, semigroups, stdenv - , text, time, time-locale-compat, transformers, uuid, void - }: - mkDerivation { - pname = "opaleye"; - version = "0.6.7003.1"; - sha256 = "5df737b19038efb076f5323044ff9c661fd77592c71756c10a811a51c2df44d2"; - revision = "1"; - editedCabalFile = "0nwyz9s81hfziwy7a18gpi0663xy6cfc6fl4vx8a1vkwdyfcjjli"; - libraryHaskellDepends = [ - aeson base base16-bytestring bytestring case-insensitive - contravariant postgresql-simple pretty product-profunctors - profunctors scientific semigroups text time time-locale-compat - transformers uuid void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tomjaguarpaw/haskell-opaleye"; - description = "An SQL-generating DSL targeting PostgreSQL"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "open-browser" = callPackage - ({ mkDerivation, base, process, stdenv }: - mkDerivation { - pname = "open-browser"; - version = "0.2.1.0"; - sha256 = "0bed2e63800f738e78a4803ed22902accb50ac02068b96c17ce83a267244ca66"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base process ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rightfold/open-browser"; - description = "Open a web browser from Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "open-witness" = callPackage - ({ mkDerivation, base, constraints, hashable, random, stdenv - , template-haskell, transformers, witness - }: - mkDerivation { - pname = "open-witness"; - version = "0.4.0.1"; - sha256 = "0770500d6eeb301fc92d30bec2ccef55b05beb0200125fcbddb6b50836034111"; - libraryHaskellDepends = [ - base constraints hashable random template-haskell transformers - witness - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/AshleyYakeley/open-witness"; - description = "open witnesses"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "openexr-write" = callPackage - ({ mkDerivation, base, binary, bytestring, data-binary-ieee754 - , deepseq, split, stdenv, vector, vector-split, zlib - }: - mkDerivation { - pname = "openexr-write"; - version = "0.1.0.2"; - sha256 = "2b0655a64ee36d529030df04f09b6fdf63749f64ec3d29b4f1861cf9c69a05e2"; - libraryHaskellDepends = [ - base binary bytestring data-binary-ieee754 deepseq split vector - vector-split zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "git://klacansky.com/openexr-write.git"; - description = "Library for writing images in OpenEXR HDR file format"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "openpgp-asciiarmor" = callPackage - ({ mkDerivation, attoparsec, base, base64-bytestring, binary - , bytestring, stdenv - }: - mkDerivation { - pname = "openpgp-asciiarmor"; - version = "0.1.1"; - sha256 = "b92f3f5316f18c9e30a95cd59888658384ddd20b628e4cd5fbb647177f52f607"; - revision = "1"; - editedCabalFile = "0j4qra3i7g607axj07d7f0ycj07d889nyw2s04m5wc98blbm5k4j"; - libraryHaskellDepends = [ - attoparsec base base64-bytestring binary bytestring - ]; - doHaddock = false; - doCheck = false; - homepage = "http://floss.scru.org/openpgp-asciiarmor"; - description = "OpenPGP (RFC4880) ASCII Armor codec"; - license = stdenv.lib.licenses.isc; - }) {}; - "opensource" = callPackage - ({ mkDerivation, aeson, base, http-client, http-client-tls, stdenv - , text, transformers - }: - mkDerivation { - pname = "opensource"; - version = "0.1.1.0"; - sha256 = "1ef36be24b2a1d2aee892891e6c7bd975830c38900dbb96a80e5df95c37c5482"; - libraryHaskellDepends = [ - aeson base http-client http-client-tls text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://api.opensource.org/"; - description = "Haskell API Wrapper for the Open Source License API"; - license = stdenv.lib.licenses.mit; - }) {}; - "openssl-streams" = callPackage - ({ mkDerivation, base, bytestring, HsOpenSSL, io-streams, network - , stdenv - }: - mkDerivation { - pname = "openssl-streams"; - version = "1.2.2.0"; - sha256 = "b966b06f579bc9d1f4698408deff77ff6f7047a083d7d44fbeb379af4cf5f466"; - libraryHaskellDepends = [ - base bytestring HsOpenSSL io-streams network - ]; - doHaddock = false; - doCheck = false; - description = "OpenSSL network support for io-streams"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "operational" = callPackage - ({ mkDerivation, base, mtl, random, stdenv }: - mkDerivation { - pname = "operational"; - version = "0.2.3.5"; - sha256 = "91d479063ae7ed3d0a6ae911bdee550fbf31cf341910f9778046b484c55b4af4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base mtl ]; - executableHaskellDepends = [ base mtl random ]; - doHaddock = false; - doCheck = false; - homepage = "http://wiki.haskell.org/Operational"; - description = "Implementation of difficult monads made easy with operational semantics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "operational-class" = callPackage - ({ mkDerivation, base, operational, stdenv, transformers }: - mkDerivation { - pname = "operational-class"; - version = "0.3.0.0"; - sha256 = "8b28b9cb86a2dd520196f6a563538dc2c9e8730f0a0f5e5f3bca19559631e70b"; - libraryHaskellDepends = [ base operational transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/srijs/haskell-operational-class"; - description = "MonadProgram typeclass for the operational package"; - license = stdenv.lib.licenses.mit; - }) {}; - "opml-conduit" = callPackage - ({ mkDerivation, base, case-insensitive, conduit - , conduit-combinators, containers, lens-simple, mono-traversable - , monoid-subclasses, safe-exceptions, semigroups, stdenv, text - , time, timerep, uri-bytestring, xml-conduit, xml-types - }: - mkDerivation { - pname = "opml-conduit"; - version = "0.6.0.4"; - sha256 = "480b557690aab79e3761ad7f1ba1d44873c3d395d2b27f2d133372a01c535d1d"; - revision = "1"; - editedCabalFile = "160sazqsrmm2755642c5y5i38miiglqb66cy5k0hy4k2jkdmjfbi"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base case-insensitive conduit conduit-combinators containers - lens-simple mono-traversable monoid-subclasses safe-exceptions - semigroups text time timerep uri-bytestring xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0ral/opml-conduit"; - description = "Streaming parser/renderer for the OPML 2.0 format."; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "optional-args" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "optional-args"; - version = "1.0.2"; - sha256 = "2e3454ad77cba80b15c02dbe1915889fafa81a22deb7fe5e7e01b0dd8d85b0e4"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Optional function arguments"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "options" = callPackage - ({ mkDerivation, base, containers, monads-tf, stdenv, transformers - }: - mkDerivation { - pname = "options"; - version = "1.2.1.1"; - sha256 = "283eea9ae2c539830c6c65f5c03fb00626cfd1274da0526c285c146fc3065a62"; - libraryHaskellDepends = [ base containers monads-tf transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/haskell-options/"; - description = "A powerful and easy-to-use command-line option parser"; - license = stdenv.lib.licenses.mit; - }) {}; - "optparse-applicative" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, process, stdenv - , transformers, transformers-compat - }: - mkDerivation { - pname = "optparse-applicative"; - version = "0.14.3.0"; - sha256 = "72476302fe555a508917b2d7d6121c7b58ea5434cdc08aeb5d4b652e8f0e7663"; - revision = "1"; - editedCabalFile = "0ij9kphryag2j9p561mac3jqhhmmlpd3w38vjw8nk3x5vbwidlzs"; - libraryHaskellDepends = [ - ansi-wl-pprint base process transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pcapriotti/optparse-applicative"; - description = "Utilities and combinators for parsing command line options"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "optparse-generic" = callPackage - ({ mkDerivation, base, bytestring, Only, optparse-applicative - , semigroups, stdenv, system-filepath, text, time, transformers - , void - }: - mkDerivation { - pname = "optparse-generic"; - version = "1.3.0"; - sha256 = "80929958606e4a73672b570ba1a23493fbf46268666d14ab5af53623301c398f"; - libraryHaskellDepends = [ - base bytestring Only optparse-applicative semigroups - system-filepath text time transformers void - ]; - doHaddock = false; - doCheck = false; - description = "Auto-generate a command-line parser for your datatype"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "optparse-simple" = callPackage - ({ mkDerivation, base, githash, optparse-applicative, stdenv - , template-haskell, transformers - }: - mkDerivation { - pname = "optparse-simple"; - version = "0.1.1.1"; - sha256 = "546baab9f0b29c9358e022c7c61fd26d7e0986ab39a793077df7ef5c7040195b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base githash optparse-applicative template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/optparse-simple#readme"; - description = "Simple interface to optparse-applicative"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "optparse-text" = callPackage - ({ mkDerivation, base, optparse-applicative, stdenv, text }: - mkDerivation { - pname = "optparse-text"; - version = "0.1.1.0"; - sha256 = "f6c081ecec880ae4124f25c1d91ba3a1a3caed9d2fde9e977bceab7d300884ef"; - libraryHaskellDepends = [ base optparse-applicative text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/passy/optparse-text#readme"; - description = "Data.Text helpers for optparse-applicative"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "overhang" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "overhang"; - version = "1.0.0"; - sha256 = "1d68f59354930cdb4372adb86386ca9cbd699d90d2d8c8a1042314f296772a1e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jship/overhang#readme"; - description = "Hang loose with your lambdas!"; - license = stdenv.lib.licenses.mit; - }) {}; - "packcheck" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "packcheck"; - version = "0.4.1"; - sha256 = "be65a4a7c7d6823610966e59e8e12147e2a55e577b2cebfddaaebd708e96da14"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/harendra-kumar/packcheck"; - description = "Universal build and CI testing for Haskell packages"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pager" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-extra - , directory, process, resourcet, safe, stdenv, terminfo, text - , transformers, unix - }: - mkDerivation { - pname = "pager"; - version = "0.1.1.0"; - sha256 = "3e1e4f2ca17be6dd68d2d480f29e7a770c0f7ca3109aa1980da677d96cd4eef3"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring conduit conduit-extra directory process resourcet - safe terminfo text transformers unix - ]; - executableHaskellDepends = [ base bytestring conduit-extra text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pharpend/pager"; - description = "Open up a pager, like 'less' or 'more'"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "pagination" = callPackage - ({ mkDerivation, base, deepseq, exceptions, stdenv }: - mkDerivation { - pname = "pagination"; - version = "0.2.1"; - sha256 = "88dcbae69e830adac0943f24f8ae6915f9e4ba684531a76bce936767cbeb203d"; - revision = "2"; - editedCabalFile = "0wvwi3hymp2vhhpzpycdc65zbsqmi2h0c6r0nf8p5nkgsk4pm1k2"; - libraryHaskellDepends = [ base deepseq exceptions ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/pagination"; - description = "Framework-agnostic pagination boilerplate"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pairing" = callPackage - ({ mkDerivation, base, bytestring, cryptonite, memory, protolude - , QuickCheck, random, stdenv, wl-pprint-text - }: - mkDerivation { - pname = "pairing"; - version = "0.1.4"; - sha256 = "cc8c5a39e27b8fb17b2107f81e2777958e9c5f1d1e0a9a29267e89b1b0e2e18d"; - libraryHaskellDepends = [ - base bytestring cryptonite memory protolude QuickCheck random - wl-pprint-text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/pairing#readme"; - description = "Optimal ate pairing over Barreto-Naehrig curves"; - license = stdenv.lib.licenses.mit; - }) {}; - "pandoc" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring - , binary, blaze-html, blaze-markup, bytestring, Cabal - , case-insensitive, cmark-gfm, containers, data-default, deepseq - , directory, doctemplates, exceptions, filepath, Glob - , haddock-library, hslua, hslua-module-text, HsYAML, HTTP - , http-client, http-client-tls, http-types, JuicyPixels, mtl - , network, network-uri, pandoc-types, parsec, process, random, safe - , SHA, skylighting, split, stdenv, syb, tagsoup, temporary, texmath - , text, time, unicode-transforms, unix, unordered-containers - , vector, xml, zip-archive, zlib - }: - mkDerivation { - pname = "pandoc"; - version = "2.5"; - sha256 = "d57dc5db78a0a304de70436fe59a7599ab0c6d0fb2ab6704eeae498a4536222e"; - revision = "2"; - editedCabalFile = "1z44hcwqqmkmhfak7svrrf950amf008gzhnlxkhwdyjpnpqp21sm"; - configureFlags = [ "-fhttps" "-f-trypandoc" ]; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ - aeson aeson-pretty base base64-bytestring binary blaze-html - blaze-markup bytestring case-insensitive cmark-gfm containers - data-default deepseq directory doctemplates exceptions filepath - Glob haddock-library hslua hslua-module-text HsYAML HTTP - http-client http-client-tls http-types JuicyPixels mtl network - network-uri pandoc-types parsec process random safe SHA skylighting - split syb tagsoup temporary texmath text time unicode-transforms - unix unordered-containers vector xml zip-archive zlib - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://pandoc.org"; - description = "Conversion between markup formats"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "pandoc-citeproc" = callPackage - ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring - , Cabal, containers, data-default, directory, filepath, hs-bibutils - , mtl, old-locale, pandoc, pandoc-types, parsec, rfc5051, setenv - , split, stdenv, syb, tagsoup, text, time, unordered-containers - , vector, xml-conduit, yaml - }: - mkDerivation { - pname = "pandoc-citeproc"; - version = "0.15.0.1"; - sha256 = "29db5f2aad3225859727271855461724574f3695ab3856ceac33b24a55ae92f8"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ - aeson base bytestring containers data-default directory filepath - hs-bibutils mtl old-locale pandoc pandoc-types parsec rfc5051 - setenv split syb tagsoup text time unordered-containers vector - xml-conduit yaml - ]; - executableHaskellDepends = [ - aeson aeson-pretty attoparsec base bytestring filepath pandoc - pandoc-types syb text yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jgm/pandoc-citeproc"; - description = "Supports using pandoc with citeproc"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pandoc-pyplot" = callPackage - ({ mkDerivation, base, containers, directory, filepath - , pandoc-types, stdenv, temporary, typed-process - }: - mkDerivation { - pname = "pandoc-pyplot"; - version = "1.0.3.0"; - sha256 = "e24d112d80ecc46915244d4a31fe2d62e06faa29c8082c380f3a1d1904e7f75b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers directory filepath pandoc-types temporary - typed-process - ]; - executableHaskellDepends = [ base pandoc-types ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/LaurentRDC/pandoc-pyplot#readme"; - description = "A Pandoc filter for including figures generated from Matplotlib"; - license = stdenv.lib.licenses.mit; - }) {}; - "pandoc-types" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, deepseq - , ghc-prim, QuickCheck, stdenv, syb, transformers - }: - mkDerivation { - pname = "pandoc-types"; - version = "1.17.5.4"; - sha256 = "32aca86c510bd23c6bd54ce1a37ca005f4b84f077ab8e835a522833cf5179327"; - revision = "1"; - editedCabalFile = "0bpd2iqmriajl5qg44j4z9c4agb9gsdwbn5l4c5yry6flivysq3c"; - libraryHaskellDepends = [ - aeson base bytestring containers deepseq ghc-prim QuickCheck syb - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://johnmacfarlane.net/pandoc"; - description = "Types for representing a structured document"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parallel" = callPackage - ({ mkDerivation, array, base, containers, deepseq, ghc-prim, stdenv - }: - mkDerivation { - pname = "parallel"; - version = "3.2.2.0"; - sha256 = "170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6"; - libraryHaskellDepends = [ array base containers deepseq ghc-prim ]; - doHaddock = false; - doCheck = false; - description = "Parallel programming library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parallel-io" = callPackage - ({ mkDerivation, base, containers, extensible-exceptions, random - , stdenv - }: - mkDerivation { - pname = "parallel-io"; - version = "0.3.3"; - sha256 = "3a14c02b9b8b7c72577eb90a8dd72de75d99192def87d7aa79545ee4d6e80645"; - revision = "2"; - editedCabalFile = "0mggzni708nzxlsjbibdzf03s3b5lnqj2zi1hnbh1rd4j4jr07ym"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers extensible-exceptions random - ]; - doHaddock = false; - doCheck = false; - homepage = "http://batterseapower.github.com/parallel-io"; - description = "Combinators for executing IO actions in parallel on a thread pool"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "paripari" = callPackage - ({ mkDerivation, base, bytestring, parser-combinators, stdenv, text - }: - mkDerivation { - pname = "paripari"; - version = "0.6.0.0"; - sha256 = "2114cfd4f91c5f58f52b0e350927276fe8e5ba291db7ae77859d045d8bbf0498"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring parser-combinators text - ]; - executableHaskellDepends = [ - base bytestring parser-combinators text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/paripari#readme"; - description = "Parser combinators with fast-path and slower fallback for error reporting"; - license = stdenv.lib.licenses.mit; - }) {}; - "parseargs" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "parseargs"; - version = "0.2.0.9"; - sha256 = "3c469ddcee3a63ef790d88f676dcf99b9d90b8815112f18c17febafc9e8025a9"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers ]; - executableHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/BartMassey/parseargs"; - description = "Parse command-line arguments"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parsec" = callPackage - ({ mkDerivation, base, bytestring, mtl, stdenv, text }: - mkDerivation { - pname = "parsec"; - version = "3.1.13.0"; - sha256 = "7861ae437a6177ee7c08899432fd8c062e7c110361da48a9f9e88263fd4d80f1"; - revision = "2"; - editedCabalFile = "032sizm03m2vdqshkv4sdviyka05gqf8gs6r4hqf9did177i0qnm"; - libraryHaskellDepends = [ base bytestring mtl text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/parsec"; - description = "Monadic parser combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parsec-class" = callPackage - ({ mkDerivation, base, parsec, stdenv }: - mkDerivation { - pname = "parsec-class"; - version = "1.0.0.0"; - sha256 = "029c4ec5e6b0efd0505f1051c29c02060ddab3018b9aef4c4ae96a99f58e1773"; - libraryHaskellDepends = [ base parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/parsec-class"; - description = "Class of types that can be constructed from their text representation"; - license = stdenv.lib.licenses.mit; - }) {}; - "parsec-numbers" = callPackage - ({ mkDerivation, base, parsec, stdenv }: - mkDerivation { - pname = "parsec-numbers"; - version = "0.1.0"; - sha256 = "77019a4817712f6bfc61c9d148b680579955eb40d286f7766f7b0a90c726febf"; - libraryHaskellDepends = [ base parsec ]; - doHaddock = false; - doCheck = false; - description = "Utilities for parsing numbers from strings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parsec-numeric" = callPackage - ({ mkDerivation, base, parsec, stdenv }: - mkDerivation { - pname = "parsec-numeric"; - version = "0.1.0.0"; - sha256 = "7bdd9ae4aa63695e3072c73d99b85ef1572ffe9f5a07621edaa9515393a6e52f"; - libraryHaskellDepends = [ base parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/AndrewRademacher/parsec-numeric"; - description = "Parsec combinators for parsing Haskell numeric types"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "parser-combinators" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "parser-combinators"; - version = "1.0.1"; - sha256 = "edf5ab8fa69a04334baa8707252036563a8339a96a86956c90febe93830cea32"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/parser-combinators"; - description = "Lightweight package providing commonly useful parser combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "parsers" = callPackage - ({ mkDerivation, attoparsec, base, base-orphans, binary, charset - , containers, mtl, parsec, scientific, semigroups, stdenv, text - , transformers, unordered-containers - }: - mkDerivation { - pname = "parsers"; - version = "0.12.9"; - sha256 = "81e52fc9d71b587a8034015344e9162c59975750094f930a47933e5603d305e4"; - libraryHaskellDepends = [ - attoparsec base base-orphans binary charset containers mtl parsec - scientific semigroups text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/parsers/"; - description = "Parsing combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "partial-handler" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "partial-handler"; - version = "1.0.3"; - sha256 = "94c72af024417ec04e3d94b5b57c7bfeb8b48acb8444e7c0fe0764ff1139c131"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/partial-handler"; - description = "A composable exception handler"; - license = stdenv.lib.licenses.mit; - }) {}; - "partial-isomorphisms" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "partial-isomorphisms"; - version = "0.2.2.1"; - sha256 = "4c551fa69119e87de1ba0ec7b854f6ed13fb2fe2768db4afff2f8468f0f4a164"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.informatik.uni-marburg.de/~rendel/unparse"; - description = "Partial isomorphisms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "partial-semigroup" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "partial-semigroup"; - version = "0.5.0.0"; - sha256 = "15f7e8941d848a85a0b6fef85f27d2414b7544dd42562ca2d8f65235fd8f8e0f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chris-martin/partial-semigroup"; - description = "A partial binary associative operator"; - license = stdenv.lib.licenses.asl20; - }) {}; - "path" = callPackage - ({ mkDerivation, aeson, base, deepseq, exceptions, filepath - , hashable, stdenv, template-haskell - }: - mkDerivation { - pname = "path"; - version = "0.6.1"; - sha256 = "4b8bd85a13395b4240c639b9cf804371854d5dac69158f661068bd3089a25e59"; - revision = "1"; - editedCabalFile = "05b1zwx2a893h4h5wvgpc5g5pyx71hfmx409rqisd8s1bq1hn463"; - libraryHaskellDepends = [ - aeson base deepseq exceptions filepath hashable template-haskell - ]; - doHaddock = false; - doCheck = false; - description = "Support for well-typed paths"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "path-extra" = callPackage - ({ mkDerivation, attoparsec, base, path, stdenv, text }: - mkDerivation { - pname = "path-extra"; - version = "0.2.0"; - sha256 = "eb08be914e718762cad0e1fc7588201258bd8637c486990791e5b816f7a8043a"; - libraryHaskellDepends = [ attoparsec base path text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/path-extra#readme"; - description = "URLs without host information"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "path-io" = callPackage - ({ mkDerivation, base, containers, directory, dlist, exceptions - , filepath, path, stdenv, temporary, time, transformers - , unix-compat - }: - mkDerivation { - pname = "path-io"; - version = "1.4.1"; - sha256 = "57cce9e14b56fed60071bdb0f3c27c54eeeb38ca5954d9a2a4a235e475e3bf6c"; - revision = "1"; - editedCabalFile = "1qb9b3rvzpdm6xp2xljmp2izz0x26bj3zvai22iyl914pzph3181"; - libraryHaskellDepends = [ - base containers directory dlist exceptions filepath path temporary - time transformers unix-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/path-io"; - description = "Interface to ‘directory’ package for users of ‘path’"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "path-pieces" = callPackage - ({ mkDerivation, base, stdenv, text, time }: - mkDerivation { - pname = "path-pieces"; - version = "0.2.1"; - sha256 = "080bd49f53e20597ca3e5962e0c279a3422345f5b088840a30a751cd76d4a36f"; - revision = "1"; - editedCabalFile = "0p7wsphh513s8l5d62lzgbhk2l1h6kj5y7bc27qqjsry9g8ah4y7"; - libraryHaskellDepends = [ base text time ]; - doHaddock = false; - doCheck = false; - description = "Components of paths"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "path-text-utf8" = callPackage - ({ mkDerivation, base, bytestring, path, safe-exceptions, stdenv - , text - }: - mkDerivation { - pname = "path-text-utf8"; - version = "0.0.1.2"; - sha256 = "f6c2652d23171ffa87f13d2c804630499b6b2210853aaf8008f4d593b5f41cfd"; - libraryHaskellDepends = [ - base bytestring path safe-exceptions text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chris-martin/path-text-utf8"; - description = "Read and write UTF-8 text files"; - license = stdenv.lib.licenses.asl20; - }) {}; - "pathtype" = callPackage - ({ mkDerivation, base, deepseq, directory, QuickCheck, semigroups - , stdenv, tagged, time, transformers, utility-ht - }: - mkDerivation { - pname = "pathtype"; - version = "0.8.1"; - sha256 = "d5e6dc557dcf53e97cc2f7f6d6ee30992920e3ea074042b6ac11f74f2792340f"; - configureFlags = [ "-f-old-time" ]; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base deepseq directory QuickCheck semigroups tagged time - transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/pathtype/"; - description = "Type-safe replacement for System.FilePath etc"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pathwalk" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv, transformers }: - mkDerivation { - pname = "pathwalk"; - version = "0.3.1.2"; - sha256 = "76e0d0646a3133a062dbae4e9d37d59e71d6328706bb178552a93800e4550e91"; - libraryHaskellDepends = [ base directory filepath transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Xe/pathwalk"; - description = "Path walking utilities for Haskell programs"; - license = stdenv.lib.licenses.mit; - }) {}; - "pattern-arrows" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "pattern-arrows"; - version = "0.0.2"; - sha256 = "6fc2d972e72785d727d2b68e1f82ef94a2c93cedbc00e6a4cdc03498825c078f"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://blog.functorial.com/posts/2013-10-27-Pretty-Printing-Arrows.html"; - description = "Arrows for Pretty Printing"; - license = stdenv.lib.licenses.mit; - }) {}; - "pcf-font" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, stdenv - , vector, zlib - }: - mkDerivation { - pname = "pcf-font"; - version = "0.2.2.0"; - sha256 = "8a67d04240a7668e669414d1b4f531d290c79a63198e0ecf02cb0339bff098ef"; - libraryHaskellDepends = [ - base binary bytestring containers vector zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/michael-swan/pcf-font"; - description = "PCF font parsing and rendering library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pcf-font-embed" = callPackage - ({ mkDerivation, base, bytestring, pcf-font, stdenv - , template-haskell, vector - }: - mkDerivation { - pname = "pcf-font-embed"; - version = "0.1.2.0"; - sha256 = "c55d51ee6f959c9c05bb9d9adac3aad1cd87b2bba3cca7d3667d67f1a230fd51"; - libraryHaskellDepends = [ - base bytestring pcf-font template-haskell vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/michael-swan/pcf-font-embed"; - description = "Template Haskell for embedding text rendered using PCF fonts"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pcg-random" = callPackage - ({ mkDerivation, base, bytestring, entropy, primitive, random - , stdenv - }: - mkDerivation { - pname = "pcg-random"; - version = "0.1.3.5"; - sha256 = "de43ff8805f9e0ffd4cd6b4f2fed8c9cfa9ab45c0fd42374636ac7a5567840a4"; - libraryHaskellDepends = [ - base bytestring entropy primitive random - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/cchalmers/pcg-random"; - description = "Haskell bindings to the PCG random number generator"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pcre-heavy" = callPackage - ({ mkDerivation, base, base-compat, bytestring, pcre-light - , semigroups, stdenv, string-conversions, template-haskell - }: - mkDerivation { - pname = "pcre-heavy"; - version = "1.0.0.2"; - sha256 = "8a5cf697b7683127812450cef57d0d74ac5c1117ec80618d10509642f793cbd1"; - revision = "1"; - editedCabalFile = "14pprgwxkiaji3rqhsm0fv454wic6qxm7vy4a475yigadb1vz1ls"; - libraryHaskellDepends = [ - base base-compat bytestring pcre-light semigroups - string-conversions template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/myfreeweb/pcre-heavy"; - description = "A regexp (regex) library on top of pcre-light you can actually use"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "pcre-light" = callPackage - ({ mkDerivation, base, bytestring, pcre, stdenv }: - mkDerivation { - pname = "pcre-light"; - version = "0.4.0.4"; - sha256 = "02c97e39263d18fd26aa63d52c88c4bfbb5c3f66ab40564552e7f11d5d889e75"; - libraryHaskellDepends = [ base bytestring ]; - libraryPkgconfigDepends = [ pcre ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Daniel-Diaz/pcre-light"; - description = "Portable regex library for Perl 5 compatible regular expressions"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) pcre;}; - "pcre-utils" = callPackage - ({ mkDerivation, array, attoparsec, base, bytestring, mtl - , regex-pcre-builtin, stdenv, vector - }: - mkDerivation { - pname = "pcre-utils"; - version = "0.1.8.1.1"; - sha256 = "1f2a80ca63308e182542534866a844efaf880deac4145213bf1c83a560586df4"; - libraryHaskellDepends = [ - array attoparsec base bytestring mtl regex-pcre-builtin vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bartavelle/pcre-utils"; - description = "Perl-like substitute and split for PCRE regexps"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pdfinfo" = callPackage - ({ mkDerivation, base, mtl, old-locale, process-extras, stdenv - , text, time, time-locale-compat - }: - mkDerivation { - pname = "pdfinfo"; - version = "1.5.4"; - sha256 = "9a6a1f7d8ab0a5e8f7f8276da070ccddec140d6b2549b084042159b639230911"; - libraryHaskellDepends = [ - base mtl old-locale process-extras text time time-locale-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chrisdone/pdfinfo"; - description = "Wrapper around the pdfinfo command"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "peano" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "peano"; - version = "0.1.0.1"; - sha256 = "31fdd23993a76155738224a7b230a1a6fcfde091b2fbc945df4cb54068eeec7b"; - revision = "2"; - editedCabalFile = "10b0vjc7lnfkscg2c8hhqbvf1xdvgbr3njrs9b4ick91n44vjbhk"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Peano numbers"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "pedersen-commitment" = callPackage - ({ mkDerivation, base, bytestring, containers, cryptonite, memory - , mtl, protolude, stdenv, text - }: - mkDerivation { - pname = "pedersen-commitment"; - version = "0.2.0"; - sha256 = "6793cc37efa22307c935636f15dae7670330a84a7435f36412ced3b81410b0b7"; - libraryHaskellDepends = [ - base bytestring containers cryptonite memory mtl protolude text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adjoint-io/pedersen-commitment#readme"; - description = "An implementation of Pedersen commitment schemes"; - license = stdenv.lib.licenses.mit; - }) {}; - "pem" = callPackage - ({ mkDerivation, base, basement, bytestring, memory, stdenv }: - mkDerivation { - pname = "pem"; - version = "0.2.4"; - sha256 = "770c4c1b9cd24b3db7f511f8a48404a0d098999e28573c3743a8a296bb96f8d4"; - libraryHaskellDepends = [ base basement bytestring memory ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-pem"; - description = "Privacy Enhanced Mail (PEM) format reader and writer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "percent-format" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "percent-format"; - version = "0.0.1"; - sha256 = "7530a64ba6f1ac2b59bdc325f3a8a6f0006b4a24dc2cd86eb2b41ab46d460c09"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/percent-format#readme"; - description = "simple printf-style string formatting"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "perfect-hash-generator" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, data-ordlist - , directory, filepath, hashable, optparse-applicative, random - , stdenv, text, unordered-containers, vector - }: - mkDerivation { - pname = "perfect-hash-generator"; - version = "0.2.0.6"; - sha256 = "df727611ca45994fc40e3e37ebae783a892f3b46db95897ba2df876e65f7b110"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring containers data-ordlist directory filepath - hashable text unordered-containers vector - ]; - executableHaskellDepends = [ - base binary bytestring containers hashable optparse-applicative - random text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kostmo/perfect-hash-generator#readme"; - description = "Perfect minimal hashing implementation in native Haskell"; - license = stdenv.lib.licenses.asl20; - }) {}; - "persist" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv, text }: - mkDerivation { - pname = "persist"; - version = "0.1.1.1"; - sha256 = "6715cf359697e72ba4807ffb622037d27bb494fdd4d4fcf4d9cc66a294eb24e4"; - libraryHaskellDepends = [ base bytestring containers text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/persist"; - description = "Minimal serialization library with focus on performance"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "persistable-record" = callPackage - ({ mkDerivation, array, base, containers, dlist, names-th - , product-isomorphic, stdenv, template-haskell, th-data-compat - , transformers - }: - mkDerivation { - pname = "persistable-record"; - version = "0.6.0.4"; - sha256 = "6d3abe73d61cf691bb1b5a412fa8a6d8fcc5cb3070176041ad8953b63ca5f8f9"; - libraryHaskellDepends = [ - array base containers dlist names-th product-isomorphic - template-haskell th-data-compat transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "Binding between SQL database values and haskell records"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "persistable-types-HDBC-pg" = callPackage - ({ mkDerivation, base, bytestring, convertible, dlist, HDBC - , persistable-record, relational-query, relational-query-HDBC - , stdenv, text-postgresql - }: - mkDerivation { - pname = "persistable-types-HDBC-pg"; - version = "0.0.3.5"; - sha256 = "955c73edd056e1ecb6a3543d726070c3f219a67017ef18ac9ae75711f63cec2f"; - libraryHaskellDepends = [ - base bytestring convertible dlist HDBC persistable-record - relational-query relational-query-HDBC text-postgresql - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "HDBC and Relational-Record instances of PostgreSQL extended types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "persistent" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base64-bytestring - , blaze-html, blaze-markup, bytestring, conduit, containers - , fast-logger, http-api-data, monad-logger, mtl, old-locale - , path-pieces, resource-pool, resourcet, scientific, silently - , stdenv, tagged, template-haskell, text, time, transformers - , unliftio-core, unordered-containers, vector, void - }: - mkDerivation { - pname = "persistent"; - version = "2.9.1"; - sha256 = "6742fd0834463489343feeeddc171124197ebcaef42141e455ed5cd4c282daac"; - revision = "1"; - editedCabalFile = "1ing9cdpafmfx0mpvrl3xzfvmw5aw2lpiq69nnhrsmlhb9pi8ni0"; - libraryHaskellDepends = [ - aeson attoparsec base base64-bytestring blaze-html blaze-markup - bytestring conduit containers fast-logger http-api-data - monad-logger mtl old-locale path-pieces resource-pool resourcet - scientific silently tagged template-haskell text time transformers - unliftio-core unordered-containers vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/persistent"; - description = "Type-safe, multi-backend data serialization"; - license = stdenv.lib.licenses.mit; - }) {}; - "persistent-iproute" = callPackage - ({ mkDerivation, aeson, aeson-iproute, base, bytestring - , http-api-data, iproute, path-pieces, persistent, stdenv, text - }: - mkDerivation { - pname = "persistent-iproute"; - version = "0.2.3"; - sha256 = "f595a11ceaa1c19e11d6f4fc58ec2834eb100791ae82626912115f1d79edbfaa"; - libraryHaskellDepends = [ - aeson aeson-iproute base bytestring http-api-data iproute - path-pieces persistent text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/greydot/persistent-iproute"; - description = "Persistent instances for types in iproute"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "persistent-mysql" = callPackage - ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit - , containers, monad-logger, mysql, mysql-simple, persistent - , resource-pool, resourcet, stdenv, text, transformers - , unliftio-core - }: - mkDerivation { - pname = "persistent-mysql"; - version = "2.9.0"; - sha256 = "ee4b17bd5ab8f724ad6cb98941418fca37eeaacb2ba7f21c2c7e2792898a4129"; - revision = "1"; - editedCabalFile = "0xvis08x4ajayp73f6j0czpksn309f3anv5kklxa9r6j8j5qkhvz"; - libraryHaskellDepends = [ - aeson base blaze-builder bytestring conduit containers monad-logger - mysql mysql-simple persistent resource-pool resourcet text - transformers unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/persistent"; - description = "Backend for the persistent library using MySQL database server"; - license = stdenv.lib.licenses.mit; - }) {}; - "persistent-mysql-haskell" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, containers - , io-streams, monad-logger, mysql-haskell, network, persistent - , persistent-template, resource-pool, resourcet, stdenv, text, time - , tls, transformers, unliftio-core - }: - mkDerivation { - pname = "persistent-mysql-haskell"; - version = "0.5.2"; - sha256 = "56c27a690be1ebeb1b6a74d7b3fe7fd9894d92f14c82f3675945c6b758c282cd"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring conduit containers io-streams monad-logger - mysql-haskell network persistent resource-pool resourcet text time - tls transformers unliftio-core - ]; - executableHaskellDepends = [ - base monad-logger persistent persistent-template transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/persistent"; - description = "A pure haskell backend for the persistent library using MySQL database server"; - license = stdenv.lib.licenses.mit; - }) {}; - "persistent-postgresql" = callPackage - ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit - , containers, monad-logger, persistent, postgresql-libpq - , postgresql-simple, resource-pool, resourcet, stdenv, text, time - , transformers, unliftio-core - }: - mkDerivation { - pname = "persistent-postgresql"; - version = "2.9.0"; - sha256 = "bd029ca877f9536398e9703e5886731059dbcbd7015cdc470b54727e7e5b14e7"; - revision = "1"; - editedCabalFile = "0xrnww7n6kwr2371fj5xklslbx0114yj3pxcpdzwalmin5wm8vah"; - libraryHaskellDepends = [ - aeson base blaze-builder bytestring conduit containers monad-logger - persistent postgresql-libpq postgresql-simple resource-pool - resourcet text time transformers unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/persistent"; - description = "Backend for the persistent library using postgresql"; - license = stdenv.lib.licenses.mit; - }) {}; - "persistent-sqlite" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, containers - , microlens-th, monad-logger, old-locale, persistent, resource-pool - , resourcet, sqlite, stdenv, text, time, transformers - , unliftio-core, unordered-containers - }: - mkDerivation { - pname = "persistent-sqlite"; - version = "2.9.2"; - sha256 = "0fe538410b18bb9a61832fc5c1726ed161f4eb685c399d3660c4c41f54f0b5de"; - configureFlags = [ "-fsystemlib" ]; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring conduit containers microlens-th monad-logger - old-locale persistent resource-pool resourcet text time - transformers unliftio-core unordered-containers - ]; - librarySystemDepends = [ sqlite ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/persistent"; - description = "Backend for the persistent library using sqlite3"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) sqlite;}; - "persistent-template" = callPackage - ({ mkDerivation, aeson, aeson-compat, base, bytestring, containers - , ghc-prim, http-api-data, monad-control, monad-logger, path-pieces - , persistent, stdenv, tagged, template-haskell, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "persistent-template"; - version = "2.5.4"; - sha256 = "4cae740ce92f98cb3ae9e092e740753394d5687b887399ee5f87af7f3c730a01"; - revision = "4"; - editedCabalFile = "08yb4kcmpqmm50lwrbmavd0zhgg6p7bl8dy026xw644cazrzcvr1"; - libraryHaskellDepends = [ - aeson aeson-compat base bytestring containers ghc-prim - http-api-data monad-control monad-logger path-pieces persistent - tagged template-haskell text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/persistent"; - description = "Type-safe, non-relational, multi-backend persistence"; - license = stdenv.lib.licenses.mit; - }) {}; - "pg-transact" = callPackage - ({ mkDerivation, base, bytestring, exceptions, monad-control - , postgresql-simple, stdenv, transformers - }: - mkDerivation { - pname = "pg-transact"; - version = "0.1.0.1"; - sha256 = "598236369ee1228a3a76b4f0d5830d652a90ddbc0f98fdde064ad979a1abc97d"; - libraryHaskellDepends = [ - base bytestring exceptions monad-control postgresql-simple - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jfischoff/pg-transact#readme"; - description = "Another postgresql-simple transaction monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pgp-wordlist" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv, text, vector - }: - mkDerivation { - pname = "pgp-wordlist"; - version = "0.1.0.2"; - sha256 = "e28b6fe85222adf1247d5870ab47c68c3d25df3f9ceda104bfb64e1414a92466"; - libraryHaskellDepends = [ base bytestring containers text vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/quchen/pgp-wordlist"; - description = "Translate between binary data and a human-readable collection of words"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "phantom-state" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "phantom-state"; - version = "0.2.1.2"; - sha256 = "f978ef98e810e9a9e53f1479340ba7a28f80a64aba431322959cbf8c620c3811"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - description = "Phantom State Transformer. Like State Monad, but without values."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pid1" = callPackage - ({ mkDerivation, base, directory, process, stdenv, unix }: - mkDerivation { - pname = "pid1"; - version = "0.1.2.0"; - sha256 = "9e97bf9b4b6ffd6a9b706cc6d5fadd8089cd37d2b8763111bd743104db267f76"; - revision = "1"; - editedCabalFile = "11yg5pjci1d6p5ml0ic4vqn70vjx8vvhqs20rahgfqhh8palkyw9"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory process unix ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/pid1#readme"; - description = "Do signal handling and orphan reaping for Unix PID1 init processes"; - license = stdenv.lib.licenses.mit; - }) {}; - "pipes" = callPackage - ({ mkDerivation, base, exceptions, mmorph, mtl, semigroups, stdenv - , transformers, void - }: - mkDerivation { - pname = "pipes"; - version = "4.3.9"; - sha256 = "5c4cda351f9cf59376832baaeb857db25bd4990fd78c4b061aca0bde47271acb"; - revision = "1"; - editedCabalFile = "0mkwbbn8vlrsvm3pl2cyaw1qr9hbjqfm831naj7cbrmiksf2l5aa"; - libraryHaskellDepends = [ - base exceptions mmorph mtl semigroups transformers void - ]; - doHaddock = false; - doCheck = false; - description = "Compositional pipelines"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-aeson" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, pipes - , pipes-attoparsec, pipes-bytestring, pipes-parse, stdenv - , transformers - }: - mkDerivation { - pname = "pipes-aeson"; - version = "0.4.1.8"; - sha256 = "350411f492fefa8d5a2554e7521d22b7ee88bacbea9d27c0d22468f6355ebe75"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring pipes pipes-attoparsec - pipes-bytestring pipes-parse transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/pipes-aeson"; - description = "Encode and decode JSON streams using Aeson and Pipes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-attoparsec" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, pipes, pipes-parse - , stdenv, text, transformers - }: - mkDerivation { - pname = "pipes-attoparsec"; - version = "0.5.1.5"; - sha256 = "fe9eb446289dbc4c4acdde39620877b885417990d9774f622fa9d1daa591cafd"; - libraryHaskellDepends = [ - attoparsec base bytestring pipes pipes-parse text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/pipes-attoparsec"; - description = "Attoparsec and Pipes integration"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-binary" = callPackage - ({ mkDerivation, base, binary, bytestring, ghc-prim, pipes - , pipes-bytestring, pipes-parse, stdenv, transformers - }: - mkDerivation { - pname = "pipes-binary"; - version = "0.4.2"; - sha256 = "f659d9fd4c816b65abe14a67eb86f7605d15ab5bca5514b25fa6fd82a23064e8"; - libraryHaskellDepends = [ - base binary bytestring ghc-prim pipes pipes-bytestring pipes-parse - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/pipes-binary"; - description = "Encode and decode binary streams using the pipes and binary libraries"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-bytestring" = callPackage - ({ mkDerivation, base, bytestring, pipes, pipes-group, pipes-parse - , stdenv, stringsearch, transformers - }: - mkDerivation { - pname = "pipes-bytestring"; - version = "2.1.6"; - sha256 = "b1dc370680f3671759010caace183bce683d0481bd2c0e3f4906b78ac8623c18"; - libraryHaskellDepends = [ - base bytestring pipes pipes-group pipes-parse stringsearch - transformers - ]; - doHaddock = false; - doCheck = false; - description = "ByteString support for pipes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-category" = callPackage - ({ mkDerivation, base, lens, mtl, pipes, pipes-extras, stdenv }: - mkDerivation { - pname = "pipes-category"; - version = "0.3.0.0"; - sha256 = "4711d889ed2bf7244bbbc292af5746e0378d72a09929aa1e668056e7f0180701"; - libraryHaskellDepends = [ base lens mtl pipes pipes-extras ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/pipes-category#readme"; - description = "Allows instances for Category, Arrow and ArrowChoice for Pipes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-concurrency" = callPackage - ({ mkDerivation, async, base, contravariant, pipes, semigroups - , stdenv, stm, void - }: - mkDerivation { - pname = "pipes-concurrency"; - version = "2.0.12"; - sha256 = "4343c67710e2fcd8987c537389773358150559bf06e86d96b1097c15ae81589d"; - revision = "1"; - editedCabalFile = "1c1rys2pp7a2z6si925ps610q8a38a6m26s182phwa5nfhyggpaw"; - libraryHaskellDepends = [ - async base contravariant pipes semigroups stm void - ]; - doHaddock = false; - doCheck = false; - description = "Concurrency for the pipes ecosystem"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-csv" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, cassava, pipes - , stdenv, unordered-containers, vector - }: - mkDerivation { - pname = "pipes-csv"; - version = "1.4.3"; - sha256 = "9485f5ddd56ec9bb10d26cdf2b5b67754726e36b167652b11cb0a42acbda68b3"; - libraryHaskellDepends = [ - base blaze-builder bytestring cassava pipes unordered-containers - vector - ]; - doHaddock = false; - doCheck = false; - description = "Fast, streaming csv parser"; - license = stdenv.lib.licenses.mit; - }) {}; - "pipes-extras" = callPackage - ({ mkDerivation, base, foldl, lens, pipes, stdenv, transformers }: - mkDerivation { - pname = "pipes-extras"; - version = "1.0.15"; - sha256 = "02a9633ac912fd48e9a5ca0e6b48a6e9541ce59d11243096ca6af6b25701cbb3"; - libraryHaskellDepends = [ base foldl lens pipes transformers ]; - doHaddock = false; - doCheck = false; - description = "Extra utilities for pipes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-fastx" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, pipes - , pipes-attoparsec, pipes-bytestring, stdenv - }: - mkDerivation { - pname = "pipes-fastx"; - version = "0.3.0.0"; - sha256 = "31264ba760bae1df3170a7d8da32f3e3fcb289545a33f369a94732e55e08ba75"; - libraryHaskellDepends = [ - attoparsec base bytestring pipes pipes-attoparsec pipes-bytestring - ]; - doHaddock = false; - doCheck = false; - description = "Streaming parsers for Fasta and Fastq"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-fluid" = callPackage - ({ mkDerivation, base, constraints, lens, lifted-async - , monad-control, pipes, semigroups, stdenv, stm, these - , transformers, transformers-base - }: - mkDerivation { - pname = "pipes-fluid"; - version = "0.6.0.1"; - sha256 = "105d8e8df7e731e2d272a22891eb68db1ca3ec9f425b67af77c5d91e3f032f06"; - libraryHaskellDepends = [ - base constraints lens lifted-async monad-control pipes semigroups - stm these transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/pipes-fluid#readme"; - description = "Reactively combines Producers so that a value is yielded as soon as possible"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-group" = callPackage - ({ mkDerivation, base, free, pipes, pipes-parse, stdenv - , transformers - }: - mkDerivation { - pname = "pipes-group"; - version = "1.0.12"; - sha256 = "1373e89fbeb127c31461042cdda848da2048eda2700ddbd872d444af87745ac7"; - libraryHaskellDepends = [ - base free pipes pipes-parse transformers - ]; - doHaddock = false; - doCheck = false; - description = "Group streams into substreams"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-http" = callPackage - ({ mkDerivation, base, bytestring, http-client, http-client-tls - , pipes, stdenv - }: - mkDerivation { - pname = "pipes-http"; - version = "1.0.6"; - sha256 = "a231fb08dfac54c1fac7a0c805f1b6c6e60a380021bb5722b508d6b36e4ba700"; - libraryHaskellDepends = [ - base bytestring http-client http-client-tls pipes - ]; - doHaddock = false; - doCheck = false; - description = "HTTP client with pipes interface"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-misc" = callPackage - ({ mkDerivation, base, clock, Decimal, lens, mmorph, mtl, pipes - , pipes-category, pipes-concurrency, semigroups, stdenv, stm - , transformers - }: - mkDerivation { - pname = "pipes-misc"; - version = "0.5.0.0"; - sha256 = "4e2e7e396ee0c659ae3742388d06b69e3b5146a5563cd3f4ba56f9a1febb8d26"; - libraryHaskellDepends = [ - base clock Decimal lens mmorph mtl pipes pipes-category - pipes-concurrency semigroups stm transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/pipes-misc#readme"; - description = "Miscellaneous utilities for pipes, required by glazier-tutorial"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-network" = callPackage - ({ mkDerivation, base, bytestring, exceptions, network - , network-simple, pipes, pipes-safe, stdenv, transformers - }: - mkDerivation { - pname = "pipes-network"; - version = "0.6.5"; - sha256 = "74a461153a2f650e9e15037002b6d9177b132f409e3204824655ffbb939dc795"; - libraryHaskellDepends = [ - base bytestring exceptions network network-simple pipes pipes-safe - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/pipes-network"; - description = "Use network sockets together with the pipes library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-network-tls" = callPackage - ({ mkDerivation, base, bytestring, network, network-simple - , network-simple-tls, pipes, pipes-network, pipes-safe, stdenv, tls - , transformers - }: - mkDerivation { - pname = "pipes-network-tls"; - version = "0.3"; - sha256 = "a2694a6b15d71a8cae898dd8e6a085a4e1ae317c40f2752ceed2b991dfb6bab2"; - libraryHaskellDepends = [ - base bytestring network network-simple network-simple-tls pipes - pipes-network pipes-safe tls transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/pipes-network-tls"; - description = "TLS-secured network connections support for pipes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-parse" = callPackage - ({ mkDerivation, base, pipes, stdenv, transformers }: - mkDerivation { - pname = "pipes-parse"; - version = "3.0.8"; - sha256 = "d28f831b2c8229cca567ee95570787d2dd3f5cfcff3b3c44ee308360a8c107a9"; - libraryHaskellDepends = [ base pipes transformers ]; - doHaddock = false; - doCheck = false; - description = "Parsing infrastructure for the pipes ecosystem"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-safe" = callPackage - ({ mkDerivation, base, containers, exceptions, monad-control, mtl - , pipes, primitive, stdenv, transformers, transformers-base - }: - mkDerivation { - pname = "pipes-safe"; - version = "2.3.1"; - sha256 = "9ef249d0a37c18ddc40efeb6a603c01d0438a45b100951ace3a739c6dc68cd35"; - libraryHaskellDepends = [ - base containers exceptions monad-control mtl pipes primitive - transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - description = "Safety for the pipes ecosystem"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pipes-wai" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, http-types, pipes - , stdenv, transformers, wai - }: - mkDerivation { - pname = "pipes-wai"; - version = "3.2.0"; - sha256 = "04a670df140c12b64f6f0d04b3c5571527f144ee429e7030bb62ec8785056d2a"; - libraryHaskellDepends = [ - base blaze-builder bytestring http-types pipes transformers wai - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/iand675/pipes-wai"; - description = "A port of wai-conduit for the pipes ecosystem"; - license = stdenv.lib.licenses.mit; - }) {}; - "pkcs10" = callPackage - ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base - , bytestring, cryptonite, pem, stdenv, x509 - }: - mkDerivation { - pname = "pkcs10"; - version = "0.2.0.0"; - sha256 = "896e923f67bac4c7f0e48c9afca60f9ef5178e00fca9f179e8fdae3c12476294"; - libraryHaskellDepends = [ - asn1-encoding asn1-parse asn1-types base bytestring cryptonite pem - x509 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fcomb/pkcs10-hs#readme"; - description = "PKCS#10 library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "placeholders" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "placeholders"; - version = "0.1"; - sha256 = "652a78553dcaf6e11b4cd8f0e60010b32da299fbe57721df4bf9157e852d0346"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ahammar/placeholders"; - description = "Placeholders for use while developing Haskell code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "plotlyhs" = callPackage - ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring - , lucid, microlens, microlens-th, stdenv, text, time - }: - mkDerivation { - pname = "plotlyhs"; - version = "0.2.1"; - sha256 = "c95ed42c789d26165183c2cbb4e8a44065478cad0a80053ac8e6fa2a84c7ecb4"; - libraryHaskellDepends = [ - aeson base blaze-html blaze-markup bytestring lucid microlens - microlens-th text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/diffusionkinetics/open/plotlyhs"; - description = "Haskell bindings to Plotly.js"; - license = stdenv.lib.licenses.mit; - }) {}; - "pointed" = callPackage - ({ mkDerivation, base, comonad, containers, data-default-class - , hashable, kan-extensions, semigroupoids, semigroups, stdenv, stm - , tagged, transformers, transformers-compat, unordered-containers - }: - mkDerivation { - pname = "pointed"; - version = "5.0.1"; - sha256 = "b94635a5c8779238501a9156015422ce2fb4d5efd45d68999e8cbe2ecc5121dd"; - revision = "2"; - editedCabalFile = "00m4f6rgxa3qa72j3jzpg6rrd9k9n4ll2idxlyybil3lxd63r80w"; - libraryHaskellDepends = [ - base comonad containers data-default-class hashable kan-extensions - semigroupoids semigroups stm tagged transformers - transformers-compat unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/pointed/"; - description = "Pointed and copointed data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pointedlist" = callPackage - ({ mkDerivation, base, binary, stdenv }: - mkDerivation { - pname = "pointedlist"; - version = "0.6.1"; - sha256 = "743cb0f89cbb128f8aa24c4519b262b561bf2cd607f83e94f9241e8af1cfba9b"; - libraryHaskellDepends = [ base binary ]; - doHaddock = false; - doCheck = false; - description = "A zipper-like comonad which works as a list, tracking a position"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pointless-fun" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "pointless-fun"; - version = "1.1.0.6"; - sha256 = "d05c59dac408a81766d676da2fb98025e75e0c3d0a07bdb458759d5c41e3b054"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Some common point-free combinators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "poll" = callPackage - ({ mkDerivation, base, enumset, stdenv, utility-ht }: - mkDerivation { - pname = "poll"; - version = "0.0.0.1"; - sha256 = "b9fe87fe1b4d3ecb2ad3c1c290e231b0c93d498f0d318f67018a1dde97a0ed29"; - libraryHaskellDepends = [ base enumset utility-ht ]; - doHaddock = false; - doCheck = false; - description = "Bindings to poll.h"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "poly-arity" = callPackage - ({ mkDerivation, base, constraints, stdenv }: - mkDerivation { - pname = "poly-arity"; - version = "0.1.0"; - sha256 = "cb10a644fe04de8e703942f4bd0d97c4df0f9e3915d33a494994e85830cfdd29"; - libraryHaskellDepends = [ base constraints ]; - doHaddock = false; - doCheck = false; - description = "Tools for working with functions of undetermined arity"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "polynomials-bernstein" = callPackage - ({ mkDerivation, base, stdenv, vector }: - mkDerivation { - pname = "polynomials-bernstein"; - version = "1.1.2"; - sha256 = "6950f2e791533a40e7e41ff98679f680f27c7b66258b57871027bf0e5adc7062"; - libraryHaskellDepends = [ base vector ]; - doHaddock = false; - doCheck = false; - description = "A solver for systems of polynomial equations in bernstein form"; - license = "GPL"; - }) {}; - "polyparse" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "polyparse"; - version = "1.12.1"; - sha256 = "dd8d34e05853ea0ab9b9fee1cbaa51ae33095f7c0c09ff539dcd6d771e0adaa5"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~malcolm/polyparse/"; - description = "A variety of alternative parser combinator libraries"; - license = "LGPL"; - }) {}; - "pooled-io" = callPackage - ({ mkDerivation, base, concurrent-split, containers, deepseq - , stdenv, transformers, unsafe, utility-ht - }: - mkDerivation { - pname = "pooled-io"; - version = "0.0.2.2"; - sha256 = "3a5b51356c2c0844ac085d9ad073851d46426a09ffb59bcbfb8e072de4bd1fbd"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base concurrent-split containers deepseq transformers unsafe - utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/pooled-io/"; - description = "Run jobs on a limited number of threads and support data dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "port-utils" = callPackage - ({ mkDerivation, base, network, stdenv }: - mkDerivation { - pname = "port-utils"; - version = "0.2.0.0"; - sha256 = "e19d8ba0c05d1a617f303d184b83a57830b0175d345041d7cd79d71f17a76ad3"; - libraryHaskellDepends = [ base network ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jfischoff/port-utils#readme"; - description = "Utilities for creating and waiting on ports"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "posix-paths" = callPackage - ({ mkDerivation, base, bytestring, stdenv, unix }: - mkDerivation { - pname = "posix-paths"; - version = "0.2.1.6"; - sha256 = "7239746716761bfc268b60348c5da3c2cf098fe2583f365096a6bef10f637e45"; - libraryHaskellDepends = [ base bytestring unix ]; - doHaddock = false; - doCheck = false; - description = "POSIX filepath/directory functionality"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "post-mess-age" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "post-mess-age"; - version = "0.2.1.0"; - sha256 = "d0f69ab1cb130a9f8bb54cd1f3b0167184af885fedba89ff32fec8e54e95d64c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Send messages to a handle concurrently without getting them mixed"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "postgresql-binary" = callPackage - ({ mkDerivation, aeson, base, base-prelude, binary-parser - , bytestring, bytestring-strict-builder, containers, loch-th - , network-ip, placeholders, scientific, stdenv, text, time - , transformers, unordered-containers, uuid, vector - }: - mkDerivation { - pname = "postgresql-binary"; - version = "0.12.1.2"; - sha256 = "83ad514b9f6328e89f92f66a60de7f65609386773b6edf27f8aee2ee52120582"; - libraryHaskellDepends = [ - aeson base base-prelude binary-parser bytestring - bytestring-strict-builder containers loch-th network-ip - placeholders scientific text time transformers unordered-containers - uuid vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/postgresql-binary"; - description = "Encoders and decoders for the PostgreSQL's binary format"; - license = stdenv.lib.licenses.mit; - }) {}; - "postgresql-libpq" = callPackage - ({ mkDerivation, base, bytestring, Cabal, postgresql, stdenv, unix - }: - mkDerivation { - pname = "postgresql-libpq"; - version = "0.9.4.2"; - sha256 = "cea053c79ef1505c30518db7b9fb2ee68c9e2915d48b22f01f8eb9a9b49f06f9"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base bytestring unix ]; - librarySystemDepends = [ postgresql ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/postgresql-libpq"; - description = "low-level binding to libpq"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) postgresql;}; - "postgresql-schema" = callPackage - ({ mkDerivation, base, basic-prelude, optparse-applicative - , postgresql-simple, shelly, stdenv, text, time - }: - mkDerivation { - pname = "postgresql-schema"; - version = "0.1.14"; - sha256 = "73decc70c9fc349d0162c253eb0e92a1add5964c28ef89abfe30e97f1184d572"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base basic-prelude postgresql-simple shelly text - ]; - executableHaskellDepends = [ - base basic-prelude optparse-applicative shelly text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mfine/postgresql-schema"; - description = "PostgreSQL Schema Management"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "postgresql-simple" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring - , bytestring-builder, case-insensitive, containers, hashable, Only - , postgresql-libpq, scientific, stdenv, template-haskell, text - , time, transformers, uuid-types, vector - }: - mkDerivation { - pname = "postgresql-simple"; - version = "0.6"; - sha256 = "c96839c35485c7df0c84c76493c31435781c989a8d42e1dfc2e20202de46e0ca"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring bytestring-builder - case-insensitive containers hashable Only postgresql-libpq - scientific template-haskell text time transformers uuid-types - vector - ]; - doHaddock = false; - doCheck = false; - description = "Mid-Level PostgreSQL client library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "postgresql-simple-migration" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, cryptohash - , directory, postgresql-simple, stdenv, text, time - }: - mkDerivation { - pname = "postgresql-simple-migration"; - version = "0.1.14.0"; - sha256 = "4ce4273ad339e2453e2db0ddfda58e96f5e99185e0807312d60b5a76b96b2efd"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base base64-bytestring bytestring cryptohash directory - postgresql-simple time - ]; - executableHaskellDepends = [ - base base64-bytestring bytestring cryptohash directory - postgresql-simple text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ameingast/postgresql-simple-migration"; - description = "PostgreSQL Schema Migrations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "postgresql-simple-queue" = callPackage - ({ mkDerivation, aeson, base, bytestring, exceptions, monad-control - , pg-transact, postgresql-simple, random, stdenv, stm, text, time - , transformers - }: - mkDerivation { - pname = "postgresql-simple-queue"; - version = "1.0.1"; - sha256 = "330b69c54e075104171758117e714b7da6c740dff8ca09fbe33bd3ab854e5a3f"; - libraryHaskellDepends = [ - aeson base bytestring exceptions monad-control pg-transact - postgresql-simple random stm text time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jfischoff/postgresql-queue#readme"; - description = "A PostgreSQL backed queue"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "postgresql-simple-url" = callPackage - ({ mkDerivation, base, network-uri, postgresql-simple, split - , stdenv - }: - mkDerivation { - pname = "postgresql-simple-url"; - version = "0.2.1.0"; - sha256 = "1307f57cde2bd7f6d795a860deab53d3d64043f51af31e3114dee516ef7ee9c9"; - revision = "1"; - editedCabalFile = "0ck0vrlsyj3vm8sk59jnyyqpvnv1l9mciifdnrzwr981pha147qp"; - libraryHaskellDepends = [ - base network-uri postgresql-simple split - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/futurice/postgresql-simple-url"; - description = "Parse postgres:// url into ConnectInfo"; - license = stdenv.lib.licenses.mit; - }) {}; - "postgresql-transactional" = callPackage - ({ mkDerivation, base, monad-control, mtl, postgresql-simple - , stdenv - }: - mkDerivation { - pname = "postgresql-transactional"; - version = "1.1.1"; - sha256 = "f9302a1e134b31f2e9bd243c4fe36a25b3a9a9d6984288be1bc9c29882545ed3"; - libraryHaskellDepends = [ - base monad-control mtl postgresql-simple - ]; - doHaddock = false; - doCheck = false; - description = "a transactional monad on top of postgresql-simple"; - license = stdenv.lib.licenses.mit; - }) {}; - "pptable" = callPackage - ({ mkDerivation, base, boxes, containers, generic-deriving, pretty - , stdenv, syb, vector - }: - mkDerivation { - pname = "pptable"; - version = "0.3.0.0"; - sha256 = "98b7ff404eceaad834b16187af44db37324d3bfaa631347794bb0f28a6dd9317"; - revision = "1"; - editedCabalFile = "0c1srvgwyczbfnw3zw5pbsjqgxifq9yb1h60w3aq91q7iamrvdgb"; - libraryHaskellDepends = [ - base boxes containers generic-deriving pretty syb vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/gdevanla/pptable#readme"; - description = "Pretty Print containers in a tabular format"; - license = stdenv.lib.licenses.mit; - }) {}; - "pqueue" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "pqueue"; - version = "1.4.1.2"; - sha256 = "d2aaacbe069a5dac61cee677c68eb34d74afa09c59d90d43e2fa07a6c5869fec"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - description = "Reliable, persistent, fast priority queues"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "prefix-units" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "prefix-units"; - version = "0.2.0"; - sha256 = "050abdf827a5bd014a2628b195fbd59bb226020612c99e86a082ac1c8274e384"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iustin/prefix-units"; - description = "A basic library for SI/binary prefix units"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "prelude-compat" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "prelude-compat"; - version = "0.0.0.1"; - sha256 = "7bdc875d5b7265a87f06866dc00da69edcd4ae36ea9687c8c6e643833ffb40d4"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Provide Prelude and Data.List with fixed content across GHC versions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "prelude-safeenum" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "prelude-safeenum"; - version = "0.1.1.2"; - sha256 = "d4f9f195d31198fa1a5e1edfb50684971cc5dc2695bf38c1e7e2dabdce329727"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "A redefinition of the Prelude's Enum class in order to render it safe"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "present" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "present"; - version = "4.1.0"; - sha256 = "bae8b334817a31572cc0e771f40e89b976e72b2b55d0955e4e198502dd8a427b"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/chrisdone/present"; - description = "Make presentations for data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pretty-class" = callPackage - ({ mkDerivation, base, pretty, stdenv }: - mkDerivation { - pname = "pretty-class"; - version = "1.0.1.1"; - sha256 = "558d1b506ff58afb0a5fb9d85ea93a94687cc1aabcc5a112a6ee4375a7b8aee1"; - libraryHaskellDepends = [ base pretty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ddssff/pretty-class"; - description = "Pretty printing class similar to Show"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pretty-hex" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "pretty-hex"; - version = "1.0"; - sha256 = "ff9a5f2023d6a4454f06cc395726b4cac3f9d0ea03759b14ccf7d62df79e9c7a"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "A library for hex dumps of ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pretty-show" = callPackage - ({ mkDerivation, array, base, filepath, ghc-prim, happy - , haskell-lexer, pretty, stdenv, text - }: - mkDerivation { - pname = "pretty-show"; - version = "1.9.5"; - sha256 = "b095bebb79951d2e25a543a591844fb638165672d7b95d325844611297ba423f"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - array base filepath ghc-prim haskell-lexer pretty text - ]; - libraryToolDepends = [ happy ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://wiki.github.com/yav/pretty-show"; - description = "Tools for working with derived `Show` instances and generic inspection of values"; - license = stdenv.lib.licenses.mit; - }) {}; - "pretty-simple" = callPackage - ({ mkDerivation, ansi-terminal, base, mtl, stdenv, text - , transformers - }: - mkDerivation { - pname = "pretty-simple"; - version = "2.2.0.1"; - sha256 = "18ab80e80593063b11aa85c117e12253ec5dc438b1d342822ea1c25886485173"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base mtl text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/pretty-simple"; - description = "pretty printer for data types with a 'Show' instance"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pretty-sop" = callPackage - ({ mkDerivation, base, generics-sop, pretty-show, stdenv }: - mkDerivation { - pname = "pretty-sop"; - version = "0.2.0.2"; - sha256 = "d64ff28d14360f782dc3ffaec16497015ef9ffc91b2c1cf234274cde9f2d3274"; - revision = "2"; - editedCabalFile = "04hzf2ajlnh3ynk72xr5s396v8y0d8fkr4pf11nqss7yf60dkxwi"; - libraryHaskellDepends = [ base generics-sop pretty-show ]; - doHaddock = false; - doCheck = false; - description = "A generic pretty-printer using generics-sop"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pretty-types" = callPackage - ({ mkDerivation, base, mtl, stdenv, tagged }: - mkDerivation { - pname = "pretty-types"; - version = "0.2.3.1"; - sha256 = "e56c49d1099aaeafe0b982ef9e60cb7194fd987c4b659a8d7bcde380d3b8784f"; - libraryHaskellDepends = [ base mtl tagged ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sheyll/pretty-types#readme"; - description = "A small pretty printing DSL for complex types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "prettyclass" = callPackage - ({ mkDerivation, base, pretty, stdenv }: - mkDerivation { - pname = "prettyclass"; - version = "1.0.0.0"; - sha256 = "e537446e7a346e5e0872ed8281db2bb0220c737f10757848c901da1399548986"; - libraryHaskellDepends = [ base pretty ]; - doHaddock = false; - doCheck = false; - description = "Pretty printing class similar to Show"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "prettyprinter" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "prettyprinter"; - version = "1.2.1"; - sha256 = "e7653e0ba87cc06553a50e4780dde81c5dd156196c0199511d03d972e5517fcf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/quchen/prettyprinter"; - description = "A modern, easy to use, well-documented, extensible pretty-printer"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "prettyprinter-ansi-terminal" = callPackage - ({ mkDerivation, ansi-terminal, base, prettyprinter, stdenv, text - }: - mkDerivation { - pname = "prettyprinter-ansi-terminal"; - version = "1.1.1.2"; - sha256 = "d3e0b420df2904ae1ef23daf9bbb6de2c1fbbee056b779fc2cebe303cedf4641"; - libraryHaskellDepends = [ ansi-terminal base prettyprinter text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/quchen/prettyprinter"; - description = "ANSI terminal backend for the »prettyprinter« package"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "prettyprinter-compat-annotated-wl-pprint" = callPackage - ({ mkDerivation, base, prettyprinter, stdenv, text }: - mkDerivation { - pname = "prettyprinter-compat-annotated-wl-pprint"; - version = "1"; - sha256 = "2c259bac999d75b071a077f218a433c070783e9f40b67796e31a776fefbaf57e"; - revision = "3"; - editedCabalFile = "0vzi7id60pfj35xp61akzvfx9x6py45r5b8343i48ljpir91rvgw"; - libraryHaskellDepends = [ base prettyprinter text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/quchen/prettyprinter"; - description = "Prettyprinter compatibility module for previous users of the annotated-wl-pprint package"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "prettyprinter-compat-ansi-wl-pprint" = callPackage - ({ mkDerivation, base, prettyprinter, prettyprinter-ansi-terminal - , stdenv, text - }: - mkDerivation { - pname = "prettyprinter-compat-ansi-wl-pprint"; - version = "1.0.1"; - sha256 = "012d6bb711da25cc38260f4d00d26c24e52547a0ca53b0f6459fd06e5b93f73f"; - revision = "1"; - editedCabalFile = "0rzvap56ygygzs95091ipmcdc7n76sczc2dk88g4nr7zskb2nf1k"; - libraryHaskellDepends = [ - base prettyprinter prettyprinter-ansi-terminal text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/quchen/prettyprinter"; - description = "Drop-in compatibility package to migrate from »ansi-wl-pprint« to »prettyprinter«"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "prettyprinter-compat-wl-pprint" = callPackage - ({ mkDerivation, base, prettyprinter, stdenv, text }: - mkDerivation { - pname = "prettyprinter-compat-wl-pprint"; - version = "1.0.0.1"; - sha256 = "75221f5064e69eead5807a62894e8b5aa768f979c7f8fb75d0e1b2a15345529e"; - revision = "3"; - editedCabalFile = "0cb1i1hmr6wl8lacy3w822h273lapqhp537snxgbmhf9xvfckbpr"; - libraryHaskellDepends = [ base prettyprinter text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/quchen/prettyprinter"; - description = "Prettyprinter compatibility module for previous users of the wl-pprint package"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "prim-uniq" = callPackage - ({ mkDerivation, base, dependent-sum, primitive, stdenv }: - mkDerivation { - pname = "prim-uniq"; - version = "0.1.0.1"; - sha256 = "fb059785133fe5ecaa57c6c840192f252c4c5a1a598160d5704ac2a83e895aff"; - libraryHaskellDepends = [ base dependent-sum primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/prim-uniq"; - description = "Opaque unique identifiers in primitive state monads"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "primes" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "primes"; - version = "0.2.1.0"; - sha256 = "74d66558fb638ea4d31eae2fe1a294cb5a9d64491314305d74a11d93f277c65b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/sebfisch/primes"; - description = "Efficient, purely functional generation of prime numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "primitive" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv, transformers }: - mkDerivation { - pname = "primitive"; - version = "0.6.4.0"; - sha256 = "4cbeaf7924dd79221f327ea101a29bf35c4976dc3319df157ff46ea68e6a0c64"; - revision = "1"; - editedCabalFile = "18a14k1yiam1m4l29rin9a0y53yp3nxvkz358nysld8aqwy2qsjv"; - libraryHaskellDepends = [ base ghc-prim transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/primitive"; - description = "Primitive memory-related operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "probability" = callPackage - ({ mkDerivation, base, containers, random, stdenv, transformers - , utility-ht - }: - mkDerivation { - pname = "probability"; - version = "0.2.5.2"; - sha256 = "0f2b8c734eca6b079109948a28d85733543d5cea1dea2d5a1369f52ffc4a3415"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base containers random transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Probabilistic_Functional_Programming"; - description = "Probabilistic Functional Programming"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "process-extras" = callPackage - ({ mkDerivation, base, bytestring, data-default, deepseq - , generic-deriving, ListLike, mtl, process, stdenv, text - }: - mkDerivation { - pname = "process-extras"; - version = "0.7.4"; - sha256 = "293e75f849254ce0ce0d7fa659681917e07a557c602505a2f9e20777467e984e"; - libraryHaskellDepends = [ - base bytestring data-default deepseq generic-deriving ListLike mtl - process text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/seereason/process-extras"; - description = "Process extras"; - license = stdenv.lib.licenses.mit; - }) {}; - "product-isomorphic" = callPackage - ({ mkDerivation, base, stdenv, template-haskell, th-data-compat }: - mkDerivation { - pname = "product-isomorphic"; - version = "0.0.3.3"; - sha256 = "1ef93a2cacbaf1fb2ae713f2d0d869593d4a5b8605eff38108877cbbfb51c1bb"; - libraryHaskellDepends = [ base template-haskell th-data-compat ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/khibino/haskell-product-isomorphic"; - description = "Weaken applicative functor on products"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "product-profunctors" = callPackage - ({ mkDerivation, base, bifunctors, contravariant, profunctors - , stdenv, tagged, template-haskell - }: - mkDerivation { - pname = "product-profunctors"; - version = "0.10.0.0"; - sha256 = "ad8d7687c2eee4bcd2f3925a74f53d743c9f678b80be2a523221039004d51a68"; - revision = "1"; - editedCabalFile = "17zi38fzg7yf9i5da2hlch6jw2qhmjcvs9wwkhyvra520605mlya"; - libraryHaskellDepends = [ - base bifunctors contravariant profunctors tagged template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tomjaguarpaw/product-profunctors"; - description = "product-profunctors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "profiterole" = callPackage - ({ mkDerivation, base, containers, directory, extra, filepath - , ghc-prof, hashable, scientific, stdenv, text - }: - mkDerivation { - pname = "profiterole"; - version = "0.1"; - sha256 = "c688d8c4f04e7a674832b39add365cee8eb99ae83643a849529e2ec56a46d2f1"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base containers directory extra filepath ghc-prof hashable - scientific text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/profiterole#readme"; - description = "Restructure GHC profile reports"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "profunctors" = callPackage - ({ mkDerivation, base, base-orphans, bifunctors, comonad - , contravariant, distributive, semigroups, stdenv, tagged - , transformers - }: - mkDerivation { - pname = "profunctors"; - version = "5.3"; - sha256 = "74632acc5bb76e04ade95e187be432b607da0e863c0e08f3cabafb23d8b4a3b7"; - revision = "1"; - editedCabalFile = "1ynskm55fynsli6lpz6v5py344yhf1mq5xz2b1p7arvf2xqrx4kv"; - libraryHaskellDepends = [ - base base-orphans bifunctors comonad contravariant distributive - semigroups tagged transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/profunctors/"; - description = "Profunctors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "project-template" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, conduit - , conduit-extra, containers, directory, filepath, mtl, resourcet - , stdenv, text, transformers - }: - mkDerivation { - pname = "project-template"; - version = "0.2.0.1"; - sha256 = "eb52496fa7448f5fed445525c05327b31a45282fc1d0a772c7022a9809e7c9dc"; - revision = "1"; - editedCabalFile = "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a"; - libraryHaskellDepends = [ - base base64-bytestring bytestring conduit conduit-extra containers - directory filepath mtl resourcet text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/haskell-ide"; - description = "Specify Haskell project templates and generate files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "projectroot" = callPackage - ({ mkDerivation, base, directory, stdenv }: - mkDerivation { - pname = "projectroot"; - version = "0.2.0.1"; - sha256 = "53753086543ed199cf6f0d76852660f5d74c0874bfdee21c0f4e0d845b7e1ab8"; - libraryHaskellDepends = [ base directory ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yamadapc/haskell-projectroot"; - description = "Bindings to the projectroot C logic"; - license = stdenv.lib.licenses.mit; - }) {}; - "prometheus-client" = callPackage - ({ mkDerivation, atomic-primops, base, bytestring, clock - , containers, deepseq, exceptions, mtl, stdenv, stm, text - , transformers, transformers-compat, utf8-string - }: - mkDerivation { - pname = "prometheus-client"; - version = "1.0.0"; - sha256 = "279e415720adb45a0ca67af18029c7b9e2ea0a34ec79b7278ed8e20e135b3344"; - libraryHaskellDepends = [ - atomic-primops base bytestring clock containers deepseq exceptions - mtl stm text transformers transformers-compat utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fimad/prometheus-haskell"; - description = "Haskell client library for http://prometheus.io."; - license = stdenv.lib.licenses.asl20; - }) {}; - "promises" = callPackage - ({ mkDerivation, base, primitive, stdenv }: - mkDerivation { - pname = "promises"; - version = "0.3"; - sha256 = "bf7c901915c122e7ab270f4c90cf02e83a703bf78f246948dc2452dcd294f260"; - libraryHaskellDepends = [ base primitive ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/promises/"; - description = "Lazy demand-driven promises"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "prompt" = callPackage - ({ mkDerivation, base, base-compat, mtl, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "prompt"; - version = "0.1.1.2"; - sha256 = "67b5711ef4c650747645b6d9de16a8bb04e04d1c2e4d39e3a8d4099873a151f2"; - libraryHaskellDepends = [ - base base-compat mtl transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/prompt"; - description = "Monad (and transformer) for deferred-effect pure prompt-response queries"; - license = stdenv.lib.licenses.mit; - }) {}; - "proto-lens" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers, deepseq - , lens-family, lens-labels, parsec, pretty, stdenv, text - , transformers, void - }: - mkDerivation { - pname = "proto-lens"; - version = "0.4.0.1"; - sha256 = "959d11ee1b863c20b3c2de977df3ab05ab2426413c78c3b7456206dd060adfe7"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base bytestring containers deepseq lens-family - lens-labels parsec pretty text transformers void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "A lens-based implementation of protocol buffers in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-arbitrary" = callPackage - ({ mkDerivation, base, bytestring, containers, lens-family - , proto-lens, QuickCheck, stdenv, text - }: - mkDerivation { - pname = "proto-lens-arbitrary"; - version = "0.1.2.6"; - sha256 = "233fbe60c5a0fcc316818e7aebbfb9dbc6ba143d53cf022e4fef54e17f1042c6"; - libraryHaskellDepends = [ - base bytestring containers lens-family proto-lens QuickCheck text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Arbitrary instances for proto-lens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-combinators" = callPackage - ({ mkDerivation, base, Cabal, lens-family, proto-lens - , proto-lens-setup, stdenv, transformers - }: - mkDerivation { - pname = "proto-lens-combinators"; - version = "0.4.0.1"; - sha256 = "6b5264a009d401bc0503447567a9ccdd4fe82d0639e0115b00b9b85eab4c6d36"; - setupHaskellDepends = [ base Cabal proto-lens-setup ]; - libraryHaskellDepends = [ - base lens-family proto-lens transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Utilities functions to proto-lens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-optparse" = callPackage - ({ mkDerivation, base, optparse-applicative, proto-lens, stdenv - , text - }: - mkDerivation { - pname = "proto-lens-optparse"; - version = "0.1.1.5"; - sha256 = "c209b27e07da0cbbc2772139531fd2f1af96c615d1c50acf5f4931b5a1640a5d"; - libraryHaskellDepends = [ - base optparse-applicative proto-lens text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Adapting proto-lens to optparse-applicative ReadMs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-protobuf-types" = callPackage - ({ mkDerivation, base, Cabal, lens-labels, proto-lens - , proto-lens-runtime, proto-lens-setup, protobuf, stdenv, text - }: - mkDerivation { - pname = "proto-lens-protobuf-types"; - version = "0.4.0.1"; - sha256 = "2a475e0b1271ada78df17a39febdba813ffacdd3594bb72d346391eb2f412224"; - setupHaskellDepends = [ base Cabal proto-lens-setup ]; - libraryHaskellDepends = [ - base lens-labels proto-lens proto-lens-runtime text - ]; - libraryToolDepends = [ protobuf ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Basic protocol buffer message types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-protoc" = callPackage - ({ mkDerivation, base, bytestring, containers, filepath - , haskell-src-exts, lens-family, pretty, proto-lens, protobuf - , stdenv, text - }: - mkDerivation { - pname = "proto-lens-protoc"; - version = "0.4.0.2"; - sha256 = "b5daf9d6e31edf9a75e5300c1095dcd091f91bff3bc05a04b49e6141d8d96bcf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers filepath haskell-src-exts lens-family pretty - proto-lens text - ]; - libraryToolDepends = [ protobuf ]; - executableHaskellDepends = [ - base bytestring containers lens-family proto-lens text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Protocol buffer compiler for the proto-lens library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-runtime" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, filepath - , lens-family, lens-labels, proto-lens, stdenv, text - }: - mkDerivation { - pname = "proto-lens-runtime"; - version = "0.4.0.2"; - sha256 = "591356bda042e52e8f1239f49c40c679698340eea3697356b11624f48b8fcbcc"; - libraryHaskellDepends = [ - base bytestring containers deepseq filepath lens-family lens-labels - proto-lens text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "proto-lens-setup" = callPackage - ({ mkDerivation, base, bytestring, Cabal, containers, deepseq - , directory, filepath, process, proto-lens-protoc, stdenv - , temporary, text - }: - mkDerivation { - pname = "proto-lens-setup"; - version = "0.4.0.2"; - sha256 = "1bc500c0a032da878833ae46964b635b4b5d7f0a1e6c5f8577bea6d7fe9c14ff"; - libraryHaskellDepends = [ - base bytestring Cabal containers deepseq directory filepath process - proto-lens-protoc temporary text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/google/proto-lens#readme"; - description = "Cabal support for codegen with proto-lens"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "protobuf" = callPackage - ({ mkDerivation, base, base-orphans, bytestring, cereal - , data-binary-ieee754, deepseq, mtl, stdenv, text - , unordered-containers - }: - mkDerivation { - pname = "protobuf"; - version = "0.2.1.2"; - sha256 = "b3c871918a665f0543fde247ab8af61c4fc451103140d34bf652c0d5fc4d17de"; - libraryHaskellDepends = [ - base base-orphans bytestring cereal data-binary-ieee754 deepseq mtl - text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alphaHeavy/protobuf"; - description = "Google Protocol Buffers via GHC.Generics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "protobuf-simple" = callPackage - ({ mkDerivation, base, binary, bytestring, containers - , data-binary-ieee754, directory, filepath, mtl, parsec, split - , stdenv, text - }: - mkDerivation { - pname = "protobuf-simple"; - version = "0.1.1.0"; - sha256 = "9029d395f099aa7ce510a9e0eb0b2c21e5b4ecaa2b242d5a1753de6b93abcdc4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring containers data-binary-ieee754 mtl text - ]; - executableHaskellDepends = [ - base containers directory filepath mtl parsec split text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sru-systems/protobuf-simple"; - description = "Simple Protocol Buffers library (proto2)"; - license = stdenv.lib.licenses.mit; - }) {}; - "protocol-buffers" = callPackage - ({ mkDerivation, aeson, array, base, base16-bytestring, binary - , bytestring, containers, directory, filepath, mtl, parsec, stdenv - , syb, text, utf8-string, vector - }: - mkDerivation { - pname = "protocol-buffers"; - version = "2.4.12"; - sha256 = "8fdcfd0017376db8cc519679344392891abfa4408de809a5c52b10091b9e3b7c"; - libraryHaskellDepends = [ - aeson array base base16-bytestring binary bytestring containers - directory filepath mtl parsec syb text utf8-string vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k-bx/protocol-buffers"; - description = "Parse Google Protocol Buffer specifications"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "protocol-buffers-descriptor" = callPackage - ({ mkDerivation, base, bytestring, containers, protocol-buffers - , stdenv - }: - mkDerivation { - pname = "protocol-buffers-descriptor"; - version = "2.4.12"; - sha256 = "96b14bf9e149cf7a2ea06ddbe147d237101a1a37bf9a5375ee078642df0d8c40"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers protocol-buffers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k-bx/protocol-buffers"; - description = "Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "protocol-radius" = callPackage - ({ mkDerivation, base, bytestring, cereal, containers, cryptonite - , dlist, memory, stdenv, template-haskell, text, transformers - }: - mkDerivation { - pname = "protocol-radius"; - version = "0.0.1.1"; - sha256 = "49982332f18246c9f46dc8f9500dcbd92a445d17124b4acd084568c14ac6a131"; - libraryHaskellDepends = [ - base bytestring cereal containers cryptonite dlist memory - template-haskell text transformers - ]; - doHaddock = false; - doCheck = false; - description = "parser and printer for radius protocol packet"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "protocol-radius-test" = callPackage - ({ mkDerivation, base, bytestring, cereal, containers - , protocol-radius, QuickCheck, quickcheck-simple, stdenv - , transformers - }: - mkDerivation { - pname = "protocol-radius-test"; - version = "0.0.1.0"; - sha256 = "b5cc9a15e7910ecb449d3bbb142b809fa34bee2079e772ca63d4bb975a41ada0"; - libraryHaskellDepends = [ - base bytestring cereal containers protocol-radius QuickCheck - quickcheck-simple transformers - ]; - doHaddock = false; - doCheck = false; - description = "testsuit of protocol-radius haskell package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "protolude" = callPackage - ({ mkDerivation, array, async, base, bytestring, containers - , deepseq, ghc-prim, hashable, mtl, mtl-compat, stdenv, stm, text - , transformers, transformers-compat - }: - mkDerivation { - pname = "protolude"; - version = "0.2.3"; - sha256 = "d23d39b5088f1656649c8e42fc86a20e48799d38f79d162fb38bd50d7ef7f37f"; - libraryHaskellDepends = [ - array async base bytestring containers deepseq ghc-prim hashable - mtl mtl-compat stm text transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sdiehl/protolude"; - description = "A small prelude"; - license = stdenv.lib.licenses.mit; - }) {}; - "proxied" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "proxied"; - version = "0.3"; - sha256 = "534d4d425f2834b39689e2af301bd5ff81d1619e65664a5efd797a0c88dbeb26"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/proxied"; - description = "Make functions consume Proxy instead of undefined"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "psql-helpers" = callPackage - ({ mkDerivation, base, postgresql-simple, stdenv }: - mkDerivation { - pname = "psql-helpers"; - version = "0.1.0.0"; - sha256 = "f13ca642072477d3ab0246c514e3fc78e0c5cb419345240fbad994ed2a3219f4"; - libraryHaskellDepends = [ base postgresql-simple ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/agrafix/psql-helpers#readme"; - description = "A small collection of helper functions to generate postgresql queries"; - license = stdenv.lib.licenses.mit; - }) {}; - "psqueues" = callPackage - ({ mkDerivation, base, deepseq, ghc-prim, hashable, stdenv }: - mkDerivation { - pname = "psqueues"; - version = "0.2.7.1"; - sha256 = "047e42ecd50d09fef99d1db9f8b1e511b64ea4b41afc435ad5fdd373d2ea8ec1"; - revision = "1"; - editedCabalFile = "0336d9ckixv4n23vy5l3xk0wavfn3z9xk105gig0zv70b3jh3r3y"; - libraryHaskellDepends = [ base deepseq ghc-prim hashable ]; - doHaddock = false; - doCheck = false; - description = "Pure priority search queues"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pure-zlib" = callPackage - ({ mkDerivation, array, base, base-compat, bytestring - , bytestring-builder, containers, fingertree, stdenv - }: - mkDerivation { - pname = "pure-zlib"; - version = "0.6.4"; - sha256 = "eb679aecb3fa310d28a31549cf83c29fba6f6e3c78bcdea82c9e22db36dc3017"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base base-compat bytestring bytestring-builder containers - fingertree - ]; - executableHaskellDepends = [ base base-compat bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/GaloisInc/pure-zlib"; - description = "A Haskell-only implementation of zlib / DEFLATE"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pureMD5" = callPackage - ({ mkDerivation, base, binary, bytestring, cereal, crypto-api - , stdenv, tagged - }: - mkDerivation { - pname = "pureMD5"; - version = "2.1.3"; - sha256 = "bef3358a5e3a45b649860a5792f052e2f927c0492a7056cf64425116c8a7b17d"; - libraryHaskellDepends = [ - base binary bytestring cereal crypto-api tagged - ]; - doHaddock = false; - doCheck = false; - description = "A Haskell-only implementation of the MD5 digest (hash) algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "purescript-bridge" = callPackage - ({ mkDerivation, base, containers, directory, filepath - , generic-deriving, lens, mtl, stdenv, text, transformers - }: - mkDerivation { - pname = "purescript-bridge"; - version = "0.13.0.0"; - sha256 = "2b1a6bbc0e1c155b20bb02356821185c7661d15cc8042ddfe12725eef2065149"; - libraryHaskellDepends = [ - base containers directory filepath generic-deriving lens mtl text - transformers - ]; - doHaddock = false; - doCheck = false; - description = "Generate PureScript data types from Haskell data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "pushbullet-types" = callPackage - ({ mkDerivation, aeson, base, http-api-data, microlens - , microlens-th, scientific, stdenv, text, time - , unordered-containers - }: - mkDerivation { - pname = "pushbullet-types"; - version = "0.4.1.0"; - sha256 = "6461a2cf5ff0b74f7caaf295ca7601922e9527f5bc9f37e3fbc6325026b5c85b"; - libraryHaskellDepends = [ - aeson base http-api-data microlens microlens-th scientific text - time unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Datatypes used by the Pushbullet APIs"; - license = stdenv.lib.licenses.mit; - }) {}; - "pusher-http-haskell" = callPackage - ({ mkDerivation, aeson, base, base16-bytestring, bytestring - , cryptonite, hashable, http-client, http-types, memory, stdenv - , text, time, transformers, unordered-containers, vector - }: - mkDerivation { - pname = "pusher-http-haskell"; - version = "1.5.1.7"; - sha256 = "ec5e08a5695d0ebd0e1624d2fa50bb86f0b2ef8977b84bc942c372483c32e106"; - libraryHaskellDepends = [ - aeson base base16-bytestring bytestring cryptonite hashable - http-client http-types memory text time transformers - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pusher-community/pusher-http-haskell"; - description = "Haskell client library for the Pusher HTTP API"; - license = stdenv.lib.licenses.mit; - }) {}; - "qchas" = callPackage - ({ mkDerivation, base, hmatrix, linear, random, stdenv }: - mkDerivation { - pname = "qchas"; - version = "1.1.0.1"; - sha256 = "a9f340d1a6d4f5f24f713b1105e4ec8bba0c24609dcef3fd95f104594232263d"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base hmatrix linear random ]; - executableHaskellDepends = [ base hmatrix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ardeleanasm/qchas#readme"; - description = "A library for implementing Quantum Algorithms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "qm-interpolated-string" = callPackage - ({ mkDerivation, base, bytestring, haskell-src-meta, stdenv - , template-haskell, text - }: - mkDerivation { - pname = "qm-interpolated-string"; - version = "0.3.0.0"; - sha256 = "e86b337d1531e75d448f7ab9101f8703b19fa5bc3a94c7ea5c26accd31d12baf"; - libraryHaskellDepends = [ - base bytestring haskell-src-meta template-haskell text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/unclechu/haskell-qm-interpolated-string"; - description = "Implementation of interpolated multiline strings"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "qnap-decrypt" = callPackage - ({ mkDerivation, base, binary, bytestring, cipher-aes128, conduit - , conduit-extra, crypto-api, directory, filepath - , optparse-applicative, stdenv, streaming-commons, tagged - , utf8-string - }: - mkDerivation { - pname = "qnap-decrypt"; - version = "0.3.4"; - sha256 = "bfcba1c5ed5ad0b578af6db285190bed2e33db56514569d55ea068dbe61f4668"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base binary bytestring cipher-aes128 conduit conduit-extra - crypto-api directory streaming-commons tagged utf8-string - ]; - executableHaskellDepends = [ - base binary bytestring cipher-aes128 conduit conduit-extra - crypto-api directory filepath optparse-applicative - streaming-commons tagged utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alexkazik/qnap-decrypt#readme"; - description = "Decrypt files encrypted by QNAP's Hybrid Backup Sync"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quadratic-irrational" = callPackage - ({ mkDerivation, arithmoi, base, containers, mtl, stdenv - , transformers - }: - mkDerivation { - pname = "quadratic-irrational"; - version = "0.0.6"; - sha256 = "209b70c62e4d3e83fb8a081576b7a0db9d8c3d50a3c7b32a63ed5c3953ec0d0a"; - revision = "1"; - editedCabalFile = "0i7dsl7zm9r7sgfs2cwmic3qbk15lc7kbhjd53vin89p21fh8mzm"; - libraryHaskellDepends = [ - arithmoi base containers mtl transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ion1/quadratic-irrational"; - description = "An implementation of quadratic irrationals"; - license = stdenv.lib.licenses.mit; - }) {}; - "quickbench" = callPackage - ({ mkDerivation, base, containers, directory, docopt, pretty-show - , process, safe, split, stdenv, tabular, time - }: - mkDerivation { - pname = "quickbench"; - version = "1.0"; - sha256 = "8bfe252e50a683346e753db312e9542f8d43256947ab215fcfd24af03787b926"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers directory docopt pretty-show process safe split - tabular time - ]; - executableHaskellDepends = [ base process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmichael/quickbench#readme"; - description = "quick & easy benchmarking of command-line programs"; - license = "GPL"; - }) {}; - "quickcheck-arbitrary-adt" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv }: - mkDerivation { - pname = "quickcheck-arbitrary-adt"; - version = "0.3.1.0"; - sha256 = "5c4a2e20366def76ba851211ac554e9a0f60535efcd0940606e4d410c27a45b9"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/plow-technologies/quickcheck-arbitrary-adt#readme"; - description = "Generic typeclasses for generating arbitrary ADTs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quickcheck-assertions" = callPackage - ({ mkDerivation, base, ieee754, pretty-show, QuickCheck, stdenv }: - mkDerivation { - pname = "quickcheck-assertions"; - version = "0.3.0"; - sha256 = "9b0328a788dcac0824a7d7496ab403eef04170551255c9e58fb6e2e319a9cacf"; - libraryHaskellDepends = [ base ieee754 pretty-show QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/s9gf4ult/quickcheck-assertions"; - description = "HUnit like assertions for QuickCheck"; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "quickcheck-instances" = callPackage - ({ mkDerivation, array, base, base-compat, bytestring - , case-insensitive, containers, hashable, old-time, QuickCheck - , scientific, stdenv, tagged, text, time, transformers - , transformers-compat, unordered-containers, uuid-types, vector - }: - mkDerivation { - pname = "quickcheck-instances"; - version = "0.3.19"; - sha256 = "57a4aefff05313fb07a651934088d18a584f8bcfeaa02305be65525f12409a56"; - libraryHaskellDepends = [ - array base base-compat bytestring case-insensitive containers - hashable old-time QuickCheck scientific tagged text time - transformers transformers-compat unordered-containers uuid-types - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/qc-instances"; - description = "Common quickcheck instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quickcheck-io" = callPackage - ({ mkDerivation, base, HUnit, QuickCheck, stdenv }: - mkDerivation { - pname = "quickcheck-io"; - version = "0.2.0"; - sha256 = "fb779119d79fe08ff4d502fb6869a70c9a8d5fd8ae0959f605c3c937efd96422"; - libraryHaskellDepends = [ base HUnit QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/quickcheck-io#readme"; - description = "Use HUnit assertions as QuickCheck properties"; - license = stdenv.lib.licenses.mit; - }) {}; - "quickcheck-simple" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv }: - mkDerivation { - pname = "quickcheck-simple"; - version = "0.1.0.4"; - sha256 = "808eb5966a97bd38a3992b280428a0b289ccb46c38397ea8e34661d1e1ec4414"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - description = "Test properties and default-mains for QuickCheck"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quickcheck-special" = callPackage - ({ mkDerivation, base, QuickCheck, special-values, stdenv }: - mkDerivation { - pname = "quickcheck-special"; - version = "0.1.0.6"; - sha256 = "9573898509bd30613bdf59338a5754251081420c59fb658727973e2e837f1cb6"; - revision = "1"; - editedCabalFile = "1whwmij115vw0qwkzlkc4z4yhj7iwwqjhf5aaxn5np0gh2gzihb3"; - libraryHaskellDepends = [ base QuickCheck special-values ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/quickcheck-special#readme"; - description = "Edge cases and special values for QuickCheck Arbitrary instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "quickcheck-state-machine" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, containers, exceptions - , lifted-async, matrix, monad-control, mtl, pretty-show, QuickCheck - , split, stdenv, stm, tree-diff, vector - }: - mkDerivation { - pname = "quickcheck-state-machine"; - version = "0.4.3"; - sha256 = "3d2b858e43764da5b9d390048e43ef91a4128b75a1921a8a7f68299ba1d43039"; - libraryHaskellDepends = [ - ansi-wl-pprint base containers exceptions lifted-async matrix - monad-control mtl pretty-show QuickCheck split stm tree-diff vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/advancedtelematic/quickcheck-state-machine#readme"; - description = "Test monadic programs using state machine based models"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "quickcheck-text" = callPackage - ({ mkDerivation, base, binary, bytestring, QuickCheck, stdenv, text - }: - mkDerivation { - pname = "quickcheck-text"; - version = "0.1.2.1"; - sha256 = "4442fdb8ae6cd469c04957d34fee46039c9dc0ddce23ce6050babe6826d0ab09"; - libraryHaskellDepends = [ base binary bytestring QuickCheck text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/olorin/quickcheck-text"; - description = "Alternative arbitrary instance for Text"; - license = stdenv.lib.licenses.mit; - }) {}; - "quickcheck-unicode" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv }: - mkDerivation { - pname = "quickcheck-unicode"; - version = "1.0.1.0"; - sha256 = "132005ea7edff35e95139c36232a70698cd0f4f4d79dfaa4e66fbcf557d08368"; - libraryHaskellDepends = [ base QuickCheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/quickcheck-unicode"; - description = "Generator and shrink functions for testing Unicode-related software"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "rainbow" = callPackage - ({ mkDerivation, base, bytestring, lens-simple, process, stdenv - , text - }: - mkDerivation { - pname = "rainbow"; - version = "0.30.0.2"; - sha256 = "be021eb05bc3e6a00b4fc10e1af941afa0c0a69ab83e5204e8455cfd5c0f5ec7"; - libraryHaskellDepends = [ - base bytestring lens-simple process text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.github.com/massysett/rainbow"; - description = "Print text to terminal with colors and effects"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rainbox" = callPackage - ({ mkDerivation, base, bytestring, containers, lens-simple, rainbow - , stdenv, text - }: - mkDerivation { - pname = "rainbox"; - version = "0.20.0.0"; - sha256 = "937f61d2fbc7b41f065cec9bb9d6550b54346e52b788d30f73ef78cf8545b61f"; - libraryHaskellDepends = [ - base bytestring containers lens-simple rainbow text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.github.com/massysett/rainbox"; - description = "Two-dimensional box pretty printing, with colors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ramus" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "ramus"; - version = "0.1.2"; - sha256 = "dcddddc416e79c401604565b7297a945f814edeed056fb3b897eda5f4f0b794e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NickSeagull/ramus#readme"; - description = "Elm signal system for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "rando" = callPackage - ({ mkDerivation, base, stdenv, tf-random, vector }: - mkDerivation { - pname = "rando"; - version = "0.0.0.4"; - sha256 = "8eb8f4a5498ede50c468b74b04f9931cbcd6b4e6b03cf8dd56ad0b84c8ad7cb3"; - libraryHaskellDepends = [ base tf-random vector ]; - doHaddock = false; - doCheck = false; - description = "Easy-to-use randomness for livecoding"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "random" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "random"; - version = "1.1"; - sha256 = "b718a41057e25a3a71df693ab0fe2263d492e759679b3c2fea6ea33b171d3a5a"; - revision = "1"; - editedCabalFile = "1pv5d7bm2rgap7llp5vjsplrg048gvf0226y0v19gpvdsx7n4rvv"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - description = "random number library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "random-bytestring" = callPackage - ({ mkDerivation, base, bytestring, mwc-random, pcg-random, stdenv - }: - mkDerivation { - pname = "random-bytestring"; - version = "0.1.3.1"; - sha256 = "33a826fd04068902acb62b04cb88c5a0c47e483b88053be9f6de1d64911f0eb4"; - revision = "1"; - editedCabalFile = "0gk5hcx1j06rklfd2cv63kh5dzjk8hr184riam784c7s9zg3s9a4"; - libraryHaskellDepends = [ base bytestring mwc-random pcg-random ]; - doHaddock = false; - doCheck = false; - homepage = "https://www.github.com/larskuhtz/random-bytestring"; - description = "Efficient generation of random bytestrings"; - license = stdenv.lib.licenses.mit; - }) {}; - "random-fu" = callPackage - ({ mkDerivation, base, erf, log-domain, math-functions, monad-loops - , mtl, random-shuffle, random-source, rvar, stdenv, syb - , template-haskell, transformers, vector - }: - mkDerivation { - pname = "random-fu"; - version = "0.2.7.0"; - sha256 = "b6b3a4b3ede34991d26e0447f90b14fa66af61f376fa0aed2e0899fdc879b0c4"; - libraryHaskellDepends = [ - base erf log-domain math-functions monad-loops mtl random-shuffle - random-source rvar syb template-haskell transformers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/random-fu"; - description = "Random number generation"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "random-shuffle" = callPackage - ({ mkDerivation, base, MonadRandom, random, stdenv }: - mkDerivation { - pname = "random-shuffle"; - version = "0.0.4"; - sha256 = "52704411f040fd0bf2361dad162e35dc13caa6535b2e4908d3513c00a95d0615"; - libraryHaskellDepends = [ base MonadRandom random ]; - doHaddock = false; - doCheck = false; - description = "Random shuffle implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "random-source" = callPackage - ({ mkDerivation, base, flexible-defaults, mersenne-random-pure64 - , mtl, mwc-random, random, stateref, stdenv, syb, template-haskell - , th-extras - }: - mkDerivation { - pname = "random-source"; - version = "0.3.0.6"; - sha256 = "f3dfec3aef0614ff856abbba018f3bc3446295157895ea09a015737d67205b73"; - libraryHaskellDepends = [ - base flexible-defaults mersenne-random-pure64 mtl mwc-random random - stateref syb template-haskell th-extras - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/random-fu"; - description = "Generic basis for random number generators"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "random-tree" = callPackage - ({ mkDerivation, base, containers, lens, MonadRandom, mtl, random - , random-shuffle, stdenv, transformers, tree-fun - }: - mkDerivation { - pname = "random-tree"; - version = "0.6.0.5"; - sha256 = "2b604e7ce184e2c877fac63dbac1df3060cdc023427b8eb5844106a826591cc2"; - libraryHaskellDepends = [ - base containers lens MonadRandom mtl random random-shuffle - transformers tree-fun - ]; - doHaddock = false; - doCheck = false; - description = "Create random trees"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "range" = callPackage - ({ mkDerivation, base, free, parsec, stdenv }: - mkDerivation { - pname = "range"; - version = "0.2.1.1"; - sha256 = "ac760a2408d51e40148b93b72d79320f13dfc8a68424d2510b518a49ef87ee8d"; - libraryHaskellDepends = [ base free parsec ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/robertmassaioli/range"; - description = "An efficient and versatile range library"; - license = stdenv.lib.licenses.mit; - }) {}; - "range-set-list" = callPackage - ({ mkDerivation, base, containers, deepseq, hashable, stdenv }: - mkDerivation { - pname = "range-set-list"; - version = "0.1.3"; - sha256 = "e51b393d2c09e3c2b0c21523389a48ce8e6090413abdfff1c623815c76cc96df"; - revision = "1"; - editedCabalFile = "00ddj7if8lcrqf5c882m4slm15sdwcghz7d2fz222c7jcw1ahvdr"; - libraryHaskellDepends = [ base containers deepseq hashable ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/range-set-list#readme"; - description = "Memory efficient sets with ranges of elements"; - license = stdenv.lib.licenses.mit; - }) {}; - "rank1dynamic" = callPackage - ({ mkDerivation, base, binary, stdenv }: - mkDerivation { - pname = "rank1dynamic"; - version = "0.4.0"; - sha256 = "3c424bfe52b7d4766fd66ea34c204cf920b146455711d8d10d580ca6c175ab1d"; - revision = "1"; - editedCabalFile = "1idh1iz15pzdhrhy19584i9ahz41ijbmf56wbb2wns2kipy6w9lr"; - libraryHaskellDepends = [ base binary ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-distributed.github.com"; - description = "Like Data.Dynamic/Data.Typeable but with support for rank-1 polymorphic types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rank2classes" = callPackage - ({ mkDerivation, base, distributive, stdenv, template-haskell - , transformers - }: - mkDerivation { - pname = "rank2classes"; - version = "1.2.1"; - sha256 = "60595259892e20014ba4e1713916fe8e5f597e6a29c1c4fd8c16f88d182c6f35"; - libraryHaskellDepends = [ - base distributive template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/blamario/grampa/tree/master/rank2classes"; - description = "standard type constructor class hierarchy, only with methods of rank 2 types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rasterific-svg" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, directory - , filepath, FontyFruity, JuicyPixels, lens, linear, mtl - , optparse-applicative, primitive, Rasterific, scientific, stdenv - , svg-tree, text, transformers, vector - }: - mkDerivation { - pname = "rasterific-svg"; - version = "0.3.3.2"; - sha256 = "02db61c98e6e550824e8d9813efe5e97293843e39e1c00e88837061b61a017c4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary bytestring containers directory filepath FontyFruity - JuicyPixels lens linear mtl primitive Rasterific scientific - svg-tree text transformers vector - ]; - executableHaskellDepends = [ - base bytestring directory filepath FontyFruity JuicyPixels - optparse-applicative Rasterific svg-tree - ]; - doHaddock = false; - doCheck = false; - description = "SVG renderer based on Rasterific"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ratel" = callPackage - ({ mkDerivation, aeson, base, bytestring, case-insensitive - , containers, http-client, http-client-tls, http-types, stdenv - , text, uuid - }: - mkDerivation { - pname = "ratel"; - version = "1.0.8"; - sha256 = "d342fe2a3676d9371f81c0072c5a98c1ddaf782c3841b8590fab791a25c8b010"; - libraryHaskellDepends = [ - aeson base bytestring case-insensitive containers http-client - http-client-tls http-types text uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/ratel#readme"; - description = "Notify Honeybadger about exceptions"; - license = stdenv.lib.licenses.mit; - }) {}; - "ratel-wai" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, containers - , http-client, ratel, stdenv, wai - }: - mkDerivation { - pname = "ratel-wai"; - version = "1.0.5"; - sha256 = "fd4c7c1418fdb48b462b12dcf6e28c86fd33a69ce0e21fa686dff825d87f621e"; - libraryHaskellDepends = [ - base bytestring case-insensitive containers http-client ratel wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/ratel-wai#readme"; - description = "Notify Honeybadger about exceptions via a WAI middleware"; - license = stdenv.lib.licenses.mit; - }) {}; - "rattletrap" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, binary, binary-bits - , bytestring, containers, filepath, http-client, http-client-tls - , stdenv, template-haskell, text, transformers - }: - mkDerivation { - pname = "rattletrap"; - version = "6.0.2"; - sha256 = "216295103133cbd4fef5ee81f6d3b84a959dfca90905fbcd835ffd60747804a4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty base binary binary-bits bytestring containers - filepath http-client http-client-tls template-haskell text - transformers - ]; - executableHaskellDepends = [ - aeson aeson-pretty base binary binary-bits bytestring containers - filepath http-client http-client-tls template-haskell text - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/rattletrap#readme"; - description = "Parse and generate Rocket League replays"; - license = stdenv.lib.licenses.mit; - }) {}; - "raw-strings-qq" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "raw-strings-qq"; - version = "1.1"; - sha256 = "2e011ec26aeaa53ab43c30b7d9b5b0f661f24b4ebef8884c12c571353c0fbed3"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/23Skidoo/raw-strings-qq"; - description = "Raw string literals for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rawfilepath" = callPackage - ({ mkDerivation, base, bytestring, stdenv, unix }: - mkDerivation { - pname = "rawfilepath"; - version = "0.2.4"; - sha256 = "cbb01b49f7ff0271a8c6e4124f93515e6cdabf9581278594e19dd916b6bd5bd3"; - libraryHaskellDepends = [ base bytestring unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xtendo-org/rawfilepath#readme"; - description = "Use RawFilePath instead of FilePath"; - license = stdenv.lib.licenses.asl20; - }) {}; - "rawstring-qm" = callPackage - ({ mkDerivation, base, bytestring, stdenv, template-haskell, text - }: - mkDerivation { - pname = "rawstring-qm"; - version = "0.2.3.0"; - sha256 = "11a177bb7d685fb6a98390630196bd544e877b7460648e61a2905c21a71268fe"; - libraryHaskellDepends = [ base bytestring template-haskell text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tolysz/rawstring-qm"; - description = "Simple raw string quotation and dictionary interpolation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rcu" = callPackage - ({ mkDerivation, atomic-primops, base, Cabal, cabal-doctest, fail - , ghc-prim, parallel, primitive, stdenv, transformers - }: - mkDerivation { - pname = "rcu"; - version = "0.2.3"; - sha256 = "e10cbd0bd02adf8bfa7c709b66b5fc611c6765f8d97dc54a02b9963f08f2809f"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - atomic-primops base fail ghc-prim parallel primitive transformers - ]; - executableHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/rcu/"; - description = "Read-Copy-Update for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "re2" = callPackage - ({ mkDerivation, base, bytestring, re2, stdenv, vector }: - mkDerivation { - pname = "re2"; - version = "0.3"; - sha256 = "cb223e3717838dcd501d4758e0348e6eff6978318f62053cf7dd3286ef5b996a"; - libraryHaskellDepends = [ base bytestring vector ]; - librarySystemDepends = [ re2 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rblaze/haskell-re2#readme"; - description = "Bindings to the re2 regular expression library"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) re2;}; - "read-editor" = callPackage - ({ mkDerivation, base, directory, process, stdenv }: - mkDerivation { - pname = "read-editor"; - version = "0.1.0.2"; - sha256 = "ed8aeca86823fbaf11a0a543fd106c9c3abe65216ea974ed56050cbebf777085"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yamadapc/haskell-read-editor"; - description = "Opens a temporary file on the system's EDITOR and returns the resulting edits"; - license = stdenv.lib.licenses.mit; - }) {}; - "read-env-var" = callPackage - ({ mkDerivation, base, exceptions, stdenv, transformers }: - mkDerivation { - pname = "read-env-var"; - version = "1.0.0.0"; - sha256 = "03f3c8176fc08ce838ae772f13991258e2b496712cc71edb1a00336e7ce0b75c"; - libraryHaskellDepends = [ base exceptions transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/read-env-var#readme"; - description = "Functions for safely reading environment variables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "readable" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "readable"; - version = "0.3.1"; - sha256 = "703037ad2cca4d6d42ba23e2758d1911cd82e3e922c4078076c273231e4b43c9"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mightybyte/readable"; - description = "Reading from Text and ByteString"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rebase" = callPackage - ({ mkDerivation, base, base-prelude, bifunctors, bytestring - , containers, contravariant, contravariant-extras, deepseq, dlist - , either, fail, hashable, mtl, profunctors, scientific - , semigroupoids, semigroups, stdenv, stm, text, time, transformers - , unordered-containers, uuid, vector, void - }: - mkDerivation { - pname = "rebase"; - version = "1.3"; - sha256 = "073aedeef6788525d069b4d4b7e3acd2a0918149a5e439d54ef82f4cf626e109"; - revision = "1"; - editedCabalFile = "1yz51pghns6xanzdnlkagghpzwnkl7wjqnqcp5gs0zs1iywrbl45"; - libraryHaskellDepends = [ - base base-prelude bifunctors bytestring containers contravariant - contravariant-extras deepseq dlist either fail hashable mtl - profunctors scientific semigroupoids semigroups stm text time - transformers unordered-containers uuid vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/rebase"; - description = "A more progressive alternative to the \"base\" package"; - license = stdenv.lib.licenses.mit; - }) {}; - "record-dot-preprocessor" = callPackage - ({ mkDerivation, base, extra, filepath, stdenv }: - mkDerivation { - pname = "record-dot-preprocessor"; - version = "0.1.5"; - sha256 = "948b56a4df7139579b035214d1ef4e6c220547d7de2dd249d636c1775e0257ed"; - revision = "1"; - editedCabalFile = "1hggzp6fh071f2d11pn1y2rgczgxgvcfw86717gpxsm34kr60pgb"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ base extra filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/record-dot-preprocessor#readme"; - description = "Preprocessor to allow record.field syntax"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "records-sop" = callPackage - ({ mkDerivation, base, deepseq, generics-sop, ghc-prim, stdenv }: - mkDerivation { - pname = "records-sop"; - version = "0.1.0.2"; - sha256 = "059257b7e81768e0ce4e62f0c7b15fc4976c9903015d8cf6aa330778301bfda0"; - revision = "1"; - editedCabalFile = "082f4dmdvbnv6jq28mrva8clxif366vcbn9m8d1bb8lcf9h3qxjb"; - libraryHaskellDepends = [ base deepseq generics-sop ghc-prim ]; - doHaddock = false; - doCheck = false; - description = "Record subtyping and record utilities with generics-sop"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "recursion-schemes" = callPackage - ({ mkDerivation, base, base-orphans, comonad, free, stdenv - , template-haskell, th-abstraction, transformers - }: - mkDerivation { - pname = "recursion-schemes"; - version = "5.1.1"; - sha256 = "60e5e0b980e826fad5f7bfec12718cbd9ab0232d7b77cff8f05f1a3aa5088163"; - libraryHaskellDepends = [ - base base-orphans comonad free template-haskell th-abstraction - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/recursion-schemes/"; - description = "Representing common recursion patterns as higher-order functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "reducers" = callPackage - ({ mkDerivation, array, base, bytestring, containers, fingertree - , hashable, semigroupoids, semigroups, stdenv, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "reducers"; - version = "3.12.3"; - sha256 = "7186733767405984c1eda96b18908f458b379f116a1589cd66f4319fe8458e27"; - revision = "1"; - editedCabalFile = "1v0r75wkaahxdv4y0sqgcikvgwymiz12fa8nkk59n1g4x9nng9wb"; - libraryHaskellDepends = [ - array base bytestring containers fingertree hashable semigroupoids - semigroups text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/reducers/"; - description = "Semigroups, specialized containers and a general map/reduce framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "refact" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "refact"; - version = "0.3.0.2"; - sha256 = "0ad029727797c8ca5d179c7abf1bfc135d86a7d72cf93785ee12ad243aeb1f6c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Specify refactorings to perform with apply-refact"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "references" = callPackage - ({ mkDerivation, array, base, containers, directory, either - , filepath, instance-control, mtl, stdenv, template-haskell, text - , transformers, uniplate - }: - mkDerivation { - pname = "references"; - version = "0.3.3.1"; - sha256 = "bc07606d36639148374e7a29a67ac489c7a0ed02655311b5d633a144a746c10e"; - libraryHaskellDepends = [ - array base containers directory either filepath instance-control - mtl template-haskell text transformers uniplate - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/lazac/references"; - description = "Selectors for reading and updating data"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "refined" = callPackage - ({ mkDerivation, base, deepseq, exceptions, mtl, prettyprinter - , stdenv, template-haskell, transformers - }: - mkDerivation { - pname = "refined"; - version = "0.3.0.0"; - sha256 = "7acef92eb96ec709133556896c37193d95aad8b1421c9e117d8d5ab3f981cf80"; - revision = "1"; - editedCabalFile = "02yfhpdxqs5gznjy738a18cakdm5y9f0ysssxlqnnyqby262kabp"; - libraryHaskellDepends = [ - base deepseq exceptions mtl prettyprinter template-haskell - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/refined"; - description = "Refinement types with static and runtime checking"; - license = stdenv.lib.licenses.mit; - }) {}; - "reflection" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "reflection"; - version = "2.1.4"; - sha256 = "f22fc478d43a36ec3d6c48c57ec53636c0bf936f3733b9a2b34e1a2e6351c44d"; - revision = "1"; - editedCabalFile = "05ibi4ivvh87d96xl09yh0day08p5www5vp568mvn2dp37rxyngc"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/reflection"; - description = "Reifies arbitrary terms into types that can be reflected back into terms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex" = callPackage - ({ mkDerivation, array, base, base-compat, bytestring, containers - , hashable, regex-base, regex-pcre-builtin, regex-tdfa - , regex-tdfa-text, stdenv, template-haskell, text, time - , time-locale-compat, transformers, unordered-containers - , utf8-string - }: - mkDerivation { - pname = "regex"; - version = "1.0.2.0"; - sha256 = "aacd9b91e0598931745db5a3eea1cdfd6edf3b1e18ceb288c82eb8088b005fb8"; - libraryHaskellDepends = [ - array base base-compat bytestring containers hashable regex-base - regex-pcre-builtin regex-tdfa regex-tdfa-text template-haskell text - time time-locale-compat transformers unordered-containers - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://regex.uk"; - description = "Toolkit for regex-base"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-applicative" = callPackage - ({ mkDerivation, base, containers, stdenv, transformers }: - mkDerivation { - pname = "regex-applicative"; - version = "0.3.3"; - sha256 = "6659a2cc1c8137d77ef57f75027723b075d473354d935233d98b1ae1b03c3be6"; - libraryHaskellDepends = [ base containers transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/regex-applicative"; - description = "Regex-based parsing with applicative interface"; - license = stdenv.lib.licenses.mit; - }) {}; - "regex-applicative-text" = callPackage - ({ mkDerivation, base, regex-applicative, stdenv, text }: - mkDerivation { - pname = "regex-applicative-text"; - version = "0.1.0.1"; - sha256 = "b093051f80865d257da2ded8ad1b566927b01b3d2f86d41da2ffee4a26c4e2d9"; - revision = "3"; - editedCabalFile = "1h911harqgfgkhdr22cndj2fdsl48sqhn8q0akgjngpf3p8z0bvv"; - libraryHaskellDepends = [ base regex-applicative text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/regex-applicative-text#readme"; - description = "regex-applicative on text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-base" = callPackage - ({ mkDerivation, array, base, bytestring, containers, mtl, stdenv - }: - mkDerivation { - pname = "regex-base"; - version = "0.93.2"; - sha256 = "20dc5713a16f3d5e2e6d056b4beb9cfdc4368cd09fd56f47414c847705243278"; - libraryHaskellDepends = [ array base bytestring containers mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://sourceforge.net/projects/lazy-regex"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-compat" = callPackage - ({ mkDerivation, array, base, regex-base, regex-posix, stdenv }: - mkDerivation { - pname = "regex-compat"; - version = "0.95.1"; - sha256 = "d57cb1a5a4d66753b18eaa37a1621246f660472243b001894f970037548d953b"; - libraryHaskellDepends = [ array base regex-base regex-posix ]; - doHaddock = false; - doCheck = false; - homepage = "http://sourceforge.net/projects/lazy-regex"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-compat-tdfa" = callPackage - ({ mkDerivation, array, base, regex-base, regex-tdfa, stdenv }: - mkDerivation { - pname = "regex-compat-tdfa"; - version = "0.95.1.4"; - sha256 = "4fa38ed24ae390eeffe6eef04bbe632d7ecd02b9123729e976e7420f927520dd"; - libraryHaskellDepends = [ array base regex-base regex-tdfa ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/shelarcy/regex-compat-tdfa"; - description = "Unicode Support version of Text.Regex, using regex-tdfa"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-pcre" = callPackage - ({ mkDerivation, array, base, bytestring, containers, pcre - , regex-base, stdenv - }: - mkDerivation { - pname = "regex-pcre"; - version = "0.94.4"; - sha256 = "8eaa7d4ac6c0a4ba35aa59fc3f6b8f8e252bb25a47e136791446a74752e226c0"; - libraryHaskellDepends = [ - array base bytestring containers regex-base - ]; - librarySystemDepends = [ pcre ]; - doHaddock = false; - doCheck = false; - homepage = "http://hackage.haskell.org/package/regex-pcre"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) pcre;}; - "regex-pcre-builtin" = callPackage - ({ mkDerivation, array, base, bytestring, containers, regex-base - , stdenv - }: - mkDerivation { - pname = "regex-pcre-builtin"; - version = "0.94.4.8.8.35"; - sha256 = "0bd1b695de953ba4b6e6e0de007021c346cb2a6c8e09356fbcd34f8a79d2ea78"; - libraryHaskellDepends = [ - array base bytestring containers regex-base - ]; - doHaddock = false; - doCheck = false; - homepage = "http://hackage.haskell.org/package/regex-pcre"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-pcre-text" = callPackage - ({ mkDerivation, array, base, bytestring, regex-base - , regex-pcre-builtin, regex-tdfa-text, stdenv, text - }: - mkDerivation { - pname = "regex-pcre-text"; - version = "0.94.0.1"; - sha256 = "17991ed7b00da5cfb2efa0cefac16f9e0452fc794fe538d26d5cc802f0d8e9bd"; - libraryHaskellDepends = [ - array base bytestring regex-base regex-pcre-builtin regex-tdfa-text - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdornan/regex-pcre-text"; - description = "Text-based PCRE API for regex-base"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-posix" = callPackage - ({ mkDerivation, array, base, bytestring, containers, regex-base - , stdenv - }: - mkDerivation { - pname = "regex-posix"; - version = "0.95.2"; - sha256 = "56019921cd4a4c9682b81ec614236fea816ba8ed8785a1640cd66d8b24fc703e"; - libraryHaskellDepends = [ - array base bytestring containers regex-base - ]; - doHaddock = false; - doCheck = false; - homepage = "http://sourceforge.net/projects/lazy-regex"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-tdfa" = callPackage - ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl - , parsec, regex-base, stdenv - }: - mkDerivation { - pname = "regex-tdfa"; - version = "1.2.3.1"; - sha256 = "8aaaeeecf050807c7c514d4dd1763ac63bd121782de5a0847bef5d48a095ea50"; - libraryHaskellDepends = [ - array base bytestring containers ghc-prim mtl parsec regex-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChrisKuklewicz/regex-tdfa"; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-tdfa-text" = callPackage - ({ mkDerivation, array, base, regex-base, regex-tdfa, stdenv, text - }: - mkDerivation { - pname = "regex-tdfa-text"; - version = "1.0.0.3"; - sha256 = "38d77a0d225c306c52c6d4eed12d11d05a4bc4194d547cb9a7a9b6f5a8792001"; - libraryHaskellDepends = [ array base regex-base regex-tdfa text ]; - doHaddock = false; - doCheck = false; - description = "Text interface for regex-tdfa"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "regex-with-pcre" = callPackage - ({ mkDerivation, base, base-compat, bytestring, containers, regex - , regex-base, regex-pcre-builtin, regex-pcre-text, regex-tdfa - , stdenv, template-haskell, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "regex-with-pcre"; - version = "1.0.2.0"; - sha256 = "53c7bd8fc0e361b04af3bd3f2f546826a88b6827b252688d4ebb3fb8092f76a7"; - libraryHaskellDepends = [ - base base-compat bytestring containers regex regex-base - regex-pcre-builtin regex-pcre-text regex-tdfa template-haskell text - transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://regex.uk"; - description = "Toolkit for regex-base"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "registry" = callPackage - ({ mkDerivation, base, containers, exceptions, hashable, mtl - , protolude, resourcet, semigroupoids, semigroups, stdenv, text - , transformers-base - }: - mkDerivation { - pname = "registry"; - version = "0.1.2.6"; - sha256 = "83afe009215a35b3c3c47bbb3cb3d94e738082f9ec6818c1d7f15396cfacff6b"; - revision = "1"; - editedCabalFile = "1rw3mlpbgwjm5b3bh651awx5d64zz4829dbsv4dlsywkdn0wp53l"; - libraryHaskellDepends = [ - base containers exceptions hashable mtl protolude resourcet - semigroupoids semigroups text transformers-base - ]; - doHaddock = false; - doCheck = false; - description = "data structure for assembling components"; - license = stdenv.lib.licenses.mit; - }) {}; - "reinterpret-cast" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "reinterpret-cast"; - version = "0.1.0"; - sha256 = "5654622c904b42c62f2473c64624715dbd458ea00209ed9ab39396eabc1353e4"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/reinterpret-cast"; - description = "Memory reinterpretation casts for Float/Double and Word32/Word64"; - license = stdenv.lib.licenses.mit; - }) {}; - "relapse" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv }: - mkDerivation { - pname = "relapse"; - version = "1.0.0.0"; - sha256 = "65c68af5e3d18e67bd6f81ab62ea9cc271d8283d876f7baf1c4ee64515a9aa19"; - libraryHaskellDepends = [ attoparsec base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iostat/relapse#readme"; - description = "Sensible RLP encoding"; - license = stdenv.lib.licenses.mit; - }) {}; - "relational-query" = callPackage - ({ mkDerivation, array, base, bytestring, containers, dlist - , names-th, persistable-record, product-isomorphic, sql-words - , stdenv, template-haskell, text, th-reify-compat, time - , time-locale-compat, transformers - }: - mkDerivation { - pname = "relational-query"; - version = "0.12.1.0"; - sha256 = "33d12441a13c0480b40ca6377413e40b96141fb7da6205e8510adf49201dadd5"; - libraryHaskellDepends = [ - array base bytestring containers dlist names-th persistable-record - product-isomorphic sql-words template-haskell text th-reify-compat - time time-locale-compat transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "Typeful, Modular, Relational, algebraic query engine"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "relational-query-HDBC" = callPackage - ({ mkDerivation, base, containers, convertible, dlist, HDBC - , HDBC-session, names-th, persistable-record, product-isomorphic - , relational-query, relational-schemas, sql-words, stdenv - , template-haskell, th-data-compat, transformers - }: - mkDerivation { - pname = "relational-query-HDBC"; - version = "0.7.1.1"; - sha256 = "b30acd65cf9fc42e28188018435137ae29ef491b82e4dc5ece7c434b3a9eff51"; - libraryHaskellDepends = [ - base containers convertible dlist HDBC HDBC-session names-th - persistable-record product-isomorphic relational-query - relational-schemas sql-words template-haskell th-data-compat - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "HDBC instance of relational-query and typed query interface for HDBC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "relational-record" = callPackage - ({ mkDerivation, base, persistable-record - , persistable-types-HDBC-pg, product-isomorphic, relational-query - , relational-query-HDBC, stdenv - }: - mkDerivation { - pname = "relational-record"; - version = "0.2.2.0"; - sha256 = "0bbd2663c394a39a7b3d9bcd257d91e3312be7f3c8df562b6868e82c0b96b3da"; - libraryHaskellDepends = [ - base persistable-record persistable-types-HDBC-pg - product-isomorphic relational-query relational-query-HDBC - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "Meta package of Relational Record"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "relational-schemas" = callPackage - ({ mkDerivation, base, bytestring, containers, relational-query - , stdenv, template-haskell, time - }: - mkDerivation { - pname = "relational-schemas"; - version = "0.1.6.2"; - sha256 = "5522efa683c5da8c37b09d2ebc636bc8d60804ed2372912ca7cc80793e45a7b0"; - libraryHaskellDepends = [ - base bytestring containers relational-query template-haskell time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "RDBMSs' schema templates for relational-query"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "relude" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim - , hashable, mtl, stdenv, stm, text, transformers - , unordered-containers - }: - mkDerivation { - pname = "relude"; - version = "0.4.0"; - sha256 = "2ec5f256d6813ad87c2fa00780b26e071e6ce917bbee1e5a0868690d5194e80f"; - libraryHaskellDepends = [ - base bytestring containers deepseq ghc-prim hashable mtl stm text - transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/relude"; - description = "Custom prelude from Kowainik"; - license = stdenv.lib.licenses.mit; - }) {}; - "renderable" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv, transformers - }: - mkDerivation { - pname = "renderable"; - version = "0.2.0.1"; - sha256 = "d1ea5a8d2da8913700c326c3e757c8c4c8a87f1353125bbc9ea372729e04b6c5"; - libraryHaskellDepends = [ base containers hashable transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/schell/renderable"; - description = "An API for managing renderable resources"; - license = stdenv.lib.licenses.mit; - }) {}; - "repa" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, QuickCheck, stdenv - , template-haskell, vector - }: - mkDerivation { - pname = "repa"; - version = "3.4.1.4"; - sha256 = "43607a5de4b89b8e58bfcbc261445d89fa40b685d43952797704b80d09e5a39e"; - revision = "2"; - editedCabalFile = "16kyy7ck3yki0mlcap0bbiadcn18yn6x90m4s2prkasi9ip0pcs8"; - libraryHaskellDepends = [ - base bytestring ghc-prim QuickCheck template-haskell vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://repa.ouroborus.net"; - description = "High performance, regular, shape polymorphic parallel arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "repa-algorithms" = callPackage - ({ mkDerivation, base, repa, stdenv, vector }: - mkDerivation { - pname = "repa-algorithms"; - version = "3.4.1.3"; - sha256 = "de586fe7e14e0e000da50022e2129cabfd47773ba7844753c535c982f20e0fae"; - libraryHaskellDepends = [ base repa vector ]; - doHaddock = false; - doCheck = false; - homepage = "http://repa.ouroborus.net"; - description = "Algorithms using the Repa array library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "repa-io" = callPackage - ({ mkDerivation, base, binary, bmp, bytestring, old-time, repa - , stdenv, vector - }: - mkDerivation { - pname = "repa-io"; - version = "3.4.1.1"; - sha256 = "b5dbca96a988fb8bd918288ea1cfcf215fe46062e45001b209603b63a39ba9da"; - revision = "3"; - editedCabalFile = "027vn7an0hm3ysnzk19y0dbjpah0wpg96dgb55149x1310vwybxl"; - libraryHaskellDepends = [ - base binary bmp bytestring old-time repa vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://repa.ouroborus.net"; - description = "Read and write Repa arrays in various formats"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "repline" = callPackage - ({ mkDerivation, base, containers, haskeline, mtl, process, stdenv - }: - mkDerivation { - pname = "repline"; - version = "0.2.0.0"; - sha256 = "ecc72092d0340b896ee6bf96bf6645694dbcd33361725a2cd28c5ab5d60c02de"; - libraryHaskellDepends = [ base containers haskeline mtl process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sdiehl/repline"; - description = "Haskeline wrapper for GHCi-like REPL interfaces"; - license = stdenv.lib.licenses.mit; - }) {}; - "req" = callPackage - ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder - , bytestring, case-insensitive, connection, data-default-class - , http-api-data, http-client, http-client-tls, http-types - , monad-control, mtl, retry, stdenv, text, time, transformers - , transformers-base - }: - mkDerivation { - pname = "req"; - version = "1.2.1"; - sha256 = "133da0f08c9c9b9331004bf6ec5955147aee46005ec1500aa13dcac45c940fe9"; - revision = "3"; - editedCabalFile = "1sbm2rk2q56gma2wja47q1rc8a2pizl8487g5z4fy1zynxm5inyj"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson authenticate-oauth base blaze-builder bytestring - case-insensitive connection data-default-class http-api-data - http-client http-client-tls http-types monad-control mtl retry text - time transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/req"; - description = "Easy-to-use, type-safe, expandable, high-level HTTP client library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "req-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, http-client, req - , resourcet, stdenv, transformers - }: - mkDerivation { - pname = "req-conduit"; - version = "1.0.0"; - sha256 = "1da764e4bdc5454aef3d79cff2d72c9fa393a8d049ab14c3ba2be77325d96ba4"; - revision = "5"; - editedCabalFile = "1vbki857d5xj54s83r7kqirrg9a738xr55d40xqcaxxm7ki4s63i"; - libraryHaskellDepends = [ - base bytestring conduit http-client req resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/req-conduit"; - description = "Conduit helpers for the req HTTP client library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "req-url-extra" = callPackage - ({ mkDerivation, aeson, base, data-default-class, modern-uri, req - , stdenv, text - }: - mkDerivation { - pname = "req-url-extra"; - version = "0.1.0.0"; - sha256 = "b3de266ad49fb3c03ff26d589d89f81ddea7f319900b07e59843e57986d37d84"; - revision = "2"; - editedCabalFile = "0srj9fcbm9y8ddqgs8wc6caxamhgnic54y8qpxwnqdxrggdfkk67"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base modern-uri req ]; - executableHaskellDepends = [ - aeson base data-default-class modern-uri req text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rcook/req-url-extra#readme"; - description = "Provides URI/URL helper functions for use with Req"; - license = stdenv.lib.licenses.mit; - }) {}; - "rerebase" = callPackage - ({ mkDerivation, rebase, stdenv }: - mkDerivation { - pname = "rerebase"; - version = "1.3"; - sha256 = "ca155b086b4c83da781602427203f2180e7ee581fc4aae02783f7da893c98599"; - libraryHaskellDepends = [ rebase ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/rerebase"; - description = "Reexports from \"base\" with a bunch of other standard libraries"; - license = stdenv.lib.licenses.mit; - }) {}; - "resource-pool" = callPackage - ({ mkDerivation, base, hashable, monad-control, stdenv, stm, time - , transformers, transformers-base, vector - }: - mkDerivation { - pname = "resource-pool"; - version = "0.2.3.2"; - sha256 = "8627eea2bea8824af2723646e74e2af0c73f583dd0c496c9fd242cd9d242bc12"; - libraryHaskellDepends = [ - base hashable monad-control stm time transformers transformers-base - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bos/pool"; - description = "A high-performance striped resource pooling implementation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "resourcet" = callPackage - ({ mkDerivation, base, containers, exceptions, mtl, primitive - , stdenv, transformers, unliftio-core - }: - mkDerivation { - pname = "resourcet"; - version = "1.2.2"; - sha256 = "1323425aba3827479eb3588efaf7608b12a083327d64ec814f02863c3673cbe5"; - libraryHaskellDepends = [ - base containers exceptions mtl primitive transformers unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/conduit"; - description = "Deterministic allocation and freeing of scarce resources"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "result" = callPackage - ({ mkDerivation, base, bifunctors, keys, mtl, stdenv, transformers - }: - mkDerivation { - pname = "result"; - version = "0.2.6.0"; - sha256 = "f526d97cdab851f24e215e346f6d54d3a504a6ac5d9264f580c4f72d606178c5"; - libraryHaskellDepends = [ base bifunctors keys mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/srijs/haskell-result"; - description = "Encode success or at least one error"; - license = stdenv.lib.licenses.mit; - }) {}; - "rethinkdb-client-driver" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, containers - , hashable, mtl, network, old-locale, scientific, stdenv, stm - , template-haskell, text, time, unordered-containers, vector - }: - mkDerivation { - pname = "rethinkdb-client-driver"; - version = "0.0.25"; - sha256 = "0f9dc156cd61b866b847b1b1a60a2345b4b5556b8b75a9e8499b0514e7f98996"; - revision = "3"; - editedCabalFile = "1g4shgl944fd3qbqkd68jv6vh65plaivci4vjzfs4py7a2p62db1"; - libraryHaskellDepends = [ - aeson base binary bytestring containers hashable mtl network - old-locale scientific stm template-haskell text time - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/wereHamster/rethinkdb-client-driver"; - description = "Client driver for RethinkDB"; - license = stdenv.lib.licenses.mit; - }) {}; - "retry" = callPackage - ({ mkDerivation, base, data-default-class, exceptions, ghc-prim - , random, stdenv, transformers - }: - mkDerivation { - pname = "retry"; - version = "0.7.7.0"; - sha256 = "3ccbc27a08ad0c7291342140f417cef11c2b11886586cc2bd870fa1e80cbd16c"; - libraryHaskellDepends = [ - base data-default-class exceptions ghc-prim random transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/Soostone/retry"; - description = "Retry combinators for monadic actions that may fail"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rev-state" = callPackage - ({ mkDerivation, base, mtl, stdenv }: - mkDerivation { - pname = "rev-state"; - version = "0.1.2"; - sha256 = "ee070e39d7f7d673593e2f356ab317bc2fdd0d8a283f8316c0e5b5adbdf0f919"; - revision = "2"; - editedCabalFile = "0dfiwf4808vjhayv7xr058rzwl6jmsmhzy03mk48m9kmlqibk3fy"; - libraryHaskellDepends = [ base mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanBurton/rev-state#readme"; - description = "Reverse State monad transformer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rfc1751" = callPackage - ({ mkDerivation, base, bytestring, cereal, stdenv, vector }: - mkDerivation { - pname = "rfc1751"; - version = "0.1.2"; - sha256 = "a345e81625ffbdf3d3dc1723d322133108a5fd9ba17fbfae6e954046cd2b9aca"; - libraryHaskellDepends = [ base bytestring cereal vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xenog/rfc1751.git#readme"; - description = "RFC-1751 library for Haskell"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "rfc5051" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv }: - mkDerivation { - pname = "rfc5051"; - version = "0.1.0.4"; - sha256 = "615daa230eabc781eff1d3ce94c42fc5ba6188dbeb115a233328454b02c1b3d3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bytestring containers ]; - doHaddock = false; - doCheck = false; - description = "Simple unicode collation as per RFC5051"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rio" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, directory - , exceptions, filepath, hashable, microlens, mtl, primitive - , process, stdenv, text, time, typed-process, unix, unliftio - , unordered-containers, vector - }: - mkDerivation { - pname = "rio"; - version = "0.1.8.0"; - sha256 = "a013dd04221a1a69d5f253379443b88495be305692c06f1a060f428e98dbf5e1"; - libraryHaskellDepends = [ - base bytestring containers deepseq directory exceptions filepath - hashable microlens mtl primitive process text time typed-process - unix unliftio unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/commercialhaskell/rio#readme"; - description = "A standard library for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "rio-orphans" = callPackage - ({ mkDerivation, base, exceptions, fast-logger, monad-control - , monad-logger, resourcet, rio, stdenv, transformers-base - }: - mkDerivation { - pname = "rio-orphans"; - version = "0.1.1.0"; - sha256 = "7e8d2c6df6e7afdbca5b344c6e57c754e2d6b9c0cfb4f00e1df88dad1bd48b4e"; - libraryHaskellDepends = [ - base exceptions fast-logger monad-control monad-logger resourcet - rio transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/commercialhaskell/rio#readme"; - description = "Orphan instances for the RIO type in the rio package"; - license = stdenv.lib.licenses.mit; - }) {}; - "rng-utils" = callPackage - ({ mkDerivation, base, bytestring, random, stdenv }: - mkDerivation { - pname = "rng-utils"; - version = "0.3.0"; - sha256 = "0886acb1e0ae6c6ad5f594a9d4d57ea5af69c566ccc5763d0b7c690963e946ba"; - libraryHaskellDepends = [ base bytestring random ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/soostone/rng-utils"; - description = "RNG within an IORef for convenient concurrent use"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "roc-id" = callPackage - ({ mkDerivation, base, MonadRandom, Only, stdenv, text - , vector-sized - }: - mkDerivation { - pname = "roc-id"; - version = "0.1.0.0"; - sha256 = "3144d7edc22fc5816b38fa356811417125572d062e07d23d8319466c68868429"; - libraryHaskellDepends = [ - base MonadRandom Only text vector-sized - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jonathanknowles/roc-id#readme"; - description = "Implementation of the ROC National ID standard"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rocksdb-haskell" = callPackage - ({ mkDerivation, base, binary, bytestring, data-default, directory - , filepath, resourcet, rocksdb, stdenv, transformers - }: - mkDerivation { - pname = "rocksdb-haskell"; - version = "1.0.1"; - sha256 = "b8407c933f503c2e21578a558b829288917f0f6f5ff7c32229cf5b11abed4dff"; - libraryHaskellDepends = [ - base binary bytestring data-default directory filepath resourcet - transformers - ]; - librarySystemDepends = [ rocksdb ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/serokell/rocksdb-haskell"; - description = "Haskell bindings to RocksDB"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) rocksdb;}; - "rocksdb-query" = callPackage - ({ mkDerivation, base, bytestring, cereal, conduit, resourcet - , rocksdb-haskell, stdenv, unliftio - }: - mkDerivation { - pname = "rocksdb-query"; - version = "0.2.0"; - sha256 = "8e2d645542c98fd69fa73c136d2aa4bba574354c3121bc7b461d367a17fdc206"; - libraryHaskellDepends = [ - base bytestring cereal conduit resourcet rocksdb-haskell unliftio - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xenog/rocksdb-query#readme"; - description = "RocksDB database querying library for Haskell"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "roles" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "roles"; - version = "0.2.0.0"; - sha256 = "e29d2f31b21b2d8ce3507e17211e70a61d2e434a8e19f80b2e4898bdabac34a0"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/matt-noonan/roles/"; - description = "Composable class-based roles"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rosezipper" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "rosezipper"; - version = "0.2"; - sha256 = "6cab4f1c192cc3b8b0a9eb11a32780d235020a539a0e91125eed5ec590bad7bc"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "Generic zipper implementation for Data.Tree"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rot13" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "rot13"; - version = "0.2.0.1"; - sha256 = "e026d418cc6a1ce83ba11e811387e62ad49ffb1cbd6ae7f58b72fd179fccd4dc"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kvanberendonck/codec-rot13"; - description = "Fast ROT13 cipher for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rounded" = callPackage - ({ mkDerivation, base, ghc-prim, gmp, hgmp, long-double, mpfr - , reflection, singletons, stdenv - }: - mkDerivation { - pname = "rounded"; - version = "0.1.0.1"; - sha256 = "9abeea23692dd57e879eda210308ef5ef213169b4cb9e4e6c13de02d52a04b11"; - libraryHaskellDepends = [ - base ghc-prim hgmp long-double reflection singletons - ]; - librarySystemDepends = [ gmp mpfr ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ekmett/rounded"; - description = "Correctly-rounded arbitrary-precision floating-point arithmetic"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;}; - "rpmbuild-order" = callPackage - ({ mkDerivation, base, Cabal, containers, directory - , explicit-exception, fgl, filepath, process, stdenv, transformers - }: - mkDerivation { - pname = "rpmbuild-order"; - version = "0.2.1"; - sha256 = "b66d6078e82da6c2becf1e0082fb0f17e5a8a0052d95442dc3b0b63915a6a082"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base Cabal containers directory explicit-exception fgl filepath - process transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/juhp/rpmbuild-order"; - description = "Order RPM packages by dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "runmemo" = callPackage - ({ mkDerivation, stdenv }: - mkDerivation { - pname = "runmemo"; - version = "1.0.0.1"; - sha256 = "ba5ef3177f8fe5f443808e44f62d03b23ac19bbef7f708e40532031a3505d689"; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanBurton/runmemo"; - description = "A simple memoization helper library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "rvar" = callPackage - ({ mkDerivation, base, MonadPrompt, mtl, random-source, stdenv - , transformers - }: - mkDerivation { - pname = "rvar"; - version = "0.2.0.3"; - sha256 = "d78aaf2ffdba182dda95d1692fec7abc5d77fa371120618a397b5675438c6bc0"; - libraryHaskellDepends = [ - base MonadPrompt mtl random-source transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/random-fu"; - description = "Random Variables"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "s3-signer" = callPackage - ({ mkDerivation, base, base64-bytestring, blaze-builder, byteable - , bytestring, case-insensitive, cryptohash, http-types, stdenv - , time, utf8-string - }: - mkDerivation { - pname = "s3-signer"; - version = "0.5.0.0"; - sha256 = "d73671d5bda0f5f627bbd876916341985c281c3572e6f8406cdf2f14ed9188e4"; - libraryHaskellDepends = [ - base base64-bytestring blaze-builder byteable bytestring - case-insensitive cryptohash http-types time utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dmjio/s3-signer"; - description = "Pre-signed Amazon S3 URLs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "safe" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "safe"; - version = "0.3.17"; - sha256 = "79c5c41e7151906969133ea21af9f7e8d25c18315886e23d0bdf6faa8b537e5c"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/safe#readme"; - description = "Library of safe (exception free) functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "safe-exceptions" = callPackage - ({ mkDerivation, base, deepseq, exceptions, stdenv, transformers }: - mkDerivation { - pname = "safe-exceptions"; - version = "0.1.7.0"; - sha256 = "18cddc587b52b6faa0287fb6ad6c964d1562571ea2c8ff57a194dd54b5fba069"; - revision = "4"; - editedCabalFile = "0fid41gishzsyb47wzxhd5falandfirqcp760hcja81qjpfmqd32"; - libraryHaskellDepends = [ base deepseq exceptions transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/safe-exceptions#readme"; - description = "Safe, consistent, and easy exception handling"; - license = stdenv.lib.licenses.mit; - }) {}; - "safe-exceptions-checked" = callPackage - ({ mkDerivation, base, deepseq, safe-exceptions, stdenv - , transformers - }: - mkDerivation { - pname = "safe-exceptions-checked"; - version = "0.1.0"; - sha256 = "d807552b828de308d80805f65ee41f3e25571506b10e6b28b0b81de4aec0ca3f"; - revision = "3"; - editedCabalFile = "004id0k46j545zvkldfcv5qjgxzl35brm9h6fq72y43b9hl2y55f"; - libraryHaskellDepends = [ - base deepseq safe-exceptions transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mitchellwrosen/safe-exceptions-checked#readme"; - description = "Safe, checked exceptions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "safe-foldable" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "safe-foldable"; - version = "0.1.0.0"; - sha256 = "ca7f2ecc0e799c239df8ce56e8592fb8b8264c229ab4e1c66e0f821d299007d1"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tejon/safe-foldable#readme"; - description = "Safe wrappers for null-partial Foldable operations"; - license = stdenv.lib.licenses.mit; - }) {}; - "safecopy" = callPackage - ({ mkDerivation, array, base, bytestring, cereal, containers - , old-time, stdenv, template-haskell, text, time, vector - }: - mkDerivation { - pname = "safecopy"; - version = "0.9.4.3"; - sha256 = "787db1a56b7024ab5619b4f25af5379133f5f2a5e1a0657e66c8dfac1a131f08"; - libraryHaskellDepends = [ - array base bytestring cereal containers old-time template-haskell - text time vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/acid-state/safecopy"; - description = "Binary serialization with version control"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "safeio" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-combinators - , directory, exceptions, filepath, resourcet, stdenv, unix - }: - mkDerivation { - pname = "safeio"; - version = "0.0.5.0"; - sha256 = "d5799b6a6cd36e8f5442d991ed3a2076b10e0e3131269a2090b8c9c5c001e311"; - libraryHaskellDepends = [ - base bytestring conduit conduit-combinators directory exceptions - filepath resourcet unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/luispedro/safeio#readme"; - description = "Write output to disk atomically"; - license = stdenv.lib.licenses.mit; - }) {}; - "salak" = callPackage - ({ mkDerivation, aeson, base, directory, filepath, menshen, mtl - , scientific, stdenv, stm, text, transformers, unordered-containers - , vector, yaml - }: - mkDerivation { - pname = "salak"; - version = "0.1.8"; - sha256 = "18e8ae19a234594b792f15d55d39f9bbca770f437232391cac306174add61bf9"; - libraryHaskellDepends = [ - aeson base directory filepath menshen mtl scientific stm text - transformers unordered-containers vector yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/leptonyu/salak#readme"; - description = "Configuration Loader"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "saltine" = callPackage - ({ mkDerivation, base, bytestring, libsodium, profunctors, stdenv - }: - mkDerivation { - pname = "saltine"; - version = "0.1.0.2"; - sha256 = "fd989db905f3e1d742b9fcb9501d6483ffa82620e287cf51b62e0d6d2caaa308"; - libraryHaskellDepends = [ base bytestring profunctors ]; - libraryPkgconfigDepends = [ libsodium ]; - doHaddock = false; - doCheck = false; - description = "Cryptography that's easy to digest (NaCl/libsodium bindings)"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) libsodium;}; - "salve" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "salve"; - version = "1.0.6"; - sha256 = "32c8bb50cc20360cb48751d810cac117a6b4fb83c39cf50287c61ef13c90f7ed"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/salve#readme"; - description = "Semantic version numbers and constraints"; - license = stdenv.lib.licenses.mit; - }) {}; - "sample-frame" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv, storable-record }: - mkDerivation { - pname = "sample-frame"; - version = "0.0.3"; - sha256 = "5baf301a4f7b2d52e6b9b9c06b10afd3938de0be6d09736d0188616cd9027247"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base QuickCheck storable-record ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Synthesizer"; - description = "Handling of samples in an (audio) signal"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sample-frame-np" = callPackage - ({ mkDerivation, base, numeric-prelude, sample-frame, stdenv }: - mkDerivation { - pname = "sample-frame-np"; - version = "0.0.4.1"; - sha256 = "b1db7621b07503f5fe49390bf1e1b4257c49f4760d617121a23d845278f93624"; - libraryHaskellDepends = [ base numeric-prelude sample-frame ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Synthesizer"; - description = "Orphan instances for types from sample-frame and numericprelude"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sampling" = callPackage - ({ mkDerivation, base, containers, foldl, mwc-random, primitive - , stdenv, vector - }: - mkDerivation { - pname = "sampling"; - version = "0.3.3"; - sha256 = "c8bedc93d61e6b1939f6802d7e21003e9e36abdd6f21a9651179d4d82aa00e0d"; - revision = "1"; - editedCabalFile = "168k8ykppa8pikfxy1gmby63kfzr833vswh8wcchz8li9vkd4w2h"; - libraryHaskellDepends = [ - base containers foldl mwc-random primitive vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jtobin/sampling"; - description = "Sample values from collections"; - license = stdenv.lib.licenses.mit; - }) {}; - "sandman" = callPackage - ({ mkDerivation, base, Cabal, containers, directory, filepath - , optparse-applicative, process, stdenv, text, unix-compat - }: - mkDerivation { - pname = "sandman"; - version = "0.2.0.1"; - sha256 = "407d283e1fc4a2a369615bac569683bf399ac14ddbce1331850bfe1d7837ce64"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base Cabal containers directory filepath optparse-applicative - process text unix-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/abhinav/sandman#readme"; - description = "Manages Cabal sandboxes to avoid rebuilding packages"; - license = stdenv.lib.licenses.mit; - }) {}; - "say" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text, transformers }: - mkDerivation { - pname = "say"; - version = "0.1.0.1"; - sha256 = "f639656fc21925c45f3f55769b9fb7a90699e943376a725e215a5deea473b3e4"; - libraryHaskellDepends = [ base bytestring text transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/say#readme"; - description = "Send textual messages to a Handle in a thread-friendly way"; - license = stdenv.lib.licenses.mit; - }) {}; - "sbp" = callPackage - ({ mkDerivation, aeson, array, base, base64-bytestring - , basic-prelude, binary, binary-conduit, bytestring, conduit - , conduit-extra, data-binary-ieee754, lens, lens-aeson, monad-loops - , resourcet, stdenv, template-haskell, text, time, yaml - }: - mkDerivation { - pname = "sbp"; - version = "2.4.7"; - sha256 = "23a61062218ffbc724f61f3e08cfb2686aab6a44bada04aa5cf4abf7252962c6"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson array base base64-bytestring basic-prelude binary bytestring - data-binary-ieee754 lens lens-aeson monad-loops template-haskell - text - ]; - executableHaskellDepends = [ - aeson base basic-prelude binary-conduit bytestring conduit - conduit-extra resourcet time yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/swift-nav/libsbp"; - description = "SwiftNav's SBP Library"; - license = stdenv.lib.licenses.lgpl3; - }) {}; - "sbv" = callPackage - ({ mkDerivation, array, async, base, containers, crackNum, deepseq - , directory, filepath, generic-deriving, ghc, mtl, pretty, process - , QuickCheck, random, stdenv, syb, template-haskell, time - }: - mkDerivation { - pname = "sbv"; - version = "7.13"; - sha256 = "33bafb18a6d7476aeb3fb215077154cd4ad36fa0359c5b184a9a2ccb3500642e"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - array async base containers crackNum deepseq directory filepath - generic-deriving ghc mtl pretty process QuickCheck random syb - template-haskell time - ]; - doHaddock = false; - doCheck = false; - homepage = "http://leventerkok.github.com/sbv/"; - description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "scalpel" = callPackage - ({ mkDerivation, base, bytestring, curl, data-default, scalpel-core - , stdenv, tagsoup, text - }: - mkDerivation { - pname = "scalpel"; - version = "0.5.1"; - sha256 = "20df66433570a2ca754f14058a47fb00519d9a75bb822fc3fd1769a83c608b0d"; - libraryHaskellDepends = [ - base bytestring curl data-default scalpel-core tagsoup text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fimad/scalpel"; - description = "A high level web scraping library for Haskell"; - license = stdenv.lib.licenses.asl20; - }) {}; - "scalpel-core" = callPackage - ({ mkDerivation, base, bytestring, containers, data-default, fail - , regex-base, regex-tdfa, stdenv, tagsoup, text, vector - }: - mkDerivation { - pname = "scalpel-core"; - version = "0.5.1"; - sha256 = "8c05b86853b737fbed4144dc9c7bbb7743525c305f9529f59776df97bfe229a9"; - libraryHaskellDepends = [ - base bytestring containers data-default fail regex-base regex-tdfa - tagsoup text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fimad/scalpel"; - description = "A high level web scraping library for Haskell"; - license = stdenv.lib.licenses.asl20; - }) {}; - "scanf" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "scanf"; - version = "0.1.0.0"; - sha256 = "5675132f172ab4ed460f440df21e203c09457c2fff34fb6a389129a9da78c375"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Lysxia/scanf#readme"; - description = "Easy and type-safe format strings for parsing and printing"; - license = stdenv.lib.licenses.mit; - }) {}; - "scanner" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "scanner"; - version = "0.3"; - sha256 = "a7f85147b59e443dbd986c1f880a0c3ab0190ba7b27c2ce6238da07397fd507b"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Yuras/scanner"; - description = "Fast non-backtracking incremental combinator parsing for bytestrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "scientific" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, deepseq - , hashable, integer-gmp, integer-logarithms, primitive, stdenv - , text - }: - mkDerivation { - pname = "scientific"; - version = "0.3.6.2"; - sha256 = "278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f"; - libraryHaskellDepends = [ - base binary bytestring containers deepseq hashable integer-gmp - integer-logarithms primitive text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/scientific"; - description = "Numbers represented using scientific notation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "scotty" = callPackage - ({ mkDerivation, aeson, base, blaze-builder, bytestring - , case-insensitive, data-default-class, exceptions, fail - , http-types, monad-control, mtl, nats, network, regex-compat - , stdenv, text, transformers, transformers-base - , transformers-compat, wai, wai-extra, warp - }: - mkDerivation { - pname = "scotty"; - version = "0.11.3"; - sha256 = "0a9c8adb7d5f66ca3ba9e866aed52b87d940e4b8f1fc8f8aca9c663ac304a790"; - revision = "2"; - editedCabalFile = "0d5ls120fq9xfdsdzj1xgfh2prpcz46i4kc54r6pd6ncpnkfalyi"; - libraryHaskellDepends = [ - aeson base blaze-builder bytestring case-insensitive - data-default-class exceptions fail http-types monad-control mtl - nats network regex-compat text transformers transformers-base - transformers-compat wai wai-extra warp - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/scotty-web/scotty"; - description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "scrypt" = callPackage - ({ mkDerivation, base, base64-bytestring, bytestring, entropy - , stdenv - }: - mkDerivation { - pname = "scrypt"; - version = "0.5.0"; - sha256 = "3ec0a622393e2a4dbbce4c899602c848d924f8516688491b1162331b7093d9b2"; - libraryHaskellDepends = [ - base base64-bytestring bytestring entropy - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/informatikr/scrypt"; - description = "Stronger password hashing via sequential memory-hard functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sdl2" = callPackage - ({ mkDerivation, base, bytestring, exceptions, linear, SDL2 - , StateVar, stdenv, text, transformers, vector - }: - mkDerivation { - pname = "sdl2"; - version = "2.4.1.0"; - sha256 = "21a569c0c19f8ff2bbe1cf1d3eb32f65e8143806de353cedd240df5e9d088b5c"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring exceptions linear StateVar text transformers vector - ]; - librarySystemDepends = [ SDL2 ]; - libraryPkgconfigDepends = [ SDL2 ]; - doHaddock = false; - doCheck = false; - description = "Both high- and low-level bindings to the SDL library (version 2.0.4+)."; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) SDL2;}; - "sdl2-gfx" = callPackage - ({ mkDerivation, base, bytestring, lifted-base, linear - , monad-control, SDL2, sdl2, SDL2_gfx, stdenv, template-haskell - , text, transformers, vector - }: - mkDerivation { - pname = "sdl2-gfx"; - version = "0.2"; - sha256 = "8c1e10b7a675d782cd650820c75c4ef9225718ad6aaa3f8db02e869b7720c50d"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring lifted-base linear monad-control sdl2 - template-haskell text transformers vector - ]; - libraryPkgconfigDepends = [ SDL2 SDL2_gfx ]; - executableHaskellDepends = [ base linear sdl2 vector ]; - doHaddock = false; - doCheck = false; - description = "Bindings to SDL2_gfx"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_gfx;}; - "sdl2-image" = callPackage - ({ mkDerivation, base, bytestring, SDL2, sdl2, SDL2_image, stdenv - , template-haskell, text, transformers - }: - mkDerivation { - pname = "sdl2-image"; - version = "2.0.0"; - sha256 = "399742b2b7e64fe4e58c9d8a44ad29b2c355589233535238f8c9b371de6c26df"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring sdl2 template-haskell text transformers - ]; - libraryPkgconfigDepends = [ SDL2 SDL2_image ]; - executableHaskellDepends = [ base sdl2 text ]; - doHaddock = false; - doCheck = false; - description = "Bindings to SDL2_image"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_image;}; - "sdl2-mixer" = callPackage - ({ mkDerivation, base, bytestring, data-default-class, lifted-base - , monad-control, sdl2, SDL2_mixer, stdenv, template-haskell, vector - }: - mkDerivation { - pname = "sdl2-mixer"; - version = "1.1.0"; - sha256 = "0f4c15a1bda7b265923278641d686756292fc2a8f1c5ced7f98916cc98df0acd"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring data-default-class lifted-base monad-control sdl2 - template-haskell vector - ]; - librarySystemDepends = [ SDL2_mixer ]; - libraryPkgconfigDepends = [ SDL2_mixer ]; - doHaddock = false; - doCheck = false; - description = "Bindings to SDL2_mixer"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) SDL2_mixer;}; - "sdl2-ttf" = callPackage - ({ mkDerivation, base, bytestring, SDL2, sdl2, SDL2_ttf, stdenv - , template-haskell, text, transformers - }: - mkDerivation { - pname = "sdl2-ttf"; - version = "2.1.0"; - sha256 = "c7656fe923e618d3919d47ac753451b08e6d709372380e15bd3d75b39f2c80f7"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring sdl2 template-haskell text transformers - ]; - libraryPkgconfigDepends = [ SDL2 SDL2_ttf ]; - doHaddock = false; - doCheck = false; - description = "Bindings to SDL2_ttf"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_ttf;}; - "secp256k1-haskell" = callPackage - ({ mkDerivation, base, base16-bytestring, bytestring, cereal - , entropy, hashable, QuickCheck, secp256k1, stdenv - , string-conversions - }: - mkDerivation { - pname = "secp256k1-haskell"; - version = "0.1.4"; - sha256 = "741c9f3d51d4a9fc89c991734f71735f46dffd900f550d5d8564aebc1db0cbed"; - libraryHaskellDepends = [ - base base16-bytestring bytestring cereal entropy hashable - QuickCheck string-conversions - ]; - librarySystemDepends = [ secp256k1 ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskoin/secp256k1-haskell#readme"; - description = "Bindings for secp256k1 library from Bitcoin Core"; - license = stdenv.lib.licenses.publicDomain; - }) {inherit (pkgs) secp256k1;}; - "securemem" = callPackage - ({ mkDerivation, base, byteable, bytestring, ghc-prim, memory - , stdenv - }: - mkDerivation { - pname = "securemem"; - version = "0.1.10"; - sha256 = "32895a4748508da58207b4867266601af6259b7109af80bbf5d2e9e598e016a6"; - libraryHaskellDepends = [ - base byteable bytestring ghc-prim memory - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/hs-securemem"; - description = "abstraction to an auto scrubbing and const time eq, memory chunk"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "selda" = callPackage - ({ mkDerivation, base, bytestring, exceptions, hashable, mtl - , psqueues, stdenv, text, time, unordered-containers - }: - mkDerivation { - pname = "selda"; - version = "0.3.4.0"; - sha256 = "92238cfd3a557f68ccf0cb6edafa4981a5c67c91f85d471c83ba55eec1d884f3"; - libraryHaskellDepends = [ - base bytestring exceptions hashable mtl psqueues text time - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://selda.link"; - description = "Multi-backend, high-level EDSL for interacting with SQL databases"; - license = stdenv.lib.licenses.mit; - }) {}; - "selda-postgresql" = callPackage - ({ mkDerivation, base, bytestring, exceptions, postgresql-libpq - , selda, stdenv, text - }: - mkDerivation { - pname = "selda-postgresql"; - version = "0.1.7.3"; - sha256 = "ec33d2efedc5a9bf81a2acb726e866c4978c96a6ce92e313f0b83aa49b812d2b"; - revision = "2"; - editedCabalFile = "1zrj412hkjjka4cvl5zj6gdpvdafmcny6xighi1glg67n8cmpb67"; - libraryHaskellDepends = [ - base bytestring exceptions postgresql-libpq selda text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/valderman/selda"; - description = "PostgreSQL backend for the Selda database EDSL"; - license = stdenv.lib.licenses.mit; - }) {}; - "selda-sqlite" = callPackage - ({ mkDerivation, base, direct-sqlite, directory, exceptions, selda - , stdenv, text - }: - mkDerivation { - pname = "selda-sqlite"; - version = "0.1.6.1"; - sha256 = "8d60dec5376d99b30939e8d6a2d1fbc3363b7cdb12834a27a31f73c73e7e19e3"; - revision = "2"; - editedCabalFile = "0gb8raqmy8r8xwjpx238mqar5gdfd4194si2ms1a9ndcrilkkqja"; - libraryHaskellDepends = [ - base direct-sqlite directory exceptions selda text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/valderman/selda"; - description = "SQLite backend for the Selda database EDSL"; - license = stdenv.lib.licenses.mit; - }) {}; - "semigroupoid-extras" = callPackage - ({ mkDerivation, base, profunctors, semigroupoids, stdenv }: - mkDerivation { - pname = "semigroupoid-extras"; - version = "5"; - sha256 = "102e33b55cc3b15a1b714825a3703f3fc2bb09d8038404af442d35c0ac0c3832"; - libraryHaskellDepends = [ base profunctors semigroupoids ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/semigroupoid-extras"; - description = "Semigroupoids that depend on PolyKinds"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semigroupoids" = callPackage - ({ mkDerivation, base, base-orphans, bifunctors, Cabal - , cabal-doctest, comonad, containers, contravariant, distributive - , hashable, stdenv, tagged, template-haskell, transformers - , transformers-compat, unordered-containers - }: - mkDerivation { - pname = "semigroupoids"; - version = "5.3.2"; - sha256 = "61a8213df437ee96a20b1c6dec8b5c573e4e0f338eb2061739a67f471d6b9d05"; - revision = "1"; - editedCabalFile = "1r88pi1bvc1w0nys810p3drra6na02zhbaf257dl4lyxl8iv5466"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base base-orphans bifunctors comonad containers contravariant - distributive hashable tagged template-haskell transformers - transformers-compat unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/semigroupoids"; - description = "Semigroupoids: Category sans id"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semigroups" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "semigroups"; - version = "0.18.5"; - sha256 = "ab2a96af6e81e31b909c37ba65f436f1493dbf387cfe0de10b6586270c4ce29d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/semigroups/"; - description = "Anything that associates"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semiring-simple" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "semiring-simple"; - version = "1.0.0.1"; - sha256 = "c08d1b533f4559fc55119f563a6cf3d74ad7c6f5916c2efe00b50d2a5169fd28"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A module for dealing with semirings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semirings" = callPackage - ({ mkDerivation, base, containers, hashable, integer-gmp, stdenv - , unordered-containers, vector - }: - mkDerivation { - pname = "semirings"; - version = "0.2.1.1"; - sha256 = "576a5b09e8b0045e13fab04f5a53eaead69c5b0bca99e3cdfff88be90cc64868"; - libraryHaskellDepends = [ - base containers hashable integer-gmp unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/chessai/semirings"; - description = "two monoids as one, in holy haskimony"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "semver" = callPackage - ({ mkDerivation, attoparsec, base, deepseq, stdenv, text }: - mkDerivation { - pname = "semver"; - version = "0.3.3.1"; - sha256 = "36d3369706836d60f3bc517f30c6860734481866363723904b8768823b6bc8b1"; - libraryHaskellDepends = [ attoparsec base deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/semver"; - description = "Representation, manipulation, and de/serialisation of Semantic Versions"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "sendfile" = callPackage - ({ mkDerivation, base, bytestring, network, stdenv }: - mkDerivation { - pname = "sendfile"; - version = "0.7.10"; - sha256 = "4b9199354bfb2931602b90b7a7edf32accba84a53667f062d423604d0caecef2"; - revision = "1"; - editedCabalFile = "08k4clhyfa4h5ja9bz1mzg2wdx5337cg8bxd6lz25781f65llq7d"; - libraryHaskellDepends = [ base bytestring network ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/stepcut/sendfile"; - description = "A portable sendfile library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "seqalign" = callPackage - ({ mkDerivation, base, bytestring, stdenv, vector }: - mkDerivation { - pname = "seqalign"; - version = "0.2.0.4"; - sha256 = "4ea194658d865890157d3df882ed21b0c089cdff7f80ea613ae25c5f3d744305"; - libraryHaskellDepends = [ base bytestring vector ]; - doHaddock = false; - doCheck = false; - description = "Sequence Alignment"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "serf" = callPackage - ({ mkDerivation, attoparsec, base, conduit, conduit-extra, mtl - , operational, process, resourcet, stdenv, text - }: - mkDerivation { - pname = "serf"; - version = "0.1.1.0"; - sha256 = "d6c9c6ddf99a2119c6686732caf9f04ef8e9c4df5519a8bbd4ac7f5531d4c067"; - libraryHaskellDepends = [ - attoparsec base conduit conduit-extra mtl operational process - resourcet text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/sanetracker/serf"; - description = "Interact with Serf via Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "serialise" = callPackage - ({ mkDerivation, array, base, bytestring, cborg, containers - , ghc-prim, half, hashable, primitive, stdenv, text, time - , unordered-containers, vector - }: - mkDerivation { - pname = "serialise"; - version = "0.2.1.0"; - sha256 = "043efc1130b4202f080c5b7d2c319098df032b060655d8193f1fcdbfa3f159a5"; - libraryHaskellDepends = [ - array base bytestring cborg containers ghc-prim half hashable - primitive text time unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/well-typed/cborg"; - description = "A binary serialisation library for Haskell values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base-compat, bifunctors - , bytestring, Cabal, cabal-doctest, case-insensitive, http-api-data - , http-media, http-types, mmorph, mtl, network-uri, QuickCheck - , singleton-bool, stdenv, string-conversions, tagged, text - , transformers, vault - }: - mkDerivation { - pname = "servant"; - version = "0.15"; - sha256 = "4f3f35c9c0f5e4ee8c2d10c9113ac4a6409a4d57759137e68f43588f5e6bfa39"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson attoparsec base base-compat bifunctors bytestring - case-insensitive http-api-data http-media http-types mmorph mtl - network-uri QuickCheck singleton-bool string-conversions tagged - text transformers vault - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "A family of combinators for defining webservices APIs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-JuicyPixels" = callPackage - ({ mkDerivation, base, bytestring, http-media, JuicyPixels, servant - , servant-server, stdenv, wai, warp - }: - mkDerivation { - pname = "servant-JuicyPixels"; - version = "0.3.0.4"; - sha256 = "7b02f00ac8b78ffda49a96f2d1f39619ec19f244822d177928e75cd533cb9981"; - revision = "1"; - editedCabalFile = "185ym0ac6gx7f98pd92ykc1ib305lswzjzvykly4ij9vk85jn0ax"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring http-media JuicyPixels servant - ]; - executableHaskellDepends = [ - base JuicyPixels servant servant-server wai warp - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tvh/servant-JuicyPixels"; - description = "Servant support for JuicyPixels"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-auth" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "servant-auth"; - version = "0.3.2.0"; - sha256 = "7bb4d5118c072cb3845aaba4287b2d5e34e5ccca96916895456a828bf7a9418b"; - revision = "1"; - editedCabalFile = "10ss4v45lclf5n0k6rch22zzs59v7p5ppd04dbc97pqxiygpbnd9"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-servant/servant-auth#readme"; - description = "Authentication combinators for servant"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-auth-client" = callPackage - ({ mkDerivation, base, bytestring, containers, servant - , servant-auth, servant-client-core, stdenv, text - }: - mkDerivation { - pname = "servant-auth-client"; - version = "0.3.3.0"; - sha256 = "490ac57150b59c567ef567120a6704cfc2184f7be8e6edaab26ad818dee5b3df"; - revision = "3"; - editedCabalFile = "1kzyqd9hg7xld5s8qpm76l9ym48z81j6ycdwp3lb0f1p2d3aagcd"; - libraryHaskellDepends = [ - base bytestring containers servant servant-auth servant-client-core - text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-servant/servant-auth#readme"; - description = "servant-client/servant-auth compatibility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-auth-docs" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, lens, servant - , servant-auth, servant-docs, stdenv, text - }: - mkDerivation { - pname = "servant-auth-docs"; - version = "0.2.10.0"; - sha256 = "adf3c33ce4134a78ae7a5c06092ea5812c99d4b942ff2dd685995eb3b2b53e48"; - revision = "3"; - editedCabalFile = "0in6rhgwn5idc2rsl4zbh6kkhxq471iczjd3i6ap60xg46ciymga"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base lens servant servant-auth servant-docs text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-servant/servant-auth#readme"; - description = "servant-docs/servant-auth compatibility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-auth-server" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, blaze-builder - , bytestring, case-insensitive, cookie, data-default-class, entropy - , http-types, jose, lens, memory, monad-time, mtl, servant - , servant-auth, servant-server, stdenv, tagged, text, time - , unordered-containers, wai - }: - mkDerivation { - pname = "servant-auth-server"; - version = "0.4.3.0"; - sha256 = "74a565bc60e89795394e7680643f79e9bd1e4de45fd3be1cfc12a3108c24f0cf"; - libraryHaskellDepends = [ - aeson base base64-bytestring blaze-builder bytestring - case-insensitive cookie data-default-class entropy http-types jose - lens memory monad-time mtl servant servant-auth servant-server - tagged text time unordered-containers wai - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-servant/servant-auth#readme"; - description = "servant-server/servant-auth compatibility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-auth-swagger" = callPackage - ({ mkDerivation, base, lens, servant, servant-auth, servant-swagger - , stdenv, swagger2, text - }: - mkDerivation { - pname = "servant-auth-swagger"; - version = "0.2.10.0"; - sha256 = "50a783639eb882fd5047d69245f7770817658814d8c409b547ebdddae05acd12"; - revision = "2"; - editedCabalFile = "1vr0qss87gi6r9z876v9vnmfhr4m58n5x44fgzpmjkn7wlh1i6m7"; - libraryHaskellDepends = [ - base lens servant servant-auth servant-swagger swagger2 text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-servant/servant-auth#readme"; - description = "servant-swagger/servant-auth compatibility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-blaze" = callPackage - ({ mkDerivation, base, blaze-html, http-media, servant, stdenv }: - mkDerivation { - pname = "servant-blaze"; - version = "0.8"; - sha256 = "46ea88550123d765b2d09073370d0530a51878e7fdf2cf20b070be1f2f10ae94"; - revision = "2"; - editedCabalFile = "1cfla60vn4kk5gb7fawlp34jr2k6b2fprysq05561wdfv990x4bj"; - libraryHaskellDepends = [ base blaze-html http-media servant ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Blaze-html support for servant"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-cassava" = callPackage - ({ mkDerivation, base, base-compat, bytestring, cassava, http-media - , servant, stdenv, vector - }: - mkDerivation { - pname = "servant-cassava"; - version = "0.10"; - sha256 = "9b2c5d906f3a4bb2767b2ce91f12a74e24adceadd296220b5d7216c5e1f3560e"; - revision = "5"; - editedCabalFile = "1hidradrcdcchbr0hn9y7y1bc0i0gxzfbganyy7p2z8ip2czddvj"; - libraryHaskellDepends = [ - base base-compat bytestring cassava http-media servant vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Servant CSV content-type for cassava"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-checked-exceptions" = callPackage - ({ mkDerivation, aeson, base, bytestring, deepseq, http-media - , http-types, profunctors, servant, servant-checked-exceptions-core - , servant-client, servant-client-core, servant-docs, servant-server - , stdenv, tagged, text, wai, world-peace - }: - mkDerivation { - pname = "servant-checked-exceptions"; - version = "2.0.0.0"; - sha256 = "a7f282857e56d5d1a59d055cf1936cab96a2cdc2f94a79ff736f7ef1cf56f688"; - revision = "1"; - editedCabalFile = "0h18x8gimmczgml4rj74kx3463pwrsyxl2vnd13ra5hj0q44d683"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring deepseq http-media http-types profunctors - servant servant-checked-exceptions-core servant-client - servant-client-core servant-docs servant-server tagged text wai - world-peace - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/servant-checked-exceptions"; - description = "Checked exceptions for Servant APIs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-checked-exceptions-core" = callPackage - ({ mkDerivation, aeson, base, bytestring, deepseq, http-media - , http-types, profunctors, servant, servant-docs, stdenv, tagged - , text, world-peace - }: - mkDerivation { - pname = "servant-checked-exceptions-core"; - version = "2.0.0.0"; - sha256 = "aad3513403241bb06aadc605e6af88a5f3aaa0f1f208aafed6d69e15a23ab248"; - revision = "1"; - editedCabalFile = "1q2y4cri4h33cfdpgz95dczhvhmyrqajm7k6ypl3b8rw953qlzy7"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring deepseq http-media http-types profunctors - servant servant-docs tagged text world-peace - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/servant-checked-exceptions"; - description = "Checked exceptions for Servant APIs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-client" = callPackage - ({ mkDerivation, base, base-compat, bytestring, containers, deepseq - , exceptions, http-client, http-media, http-types, kan-extensions - , monad-control, mtl, semigroupoids, servant, servant-client-core - , stdenv, stm, text, time, transformers, transformers-base - , transformers-compat - }: - mkDerivation { - pname = "servant-client"; - version = "0.15"; - sha256 = "2a6c731a479f68ea8f7fe3e124b8b87d14ca9c385ed0751a70461a3c59540a25"; - revision = "1"; - editedCabalFile = "1h3j8mpnrbpc1i4appf8g4zn7h30f6ybg6fg3w057kz18bk9y76f"; - libraryHaskellDepends = [ - base base-compat bytestring containers deepseq exceptions - http-client http-media http-types kan-extensions monad-control mtl - semigroupoids servant servant-client-core stm text time - transformers transformers-base transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Automatic derivation of querying functions for servant"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-client-core" = callPackage - ({ mkDerivation, aeson, base, base-compat, base64-bytestring - , bytestring, containers, deepseq, exceptions, free, generics-sop - , http-media, http-types, network-uri, safe, servant, stdenv - , template-haskell, text, transformers - }: - mkDerivation { - pname = "servant-client-core"; - version = "0.15"; - sha256 = "9b8e49e5e3cdda9216c393164e7c4b6d693bb159959dd52648f27f7adbca7960"; - libraryHaskellDepends = [ - aeson base base-compat base64-bytestring bytestring containers - deepseq exceptions free generics-sop http-media http-types - network-uri safe servant template-haskell text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Core functionality and class for client function generation for servant APIs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-docs" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring - , case-insensitive, control-monad-omega, hashable, http-media - , http-types, lens, servant, stdenv, string-conversions, text - , unordered-containers - }: - mkDerivation { - pname = "servant-docs"; - version = "0.11.3"; - sha256 = "07eb88550b5a5354aed4bfe74f0e4099e17fae99477e0db83a072b50070cda33"; - revision = "2"; - editedCabalFile = "1zzv3mbfyvpqddhz8a7z8wfwy4w4y21rwpi7k15xzm9647sdgga5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty base base-compat bytestring case-insensitive - control-monad-omega hashable http-media http-types lens servant - string-conversions text unordered-containers - ]; - executableHaskellDepends = [ - aeson base lens servant string-conversions text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://docs.servant.dev/"; - description = "generate API docs for your servant webservice"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-elm" = callPackage - ({ mkDerivation, base, elm-export, lens, servant, servant-foreign - , stdenv, text, wl-pprint-text - }: - mkDerivation { - pname = "servant-elm"; - version = "0.5.0.0"; - sha256 = "d9d96eeaf209f93791f3c81a5b2afad7be443f9af29f362ec17661436895b950"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base elm-export lens servant servant-foreign text wl-pprint-text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mattjbray/servant-elm#readme"; - description = "Automatically derive Elm functions to query servant webservices"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-exceptions" = callPackage - ({ mkDerivation, aeson, base, exceptions, http-media, http-types - , mtl, servant, servant-server, stdenv, text, wai, warp - }: - mkDerivation { - pname = "servant-exceptions"; - version = "0.1.1"; - sha256 = "652b9fdc463200ebb8c2b2e0757f9d90662408bf45a657b3f719d0a36d34abe1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base exceptions http-media http-types mtl servant - servant-server text wai - ]; - executableHaskellDepends = [ - aeson base exceptions http-types servant-server text warp - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ch1bo/servant-exceptions#readme"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-foreign" = callPackage - ({ mkDerivation, base, base-compat, http-types, lens, servant - , stdenv, text - }: - mkDerivation { - pname = "servant-foreign"; - version = "0.15"; - sha256 = "f1197f1319a735b37c5fdd991556bf34b780a9b87d0e57d936a42ae6734bbd73"; - revision = "1"; - editedCabalFile = "1amvhixa0zwjipmv6iv97pfzlr83p0b0kvxif2d2l7akcdgd2ddz"; - libraryHaskellDepends = [ - base base-compat http-types lens servant text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Helpers for generating clients for servant APIs in any programming language"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-js" = callPackage - ({ mkDerivation, base, base-compat, charset, lens, servant - , servant-foreign, stdenv, text - }: - mkDerivation { - pname = "servant-js"; - version = "0.9.4"; - sha256 = "f86ba73d38644a74ccec50c378df66ab4863664e83359b8866cf17fbf08b3c10"; - revision = "1"; - editedCabalFile = "09nd1wlpaj20pyp6jzp2hsnyl02lvbi5vvvymhfhqf3rjxxpnyyr"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base base-compat charset lens servant servant-foreign text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Automatically derive javascript functions to query servant webservices"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-kotlin" = callPackage - ({ mkDerivation, base, containers, directory, formatting, lens - , servant, servant-foreign, stdenv, text, time, wl-pprint-text - }: - mkDerivation { - pname = "servant-kotlin"; - version = "0.1.1.6"; - sha256 = "6144885acb41bf97b7efbaaa11d9f31ee1200d0ed5217c2d31ce9b929cf1266c"; - libraryHaskellDepends = [ - base containers directory formatting lens servant servant-foreign - text time wl-pprint-text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/matsubara0507/servant-kotlin#readme"; - description = "Automatically derive Kotlin class to query servant webservices"; - license = stdenv.lib.licenses.mit; - }) {}; - "servant-lucid" = callPackage - ({ mkDerivation, base, http-media, lucid, servant, stdenv, text }: - mkDerivation { - pname = "servant-lucid"; - version = "0.8.1"; - sha256 = "6671d5d5e29b05911bb8855f42168839c2dbb8ee113a10cef6dd372fc267113d"; - revision = "1"; - editedCabalFile = "0jna96jy6nmhk6w5zxdd3qn3vlrnhnvh4s3f2bqkn3c0had5py7d"; - libraryHaskellDepends = [ base http-media lucid servant text ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Servant support for lucid"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-mock" = callPackage - ({ mkDerivation, aeson, base, base-compat, bytestring, http-types - , QuickCheck, servant, servant-server, stdenv, transformers, wai - , warp - }: - mkDerivation { - pname = "servant-mock"; - version = "0.8.5"; - sha256 = "ae547026ddc5d15bec0af9ea9324954f88dd605cae0775c81c45b1723dc77b81"; - revision = "2"; - editedCabalFile = "0269d0yr8sa043wc2ymg3fv60c9pr4jxfy9sar2qqccvngpa1vf5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base base-compat bytestring http-types QuickCheck servant - servant-server transformers wai - ]; - executableHaskellDepends = [ - aeson base QuickCheck servant-server warp - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "Derive a mock server for free from your servant API types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-pandoc" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, http-media - , lens, pandoc-types, servant-docs, stdenv, string-conversions - , text, unordered-containers - }: - mkDerivation { - pname = "servant-pandoc"; - version = "0.5.0.0"; - sha256 = "12d709fced47bb3e017b83dcc5dafb1186720e5318c1b5ebeb886d4439540463"; - libraryHaskellDepends = [ - base bytestring case-insensitive http-media lens pandoc-types - servant-docs string-conversions text unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Use Pandoc to render servant API documentation"; - license = stdenv.lib.licenses.mit; - }) {}; - "servant-rawm" = callPackage - ({ mkDerivation, base, bytestring, filepath, http-client - , http-media, http-types, lens, resourcet, servant-client - , servant-client-core, servant-docs, servant-server, stdenv, wai - , wai-app-static - }: - mkDerivation { - pname = "servant-rawm"; - version = "0.3.0.0"; - sha256 = "e9feee415891b8db2c1c032d6a4b934522354bc9cb2491b0ee59f989e94b6a27"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring filepath http-client http-media http-types lens - resourcet servant-client servant-client-core servant-docs - servant-server wai wai-app-static - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/servant-rawm"; - description = "Embed a raw 'Application' in a Servant API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-ruby" = callPackage - ({ mkDerivation, base, casing, servant-foreign, stdenv, text }: - mkDerivation { - pname = "servant-ruby"; - version = "0.9.0.0"; - sha256 = "63787834369f2fce2216af3a38157af9370a0e4d02965ccd407ec493a62127f4"; - libraryHaskellDepends = [ base casing servant-foreign text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/joneshf/servant-ruby#readme"; - description = "Generate a Ruby client from a Servant API with Net::HTTP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-server" = callPackage - ({ mkDerivation, aeson, base, base-compat, base64-bytestring - , bytestring, Cabal, cabal-doctest, containers, exceptions - , filepath, http-api-data, http-media, http-types, monad-control - , mtl, network, network-uri, resourcet, servant, stdenv - , string-conversions, tagged, text, transformers, transformers-base - , wai, wai-app-static, warp, word8 - }: - mkDerivation { - pname = "servant-server"; - version = "0.15"; - sha256 = "98034e618ff844f18dbedeb663e1a88a87ce3bc3792e9a40d7e17ca1e96b93e2"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base base-compat base64-bytestring bytestring containers exceptions - filepath http-api-data http-media http-types monad-control mtl - network network-uri resourcet servant string-conversions tagged - text transformers transformers-base wai wai-app-static word8 - ]; - executableHaskellDepends = [ - aeson base base-compat servant text wai warp - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell-servant.readthedocs.org/"; - description = "A family of combinators for defining webservices APIs and serving them"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-static-th" = callPackage - ({ mkDerivation, base, blaze-html, bytestring, containers - , directory, filepath, http-media, semigroups, servant - , servant-blaze, servant-server, stdenv, template-haskell, text - }: - mkDerivation { - pname = "servant-static-th"; - version = "0.2.2.0"; - sha256 = "5bec0129407580bde3b5bc49fc75737c916b6eaf0ea421bf72f5bf029342741b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-html bytestring containers directory filepath http-media - semigroups servant servant-blaze servant-server template-haskell - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/servant-static-th"; - description = "Embed a directory of static files in your Servant server"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-streaming" = callPackage - ({ mkDerivation, base, http-types, servant, stdenv }: - mkDerivation { - pname = "servant-streaming"; - version = "0.3.0.0"; - sha256 = "980d486577658697891360479195ed493859e2279f76334101a45c880f7c5a4c"; - revision = "3"; - editedCabalFile = "04mc3k97sk0r90m8ca34gqpb2bz8yljp3j613xx7xz90sffqc1hq"; - libraryHaskellDepends = [ base http-types servant ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/plow-technologies/servant-streaming#readme"; - description = "Servant combinators for the 'streaming' package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-swagger" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring - , Cabal, cabal-doctest, hspec, http-media - , insert-ordered-containers, lens, QuickCheck, servant - , singleton-bool, stdenv, swagger2, text, unordered-containers - }: - mkDerivation { - pname = "servant-swagger"; - version = "1.1.7"; - sha256 = "e31a1020553c2879047e7d15cd1b57b4ec216606554fdecd62e0f4521e81de36"; - revision = "2"; - editedCabalFile = "1crl8c71ns8mnp056ba1zph57cf1l4dajbgw07gpcw2cvni6x560"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson aeson-pretty base base-compat bytestring hspec http-media - insert-ordered-containers lens QuickCheck servant singleton-bool - swagger2 text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-servant/servant-swagger"; - description = "Generate a Swagger/OpenAPI/OAS 2.0 specification for your servant API."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-swagger-ui" = callPackage - ({ mkDerivation, base, bytestring, file-embed-lzma, servant - , servant-server, servant-swagger-ui-core, stdenv, swagger2, text - }: - mkDerivation { - pname = "servant-swagger-ui"; - version = "0.3.2.3.19.3"; - sha256 = "87ddb5982ce6b12698f9eff28b5d6fc2ebd00cb406bd48c8d0ff1951a1335e68"; - revision = "2"; - editedCabalFile = "1p16lixhl9dbv3xlxpzy784a68xqnhvy91wyl5y183kixjniyf6f"; - libraryHaskellDepends = [ - base bytestring file-embed-lzma servant servant-server - servant-swagger-ui-core swagger2 text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-servant/servant-swagger-ui"; - description = "Servant swagger ui"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-swagger-ui-core" = callPackage - ({ mkDerivation, base, blaze-markup, bytestring, http-media - , servant, servant-blaze, servant-server, stdenv, swagger2, text - , transformers, transformers-compat, wai-app-static - }: - mkDerivation { - pname = "servant-swagger-ui-core"; - version = "0.3.2"; - sha256 = "a2cd0e8e68c5de21aea54735f891c4c6e54007c85e93dffd42b89aba419a3ca8"; - revision = "4"; - editedCabalFile = "0vvfqf9zh8a5sgd4sn4mkay803lqc5zd9dz175gxs3wmca0gr3fk"; - libraryHaskellDepends = [ - base blaze-markup bytestring http-media servant servant-blaze - servant-server swagger2 text transformers transformers-compat - wai-app-static - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-servant/servant-swagger-ui"; - description = "Servant swagger ui core components"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-swagger-ui-redoc" = callPackage - ({ mkDerivation, base, bytestring, file-embed-lzma, servant - , servant-server, servant-swagger-ui-core, stdenv, swagger2, text - }: - mkDerivation { - pname = "servant-swagger-ui-redoc"; - version = "0.3.2.1.22.2"; - sha256 = "e09919e7518f8f5b00868eac0c4f80212b5a4950d2c10112696f52446e369934"; - revision = "2"; - editedCabalFile = "160acp4hvwm4m42kx275qr1nkg9s7bjxlk61agvm45hi3lg0lm6f"; - libraryHaskellDepends = [ - base bytestring file-embed-lzma servant servant-server - servant-swagger-ui-core swagger2 text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-servant/servant-swagger-ui"; - description = "Servant swagger ui: ReDoc theme"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-tracing" = callPackage - ({ mkDerivation, aeson, async, base, bytestring, bytestring-lexing - , containers, hashable, http-api-data, http-client, lifted-base - , monad-control, mtl, random, servant, servant-server, stdenv, text - , time, transformers, unordered-containers, wai, warp - }: - mkDerivation { - pname = "servant-tracing"; - version = "0.1.0.2"; - sha256 = "3edf2e58c60b6624a81c57bbc606889d779ba0cc57fc785240cb353f9caaea62"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson async base bytestring bytestring-lexing containers hashable - http-api-data http-client lifted-base monad-control mtl random - servant servant-server text time unordered-containers wai - ]; - executableHaskellDepends = [ - async base bytestring containers http-client lifted-base - monad-control mtl servant servant-server text transformers wai warp - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ChrisCoffey/haskell-opentracing-light#readme"; - license = stdenv.lib.licenses.mit; - }) {}; - "servant-websockets" = callPackage - ({ mkDerivation, aeson, async, base, bytestring, conduit - , exceptions, resourcet, servant-server, stdenv, text, wai - , wai-websockets, warp, websockets - }: - mkDerivation { - pname = "servant-websockets"; - version = "1.1.0"; - sha256 = "63384c89db83bd03e00f2f6796c391fc133ffb3c2bc72976778d476ed82f0a51"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson async base bytestring conduit exceptions resourcet - servant-server text wai wai-websockets warp websockets - ]; - executableHaskellDepends = [ - aeson base conduit servant-server text wai warp websockets - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/moesenle/servant-websockets#readme"; - description = "Small library providing WebSocket endpoints for servant"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "servant-yaml" = callPackage - ({ mkDerivation, base, bytestring, http-media, servant, stdenv - , yaml - }: - mkDerivation { - pname = "servant-yaml"; - version = "0.1.0.1"; - sha256 = "01547419509cd0424885146734c08acede329a660022f534ac9b19cc685bf601"; - revision = "2"; - editedCabalFile = "0scpm5dshnb7izn1xx8q3xm1m5f52y1s7nzgp7sa7zcv3pp6n7lw"; - libraryHaskellDepends = [ - base bytestring http-media servant yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-servant/servant-yaml#readme"; - description = "Servant support for yaml"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "serverless-haskell" = callPackage - ({ mkDerivation, aeson, aeson-casing, aeson-extra, amazonka-core - , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive - , http-types, iproute, lens, network, network-simple, stdenv, text - , time, unix, unordered-containers - }: - mkDerivation { - pname = "serverless-haskell"; - version = "0.8.5"; - sha256 = "0fe307cadc5f0297e11e7dcac15b9371ad98f04683db7f6f5e1faf03cb17d84a"; - libraryHaskellDepends = [ - aeson aeson-casing aeson-extra amazonka-core amazonka-kinesis - amazonka-s3 base bytestring case-insensitive http-types iproute - lens network network-simple text time unix unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/seek-oss/serverless-haskell#readme"; - description = "Deploying Haskell code onto AWS Lambda using Serverless"; - license = stdenv.lib.licenses.mit; - }) {}; - "serversession" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring - , data-default, hashable, nonce, path-pieces, stdenv, text, time - , transformers, unordered-containers - }: - mkDerivation { - pname = "serversession"; - version = "1.0.1"; - sha256 = "3ffbefd87017e8d46fbbe380f59e24672aa9c06b999da5f9ae0b052094d94822"; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring data-default hashable nonce - path-pieces text time transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/serversession"; - description = "Secure, modular server-side sessions"; - license = stdenv.lib.licenses.mit; - }) {}; - "serversession-frontend-wai" = callPackage - ({ mkDerivation, base, bytestring, cookie, data-default - , path-pieces, serversession, stdenv, text, time, transformers - , unordered-containers, vault, wai, wai-session - }: - mkDerivation { - pname = "serversession-frontend-wai"; - version = "1.0"; - sha256 = "0b48130e3d3915dc46ec2392984e7862d066f6ddd454127a98b0c21c2574b167"; - libraryHaskellDepends = [ - base bytestring cookie data-default path-pieces serversession text - time transformers unordered-containers vault wai wai-session - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/serversession"; - description = "wai-session bindings for serversession"; - license = stdenv.lib.licenses.mit; - }) {}; - "servius" = callPackage - ({ mkDerivation, base, blaze-builder, blaze-html, bytestring - , cmark-gfm, http-types, shakespeare, stdenv, text, wai - , wai-app-static - }: - mkDerivation { - pname = "servius"; - version = "1.2.3.0"; - sha256 = "72c4b63e85df0cb51935bec85e31d44c6ee5cafd0015bd5e6ff44286e9e18b27"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base blaze-builder blaze-html bytestring cmark-gfm http-types - shakespeare text wai wai-app-static - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/servius#readme"; - description = "Warp web server with template rendering"; - license = stdenv.lib.licenses.mit; - }) {}; - "ses-html" = callPackage - ({ mkDerivation, base, base64-bytestring, blaze-html, byteable - , bytestring, cryptohash, HsOpenSSL, http-streams, stdenv, tagsoup - , time - }: - mkDerivation { - pname = "ses-html"; - version = "0.4.0.0"; - sha256 = "cff76ee03b538e69a3d107cd63d577210cf0f9879d470bf55519e887e2a8a08f"; - libraryHaskellDepends = [ - base base64-bytestring blaze-html byteable bytestring cryptohash - HsOpenSSL http-streams tagsoup time - ]; - doHaddock = false; - doCheck = false; - description = "Send HTML formatted emails using Amazon's SES REST API with blaze"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "setenv" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "setenv"; - version = "0.1.1.3"; - sha256 = "e358df39afc03d5a39e2ec650652d845c85c80cc98fe331654deafb4767ecb32"; - revision = "1"; - editedCabalFile = "0ny4g3kjys0hqg41mnwrsymy1bwhl8l169kis4y4fa58sb06m4f5"; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - description = "A cross-platform library for setting environment variables"; - license = stdenv.lib.licenses.mit; - }) {}; - "setlocale" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "setlocale"; - version = "1.0.0.8"; - sha256 = "6dd148e47714707c311d20af606284ab392392a84ffb71da4004010e67d5b969"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/IchUndNichtDu/haskell-setlocale"; - description = "Haskell bindings to setlocale"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "shake" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, directory - , extra, filepath, hashable, js-flot, js-jquery, primitive, process - , random, stdenv, time, transformers, unix, unordered-containers - , utf8-string - }: - mkDerivation { - pname = "shake"; - version = "0.17.5"; - sha256 = "dff71cf56f7ef75045419b3084f9ef2481023df2ba3541a6f4e84e50dea42a20"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base binary bytestring deepseq directory extra filepath hashable - js-flot js-jquery primitive process random time transformers unix - unordered-containers utf8-string - ]; - executableHaskellDepends = [ - base binary bytestring deepseq directory extra filepath hashable - js-flot js-jquery primitive process random time transformers unix - unordered-containers utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://shakebuild.com"; - description = "Build system library, like Make, but more accurate dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "shake-language-c" = callPackage - ({ mkDerivation, base, data-default-class, fclabels, process, shake - , split, stdenv, unordered-containers - }: - mkDerivation { - pname = "shake-language-c"; - version = "0.12.0"; - sha256 = "661e350179e55c930c3c36f53853db2bc2697d88c5265049085cea09f5aa1ab0"; - libraryHaskellDepends = [ - base data-default-class fclabels process shake split - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/samplecount/shake-language-c"; - description = "Utilities for cross-compiling with Shake"; - license = stdenv.lib.licenses.asl20; - }) {}; - "shakespeare" = callPackage - ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring - , containers, directory, exceptions, ghc-prim, parsec, process - , scientific, stdenv, template-haskell, text, time, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "shakespeare"; - version = "2.0.20"; - sha256 = "f50ebff8e585851a1e3af36885d6a6d1218b19dcde1d7459f02272d6925d9e03"; - libraryHaskellDepends = [ - aeson base blaze-html blaze-markup bytestring containers directory - exceptions ghc-prim parsec process scientific template-haskell text - time transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/shakespearean-templates"; - description = "A toolkit for making compile-time interpolated templates"; - license = stdenv.lib.licenses.mit; - }) {}; - "shared-memory" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "shared-memory"; - version = "0.2.0.0"; - sha256 = "266739418194429f0e3a316decd28bf15ae8cc4ce2e1e19c523dc92b3f023abc"; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nh2/shared-memory"; - description = "POSIX shared memory"; - license = stdenv.lib.licenses.mit; - }) {}; - "shell-conduit" = callPackage - ({ mkDerivation, async, base, bytestring, conduit, conduit-extra - , directory, filepath, monads-tf, process, resourcet, semigroups - , split, stdenv, template-haskell, text, transformers, unix - , unliftio - }: - mkDerivation { - pname = "shell-conduit"; - version = "4.7.0"; - sha256 = "6f31c5b6fb46219c4da575b4405f1a5af51eed1f22073d315df80c8a40ddbe30"; - libraryHaskellDepends = [ - async base bytestring conduit conduit-extra directory filepath - monads-tf process resourcet semigroups split template-haskell text - transformers unix unliftio - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/shell-conduit"; - description = "Write shell scripts with Conduit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "shell-escape" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, stdenv - , vector - }: - mkDerivation { - pname = "shell-escape"; - version = "0.2.0"; - sha256 = "e23c9ba94a27e45430cb39e6bb236557e789d24129257c3def377f441b2cba4a"; - libraryHaskellDepends = [ - base binary bytestring containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/solidsnack/shell-escape"; - description = "Shell escaping library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "shelltestrunner" = callPackage - ({ mkDerivation, base, cmdargs, Diff, directory, filemanip - , filepath, HUnit, parsec, pretty-show, process, regex-tdfa, safe - , stdenv, test-framework, test-framework-hunit, utf8-string - }: - mkDerivation { - pname = "shelltestrunner"; - version = "1.9"; - sha256 = "cbc4358d447e32babe4572cda0d530c648cc4c67805f9f88002999c717feb3a8"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base cmdargs Diff directory filemanip filepath HUnit parsec - pretty-show process regex-tdfa safe test-framework - test-framework-hunit utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/simonmichael/shelltestrunner"; - description = "Easy, repeatable testing of CLI programs/commands"; - license = "GPL"; - }) {}; - "shelly" = callPackage - ({ mkDerivation, async, base, bytestring, containers, directory - , enclosed-exceptions, exceptions, lifted-async, lifted-base - , monad-control, mtl, process, stdenv, system-fileio - , system-filepath, text, time, transformers, transformers-base - , unix-compat - }: - mkDerivation { - pname = "shelly"; - version = "1.8.0"; - sha256 = "737f51e5f4d98d72012d905d3f2b78b620c5c15292bb77e38264fa4478bb08f8"; - revision = "1"; - editedCabalFile = "17achybammxg5i7zcmwlfcb7xk77q3lfvck3gqa9ljfb6ksgrxb7"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base bytestring containers directory enclosed-exceptions - exceptions lifted-async lifted-base monad-control mtl process - system-fileio system-filepath text time transformers - transformers-base unix-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/Shelly.hs"; - description = "shell-like (systems) programming in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "shikensu" = callPackage - ({ mkDerivation, aeson, base, bytestring, directory, filepath, flow - , Glob, stdenv, text, unordered-containers - }: - mkDerivation { - pname = "shikensu"; - version = "0.3.11"; - sha256 = "69f59f067522715a86f60bf4e60f9597bc1243e50d204b99b31e89e8e8c63010"; - libraryHaskellDepends = [ - aeson base bytestring directory filepath flow Glob text - unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/icidasset/shikensu#readme"; - description = "Run a sequence of functions on in-memory representations of files"; - license = stdenv.lib.licenses.mit; - }) {}; - "shortcut-links" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "shortcut-links"; - version = "0.4.2.1"; - sha256 = "0d36ecfabc8e2d3a4c0015b521b6cb8efa8469bbd518a509326f07a3aa24deff"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/aelve/shortcut-links"; - description = "Link shortcuts for use in text markup"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "should-not-typecheck" = callPackage - ({ mkDerivation, base, deepseq, HUnit, stdenv }: - mkDerivation { - pname = "should-not-typecheck"; - version = "2.1.0"; - sha256 = "f538ac70ce07679bc2e6c1651db82a86866664ab995665fdc78e6cb12bd8d591"; - libraryHaskellDepends = [ base deepseq HUnit ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/CRogers/should-not-typecheck"; - description = "A HUnit/hspec assertion library to verify that an expression does not typecheck"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "show-combinators" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "show-combinators"; - version = "0.1.1.0"; - sha256 = "d53abf2b289a3075555f1ede76f5beba0fadce352cd94efbad610bc1eb76020a"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Lysxia/show-combinators#readme"; - description = "Combinators to write Show instances"; - license = stdenv.lib.licenses.mit; - }) {}; - "show-prettyprint" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, prettyprinter, stdenv - , trifecta - }: - mkDerivation { - pname = "show-prettyprint"; - version = "0.2.2"; - sha256 = "f07d860b9bb4176a4e46038c5100ecf07d443daa1b15455ca4c2bd4d10e9af55"; - libraryHaskellDepends = [ - ansi-wl-pprint base prettyprinter trifecta - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/quchen/show-prettyprint#readme"; - description = "Robust prettyprinter for output of auto-generated Show instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "siggy-chardust" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "siggy-chardust"; - version = "1.0.0"; - sha256 = "9f730c3cc04ea629e0b655bfff66f83e146eb3b9f0908d5dc00b4c558d5f5a43"; - revision = "1"; - editedCabalFile = "1lknm1jr6h5qpixc727aj3zbmj4ia21r9lb8gzj50iildgmfk33b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/blockscope/flare-timing/tree/master/siggy-chardust#readme"; - description = "Rounding rationals to significant digits and decimal places"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "signal" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "signal"; - version = "0.1.0.4"; - sha256 = "c4bfdd92b75347e02759c1a7d75963fbc7052e948ec96e25299ca5262e5d76e5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base unix ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/pmlodawski/signal"; - description = "Multiplatform signal support for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "silently" = callPackage - ({ mkDerivation, base, deepseq, directory, stdenv }: - mkDerivation { - pname = "silently"; - version = "1.2.5"; - sha256 = "cef625635053a46032ca53b43d311921875a437910b6568ded17027fdca83839"; - libraryHaskellDepends = [ base deepseq directory ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hspec/silently"; - description = "Prevent or capture writing to stdout and other handles"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "simple-cmd" = callPackage - ({ mkDerivation, base, directory, filepath, process, stdenv }: - mkDerivation { - pname = "simple-cmd"; - version = "0.1.2"; - sha256 = "e6a15592fbbcc5667b7e45563b55d08228ea483241a3b80aef9f7df802f54d82"; - libraryHaskellDepends = [ base directory filepath process ]; - doHaddock = false; - doCheck = false; - description = "Simple String-based process commands"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "simple-log" = callPackage - ({ mkDerivation, async, base, base-unicode-symbols, containers - , data-default, deepseq, directory, exceptions, filepath, hformat - , microlens, microlens-platform, mmorph, mtl, SafeSemaphore, stdenv - , text, time, transformers - }: - mkDerivation { - pname = "simple-log"; - version = "0.9.11"; - sha256 = "533200932d552a04b3ba7689299c00161542f61683eec516868071cb2e5b11d7"; - libraryHaskellDepends = [ - async base base-unicode-symbols containers data-default deepseq - directory exceptions filepath hformat microlens microlens-platform - mmorph mtl SafeSemaphore text time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mvoidex/simple-log"; - description = "Simple log for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "simple-reflect" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "simple-reflect"; - version = "0.3.3"; - sha256 = "07825ea04c135298008cf080133e3bfc8e04cbacd24719c46ac6a2ca4acfdb2b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions"; - description = "Simple reflection of expressions containing variables"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "simple-sendfile" = callPackage - ({ mkDerivation, base, bytestring, network, stdenv, unix }: - mkDerivation { - pname = "simple-sendfile"; - version = "0.2.28"; - sha256 = "a9800b79d41c3896181c93b3805135440bca31b5524a33303b7e32aa1bb29870"; - revision = "2"; - editedCabalFile = "16pyj7b4i1dzpzqbarzjamcjdyiy8j6lh5vf1ggchx69x44dqcr3"; - libraryHaskellDepends = [ base bytestring network unix ]; - doHaddock = false; - doCheck = false; - description = "Cross platform library for the sendfile system call"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "simple-vec3" = callPackage - ({ mkDerivation, base, QuickCheck, stdenv, vector }: - mkDerivation { - pname = "simple-vec3"; - version = "0.4.0.10"; - sha256 = "141788c133a8602825d0f2267e6a87e01e1cedb4f3fc0f1a1cc1203fde4ad937"; - libraryHaskellDepends = [ base QuickCheck vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dzhus/simple-vec3#readme"; - description = "Three-dimensional vectors of doubles with basic operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "since" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "since"; - version = "0.0.0"; - sha256 = "7aa713c0fc0b2a748c9b5ddc413b918f77335e45b56d3968100428a42cdfc1ff"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/since#readme"; - description = "Get the number of seconds since the last invocation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "singleton-bool" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "singleton-bool"; - version = "0.1.4"; - sha256 = "0195c6e2be1e149e5b687ec3be84fd5089b377345fddd333a9d681eacdfafb2a"; - revision = "1"; - editedCabalFile = "0ccd49z9xwa8gr8sclmmn0zc4xq39yyjws4zr6lrw3xjql130nsx"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/singleton-bool#readme"; - description = "Type level booleans"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "singleton-nats" = callPackage - ({ mkDerivation, base, singletons, stdenv }: - mkDerivation { - pname = "singleton-nats"; - version = "0.4.2"; - sha256 = "8f8169b013a5e4725be9682bf413019cdaf6e020455839612c145ba6849e9cf1"; - libraryHaskellDepends = [ base singletons ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/AndrasKovacs/singleton-nats"; - description = "Unary natural numbers relying on the singletons infrastructure"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "singletons" = callPackage - ({ mkDerivation, base, Cabal, containers, directory, filepath - , ghc-boot-th, mtl, pretty, stdenv, syb, template-haskell, text - , th-desugar, transformers - }: - mkDerivation { - pname = "singletons"; - version = "2.5.1"; - sha256 = "20b00a3a732812ec1141014d2f8d379e392165ce7881fa7de9add8db0e22f147"; - setupHaskellDepends = [ base Cabal directory filepath ]; - libraryHaskellDepends = [ - base containers ghc-boot-th mtl pretty syb template-haskell text - th-desugar transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/goldfirere/singletons"; - description = "A framework for generating singleton types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "siphash" = callPackage - ({ mkDerivation, base, bytestring, cpu, stdenv }: - mkDerivation { - pname = "siphash"; - version = "1.0.3"; - sha256 = "cf81ce41c6ca40c4fec9add5dcebc161cb2d31f522f9ad727df23d30ac6a05f3"; - revision = "1"; - editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base bytestring cpu ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-siphash"; - description = "siphash: a fast short input PRF"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "size-based" = callPackage - ({ mkDerivation, base, dictionary-sharing, stdenv, template-haskell - , testing-type-modifiers - }: - mkDerivation { - pname = "size-based"; - version = "0.1.2.0"; - sha256 = "779ff6c45476d20ffd2ad7327b44cefaaf0436ed89f43b2967761c0b58a4151a"; - libraryHaskellDepends = [ - base dictionary-sharing template-haskell testing-type-modifiers - ]; - doHaddock = false; - doCheck = false; - description = "Sized functors, for size-based enumerations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sized-grid" = callPackage - ({ mkDerivation, adjunctions, aeson, base, comonad, constraints - , distributive, generics-sop, lens, mtl, random, stdenv, vector - , vector-space - }: - mkDerivation { - pname = "sized-grid"; - version = "0.1.1.6"; - sha256 = "4907af7a4ac56a838d599f319b2096a63c4f30eaf84cac0a5a22d937605c0b1b"; - libraryHaskellDepends = [ - adjunctions aeson base comonad constraints distributive - generics-sop lens mtl random vector vector-space - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/edwardwas/sized-grid"; - description = "Multidimensional grids with sized specified at compile time"; - license = stdenv.lib.licenses.mit; - }) {}; - "skein" = callPackage - ({ mkDerivation, base, bytestring, cereal, crypto-api, stdenv - , tagged - }: - mkDerivation { - pname = "skein"; - version = "1.0.9.4"; - sha256 = "f882ca0cc5ed336ef898fb3c89579e392900259296b2320edf968b9fc16cb8c9"; - libraryHaskellDepends = [ - base bytestring cereal crypto-api tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/meteficha/skein"; - description = "Skein, a family of cryptographic hash functions. Includes Skein-MAC as well."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "skews" = callPackage - ({ mkDerivation, base, bytestring, deque, stdenv, websockets }: - mkDerivation { - pname = "skews"; - version = "0.1.0.1"; - sha256 = "b544480c3e7d676f008faccd1d31639114f773aac8d2b8828be48122a120b60d"; - revision = "1"; - editedCabalFile = "0zvqfr9dfcap3ljpkq5hq95npmhrmndlh0gs4pa2zm8bwrh1nl66"; - libraryHaskellDepends = [ base bytestring deque websockets ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iij-ii/skews#readme"; - description = "A very quick-and-dirty WebSocket server"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "skip-var" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "skip-var"; - version = "0.1.1.0"; - sha256 = "bfbce57abd47c9c892f734b5c7d2bccad90fa5f8f8a6d4747cca15d2a493d41e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/leohaskell/skip-var#readme"; - description = "Skip variables"; - license = stdenv.lib.licenses.mit; - }) {}; - "skylighting" = callPackage - ({ mkDerivation, aeson, ansi-terminal, attoparsec, base - , base64-bytestring, binary, blaze-html, bytestring - , case-insensitive, colour, containers, directory, filepath, hxt - , mtl, regex-pcre-builtin, safe, skylighting-core, stdenv, text - , utf8-string - }: - mkDerivation { - pname = "skylighting"; - version = "0.7.6"; - sha256 = "8e3400784276356aa42010cb671c59cd4d14f23d0f02deb5e2a7f5010c9afc37"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson ansi-terminal attoparsec base base64-bytestring binary - blaze-html bytestring case-insensitive colour containers directory - filepath hxt mtl regex-pcre-builtin safe skylighting-core text - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jgm/skylighting"; - description = "syntax highlighting library"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "skylighting-core" = callPackage - ({ mkDerivation, aeson, ansi-terminal, attoparsec, base - , base64-bytestring, binary, blaze-html, bytestring - , case-insensitive, colour, containers, directory, filepath, hxt - , mtl, regex-pcre-builtin, safe, stdenv, text, transformers - , utf8-string - }: - mkDerivation { - pname = "skylighting-core"; - version = "0.7.6"; - sha256 = "c7d622d7a3dc03a132edebd863c216113f4b9390e314609b29f96e7288a2500a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson ansi-terminal attoparsec base base64-bytestring binary - blaze-html bytestring case-insensitive colour containers directory - filepath hxt mtl regex-pcre-builtin safe text transformers - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jgm/skylighting"; - description = "syntax highlighting library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "slack-web" = callPackage - ({ mkDerivation, aeson, base, containers, errors, http-api-data - , http-client, http-client-tls, megaparsec, mtl, servant - , servant-client, servant-client-core, stdenv, text, time - , transformers - }: - mkDerivation { - pname = "slack-web"; - version = "0.2.0.10"; - sha256 = "01e25a49f25cea3394dd63a49702b2c1917cee9ee71603fb9ba37604baf19b35"; - libraryHaskellDepends = [ - aeson base containers errors http-api-data http-client - http-client-tls megaparsec mtl servant servant-client - servant-client-core text time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jpvillaisaza/slack-web"; - description = "Bindings for the Slack web API"; - license = stdenv.lib.licenses.mit; - }) {}; - "smallcheck" = callPackage - ({ mkDerivation, base, ghc-prim, logict, mtl, pretty, stdenv }: - mkDerivation { - pname = "smallcheck"; - version = "1.1.5"; - sha256 = "9020e67895a57bde02d7df2c0af06a4c769eff56d48b6a830f6d803df891aea4"; - libraryHaskellDepends = [ base ghc-prim logict mtl pretty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/smallcheck"; - description = "A property-based testing library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "smoothie" = callPackage - ({ mkDerivation, aeson, base, linear, stdenv, text, vector }: - mkDerivation { - pname = "smoothie"; - version = "0.4.2.9"; - sha256 = "d3cafbc34a5d03363ddd41e59bd681168cd2d0aa8be4678db9ae1904ad202a4f"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ aeson base linear text vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phaazon/smoothie"; - description = "Smooth curves via several interpolation modes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "smtp-mail" = callPackage - ({ mkDerivation, array, base, base16-bytestring, base64-bytestring - , bytestring, cryptohash, filepath, mime-mail, network, stdenv - , text - }: - mkDerivation { - pname = "smtp-mail"; - version = "0.1.4.6"; - sha256 = "86dacbef87a2519222a1165b49401a437887a249f5bfd63a99702198dad214bc"; - libraryHaskellDepends = [ - array base base16-bytestring base64-bytestring bytestring - cryptohash filepath mime-mail network text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jhickner/smtp-mail"; - description = "Simple email sending via SMTP"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "snap-blaze" = callPackage - ({ mkDerivation, base, blaze-html, snap-core, stdenv }: - mkDerivation { - pname = "snap-blaze"; - version = "0.2.1.5"; - sha256 = "b36e35bd4ba3087b3de92702e488ba6570675719243b5dbdf4eae0b819988841"; - libraryHaskellDepends = [ base blaze-html snap-core ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jaspervdj/snap-blaze"; - description = "blaze-html integration for Snap"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "snap-core" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, bytestring-builder - , case-insensitive, containers, directory, filepath, hashable - , HUnit, io-streams, lifted-base, monad-control, mtl, network - , network-uri, old-locale, random, readable, regex-posix, stdenv - , text, time, transformers, transformers-base, unix-compat - , unordered-containers, vector - }: - mkDerivation { - pname = "snap-core"; - version = "1.0.4.0"; - sha256 = "b902602f8422b22a1986bdcf2c2bf72148efc84365b048d832cb42bcf2eb7436"; - libraryHaskellDepends = [ - attoparsec base bytestring bytestring-builder case-insensitive - containers directory filepath hashable HUnit io-streams lifted-base - monad-control mtl network network-uri old-locale random readable - regex-posix text time transformers transformers-base unix-compat - unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://snapframework.com/"; - description = "Snap: A Haskell Web Framework (core interfaces and types)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "snap-server" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, bytestring - , bytestring-builder, case-insensitive, clock, containers, filepath - , HsOpenSSL, io-streams, io-streams-haproxy, lifted-base, mtl - , network, old-locale, openssl-streams, snap-core, stdenv, text - , time, unix, unix-compat, vector - }: - mkDerivation { - pname = "snap-server"; - version = "1.1.0.0"; - sha256 = "249ea390a4e54899b310c0dd13b91af007a2b685bd0d9769c3e208dd914d7c6f"; - revision = "3"; - editedCabalFile = "0a9d3nqb5rvgm25nak68lp6yj9m6cwhbgdbg5l7ib5i2czcg7yjh"; - configureFlags = [ "-fopenssl" ]; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - attoparsec base blaze-builder bytestring bytestring-builder - case-insensitive clock containers filepath HsOpenSSL io-streams - io-streams-haproxy lifted-base mtl network old-locale - openssl-streams snap-core text time unix unix-compat vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://snapframework.com/"; - description = "A web server for the Snap Framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "snowflake" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "snowflake"; - version = "0.1.1.1"; - sha256 = "f156ca321ae17033fe1cbe7e676fea403136198e1c3a132924a080cd3145cddd"; - revision = "1"; - editedCabalFile = "1y5v3nsin8iyxvh0abfhs7ma75p5zjvha0lp41801pdiikacfzha"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - description = "A loose port of Twitter Snowflake to Haskell. Generates arbitrary precision, unique, time-sortable identifiers."; - license = stdenv.lib.licenses.asl20; - }) {}; - "soap" = callPackage - ({ mkDerivation, base, bytestring, conduit, configurator - , data-default, exceptions, http-client, http-types, iconv, mtl - , resourcet, stdenv, text, unordered-containers, xml-conduit - , xml-conduit-writer, xml-types - }: - mkDerivation { - pname = "soap"; - version = "0.2.3.6"; - sha256 = "cdfc8ee01d3adb0334521a954e32e64f52a3e404fb469679e39904d4ed52b176"; - libraryHaskellDepends = [ - base bytestring conduit configurator data-default exceptions - http-client http-types iconv mtl resourcet text - unordered-containers xml-conduit xml-conduit-writer xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/dpwiz/haskell-soap"; - description = "SOAP client tools"; - license = stdenv.lib.licenses.mit; - }) {}; - "soap-tls" = callPackage - ({ mkDerivation, base, configurator, connection, data-default - , http-client, http-client-tls, soap, stdenv, text, tls, x509 - , x509-store, x509-validation - }: - mkDerivation { - pname = "soap-tls"; - version = "0.1.1.4"; - sha256 = "ce8b33cd4bb2cc60093df4de231967edd789fd9da44a261a539a221116853a14"; - libraryHaskellDepends = [ - base configurator connection data-default http-client - http-client-tls soap text tls x509 x509-store x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/dpwiz/haskell-soap"; - description = "TLS-enabled SOAP transport (using tls package)"; - license = stdenv.lib.licenses.mit; - }) {}; - "socket-activation" = callPackage - ({ mkDerivation, base, network, stdenv, transformers, unix }: - mkDerivation { - pname = "socket-activation"; - version = "0.1.0.2"; - sha256 = "b99e7b4f296cd462aac84e5bb61fb02953e2080d1351e9e10a63d35dc34eb43b"; - revision = "1"; - editedCabalFile = "0bvm8ik8fp0v5gjw6q4h767zgs1i4ydckdypvqa85sarc985hkmp"; - libraryHaskellDepends = [ base network transformers unix ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ddfisher/haskell-socket-activation"; - description = "systemd socket activation library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "socks" = callPackage - ({ mkDerivation, base, bytestring, cereal, network, stdenv }: - mkDerivation { - pname = "socks"; - version = "0.5.6"; - sha256 = "fa63cd838025e18864c59755750c0cfc4ea76e140a542f07a5c682488ec78438"; - revision = "1"; - editedCabalFile = "19f6yzalxbvw0zi1z8wi0vz7s21p5anvfaqsaszppnkgk6j6nnvn"; - libraryHaskellDepends = [ base bytestring cereal network ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-socks"; - description = "Socks proxy (ver 5)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sop-core" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "sop-core"; - version = "0.4.0.0"; - sha256 = "a381b0efb8e2dedb6627da6adb0a2b72421f87d43d9b53d68d5b2e866015911d"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - description = "True Sums of Products"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sort" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "sort"; - version = "1.0.0.0"; - sha256 = "cee3894879cb4b2150331eca96d5d27f51a6114bcb082d1d8dded55881f5770d"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdornan/sort"; - description = "A Haskell sorting toolkit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sorted-list" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "sorted-list"; - version = "0.2.1.0"; - sha256 = "b4e476157cf0df745eb3c39921357ffb2bf411cd169e755e99536031e07c5ef4"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Daniel-Diaz/sorted-list/blob/master/README.md"; - description = "Type-enforced sorted lists and related functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sourcemap" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, process - , stdenv, text, unordered-containers, utf8-string - }: - mkDerivation { - pname = "sourcemap"; - version = "0.1.6"; - sha256 = "b9a04cccb4fe7eea8b37a2eaf2bc776eae5640038ab76fb948c5a3ea09a9ce7a"; - revision = "1"; - editedCabalFile = "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring process text unordered-containers - utf8-string - ]; - doHaddock = false; - doCheck = false; - description = "Implementation of source maps as proposed by Google and Mozilla"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sox" = callPackage - ({ mkDerivation, base, containers, explicit-exception - , extensible-exceptions, process, sample-frame, semigroups, stdenv - , transformers, unix, utility-ht - }: - mkDerivation { - pname = "sox"; - version = "0.2.3.1"; - sha256 = "70a6ab47d1e16271332574667dd30f77eefb331a6e7dda4e959f48ac3359aa45"; - libraryHaskellDepends = [ - base containers explicit-exception extensible-exceptions process - sample-frame semigroups transformers unix utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Sox"; - description = "Play, write, read, convert audio signals using Sox"; - license = "GPL"; - }) {}; - "soxlib" = callPackage - ({ mkDerivation, base, bytestring, explicit-exception - , extensible-exceptions, sample-frame, sox, stdenv, storablevector - , transformers, utility-ht - }: - mkDerivation { - pname = "soxlib"; - version = "0.0.3.1"; - sha256 = "cde9c76515588257fddece108376537bcda7698d0107bf0386b968ea5189ec38"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring explicit-exception extensible-exceptions - sample-frame storablevector transformers utility-ht - ]; - libraryPkgconfigDepends = [ sox ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Sox"; - description = "Write, read, convert audio signals using libsox"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) sox;}; - "sparse-linear-algebra" = callPackage - ({ mkDerivation, base, containers, exceptions, hspec, mtl - , primitive, QuickCheck, stdenv, transformers, vector - , vector-algorithms - }: - mkDerivation { - pname = "sparse-linear-algebra"; - version = "0.3.1"; - sha256 = "c762778b2e45bdba24336be58375871963d4c2ad76cb03c548f0fe0b72f3dcc9"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base containers exceptions hspec mtl primitive QuickCheck - transformers vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocramz/sparse-linear-algebra"; - description = "Numerical computing in native Haskell"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "special-values" = callPackage - ({ mkDerivation, base, bytestring, ieee754, scientific, stdenv - , text - }: - mkDerivation { - pname = "special-values"; - version = "0.1.0.0"; - sha256 = "3c14dd1304dacc8e54c2dcf95ebb3bb74b172b5409b9b45352108a4698e06dce"; - libraryHaskellDepends = [ - base bytestring ieee754 scientific text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/special-values#readme"; - description = "Typeclass providing special values"; - license = stdenv.lib.licenses.mit; - }) {}; - "speculate" = callPackage - ({ mkDerivation, base, cmdargs, containers, leancheck, stdenv }: - mkDerivation { - pname = "speculate"; - version = "0.3.5"; - sha256 = "706cb2ac18b2d646bc20cc80135bad10e30bd0096ab479308cd110077035ea44"; - libraryHaskellDepends = [ base cmdargs containers leancheck ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/speculate#readme"; - description = "discovery of properties about Haskell functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "speedy-slice" = callPackage - ({ mkDerivation, base, kan-extensions, lens, mcmc-types - , mwc-probability, pipes, primitive, stdenv, transformers - }: - mkDerivation { - pname = "speedy-slice"; - version = "0.3.0"; - sha256 = "efbf8a10b681b940078f70fb9aca43fec8ba436c82f3faf719bbe495ba152899"; - libraryHaskellDepends = [ - base kan-extensions lens mcmc-types mwc-probability pipes primitive - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jtobin/speedy-slice"; - description = "Speedy slice sampling"; - license = stdenv.lib.licenses.mit; - }) {}; - "sphinx" = callPackage - ({ mkDerivation, base, binary, bytestring, data-binary-ieee754 - , network, stdenv, text, text-icu, xml - }: - mkDerivation { - pname = "sphinx"; - version = "0.6.0.2"; - sha256 = "76a977c6ce6e71c220bd5fed7acd0be500c2a1b5c8d081a29564a8e37ba7a6df"; - libraryHaskellDepends = [ - base binary bytestring data-binary-ieee754 network text text-icu - xml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/gregwebs/haskell-sphinx-client"; - description = "Haskell bindings to the Sphinx full-text searching daemon"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "splice" = callPackage - ({ mkDerivation, base, network, stdenv }: - mkDerivation { - pname = "splice"; - version = "0.6.1.1"; - sha256 = "81fabe6652571f0dbf6b8904bd782daaeccc9d89d40f77b15dff46b7499d4e53"; - libraryHaskellDepends = [ base network ]; - doHaddock = false; - doCheck = false; - homepage = "http://corsis.github.com/splice/"; - description = "Cross-platform Socket to Socket Data Splicing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "split" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "split"; - version = "0.2.3.3"; - sha256 = "1dcd674f7c5f276f33300f5fd59e49d1ac6fc92ae949fd06a0f6d3e9d9ac1413"; - revision = "1"; - editedCabalFile = "0vz2ylx81nfq2981msig080j7n41xf2lrxzf3hj1x3g3cllb3izi"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Combinator library for splitting lists"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "splitmix" = callPackage - ({ mkDerivation, base, deepseq, random, stdenv, time }: - mkDerivation { - pname = "splitmix"; - version = "0.0.1"; - sha256 = "2a6c8003a941640ceab9dc358aadf69e08800e2cb10a267422e4436fe1e8772f"; - revision = "1"; - editedCabalFile = "0c38sajdpqcmicdh4lfy6vpg8wnzpiyamvbximdsqs605frs3mqs"; - libraryHaskellDepends = [ base deepseq random time ]; - doHaddock = false; - doCheck = false; - description = "Fast Splittable PRNG"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "spoon" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "spoon"; - version = "0.3.1"; - sha256 = "b9b350b6730e34c246bbf7e228a86b3d4925b52c95542f7676d719ef2a9881d4"; - revision = "1"; - editedCabalFile = "09s5jjcsg4g4qxchq9g2l4i9d5zh3rixpkbiysqcgl69kj8mwv74"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - description = "Catch errors thrown from pure computations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "spreadsheet" = callPackage - ({ mkDerivation, base, explicit-exception, stdenv, transformers - , utility-ht - }: - mkDerivation { - pname = "spreadsheet"; - version = "0.1.3.8"; - sha256 = "646716e795f3cd82f0277ffb672eca26a03f6897d85da3c267ee04cf4dc4a765"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base explicit-exception transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Spreadsheet"; - description = "Read and write spreadsheets from and to CSV files in a lazy way"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sql-words" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "sql-words"; - version = "0.1.6.2"; - sha256 = "3f6a5a0cf8f8aaf452caa2389db54e09494be3fd9dce111fbf06df2b7eddeb38"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "SQL keywords data constructors into OverloadedString"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sqlite-simple" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, blaze-textual - , bytestring, containers, direct-sqlite, Only, semigroups, stdenv - , template-haskell, text, time, transformers - }: - mkDerivation { - pname = "sqlite-simple"; - version = "0.4.16.0"; - sha256 = "60d2a188d1967ebc0d3ec9175776c45a6e1e6e7a4d44567548cb7fe6961d30de"; - libraryHaskellDepends = [ - attoparsec base blaze-builder blaze-textual bytestring containers - direct-sqlite Only semigroups template-haskell text time - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/nurpax/sqlite-simple"; - description = "Mid-Level SQLite client library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sqlite-simple-errors" = callPackage - ({ mkDerivation, base, parsec, sqlite-simple, stdenv, text }: - mkDerivation { - pname = "sqlite-simple-errors"; - version = "0.6.1.0"; - sha256 = "5101f84a6d74d658398cc4ef557ad3c6158d53e9c948301cc47ed0cc3eaa716f"; - libraryHaskellDepends = [ base parsec sqlite-simple text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/caneroj1/sqlite-simple-errors"; - description = "Wrapper around errors from sqlite-simple"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "srcloc" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "srcloc"; - version = "0.5.1.2"; - sha256 = "069edbce6bb72e0771cece3aa5a6b67b9e0b0bd0148e9404842fa43035fec06e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mainland/srcloc"; - description = "Data types for managing source code locations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stache" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, deepseq - , directory, filepath, megaparsec, mtl, stdenv, template-haskell - , text, unordered-containers, vector - }: - mkDerivation { - pname = "stache"; - version = "2.0.1"; - sha256 = "739ff0d0a882f46bbcd391a2b1ee271906e9c049c463fb8846c1d32d3f829e2b"; - revision = "2"; - editedCabalFile = "17da7jih43nl3zqgpmlk3n2kpwjmb2np4w8ldpq2vyi9ab8p6vjm"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring containers deepseq directory filepath - megaparsec mtl template-haskell text unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/stackbuilders/stache"; - description = "Mustache templates for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stack" = callPackage - ({ mkDerivation, aeson, annotated-wl-pprint, ansi-terminal, async - , attoparsec, base, base64-bytestring, bindings-uname, bytestring - , Cabal, conduit, conduit-extra, containers, cryptonite - , cryptonite-conduit, deepseq, directory, echo, exceptions, extra - , file-embed, filelock, filepath, fsnotify, generic-deriving - , hackage-security, hashable, hpack, hpc, http-client - , http-client-tls, http-conduit, http-types, memory, microlens - , mintty, monad-logger, mono-traversable, mtl, mustache - , neat-interpolation, network-uri, open-browser - , optparse-applicative, path, path-io, persistent - , persistent-sqlite, persistent-template, pretty, primitive - , process, project-template, regex-applicative-text, resourcet - , retry, rio, semigroups, split, stdenv, stm, store, store-core - , streaming-commons, tar, template-haskell, temporary, text - , text-metrics, th-reify-many, time, tls, transformers - , typed-process, unicode-transforms, unix, unix-compat, unliftio - , unordered-containers, vector, yaml, zip-archive, zlib - }: - mkDerivation { - pname = "stack"; - version = "1.9.3"; - sha256 = "8e11e315f7f27f670ede9f55ab9e2a0501c15b16eb4346ff2a59b6715fca8b06"; - revision = "7"; - editedCabalFile = "0gc09yfhrphzn6r2g1ifx6l5k3g78q38myg83f2djjmy9vp047bl"; - configureFlags = [ - "-fdisable-git-info" "-fhide-dependency-versions" - "-fsupported-build" - ]; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal filepath ]; - libraryHaskellDepends = [ - aeson annotated-wl-pprint ansi-terminal async attoparsec base - base64-bytestring bindings-uname bytestring Cabal conduit - conduit-extra containers cryptonite cryptonite-conduit deepseq - directory echo exceptions extra file-embed filelock filepath - fsnotify generic-deriving hackage-security hashable hpack hpc - http-client http-client-tls http-conduit http-types memory - microlens mintty monad-logger mono-traversable mtl mustache - neat-interpolation network-uri open-browser optparse-applicative - path path-io persistent persistent-sqlite persistent-template - pretty primitive process project-template regex-applicative-text - resourcet retry rio semigroups split stm store store-core - streaming-commons tar template-haskell temporary text text-metrics - th-reify-many time tls transformers typed-process - unicode-transforms unix unix-compat unliftio unordered-containers - vector yaml zip-archive zlib - ]; - executableHaskellDepends = [ - aeson annotated-wl-pprint ansi-terminal async attoparsec base - base64-bytestring bindings-uname bytestring Cabal conduit - conduit-extra containers cryptonite cryptonite-conduit deepseq - directory echo exceptions extra file-embed filelock filepath - fsnotify generic-deriving hackage-security hashable hpack hpc - http-client http-client-tls http-conduit http-types memory - microlens mintty monad-logger mono-traversable mtl mustache - neat-interpolation network-uri open-browser optparse-applicative - path path-io persistent persistent-sqlite persistent-template - pretty primitive process project-template regex-applicative-text - resourcet retry rio semigroups split stm store store-core - streaming-commons tar template-haskell temporary text text-metrics - th-reify-many time tls transformers typed-process - unicode-transforms unix unix-compat unliftio unordered-containers - vector yaml zip-archive zlib - ]; - doHaddock = false; - doCheck = false; - preCheck = "export HOME=$TMPDIR"; - postInstall = '' - exe=$out/bin/stack - mkdir -p $out/share/bash-completion/completions - $exe --bash-completion-script $exe >$out/share/bash-completion/completions/stack - ''; - homepage = "http://haskellstack.org"; - description = "The Haskell Tool Stack"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stack2nix" = callPackage - ({ mkDerivation, async, base, Cabal, cabal2nix, containers - , directory, distribution-nixpkgs, filepath, hackage-db - , language-nix, lens, optparse-applicative, path, pretty, process - , regex-pcre, SafeSemaphore, stack, stdenv, temporary, text, time - }: - mkDerivation { - pname = "stack2nix"; - version = "0.2.2"; - sha256 = "958f365f7eee76be4fe99178034c9df2b589b141960346e35a2bb69af0d3ad74"; - revision = "1"; - editedCabalFile = "1rxrdpzgql4pldx990hmhhjj39kirxvqphiqjmwr9gbhbkyv7hcg"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base Cabal cabal2nix containers directory - distribution-nixpkgs filepath hackage-db language-nix lens - optparse-applicative path pretty process regex-pcre SafeSemaphore - stack temporary text time - ]; - executableHaskellDepends = [ - base Cabal optparse-applicative time - ]; - doHaddock = false; - doCheck = false; - description = "Convert stack.yaml files into Nix build instructions."; - license = stdenv.lib.licenses.mit; - }) {}; - "starter" = callPackage - ({ mkDerivation, base, fsnotify, stdenv }: - mkDerivation { - pname = "starter"; - version = "0.3.0"; - sha256 = "fd569cd27cfd62fb9d3e544e222450ec2734c44a3293994f35a26af982ce3d93"; - libraryHaskellDepends = [ base fsnotify ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rkaippully/starter#readme"; - description = "Develop applications without restarts"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "state-codes" = callPackage - ({ mkDerivation, aeson, base, shakespeare, stdenv, text }: - mkDerivation { - pname = "state-codes"; - version = "0.1.3"; - sha256 = "1667dc977607fc89a0ca736294b2f0a19608fbe861f03f404c3f8ee91fd0f4a1"; - libraryHaskellDepends = [ aeson base shakespeare text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/acamino/state-codes#README"; - description = "ISO 3166-2:US state codes and i18n names"; - license = stdenv.lib.licenses.mit; - }) {}; - "stateref" = callPackage - ({ mkDerivation, base, mtl, stdenv, stm }: - mkDerivation { - pname = "stateref"; - version = "0.3"; - sha256 = "7dd390aab346ca877cde1217d5b62145cdfa6f9390e3b7a53c9296229ee1b741"; - libraryHaskellDepends = [ base mtl stm ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~mokus/stateref/"; - description = "Abstraction for things that work like IORef"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "statestack" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "statestack"; - version = "0.2.0.5"; - sha256 = "f4eadcf9b08c14cb084436f81e16edf78d6eeda77a3f93e38ba5d7e263ea5f66"; - revision = "3"; - editedCabalFile = "0s9v88gcc5wnfj4c6xq86asadmh4y8z8ycv2wz5nwfwfazfgzcy3"; - libraryHaskellDepends = [ - base mtl transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - description = "Simple State-like monad transformer with saveable and restorable state"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "static-text" = callPackage - ({ mkDerivation, base, bytestring, stdenv, template-haskell, text - , vector - }: - mkDerivation { - pname = "static-text"; - version = "0.2.0.4"; - sha256 = "07cfa2b73e98c67a95f64de5ed8c8a1b088c7f8d3b1b4683418f9bcbc41ea4a5"; - libraryHaskellDepends = [ - base bytestring template-haskell text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dzhus/static-text#readme"; - description = "Lists, Texts, ByteStrings and Vectors of statically known length"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "statistics" = callPackage - ({ mkDerivation, aeson, base, base-orphans, binary - , data-default-class, deepseq, dense-linear-algebra, math-functions - , monad-par, mwc-random, primitive, stdenv, vector - , vector-algorithms, vector-binary-instances, vector-th-unbox - }: - mkDerivation { - pname = "statistics"; - version = "0.15.0.0"; - sha256 = "95e9c45c95e81a35c7bd7443e8d6626fd100505a567de47622185fe9c8be6472"; - libraryHaskellDepends = [ - aeson base base-orphans binary data-default-class deepseq - dense-linear-algebra math-functions monad-par mwc-random primitive - vector vector-algorithms vector-binary-instances vector-th-unbox - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/statistics"; - description = "A library of statistical types, data, and functions"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "stb-image-redux" = callPackage - ({ mkDerivation, base, stdenv, vector }: - mkDerivation { - pname = "stb-image-redux"; - version = "0.2.1.2"; - sha256 = "3bf41af8950ecf0ac5645634fdd233f941a904c6c56222ff4efb03f5d17043e8"; - libraryHaskellDepends = [ base vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/typedrat/stb-image-redux#readme"; - description = "Image loading and writing microlibrary"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "step-function" = callPackage - ({ mkDerivation, base, base-compat-batteries, containers, deepseq - , QuickCheck, stdenv - }: - mkDerivation { - pname = "step-function"; - version = "0.2"; - sha256 = "d260fcb72bd3afe3c2b0a80f3f3a5c7afae63d98138d137a80ed8ba131fee7d5"; - revision = "2"; - editedCabalFile = "074399mj4p0sk49rqc9a3fikpsly95mndnmm71ya7wy34nxyafzv"; - libraryHaskellDepends = [ - base base-compat-batteries containers deepseq QuickCheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jonpetterbergman/step-function"; - description = "Staircase functions or piecewise constant functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "stm"; - version = "2.5.0.0"; - sha256 = "59e3685c66cbc54770d423f097ce50661005c99160be0f43a2b7fef7916494c6"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - homepage = "https://wiki.haskell.org/Software_transactional_memory"; - description = "Software Transactional Memory"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm-chans" = callPackage - ({ mkDerivation, base, Cabal, stdenv, stm }: - mkDerivation { - pname = "stm-chans"; - version = "3.0.0.4"; - sha256 = "2344fc5bfa33d565bad7b009fc0e2c5a7a595060ba149c661f44419fc0d54738"; - revision = "1"; - editedCabalFile = "0v9axxcfszqdmf3dhjxy34ybh22x3r5c48mdnbvjh5i5lp7g7vp2"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Additional types of channels for STM"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm-conduit" = callPackage - ({ mkDerivation, async, base, cereal, cereal-conduit, conduit - , conduit-extra, directory, exceptions, monad-loops, resourcet - , stdenv, stm, stm-chans, transformers, unliftio - }: - mkDerivation { - pname = "stm-conduit"; - version = "4.0.1"; - sha256 = "e80e5be72a4564fa45e1e27f91c0984e12d2a736d0ceb9594350d573efee1442"; - libraryHaskellDepends = [ - async base cereal cereal-conduit conduit conduit-extra directory - exceptions monad-loops resourcet stm stm-chans transformers - unliftio - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cgaebel/stm-conduit"; - description = "Introduces conduits to channels, and promotes using conduits concurrently"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm-delay" = callPackage - ({ mkDerivation, base, stdenv, stm }: - mkDerivation { - pname = "stm-delay"; - version = "0.1.1.1"; - sha256 = "b132581aac47e6cba6a1691a485e1700fbb047c02b7e1e43ae9bbd8476108a32"; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/joeyadams/haskell-stm-delay"; - description = "Updatable one-shot timer polled with STM"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm-extras" = callPackage - ({ mkDerivation, base, stdenv, stm }: - mkDerivation { - pname = "stm-extras"; - version = "0.1.0.3"; - sha256 = "88210a157d5a5a2c3bd10b3b9f0ead9bef91f47ecfe6fd56deca058c7270b75e"; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/stm-extras#readme"; - description = "Extra STM functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stm-split" = callPackage - ({ mkDerivation, base, stdenv, stm }: - mkDerivation { - pname = "stm-split"; - version = "0.0.2.1"; - sha256 = "e8e687268c86a6b635e7ee08415f31921d4a46eed267fe573a57981ec00d8419"; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - description = "TMVars, TVars and TChans with distinguished input and output side"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stopwatch" = callPackage - ({ mkDerivation, base, clock, stdenv, transformers }: - mkDerivation { - pname = "stopwatch"; - version = "0.1.0.5"; - sha256 = "461ed69edf8d68cdadd8d0c6159e9c2fef71d1a440c6feded0b07c77d9113461"; - libraryHaskellDepends = [ base clock transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/stopwatch"; - description = "A simple stopwatch utility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "storable-complex" = callPackage - ({ mkDerivation, base, base-orphans, stdenv }: - mkDerivation { - pname = "storable-complex"; - version = "0.2.3.0"; - sha256 = "9af499b2b19b2f173f97db37f843938efd2c59c30285e436564aefd2aa5bdc3a"; - libraryHaskellDepends = [ base base-orphans ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cartazio/storable-complex"; - description = "Storable instance for Complex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "storable-record" = callPackage - ({ mkDerivation, base, semigroups, stdenv, transformers, utility-ht - }: - mkDerivation { - pname = "storable-record"; - version = "0.0.4"; - sha256 = "ceffb2f08d8abc37e338ad924b264c230d5e54ecccaf1c22802c3107ea0c5a42"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base semigroups transformers utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/storable-record/"; - description = "Elegant definition of Storable instances for records"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "storable-tuple" = callPackage - ({ mkDerivation, base, base-orphans, stdenv, storable-record - , utility-ht - }: - mkDerivation { - pname = "storable-tuple"; - version = "0.0.3.3"; - sha256 = "dcfac049527a45c386c80a7c40ec211455b83d74311af88fa686063b5f87df35"; - libraryHaskellDepends = [ - base base-orphans storable-record utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/storable-tuple/"; - description = "Storable instance for pairs and triples"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "storablevector" = callPackage - ({ mkDerivation, base, deepseq, non-negative, QuickCheck - , semigroups, stdenv, syb, transformers, unsafe, utility-ht - }: - mkDerivation { - pname = "storablevector"; - version = "0.2.13"; - sha256 = "f83742d572aca9431f8ee6325d29169bc630beb2d8ab1957f7165abed138b9fe"; - libraryHaskellDepends = [ - base deepseq non-negative QuickCheck semigroups syb transformers - unsafe utility-ht - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Storable_Vector"; - description = "Fast, packed, strict storable arrays with a list interface like ByteString"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "store" = callPackage - ({ mkDerivation, array, async, base, base-orphans - , base64-bytestring, bifunctors, bytestring, containers - , contravariant, cryptohash, deepseq, directory, filepath, free - , ghc-prim, hashable, hspec, hspec-smallcheck, integer-gmp - , lifted-base, monad-control, mono-traversable, network, primitive - , resourcet, safe, semigroups, smallcheck, stdenv, store-core, syb - , template-haskell, text, th-lift, th-lift-instances, th-orphans - , th-reify-many, th-utilities, time, transformers - , unordered-containers, vector, void - }: - mkDerivation { - pname = "store"; - version = "0.5.0.1"; - sha256 = "238e8585de3cc551a39003499b4f8ade161630ef18525b30a790a22bca39f536"; - libraryHaskellDepends = [ - array async base base-orphans base64-bytestring bifunctors - bytestring containers contravariant cryptohash deepseq directory - filepath free ghc-prim hashable hspec hspec-smallcheck integer-gmp - lifted-base monad-control mono-traversable network primitive - resourcet safe semigroups smallcheck store-core syb - template-haskell text th-lift th-lift-instances th-orphans - th-reify-many th-utilities time transformers unordered-containers - vector void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/store#readme"; - description = "Fast binary serialization"; - license = stdenv.lib.licenses.mit; - }) {}; - "store-core" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, primitive, stdenv - , text, transformers - }: - mkDerivation { - pname = "store-core"; - version = "0.4.4"; - sha256 = "5baecf8c074ff8dca4633630adc979696d7e8ee0a58e143e4d6d0f5c79f30991"; - libraryHaskellDepends = [ - base bytestring ghc-prim primitive text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/store#readme"; - description = "Fast and lightweight binary serialization"; - license = stdenv.lib.licenses.mit; - }) {}; - "stratosphere" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers - , hashable, lens, stdenv, template-haskell, text - , unordered-containers - }: - mkDerivation { - pname = "stratosphere"; - version = "0.29.1"; - sha256 = "9fe63f0e848ef42bd1f9d9aabd69b25caef9edd49609c4a0f51d253213587548"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty base bytestring containers hashable lens - template-haskell text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/frontrowed/stratosphere#readme"; - description = "EDSL for AWS CloudFormation"; - license = stdenv.lib.licenses.mit; - }) {}; - "streaming" = callPackage - ({ mkDerivation, base, containers, ghc-prim, mmorph, mtl - , semigroups, stdenv, transformers, transformers-base - }: - mkDerivation { - pname = "streaming"; - version = "0.2.2.0"; - sha256 = "5a6b7744695a2651e9835789a7c4ce48dbd5f13ee99f35f63261f9501ce1cd11"; - revision = "1"; - editedCabalFile = "1sq8blxh4s1lsvxkc64x7drxwn75kszxicjhvw4cg505fp9bfc7y"; - libraryHaskellDepends = [ - base containers ghc-prim mmorph mtl semigroups transformers - transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-streaming/streaming"; - description = "an elementary streaming prelude and general stream type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "streaming-attoparsec" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, stdenv, streaming - , streaming-bytestring - }: - mkDerivation { - pname = "streaming-attoparsec"; - version = "1.0.0"; - sha256 = "ff28925269ed98f03ef10a482980030dd7c8ef4c05ef6e32d147db9331df6102"; - revision = "2"; - editedCabalFile = "07hqs8nn1rhsqckqmw46yp19kd0vk35q139al6yq0k1dzpvsrcsx"; - libraryHaskellDepends = [ - attoparsec base bytestring streaming streaming-bytestring - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-streaming/streaming-attoparsec"; - description = "Attoparsec integration for the streaming ecosystem"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "streaming-bytestring" = callPackage - ({ mkDerivation, base, bytestring, deepseq, exceptions, mmorph, mtl - , resourcet, stdenv, streaming, transformers, transformers-base - }: - mkDerivation { - pname = "streaming-bytestring"; - version = "0.1.6"; - sha256 = "c1d723fc9676b85f62f9fc937d756af61d81f69c9c6591e5d38c9b09b7a253d3"; - libraryHaskellDepends = [ - base bytestring deepseq exceptions mmorph mtl resourcet streaming - transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-streaming/streaming-bytestring"; - description = "effectful byte steams, or: bytestring io done right"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "streaming-commons" = callPackage - ({ mkDerivation, array, async, base, bytestring, directory, network - , process, random, stdenv, stm, text, transformers, unix, zlib - }: - mkDerivation { - pname = "streaming-commons"; - version = "0.2.1.0"; - sha256 = "d8d1fe588924479ea7eefce8c6af77dfb373ee6bde7f4691bdfcbd782b36d68d"; - libraryHaskellDepends = [ - array async base bytestring directory network process random stm - text transformers unix zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/streaming-commons"; - description = "Common lower-level functions needed by various streaming data libraries"; - license = stdenv.lib.licenses.mit; - }) {}; - "streaming-wai" = callPackage - ({ mkDerivation, base, bytestring, bytestring-builder, http-types - , stdenv, streaming, wai - }: - mkDerivation { - pname = "streaming-wai"; - version = "0.1.1"; - sha256 = "35b4182386cc1d23731b3eac78dda79a1b7878c0b6bd78fd99907c776dbfaf30"; - libraryHaskellDepends = [ - base bytestring bytestring-builder http-types streaming wai - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jb55/streaming-wai"; - description = "Streaming Wai utilities"; - license = stdenv.lib.licenses.mit; - }) {}; - "streamly" = callPackage - ({ mkDerivation, atomic-primops, base, clock, containers - , exceptions, ghc-prim, heaps, lockfree-queue, monad-control, mtl - , stdenv, transformers, transformers-base - }: - mkDerivation { - pname = "streamly"; - version = "0.5.2"; - sha256 = "e649c07776c6f04ca2975912c8fc9ced53ddc243b092efc5fec6416fca488ade"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - atomic-primops base clock containers exceptions ghc-prim heaps - lockfree-queue monad-control mtl transformers transformers-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/composewell/streamly"; - description = "Beautiful Streaming, Concurrent and Reactive Composition"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "streamproc" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "streamproc"; - version = "1.6.2"; - sha256 = "e76effaaff83e6a066df949415db109b405bda0aaeb95f0710906c65892584f2"; - revision = "1"; - editedCabalFile = "19c51gks028x8mnywkx1nz0s6bwn2mxs5ddmaj2q8n9l5pvfkcgs"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/streamproc"; - description = "Stream Processer Arrow"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "streams" = callPackage - ({ mkDerivation, adjunctions, base, comonad, distributive - , semigroupoids, semigroups, stdenv - }: - mkDerivation { - pname = "streams"; - version = "3.3"; - sha256 = "2933f80d6a83fed326af5588b0cce93985b07233359c311bd69c5bac19954e40"; - libraryHaskellDepends = [ - adjunctions base comonad distributive semigroupoids semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/streams/issues"; - description = "Various Haskell 2010 stream comonads"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "strict" = callPackage - ({ mkDerivation, array, base, stdenv }: - mkDerivation { - pname = "strict"; - version = "0.3.2"; - sha256 = "2cd35a67938db635a87617d9576d5df0158b581e8e5694f07487c0f4b1549221"; - libraryHaskellDepends = [ array base ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.cse.unsw.edu.au/~rl/code/strict.html"; - description = "Strict data types and String IO"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "strict-base-types" = callPackage - ({ mkDerivation, aeson, base, bifunctors, binary, deepseq, ghc-prim - , hashable, lens, QuickCheck, stdenv, strict - }: - mkDerivation { - pname = "strict-base-types"; - version = "0.6.1"; - sha256 = "f8866a3acc7d61f1fbffc2823c24d35b4f63f90612bf0c63292f3d25a3dc307a"; - libraryHaskellDepends = [ - aeson base bifunctors binary deepseq ghc-prim hashable lens - QuickCheck strict - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/meiersi/strict-base-types"; - description = "Strict variants of the types provided in base"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "strict-concurrency" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "strict-concurrency"; - version = "0.2.4.3"; - sha256 = "02d934ec5053d3d42031798e5a3cd25547ccde5973d562f9fc943d635d9956c0"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ygale/strict-concurrency"; - description = "Strict concurrency abstractions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "string-class" = callPackage - ({ mkDerivation, base, bytestring, stdenv, tagged, text }: - mkDerivation { - pname = "string-class"; - version = "0.1.7.0"; - sha256 = "8e5b00563ec2a62120036ab5e06cade5eb7ff8c9caa86f42213c66be39900be8"; - libraryHaskellDepends = [ base bytestring tagged text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/string-class/string-class"; - description = "String class library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "string-combinators" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "string-combinators"; - version = "0.6.0.5"; - sha256 = "94914abfbd7d17051edab4bc9927c191fd05a652d9ef3cf259b5d0e0ca177e1e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/string-combinators"; - description = "Polymorphic functions to build and combine stringlike values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "string-conv" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "string-conv"; - version = "0.1.2"; - sha256 = "f259a03e6f296af19a71c07ab9a98a38661dfe40679f360f8e371334ea226039"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Soostone/string-conv"; - description = "Standardized conversion between string types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "string-conversions" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text, utf8-string }: - mkDerivation { - pname = "string-conversions"; - version = "0.4.0.1"; - sha256 = "46bcce6d9ce62c558b7658a75d9c6a62f7259d6b0473d011d8078234ad6a1994"; - libraryHaskellDepends = [ base bytestring text utf8-string ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/soenkehahn/string-conversions#readme"; - description = "Simplifies dealing with different types for strings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "string-qq" = callPackage - ({ mkDerivation, base, Cabal, process, stdenv, template-haskell }: - mkDerivation { - pname = "string-qq"; - version = "0.0.2"; - sha256 = "9757cad387856a313729caffe0639215a10be7d72b09c44bcab9e55ee2a8c218"; - revision = "1"; - editedCabalFile = "1flc6mr1nnv8mx69cy1ilwk5gxsidcns82vjdg8dcs8z5axg95kp"; - enableSeparateDataOutput = true; - setupHaskellDepends = [ base Cabal process ]; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - description = "QuasiQuoter for non-interpolated strings, texts and bytestrings"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "string-transform" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text, utf8-string }: - mkDerivation { - pname = "string-transform"; - version = "1.1.0"; - sha256 = "4d7daffe1d58671af5111c7179905653d692884cac21f09061768a5a6354e6b8"; - libraryHaskellDepends = [ base bytestring text utf8-string ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ncaq/string-transform#readme"; - description = "simple and easy haskell string transform wrapper"; - license = stdenv.lib.licenses.mit; - }) {}; - "stringbuilder" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "stringbuilder"; - version = "0.5.1"; - sha256 = "d878bdc4da806dbce5ab684ef13d2634c17c15b991d0ed3bb25a331eba6603ba"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "A writer monad for multi-line string literals"; - license = stdenv.lib.licenses.mit; - }) {}; - "stringsearch" = callPackage - ({ mkDerivation, array, base, bytestring, containers, stdenv }: - mkDerivation { - pname = "stringsearch"; - version = "0.3.6.6"; - sha256 = "295f1971920bc52263d8275d7054ad223a7e1aefe75533f9887735c9644ffe4a"; - revision = "1"; - editedCabalFile = "0z5pz5dccapz9k39r2zmf056m0x2m2lj3jahhnw3mfxlmps07378"; - libraryHaskellDepends = [ array base bytestring containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/dafis/stringsearch"; - description = "Fast searching, splitting and replacing of ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "strive" = callPackage - ({ mkDerivation, aeson, base, bytestring, data-default, gpolyline - , http-client, http-client-tls, http-types, stdenv - , template-haskell, text, time, transformers - }: - mkDerivation { - pname = "strive"; - version = "5.0.8"; - sha256 = "d682e51c07c242cb506497ed787079b74dad2df989ad7d39d03d840d911ed171"; - libraryHaskellDepends = [ - aeson base bytestring data-default gpolyline http-client - http-client-tls http-types template-haskell text time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/strive#readme"; - description = "A client for the Strava V3 API"; - license = stdenv.lib.licenses.mit; - }) {}; - "structs" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, ghc-prim - , primitive, stdenv, template-haskell - }: - mkDerivation { - pname = "structs"; - version = "0.1.1"; - sha256 = "df60ac419775ad96959338c7f14e93a3d47b82728234df206b0145d33694aa41"; - revision = "2"; - editedCabalFile = "1v9gmnj17cm4p491rizvw9xdj255lk1y24gz6s8bqcz56sdb4d4s"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base deepseq ghc-prim primitive template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/structs/"; - description = "Strict GC'd imperative object-oriented programming with cheap pointers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "stylish-haskell" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, directory - , file-embed, filepath, haskell-src-exts, mtl, optparse-applicative - , semigroups, stdenv, strict, syb, yaml - }: - mkDerivation { - pname = "stylish-haskell"; - version = "0.9.2.1"; - sha256 = "fc5c8633289d53ec1e4c847eb54ae4fd7f41c26ff14eef5177db6ad39b0b41d3"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers directory file-embed filepath - haskell-src-exts mtl semigroups syb yaml - ]; - executableHaskellDepends = [ - aeson base bytestring containers directory file-embed filepath - haskell-src-exts mtl optparse-applicative strict syb yaml - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jaspervdj/stylish-haskell"; - description = "Haskell code prettifier"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sum-type-boilerplate" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "sum-type-boilerplate"; - version = "0.1.1"; - sha256 = "3169da14c604e19afdcbf721ef1749b9486618ba23bbec14e86ae9862bf0ab9f"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jdreaver/sum-type-boilerplate#readme"; - description = "Library for reducing the boilerplate involved with sum types"; - license = stdenv.lib.licenses.mit; - }) {}; - "summoner" = callPackage - ({ mkDerivation, aeson, ansi-terminal, base, base-noprelude - , bytestring, directory, filepath, generic-deriving, gitrev - , neat-interpolation, optparse-applicative, process, relude, stdenv - , text, time, tomland - }: - mkDerivation { - pname = "summoner"; - version = "1.2.0"; - sha256 = "6464b44ce9d7c29cb8ef7df376a536ddd948f301a8e64afd0fe811220d895013"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson ansi-terminal base-noprelude bytestring directory filepath - generic-deriving gitrev neat-interpolation optparse-applicative - process relude text time tomland - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/summoner"; - description = "Tool for scaffolding completely configured production Haskell projects"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "sundown" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "sundown"; - version = "0.6"; - sha256 = "cb9b7e98138311375148ffe0fa4c4b04eb7a9f8ec2ae13a674d465e5d71db027"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bitonic/sundown"; - description = "Bindings to the sundown markdown library"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "superbuffer" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "superbuffer"; - version = "0.3.1.1"; - sha256 = "d7a5fb5478731deab80f89233e4f85511949c04b96ad6284f99f16c5c4166c78"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/superbuffer#readme"; - description = "Efficiently build a bytestring from smaller chunks"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sv-cassava" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, cassava, stdenv - , sv-core, utf8-string, validation, vector - }: - mkDerivation { - pname = "sv-cassava"; - version = "0.3"; - sha256 = "2b1c5725aa13dfed861b975ca359bd0a8186928b098ee35dc94f97792e539cb0"; - revision = "2"; - editedCabalFile = "14grn815r54480jqpfib6qi3ivbaw0asa5ys0rp93allsprk96xb"; - libraryHaskellDepends = [ - attoparsec base bytestring cassava sv-core utf8-string validation - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/qfpl/sv"; - description = "Integration to use sv with cassava's parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "sv-core" = callPackage - ({ mkDerivation, attoparsec, base, bifunctors, bytestring - , containers, contravariant, deepseq, lens, mtl, parsec - , profunctors, readable, semigroupoids, semigroups, stdenv, text - , transformers, trifecta, utf8-string, validation, vector, void - }: - mkDerivation { - pname = "sv-core"; - version = "0.3.1"; - sha256 = "d028d9aaf0ebabb1c29841f34c5c40f7f4483d0307b51756de92007c6cc44822"; - libraryHaskellDepends = [ - attoparsec base bifunctors bytestring containers contravariant - deepseq lens mtl parsec profunctors readable semigroupoids - semigroups text transformers trifecta utf8-string validation vector - void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/qfpl/sv"; - description = "Encode and decode separated values (CSV, PSV, ...)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "svg-builder" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, hashable, stdenv - , text, unordered-containers - }: - mkDerivation { - pname = "svg-builder"; - version = "0.1.1"; - sha256 = "4fd0e3f2cbc5601fc69e7eab41588cbfa1150dc508d9d86bf5f3d393880382cc"; - revision = "1"; - editedCabalFile = "1bhp9gvid2iis411k1vvyj5krzc4ahxcqcd9cwx9h37jxg180xw1"; - libraryHaskellDepends = [ - base blaze-builder bytestring hashable text unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/diagrams/svg-builder.git"; - description = "DSL for building SVG"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "svg-tree" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers - , JuicyPixels, lens, linear, mtl, scientific, stdenv, text - , transformers, vector, xml - }: - mkDerivation { - pname = "svg-tree"; - version = "0.6.2.3"; - sha256 = "29e5154e3992413ef13a4c50407b9753df2e60f9fddaae03b5475e77a8d8db6a"; - libraryHaskellDepends = [ - attoparsec base bytestring containers JuicyPixels lens linear mtl - scientific text transformers vector xml - ]; - doHaddock = false; - doCheck = false; - description = "SVG file loader and serializer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "swagger" = callPackage - ({ mkDerivation, aeson, base, bytestring, stdenv, text, time - , transformers - }: - mkDerivation { - pname = "swagger"; - version = "0.3.0"; - sha256 = "c7144fb22a0d223eb2463a896200936eab665dc01f39affc103d2ee6a38f54d0"; - libraryHaskellDepends = [ - aeson base bytestring text time transformers - ]; - doHaddock = false; - doCheck = false; - description = "Implementation of swagger data model"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "swagger2" = callPackage - ({ mkDerivation, aeson, base, base-compat-batteries, bytestring - , Cabal, cabal-doctest, containers, cookie, generics-sop, hashable - , http-media, insert-ordered-containers, lens, mtl, network - , QuickCheck, scientific, stdenv, template-haskell, text, time - , transformers, transformers-compat, unordered-containers - , uuid-types, vector - }: - mkDerivation { - pname = "swagger2"; - version = "2.3.1.1"; - sha256 = "477793bbbe0017d2fcbb762e0b16fe6b7dd9ada5ae69c4826a605a8625a4daa5"; - revision = "1"; - editedCabalFile = "1g6jiadrvglrbf0857nzfbnjxmb3lwqamgs47j3qv9k6kfwilzyk"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson base base-compat-batteries bytestring containers cookie - generics-sop hashable http-media insert-ordered-containers lens mtl - network QuickCheck scientific template-haskell text time - transformers transformers-compat unordered-containers uuid-types - vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/GetShopTV/swagger2"; - description = "Swagger 2.0 data model"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "swish" = callPackage - ({ mkDerivation, base, containers, directory, filepath, hashable - , intern, mtl, network-uri, old-locale, polyparse, stdenv, text - , time - }: - mkDerivation { - pname = "swish"; - version = "0.10.0.1"; - sha256 = "f3a9abefb1a15c4d7dcc391e3f466632be1d20f63399a405dfe9e4a4b2c778c6"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base containers directory filepath hashable intern mtl network-uri - old-locale polyparse text time - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/doug_burke/swish/wiki/Home"; - description = "A semantic web toolkit"; - license = stdenv.lib.licenses.lgpl21; - }) {}; - "syb" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "syb"; - version = "0.7"; - sha256 = "b8757dce5ab4045c49a0ae90407d575b87ee5523a7dd5dfa5c9d54fcceff42b5"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB"; - description = "Scrap Your Boilerplate"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "symbol" = callPackage - ({ mkDerivation, base, containers, deepseq, stdenv }: - mkDerivation { - pname = "symbol"; - version = "0.2.4"; - sha256 = "d074a7741f6ce0f2a604e4467c1c46e1acc2b707db107b3458395e646a9b8831"; - revision = "2"; - editedCabalFile = "0jdbaap11pkgb6m98v57k7qnx62pqxy7pa2i7293ywa4q305qgm1"; - libraryHaskellDepends = [ base containers deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.cs.drexel.edu/~mainland/"; - description = "A 'Symbol' type for fast symbol comparison"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "symengine" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "symengine"; - version = "0.1.2.0"; - sha256 = "0a59f76a924686ae84b1873c8783eb80f6e4092c90f3c971340053c1e6ca82f4"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/symengine/symengine.hs#readme"; - description = "SymEngine symbolic mathematics engine for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "sysinfo" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "sysinfo"; - version = "0.1.1"; - sha256 = "46db40f2d186956547cca98f5583b28828a2b50255fbd404272c381db64dca29"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/sysinfo#readme"; - description = "Haskell Interface for getting overall system statistics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "system-argv0" = callPackage - ({ mkDerivation, base, bytestring, stdenv, system-filepath, text }: - mkDerivation { - pname = "system-argv0"; - version = "0.1.1"; - sha256 = "6d51da9d2157be14a83f8dca3e9d4196d420e667cd685effb8d7b39185cf4ec6"; - libraryHaskellDepends = [ base bytestring system-filepath text ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/haskell-filesystem/"; - description = "Get argv[0] as a FilePath"; - license = stdenv.lib.licenses.mit; - }) {}; - "system-fileio" = callPackage - ({ mkDerivation, base, bytestring, stdenv, system-filepath, text - , time, unix - }: - mkDerivation { - pname = "system-fileio"; - version = "0.3.16.4"; - sha256 = "34e58b88a19a69ff1a559e211af6edb596e33ee1b1d5f44490febf325c78c6c7"; - libraryHaskellDepends = [ - base bytestring system-filepath text time unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/haskell-filesystem"; - description = "Consistent filesystem interaction across GHC versions (deprecated)"; - license = stdenv.lib.licenses.mit; - }) {}; - "system-filepath" = callPackage - ({ mkDerivation, base, bytestring, Cabal, deepseq, stdenv, text }: - mkDerivation { - pname = "system-filepath"; - version = "0.4.14"; - sha256 = "1656ce3c0d585650784ceb3f794748286e19fb635f557e7b29b0897f8956d993"; - revision = "1"; - editedCabalFile = "18llfvisghrn9w9yfgacqn51gs50a0lngah3bmg852h0swj7vkp8"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base bytestring deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/haskell-filesystem"; - description = "High-level, byte-based file and directory path manipulations (deprecated)"; - license = stdenv.lib.licenses.mit; - }) {}; - "systemd" = callPackage - ({ mkDerivation, base, bytestring, network, stdenv, transformers - , unix - }: - mkDerivation { - pname = "systemd"; - version = "1.1.2"; - sha256 = "59461920b66b4b63b055b08af464a6fd9ff529f64527dfb573f9396dadd39287"; - libraryHaskellDepends = [ - base bytestring network transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/erebe/systemd"; - description = "Systemd facilities (Socket activation, Notify)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tabular" = callPackage - ({ mkDerivation, base, csv, html, mtl, stdenv }: - mkDerivation { - pname = "tabular"; - version = "0.2.2.7"; - sha256 = "13f8da12108dafcf3194eb6bf25febf0081c7e4734f66d2d4aeee899f3c14ffb"; - libraryHaskellDepends = [ base csv html mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/kowey/tabular"; - description = "Two-dimensional data tables with rendering functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagchup" = callPackage - ({ mkDerivation, base, bytestring, containers, data-accessor - , explicit-exception, non-empty, stdenv, transformers, utility-ht - , xml-basic - }: - mkDerivation { - pname = "tagchup"; - version = "0.4.1.1"; - sha256 = "e5b4ee185f30a64d854fb02291f7bdf60f8846f1fcc3d67ebc6ab1f61e74ee88"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers data-accessor explicit-exception - non-empty transformers utility-ht xml-basic - ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/tagchup/"; - description = "alternative package for processing of tag soups"; - license = "GPL"; - }) {}; - "tagged" = callPackage - ({ mkDerivation, base, deepseq, stdenv, template-haskell - , transformers - }: - mkDerivation { - pname = "tagged"; - version = "0.8.6"; - sha256 = "ad16def0884cf6f05ae1ae8e90192cf9d8d9673fa264b249499bd9e4fac791dd"; - revision = "1"; - editedCabalFile = "070xwfw7y81hd63il76dmwbdl9ca1rd07c54zynfx6vpr4wyx4vh"; - libraryHaskellDepends = [ - base deepseq template-haskell transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/tagged"; - description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagged-binary" = callPackage - ({ mkDerivation, base, base-compat, binary, bytestring, pureMD5 - , stdenv - }: - mkDerivation { - pname = "tagged-binary"; - version = "0.2.0.1"; - sha256 = "72cfaa0995838dfb7f0cda897175c469d6b7aef6fd396fc56abc70194b0f645b"; - libraryHaskellDepends = [ - base base-compat binary bytestring pureMD5 - ]; - doHaddock = false; - doCheck = false; - description = "Provides tools for serializing data tagged with type information"; - license = stdenv.lib.licenses.mit; - }) {}; - "tagged-identity" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers }: - mkDerivation { - pname = "tagged-identity"; - version = "0.1.2"; - sha256 = "916dd7fdd15452f3d760c345e023ce99496806b813ab01b03ff1b240bbd50210"; - libraryHaskellDepends = [ base mtl transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/tagged-identity"; - description = "Trivial monad transformer that allows identical monad stacks have different types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagged-transformer" = callPackage - ({ mkDerivation, base, comonad, contravariant, distributive - , exceptions, mtl, reflection, semigroupoids, stdenv, tagged - }: - mkDerivation { - pname = "tagged-transformer"; - version = "0.8.1"; - sha256 = "a0ff6121e852c78f6428e583c18e90e3bf899f59a529fb2076236e1146eedcb9"; - libraryHaskellDepends = [ - base comonad contravariant distributive exceptions mtl reflection - semigroupoids tagged - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/tagged-transformer"; - description = "Monad transformer carrying an extra phantom type tag"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagshare" = callPackage - ({ mkDerivation, base, containers, mtl, stdenv }: - mkDerivation { - pname = "tagshare"; - version = "0.0"; - sha256 = "d2314bae2e6820700f2a61db9c9f7976e1b53547a49cdd3352bdf29ac3856ce0"; - libraryHaskellDepends = [ base containers mtl ]; - doHaddock = false; - doCheck = false; - description = "TagShare - explicit sharing with tags"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagsoup" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv, text }: - mkDerivation { - pname = "tagsoup"; - version = "0.14.7"; - sha256 = "9980f28169dd0ee8d9e0a65d553044d9bb24c6f2c7e5f6cf0a53dbd25cf1ec25"; - libraryHaskellDepends = [ base bytestring containers text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/tagsoup#readme"; - description = "Parsing and extracting information from (possibly malformed) HTML/XML documents"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tagstream-conduit" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, bytestring - , case-insensitive, conduit, conduit-extra, data-default, resourcet - , stdenv, text, transformers, xml-conduit - }: - mkDerivation { - pname = "tagstream-conduit"; - version = "0.5.5.3"; - sha256 = "b296e8f0ba18ae951b5bb3fc2d9d964954666df61ea9363d667f251af17134ab"; - libraryHaskellDepends = [ - attoparsec base blaze-builder bytestring case-insensitive conduit - conduit-extra data-default resourcet text transformers xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yihuang/tagstream-conduit"; - description = "streamlined html tag parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tao" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "tao"; - version = "1.0.0"; - sha256 = "0b0a1e9606b15eb3bd334eaaf09f01a52f5cb086e5947959116d1d4409541a47"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jship/tao#readme"; - description = "Type-level assertion operators"; - license = stdenv.lib.licenses.mit; - }) {}; - "tao-example" = callPackage - ({ mkDerivation, base, stdenv, tao }: - mkDerivation { - pname = "tao-example"; - version = "1.0.0"; - sha256 = "65de395b78e922d95ce7badf6588c00c6d01ea5c14b33c062cde19229f4b00b2"; - libraryHaskellDepends = [ base tao ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jship/tao#readme"; - description = "Example usage of the tao package"; - license = stdenv.lib.licenses.mit; - }) {}; - "tar" = callPackage - ({ mkDerivation, array, base, bytestring, containers, deepseq - , directory, filepath, stdenv, time - }: - mkDerivation { - pname = "tar"; - version = "0.5.1.0"; - sha256 = "c89d697b6472b739db50e61201251fcaf8a8f5b595b1d9a488d395d7d5ce4b68"; - revision = "1"; - editedCabalFile = "1lydbwsmccf2av0g61j07bx7r5mzbcfgwvmh0qwg3a91857x264x"; - configureFlags = [ "-f-old-time" ]; - libraryHaskellDepends = [ - array base bytestring containers deepseq directory filepath time - ]; - doHaddock = false; - doCheck = false; - description = "Reading, writing and manipulating \".tar\" archive files."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tar-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-combinators - , directory, filepath, safe-exceptions, stdenv, text, unix - }: - mkDerivation { - pname = "tar-conduit"; - version = "0.3.2"; - sha256 = "004578db7088e7ad53e23f8a293d739314698f0ec421ffad7be101e13c1cf62d"; - libraryHaskellDepends = [ - base bytestring conduit conduit-combinators directory filepath - safe-exceptions text unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/tar-conduit#readme"; - description = "Extract and create tar files using conduit for streaming"; - license = stdenv.lib.licenses.mit; - }) {}; - "tardis" = callPackage - ({ mkDerivation, base, mmorph, mtl, stdenv }: - mkDerivation { - pname = "tardis"; - version = "0.4.1.0"; - sha256 = "e672abadd75055c2372d722c98058f7f3403fcca18258565d1cdd8e0dc25a5d9"; - revision = "1"; - editedCabalFile = "1wp6vp90g19hv8r2l83ava7qxf0933gb7ni2zgyfa66vlvxvhibv"; - libraryHaskellDepends = [ base mmorph mtl ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanBurton/tardis"; - description = "Bidirectional state monad transformer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty" = callPackage - ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl - , optparse-applicative, stdenv, stm, tagged, unbounded-delays, unix - , wcwidth - }: - mkDerivation { - pname = "tasty"; - version = "1.2"; - sha256 = "d6185e079ac9c12068582cc6f5b50d37a3d2d3ed1a05a4db454340350b5d8317"; - libraryHaskellDepends = [ - ansi-terminal async base clock containers mtl optparse-applicative - stm tagged unbounded-delays unix wcwidth - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty"; - description = "Modern and extensible testing framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-ant-xml" = callPackage - ({ mkDerivation, base, containers, directory, filepath - , generic-deriving, ghc-prim, mtl, stdenv, stm, tagged, tasty - , transformers, xml - }: - mkDerivation { - pname = "tasty-ant-xml"; - version = "1.1.5"; - sha256 = "62ccee94bc5c3d7c6ed99037788262d8d971eeac487fe43b06760f969430a5df"; - libraryHaskellDepends = [ - base containers directory filepath generic-deriving ghc-prim mtl - stm tagged tasty transformers xml - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ocharles/tasty-ant-xml"; - description = "Render tasty output to XML for Jenkins"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty-dejafu" = callPackage - ({ mkDerivation, base, dejafu, random, stdenv, tagged, tasty }: - mkDerivation { - pname = "tasty-dejafu"; - version = "1.2.1.0"; - sha256 = "2811ad5cb2b7a6f9cdfa034e9c7ce737369f2fcb8a9e0309514466bb13c31128"; - libraryHaskellDepends = [ base dejafu random tagged tasty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/barrucadu/dejafu"; - description = "Deja Fu support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-discover" = callPackage - ({ mkDerivation, base, containers, directory, filepath, Glob - , stdenv - }: - mkDerivation { - pname = "tasty-discover"; - version = "4.2.1"; - sha256 = "be6c5b384614a592fb056e2e4f7806416aa37f114db77d0f8986938ba7cc1d3e"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers directory filepath Glob - ]; - executableHaskellDepends = [ - base containers directory filepath Glob - ]; - doHaddock = false; - doCheck = false; - homepage = "http://git.coop/lwm/tasty-discover"; - description = "Test discovery for the tasty framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-expected-failure" = callPackage - ({ mkDerivation, base, stdenv, tagged, tasty }: - mkDerivation { - pname = "tasty-expected-failure"; - version = "0.11.1.1"; - sha256 = "519a5c0d2ef9dd60355479f11ca47423133364f20ad3151f3c8b105313405ac4"; - revision = "1"; - editedCabalFile = "1b3fn7d3zwhhwm3gp8cmmsdcrvn9dhshd665xrx1mk6cmy4m8k16"; - libraryHaskellDepends = [ base tagged tasty ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/nomeata/tasty-expected-failure"; - description = "Mark tasty tests as failure expected"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-golden" = callPackage - ({ mkDerivation, async, base, bytestring, containers, deepseq - , directory, filepath, mtl, optparse-applicative, process, stdenv - , tagged, tasty, temporary - }: - mkDerivation { - pname = "tasty-golden"; - version = "2.3.2"; - sha256 = "04103d2a2fd6acc8f66b67d943060e88a2ea36b799502bf3e76c2726a15c714c"; - libraryHaskellDepends = [ - async base bytestring containers deepseq directory filepath mtl - optparse-applicative process tagged tasty temporary - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty-golden"; - description = "Golden tests support for tasty"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-hspec" = callPackage - ({ mkDerivation, base, hspec, hspec-core, QuickCheck, stdenv, tasty - , tasty-quickcheck, tasty-smallcheck - }: - mkDerivation { - pname = "tasty-hspec"; - version = "1.1.5.1"; - sha256 = "fe889ec0f7b3991c46a07d9ff9cf09608a73a18f434a7480d2a09c79e56f3345"; - revision = "3"; - editedCabalFile = "1wgz3z5bnq5qml8d0i18gvz30dmmax3686lmqz3vf4hxd3vqfkpj"; - libraryHaskellDepends = [ - base hspec hspec-core QuickCheck tasty tasty-quickcheck - tasty-smallcheck - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mitchellwrosen/tasty-hspec"; - description = "Hspec support for the Tasty test framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty-hunit" = callPackage - ({ mkDerivation, base, call-stack, stdenv, tasty }: - mkDerivation { - pname = "tasty-hunit"; - version = "0.10.0.1"; - sha256 = "8f903bef276ef503e4ef8b66a1e201c224588e426bc76f7581480f66d47b7048"; - libraryHaskellDepends = [ base call-stack tasty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty"; - description = "HUnit support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-kat" = callPackage - ({ mkDerivation, base, bytestring, stdenv, tasty }: - mkDerivation { - pname = "tasty-kat"; - version = "0.0.3"; - sha256 = "a72501f0f77db372648566bbba1dd1d6d0d0c975b42238875d663313e9a5db93"; - libraryHaskellDepends = [ base bytestring tasty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/vincenthz/tasty-kat"; - description = "Known Answer Tests (KAT) framework for tasty"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-leancheck" = callPackage - ({ mkDerivation, base, leancheck, stdenv, tasty }: - mkDerivation { - pname = "tasty-leancheck"; - version = "0.0.1"; - sha256 = "2791628bf9698aee88c9e1b07ff2f910510664cdc44e2a30c805c2026888d31a"; - libraryHaskellDepends = [ base leancheck tasty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/tasty-leancheck#readme"; - description = "LeanCheck support for the Tasty test framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty-program" = callPackage - ({ mkDerivation, base, deepseq, directory, filepath, process - , stdenv, tasty - }: - mkDerivation { - pname = "tasty-program"; - version = "1.0.5"; - sha256 = "4cb255ad5f037029cc6ae244fffdfb0ed7c65a4b0575d98ec61c067d6f5829c4"; - libraryHaskellDepends = [ - base deepseq directory filepath process tasty - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jstolarek/tasty-program"; - description = "Use tasty framework to test whether a program executes correctly"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tasty-quickcheck" = callPackage - ({ mkDerivation, base, optparse-applicative, QuickCheck, random - , stdenv, tagged, tasty - }: - mkDerivation { - pname = "tasty-quickcheck"; - version = "0.10"; - sha256 = "10fd30cef4a0c2cefb70afecef5adcee1f32f0fd287f108321458fbfd6d7266f"; - revision = "1"; - editedCabalFile = "1ndkkywcqgb2wj339vgckjv5915da5kd4ixlkaww9fsba3qsrnwx"; - libraryHaskellDepends = [ - base optparse-applicative QuickCheck random tagged tasty - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/tasty"; - description = "QuickCheck support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-silver" = callPackage - ({ mkDerivation, ansi-terminal, async, base, bytestring, containers - , deepseq, directory, filepath, mtl, optparse-applicative, process - , process-extras, regex-tdfa, semigroups, stdenv, stm, tagged - , tasty, temporary, text - }: - mkDerivation { - pname = "tasty-silver"; - version = "3.1.12"; - sha256 = "9eba31a2b0ca4857ed7cea15f6da7a6a9224419f1499e5f11b0cd68e3ef8cc68"; - libraryHaskellDepends = [ - ansi-terminal async base bytestring containers deepseq directory - filepath mtl optparse-applicative process process-extras regex-tdfa - semigroups stm tagged tasty temporary text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phile314/tasty-silver"; - description = "A fancy test runner, including support for golden tests"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-smallcheck" = callPackage - ({ mkDerivation, async, base, smallcheck, stdenv, tagged, tasty }: - mkDerivation { - pname = "tasty-smallcheck"; - version = "0.8.1"; - sha256 = "314ba7acdb7793730e7677f553a72dd6a4a8f9a45ff3e931cd7d384affb3c6d8"; - libraryHaskellDepends = [ async base smallcheck tagged tasty ]; - doHaddock = false; - doCheck = false; - homepage = "http://documentup.com/feuerbach/tasty"; - description = "SmallCheck support for the Tasty test framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "tasty-th" = callPackage - ({ mkDerivation, base, haskell-src-exts, stdenv, tasty - , template-haskell - }: - mkDerivation { - pname = "tasty-th"; - version = "0.1.7"; - sha256 = "435aac8f317e2f8cb1aa96fb3f7c9003c1ac28e6d3ca4c3c23f5142178de512c"; - libraryHaskellDepends = [ - base haskell-src-exts tasty template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bennofs/tasty-th"; - description = "Automatic tasty test case discovery using TH"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tce-conf" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "tce-conf"; - version = "1.3"; - sha256 = "b051843bb941ed137242edfcfb28b1c15083951272fe292e82c140c9e1ad26a2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers ]; - executableHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/dino/tce-conf"; - description = "Very simple config file reading"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tcp-streams" = callPackage - ({ mkDerivation, base, bytestring, data-default-class, io-streams - , network, pem, stdenv, tls, x509, x509-store, x509-system - }: - mkDerivation { - pname = "tcp-streams"; - version = "1.0.1.1"; - sha256 = "0a6313e4b329b6f9fd3854963868cc2208aaad4259ae6618afa91950990fe2b7"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring data-default-class io-streams network pem tls x509 - x509-store x509-system - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/didi-FP/tcp-streams"; - description = "One stop solution for tcp client and server with tls support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tcp-streams-openssl" = callPackage - ({ mkDerivation, base, bytestring, HsOpenSSL, HsOpenSSL-x509-system - , io-streams, network, stdenv, tcp-streams - }: - mkDerivation { - pname = "tcp-streams-openssl"; - version = "1.0.1.0"; - sha256 = "c3e7588ba7348fac87a9dcc531909f90bb3b4a1c01da9eb871a918d02b146afe"; - libraryHaskellDepends = [ - base bytestring HsOpenSSL HsOpenSSL-x509-system io-streams network - tcp-streams - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/didi-FP/tcp-streams"; - description = "Tcp streams using openssl for tls support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tdigest" = callPackage - ({ mkDerivation, base, base-compat, binary, Cabal, cabal-doctest - , deepseq, reducers, semigroupoids, stdenv, transformers, vector - , vector-algorithms - }: - mkDerivation { - pname = "tdigest"; - version = "0.2.1"; - sha256 = "d46e38067c4d064f3c9c77219f570ba4e9dbbd7273a5edc4860610cde4afb84e"; - revision = "1"; - editedCabalFile = "1jrq22j9jbvx31pspwjvyb539gix7vfb8cinqkkb2abmr0jrhibn"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base base-compat binary deepseq reducers semigroupoids transformers - vector vector-algorithms - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/futurice/haskell-tdigest#readme"; - description = "On-line accumulation of rank-based statistics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "telegram-bot-simple" = callPackage - ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cron - , hashable, http-api-data, http-client, http-client-tls - , monad-control, mtl, pretty-show, profunctors, servant - , servant-client, split, stdenv, stm, template-haskell, text, time - , transformers, unordered-containers - }: - mkDerivation { - pname = "telegram-bot-simple"; - version = "0.2.0"; - sha256 = "8a8cc572880a792d1ed722bd0ac961892d79113c9fa1b2fbdf3019f98f904ea9"; - revision = "1"; - editedCabalFile = "1li6b3m9glhfg8agr9h0mrbxpr8zr46l57mzjfdqndm248ddbklv"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty base bytestring cron hashable http-api-data - http-client http-client-tls monad-control mtl pretty-show - profunctors servant servant-client split stm template-haskell text - time transformers unordered-containers - ]; - executableHaskellDepends = [ - aeson aeson-pretty base bytestring cron hashable http-api-data - http-client http-client-tls monad-control mtl pretty-show - profunctors servant servant-client split stm template-haskell text - time transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fizruk/telegram-bot-simple#readme"; - description = "Easy to use library for building Telegram bots"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "template-toolkit" = callPackage - ({ mkDerivation, aeson, base, binary, bytestring, containers - , directory, hashtables, mtl, parsec, pcre-utils - , regex-pcre-builtin, scientific, stdenv, text, time - , unordered-containers, uri-encode - }: - mkDerivation { - pname = "template-toolkit"; - version = "0.1.1.0"; - sha256 = "e112d6896958d9d6eb7a4fc63b0b77a9a185d5452d0d4318c6a62121b17b1a5b"; - libraryHaskellDepends = [ - aeson base binary bytestring containers directory hashtables mtl - parsec pcre-utils regex-pcre-builtin scientific text time - unordered-containers uri-encode - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kobargh/template-toolkit#readme"; - description = "Template Toolkit implementation for Haskell"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "temporary" = callPackage - ({ mkDerivation, base, directory, exceptions, filepath, random - , stdenv, transformers, unix - }: - mkDerivation { - pname = "temporary"; - version = "1.3"; - sha256 = "8c442993694b5ffca823ce864af95bd2841fb5264ee511c61cf48cc71d879890"; - libraryHaskellDepends = [ - base directory exceptions filepath random transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/temporary"; - description = "Portable temporary file and directory support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "temporary-rc" = callPackage - ({ mkDerivation, base, directory, exceptions, filepath, stdenv - , transformers, unix - }: - mkDerivation { - pname = "temporary-rc"; - version = "1.2.0.3"; - sha256 = "1a4f8dd65f7db92316a68ef64c3518873799115babce92ef9869103d318011db"; - libraryHaskellDepends = [ - base directory exceptions filepath transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/feuerbach/temporary"; - description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "temporary-resourcet" = callPackage - ({ mkDerivation, base, directory, exceptions, filepath, resourcet - , stdenv, transformers, unix - }: - mkDerivation { - pname = "temporary-resourcet"; - version = "0.1.0.1"; - sha256 = "e0406f6834690ffa3a0b9727302a5ae928cbdc1eb42431a15daaac498fcaee71"; - libraryHaskellDepends = [ - base directory exceptions filepath resourcet transformers unix - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/ttuegel/temporary-resourcet"; - description = "Portable temporary files and directories with automatic deletion"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tensorflow-test" = callPackage - ({ mkDerivation, base, HUnit, stdenv, vector }: - mkDerivation { - pname = "tensorflow-test"; - version = "0.1.0.0"; - sha256 = "378217dde895daf6599a8d3fb07ed59de5e2d8024958277558faca190bb44afc"; - libraryHaskellDepends = [ base HUnit vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tensorflow/haskell#readme"; - description = "Some common functions for test suites"; - license = stdenv.lib.licenses.asl20; - }) {}; - "tensors" = callPackage - ({ mkDerivation, base, reflection, singletons, stdenv, vector }: - mkDerivation { - pname = "tensors"; - version = "0.1.2"; - sha256 = "67981055c33d5365eabc90b7b0058731da3a90b54f03cd96ac726db4ae9421a7"; - libraryHaskellDepends = [ base reflection singletons vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/leptonyu/tensors#readme"; - description = "Tensor in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "termbox" = callPackage - ({ mkDerivation, array, base, c2hs, stdenv }: - mkDerivation { - pname = "termbox"; - version = "0.1.0"; - sha256 = "4aafbf6d583fd5641da9dcc06754953c6a86ac36a9c0fa73e3b9188f02bad4f3"; - revision = "1"; - editedCabalFile = "0qwab9ayd9b8gmcnvy6pbbp16vwnqdzji9qi71jmgvviayqdlly5"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ array base ]; - libraryToolDepends = [ c2hs ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mitchellwrosen/termbox"; - description = "termbox bindings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "terminal-size" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "terminal-size"; - version = "0.3.2.1"; - sha256 = "b5c23e964756bc13914649a67d63233f59ad0a813abe7cadeb2fc9d586dc9658"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Get terminal window height and width"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework" = callPackage - ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, containers - , hostname, old-locale, random, regex-posix, stdenv, time, xml - }: - mkDerivation { - pname = "test-framework"; - version = "0.8.2.0"; - sha256 = "f5aec7a15dbcb39e951bcf6502606fd99d751197b5510f41706899aa7e660ac2"; - revision = "2"; - editedCabalFile = "1kmv576j1zbms6p3vffripvas87ca3ypdb42h7pqkxsxxfi1gb8j"; - libraryHaskellDepends = [ - ansi-terminal ansi-wl-pprint base containers hostname old-locale - random regex-posix time xml - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell.github.io/test-framework/"; - description = "Framework for running and organising tests, with HUnit and QuickCheck support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-hunit" = callPackage - ({ mkDerivation, base, extensible-exceptions, HUnit, stdenv - , test-framework - }: - mkDerivation { - pname = "test-framework-hunit"; - version = "0.3.0.2"; - sha256 = "95cb8ee02a850b164bfdabdf4dbc839d621361f3ac770ad21ea43a8bde360bf8"; - revision = "3"; - editedCabalFile = "0i9mlalv7cl1iq43ld5myrnpszq5rxmd79hk495dcb08rglhgl3z"; - libraryHaskellDepends = [ - base extensible-exceptions HUnit test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "https://batterseapower.github.io/test-framework/"; - description = "HUnit support for the test-framework package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-leancheck" = callPackage - ({ mkDerivation, base, leancheck, stdenv, test-framework }: - mkDerivation { - pname = "test-framework-leancheck"; - version = "0.0.1"; - sha256 = "236c4c2e6b647c5eb84aeda94a949d50341999825d1a9372f195218137609f2f"; - libraryHaskellDepends = [ base leancheck test-framework ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rudymatela/test-framework-leancheck#readme"; - description = "LeanCheck support for test-framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-quickcheck2" = callPackage - ({ mkDerivation, base, extensible-exceptions, QuickCheck, random - , stdenv, test-framework - }: - mkDerivation { - pname = "test-framework-quickcheck2"; - version = "0.3.0.5"; - sha256 = "c9f678d4ec30599172eb887031f0bce2012b532daeb713836bd912bff64eee59"; - revision = "1"; - editedCabalFile = "1vmpk70h1594h9s216d3ngkb399fpny1d3sh4gg0vrc75p4as68d"; - libraryHaskellDepends = [ - base extensible-exceptions QuickCheck random test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "http://haskell.github.io/test-framework/"; - description = "QuickCheck-2 support for the test-framework package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-smallcheck" = callPackage - ({ mkDerivation, base, smallcheck, stdenv, test-framework - , transformers - }: - mkDerivation { - pname = "test-framework-smallcheck"; - version = "0.2"; - sha256 = "6081c4f35967b0d0cb92ac09a915fa9e2da01c401266b20ce18793fbc2bceff6"; - libraryHaskellDepends = [ - base smallcheck test-framework transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/smallcheck"; - description = "Support for SmallCheck tests in test-framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "test-framework-th" = callPackage - ({ mkDerivation, base, haskell-src-exts, language-haskell-extract - , regex-posix, stdenv, template-haskell, test-framework - }: - mkDerivation { - pname = "test-framework-th"; - version = "0.2.4"; - sha256 = "8b780d9e3edd8d91e24f72d9fa1f80420e52959428ad7c22d0694901a43f9c8a"; - libraryHaskellDepends = [ - base haskell-src-exts language-haskell-extract regex-posix - template-haskell test-framework - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/finnsson/test-generator"; - description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "testing-feat" = callPackage - ({ mkDerivation, base, QuickCheck, size-based, stdenv - , testing-type-modifiers - }: - mkDerivation { - pname = "testing-feat"; - version = "1.1.0.0"; - sha256 = "1904d31ddce611474e8c836582efbca1ae7d1c7dc76083cf4300e8e0eeff58ec"; - libraryHaskellDepends = [ - base QuickCheck size-based testing-type-modifiers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/JonasDuregard/testing-feat"; - description = "Functional Enumeration of Algebraic Types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "testing-type-modifiers" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "testing-type-modifiers"; - version = "0.1.0.1"; - sha256 = "050bdade2c6f0122b1a04a3833ab7eea2399ffda8258bca6d93ba6614bb202f2"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Data type modifiers for property based testing"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "texmath" = callPackage - ({ mkDerivation, base, containers, mtl, pandoc-types, parsec - , stdenv, syb, xml - }: - mkDerivation { - pname = "texmath"; - version = "0.11.2"; - sha256 = "0ec60d7d69b1c152da2088700897fff6d39d0489e63a13ca8cb4d2a2f8d8538a"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers mtl pandoc-types parsec syb xml - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jgm/texmath"; - description = "Conversion between formats used to represent mathematics"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "text" = callPackage - ({ mkDerivation, array, base, binary, bytestring, deepseq, ghc-prim - , integer-gmp, stdenv - }: - mkDerivation { - pname = "text"; - version = "1.2.3.1"; - sha256 = "8360624d5d01f278da320eebd16fd5d6f366b7f876d0ad424041d58e5e1147a6"; - configureFlags = [ "-f-integer-simple" ]; - libraryHaskellDepends = [ - array base binary bytestring deepseq ghc-prim integer-gmp - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/text"; - description = "An efficient packed Unicode text type"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "text-binary" = callPackage - ({ mkDerivation, base, binary, stdenv, text }: - mkDerivation { - pname = "text-binary"; - version = "0.2.1.1"; - sha256 = "b697b2bd09080643d4686705c779122129638904870df5c1d41c8fc72f08f4a1"; - libraryHaskellDepends = [ base binary text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kawu/text-binary"; - description = "Binary instances for text types"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "text-builder" = callPackage - ({ mkDerivation, base, base-prelude, bytestring, deferred-folds - , semigroups, stdenv, text, transformers - }: - mkDerivation { - pname = "text-builder"; - version = "0.6.5"; - sha256 = "b8fc1edc1fb2d5a5e89b956f6aa7d6f08e7b68829679a81d5783639219c9c5cd"; - libraryHaskellDepends = [ - base base-prelude bytestring deferred-folds semigroups text - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/text-builder"; - description = "An efficient strict text builder"; - license = stdenv.lib.licenses.mit; - }) {}; - "text-conversions" = callPackage - ({ mkDerivation, base, base16-bytestring, base64-bytestring - , bytestring, errors, stdenv, text - }: - mkDerivation { - pname = "text-conversions"; - version = "0.3.0"; - sha256 = "1756be2f6b515fea9e00b383c00d1ee851f8b25ddbc2901dd6be27d9b6292c21"; - libraryHaskellDepends = [ - base base16-bytestring base64-bytestring bytestring errors text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cjdev/text-conversions#readme"; - description = "Safe conversions between textual types"; - license = stdenv.lib.licenses.isc; - }) {}; - "text-format" = callPackage - ({ mkDerivation, array, base, double-conversion, ghc-prim - , integer-gmp, old-locale, stdenv, text, time, transformers - }: - mkDerivation { - pname = "text-format"; - version = "0.3.2"; - sha256 = "326637b8ad8420a51c0531cb444e45e0029d68c5980a53d5ffdfa2297d47bae3"; - revision = "1"; - editedCabalFile = "155bddqabsxdfzdr7wl67qw9w777c2qkwxgjpx625875cvyhqkpa"; - libraryHaskellDepends = [ - array base double-conversion ghc-prim integer-gmp old-locale text - time transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/text-format"; - description = "Text formatting"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-icu" = callPackage - ({ mkDerivation, base, bytestring, deepseq, icu, stdenv, text }: - mkDerivation { - pname = "text-icu"; - version = "0.7.0.1"; - sha256 = "e2764c2749033706eed5b9fb3cda11177ad15cdf11912028f551eca39a2c7f78"; - libraryHaskellDepends = [ base bytestring deepseq text ]; - librarySystemDepends = [ icu ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/text-icu"; - description = "Bindings to the ICU library"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) icu;}; - "text-latin1" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, data-checked - , hashable, semigroups, stdenv, text - }: - mkDerivation { - pname = "text-latin1"; - version = "0.3.1"; - sha256 = "6c7482ae0cfde06fe6ad8f0e6ea6b0d082d27a075370b5c018c31e53aad9abf3"; - libraryHaskellDepends = [ - base bytestring case-insensitive data-checked hashable semigroups - text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/text-latin1"; - description = "Latin-1 (including ASCII) utility functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-ldap" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, containers, dlist - , memory, stdenv, transformers - }: - mkDerivation { - pname = "text-ldap"; - version = "0.1.1.13"; - sha256 = "ec174c30333548e21b045554329e6332d54bc355d96e0951ea3ea524463a2a34"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - attoparsec base bytestring containers dlist memory transformers - ]; - executableHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - description = "Parser and Printer for LDAP text data stream"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-manipulate" = callPackage - ({ mkDerivation, base, stdenv, text }: - mkDerivation { - pname = "text-manipulate"; - version = "0.2.0.1"; - sha256 = "e0e9c71d9b1cfb7d3bca3d0a500d939b3efc6684515c0d7bd685503aa4f49d2f"; - libraryHaskellDepends = [ base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/brendanhay/text-manipulate"; - description = "Case conversion, word boundary manipulation, and textual subjugation"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "text-metrics" = callPackage - ({ mkDerivation, base, containers, stdenv, text, vector }: - mkDerivation { - pname = "text-metrics"; - version = "0.3.0"; - sha256 = "3874af74060e35f01702640b353ac2180d93bb5d292a204e0ee3cadd26efbfa2"; - revision = "4"; - editedCabalFile = "017drxq9x56b345d8w5m8xdsi1zzs0z16pbdx8j35cd1lsnh3kf1"; - libraryHaskellDepends = [ base containers text vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/text-metrics"; - description = "Calculate various string metrics efficiently"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-postgresql" = callPackage - ({ mkDerivation, base, dlist, stdenv, transformers - , transformers-compat - }: - mkDerivation { - pname = "text-postgresql"; - version = "0.0.3.1"; - sha256 = "c6e26888d2751b78e3102747d0bccedeee4002a1eb6c76dd1fe6c3836b5082e8"; - libraryHaskellDepends = [ - base dlist transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://khibino.github.io/haskell-relational-record/"; - description = "Parser and Printer of PostgreSQL extended types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-printer" = callPackage - ({ mkDerivation, base, bytestring, pretty, semigroups, stdenv, text - , text-latin1 - }: - mkDerivation { - pname = "text-printer"; - version = "0.5"; - sha256 = "8f0c01a6a15b4314c2d47ab5f0772d176ec38f1c1fe190b9fa7db5149a6c4a0b"; - libraryHaskellDepends = [ - base bytestring pretty semigroups text text-latin1 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/text-printer"; - description = "Abstract interface for text builders/printers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-region" = callPackage - ({ mkDerivation, aeson, base, base-unicode-symbols, bytestring - , groups, lens, stdenv, text - }: - mkDerivation { - pname = "text-region"; - version = "0.3.1.0"; - sha256 = "a74cac02ae5b3c37d09d415f2440a2ea1977145b962b3e291c6484d7cffac5ff"; - revision = "1"; - editedCabalFile = "1z5l1hv8sc4ida5s4r03ihak612lrq0rf7sdfkw7gf05f67c622p"; - libraryHaskellDepends = [ - aeson base base-unicode-symbols bytestring groups lens text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvoidex/text-region"; - description = "Marking text regions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-short" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, ghc-prim - , hashable, stdenv, text - }: - mkDerivation { - pname = "text-short"; - version = "0.1.2"; - sha256 = "b3f2b867d14c7c2586ea580028606b6662293ad080726d5241def937e5e31167"; - revision = "1"; - editedCabalFile = "00w77idkh44m88vivkqsys0y1bbxrflh06yq66liq0wgjhhzdppj"; - libraryHaskellDepends = [ - base binary bytestring deepseq ghc-prim hashable text - ]; - doHaddock = false; - doCheck = false; - description = "Memory-efficient representation of Unicode text strings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "text-show" = callPackage - ({ mkDerivation, array, base, base-compat-batteries, bifunctors - , bytestring, bytestring-builder, containers, contravariant - , generic-deriving, ghc-boot-th, ghc-prim, integer-gmp, nats - , semigroups, stdenv, tagged, template-haskell, text - , th-abstraction, th-lift, transformers, transformers-compat, void - }: - mkDerivation { - pname = "text-show"; - version = "3.7.5"; - sha256 = "39381f23edd5388477ad61f1bdb21962c1abc5e206342ae581d263c3464cc8af"; - revision = "1"; - editedCabalFile = "1v8czpi9mn54850k0pilqh1f3yfr5n5vykmg5k57wmrdpx25vkws"; - libraryHaskellDepends = [ - array base base-compat-batteries bifunctors bytestring - bytestring-builder containers contravariant generic-deriving - ghc-boot-th ghc-prim integer-gmp nats semigroups tagged - template-haskell text th-abstraction th-lift transformers - transformers-compat void - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/RyanGlScott/text-show"; - description = "Efficient conversion of values into Text"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "textlocal" = callPackage - ({ mkDerivation, aeson, base, bytestring, http-client - , http-client-tls, http-conduit, stdenv, text, unix-time - }: - mkDerivation { - pname = "textlocal"; - version = "0.1.0.5"; - sha256 = "8954ff6270c9920fc390be6b9f398975ea06dd6808a411cbf8fa5fb4a9cf3087"; - libraryHaskellDepends = [ - aeson base bytestring http-client http-client-tls http-conduit text - unix-time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/just-chow/textlocal"; - description = "Haskell wrapper for textlocal SMS gateway"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tf-random" = callPackage - ({ mkDerivation, base, primitive, random, stdenv, time }: - mkDerivation { - pname = "tf-random"; - version = "0.5"; - sha256 = "2e30cec027b313c9e1794d326635d8fc5f79b6bf6e7580ab4b00186dadc88510"; - libraryHaskellDepends = [ base primitive random time ]; - doHaddock = false; - doCheck = false; - description = "High-quality splittable pseudorandom number generator"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tfp" = callPackage - ({ mkDerivation, base, stdenv, utility-ht }: - mkDerivation { - pname = "tfp"; - version = "1.0.1.1"; - sha256 = "71b494920377cfd1c58f220e5d8862c1f2c0d2b1ce529352f2fde20428a96ce2"; - libraryHaskellDepends = [ base utility-ht ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Type_arithmetic"; - description = "Type-level integers, booleans, lists using type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-abstraction" = callPackage - ({ mkDerivation, base, containers, ghc-prim, stdenv - , template-haskell - }: - mkDerivation { - pname = "th-abstraction"; - version = "0.2.10.0"; - sha256 = "c9dbffcaa4ed04f257427e61da135797190b572d4e37662f7821844cbd2114af"; - libraryHaskellDepends = [ - base containers ghc-prim template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/glguy/th-abstraction"; - description = "Nicer interface for reified information about data types"; - license = stdenv.lib.licenses.isc; - }) {}; - "th-data-compat" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "th-data-compat"; - version = "0.0.2.7"; - sha256 = "13aaff2410e39e518f6de74a5bdd20de0e0139fc4af2c344e7c282cf63fa4e7a"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - description = "Compatibility for data definition template of TH"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-desugar" = callPackage - ({ mkDerivation, base, containers, mtl, stdenv, syb - , template-haskell, th-expand-syns, th-lift, th-orphans - }: - mkDerivation { - pname = "th-desugar"; - version = "1.9"; - sha256 = "f14a7a854df55abb3bbca5ef0ec202ed4d7e1631a5fb51767d360dc1b604afef"; - libraryHaskellDepends = [ - base containers mtl syb template-haskell th-expand-syns th-lift - th-orphans - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/goldfirere/th-desugar"; - description = "Functions to desugar Template Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-expand-syns" = callPackage - ({ mkDerivation, base, containers, stdenv, syb, template-haskell }: - mkDerivation { - pname = "th-expand-syns"; - version = "0.4.4.0"; - sha256 = "cc0f52d1364ace9ba56f51afd9106a5fe01ed3f5ae45c958c1b0f83be0a6f906"; - revision = "1"; - editedCabalFile = "1zbdg3hrqv7rzlsrw4a2vjr3g4nzny32wvjcpxamlvx77b1jvsw9"; - libraryHaskellDepends = [ base containers syb template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanielSchuessler/th-expand-syns"; - description = "Expands type synonyms in Template Haskell ASTs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-extras" = callPackage - ({ mkDerivation, base, stdenv, syb, template-haskell }: - mkDerivation { - pname = "th-extras"; - version = "0.0.0.4"; - sha256 = "8feff450aaf28ec4f08c45a5656c62879861a8e7f45591cb367d5351ddc3fbed"; - libraryHaskellDepends = [ base syb template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mokus0/th-extras"; - description = "A grab bag of functions for use with Template Haskell"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "th-lift" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv, template-haskell - , th-abstraction - }: - mkDerivation { - pname = "th-lift"; - version = "0.7.11"; - sha256 = "d53cd1479d3cf35c513095f3954eee539e73c55266cec5f1fa0a82d53f30238c"; - revision = "1"; - editedCabalFile = "0whppp0p9df3fphv6pyg8f70bnm2kpyb3ylznknrklsl5vn2c49d"; - libraryHaskellDepends = [ - base ghc-prim template-haskell th-abstraction - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mboes/th-lift"; - description = "Derive Template Haskell's Lift class for datatypes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-lift-instances" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv - , template-haskell, text, vector - }: - mkDerivation { - pname = "th-lift-instances"; - version = "0.1.12"; - sha256 = "2dca1f72e7f9fdf8f4be41c5e1e472540e1086a2c402a5292e231f3babe34ece"; - libraryHaskellDepends = [ - base bytestring containers template-haskell text vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/bennofs/th-lift-instances/"; - description = "Lift instances for template-haskell for common data types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-orphans" = callPackage - ({ mkDerivation, base, mtl, stdenv, template-haskell, th-lift - , th-lift-instances, th-reify-many - }: - mkDerivation { - pname = "th-orphans"; - version = "0.13.6"; - sha256 = "7745e6b93a73cbc0a6aa0da0a7b7377f0be4fffb4fd311e5502de199ec1dd469"; - libraryHaskellDepends = [ - base mtl template-haskell th-lift th-lift-instances th-reify-many - ]; - doHaddock = false; - doCheck = false; - description = "Orphan instances for TH datatypes"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-printf" = callPackage - ({ mkDerivation, base, charset, containers, microlens-platform, mtl - , parsec, semigroups, stdenv, template-haskell, th-lift - , transformers - }: - mkDerivation { - pname = "th-printf"; - version = "0.6.0"; - sha256 = "c258ed7852cbafa6c4b7142343d6294513081a7b7ddeeb89c089b082fa5f0ed7"; - libraryHaskellDepends = [ - base charset containers microlens-platform mtl parsec semigroups - template-haskell th-lift transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/pikajude/th-printf#readme"; - description = "Quasiquoters for printf"; - license = stdenv.lib.licenses.mit; - }) {}; - "th-reify-compat" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "th-reify-compat"; - version = "0.0.1.5"; - sha256 = "af1b2e7e39e029d8c9a20efdd7b49d4d15616ac360adddc7a09560b9a223359c"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/khibino/haskell-th-reify-compat/"; - description = "Compatibility for the result type of TH reify"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-reify-many" = callPackage - ({ mkDerivation, base, containers, mtl, safe, stdenv - , template-haskell, th-expand-syns - }: - mkDerivation { - pname = "th-reify-many"; - version = "0.1.8"; - sha256 = "cecaae187df911de515d08929e1394d6d6f7ce129795be8189a6b10d3734fe43"; - libraryHaskellDepends = [ - base containers mtl safe template-haskell th-expand-syns - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mgsloan/th-reify-many"; - description = "Recurseively reify template haskell datatype info"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "th-strict-compat" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "th-strict-compat"; - version = "0.1.0.1"; - sha256 = "c3fad31e4b657047d8dd248803e2206c6a5b7375e22d3940714d0cc42d93aa4a"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/igrep/th-strict-compat"; - description = "Compatibility shim for Bang and Strict in Template Haskell"; - license = stdenv.lib.licenses.asl20; - }) {}; - "th-utilities" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , primitive, stdenv, syb, template-haskell, text, th-orphans - }: - mkDerivation { - pname = "th-utilities"; - version = "0.2.1.0"; - sha256 = "cb597eb207cdae81c24abcae106b43e6479038b6bc5e76c8861c9134c8fe83cd"; - libraryHaskellDepends = [ - base bytestring containers directory filepath primitive syb - template-haskell text th-orphans - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/th-utilities#readme"; - description = "Collection of useful functions for use with Template Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - "these" = callPackage - ({ mkDerivation, aeson, base, base-compat, bifunctors, binary - , containers, data-default-class, deepseq, hashable, keys, lens - , mtl, QuickCheck, semigroupoids, stdenv, transformers - , transformers-compat, unordered-containers, vector - , vector-instances - }: - mkDerivation { - pname = "these"; - version = "0.7.6"; - sha256 = "9464b83d98e626360a8ad9836ba77e5201cd1e9c89b95b1b11a28ef3c23ac746"; - libraryHaskellDepends = [ - aeson base base-compat bifunctors binary containers - data-default-class deepseq hashable keys lens mtl QuickCheck - semigroupoids transformers transformers-compat unordered-containers - vector vector-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/isomorphism/these"; - description = "An either-or-both data type & a generalized 'zip with padding' typeclass"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "thread-hierarchy" = callPackage - ({ mkDerivation, base, containers, stdenv, stm }: - mkDerivation { - pname = "thread-hierarchy"; - version = "0.3.0.1"; - sha256 = "8181448452c759b660f6d7c8775fd99479ccc382cd291460903b15574e5d5c34"; - libraryHaskellDepends = [ base containers stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nshimaza/thread-hierarchy#readme"; - description = "Simple Haskel thread management in hierarchical manner"; - license = stdenv.lib.licenses.mit; - }) {}; - "thread-local-storage" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "thread-local-storage"; - version = "0.2"; - sha256 = "d648e01631189036a386d91de22f2b862e830ad0625b1f6096b347974f465294"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/rrnewton/thread-local-storage"; - description = "Several options for thread-local-storage (TLS) in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "threads" = callPackage - ({ mkDerivation, base, Cabal, stdenv, stm }: - mkDerivation { - pname = "threads"; - version = "0.5.1.6"; - sha256 = "139ac3c067fcbb392b5b9c2feaa98184b75ebe7f2e580726eea6ce812d94562e"; - setupHaskellDepends = [ base Cabal ]; - libraryHaskellDepends = [ base stm ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/threads"; - description = "Fork threads and wait for their result"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "threepenny-gui" = callPackage - ({ mkDerivation, aeson, async, base, bytestring, containers - , data-default, deepseq, exceptions, file-embed, filepath, hashable - , safe, snap-core, snap-server, stdenv, stm, template-haskell, text - , transformers, unordered-containers, vault, vector, websockets - , websockets-snap - }: - mkDerivation { - pname = "threepenny-gui"; - version = "0.8.3.0"; - sha256 = "c661b206987d6c85821e6b5206c563e3182138dfddda62cda454b8cd34536a9c"; - isLibrary = true; - isExecutable = true; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson async base bytestring containers data-default deepseq - exceptions file-embed filepath hashable safe snap-core snap-server - stm template-haskell text transformers unordered-containers vault - vector websockets websockets-snap - ]; - doHaddock = false; - doCheck = false; - homepage = "http://wiki.haskell.org/Threepenny-gui"; - description = "GUI framework that uses the web browser as a display"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "throttle-io-stream" = callPackage - ({ mkDerivation, async, base, clock, stdenv, stm, stm-chans }: - mkDerivation { - pname = "throttle-io-stream"; - version = "0.2.0.1"; - sha256 = "e897a869062bcb4bcef372cfcf2a1e86699647fab8c721cfb22dbe6c47cf2c8e"; - libraryHaskellDepends = [ async base clock stm stm-chans ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mtesseract/throttle-io-stream#readme"; - description = "Throttler between arbitrary IO producer and consumer functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "throwable-exceptions" = callPackage - ({ mkDerivation, base, safe-exceptions, stdenv, template-haskell }: - mkDerivation { - pname = "throwable-exceptions"; - version = "0.1.0.9"; - sha256 = "3ab23c1dd24036a5d1229bed2b140ef50259e365e74c97face9d837c50c769a9"; - libraryHaskellDepends = [ base safe-exceptions template-haskell ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aiya000/hs-throwable-exceptions#README.md"; - description = "throwable-exceptions gives the easy way to throw exceptions"; - license = stdenv.lib.licenses.mit; - }) {}; - "thyme" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, containers - , cpphs, deepseq, mtl, old-locale, profunctors, QuickCheck, random - , stdenv, text, time, vector, vector-space, vector-th-unbox - }: - mkDerivation { - pname = "thyme"; - version = "0.3.5.5"; - sha256 = "84c6701fb7b40841d22582202382c362fd9e0d6e5f1c959b7e0f2f91a85c796c"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring containers deepseq mtl old-locale - profunctors QuickCheck random text time vector vector-space - vector-th-unbox - ]; - libraryToolDepends = [ cpphs ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/liyang/thyme"; - description = "A faster time library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tile" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "tile"; - version = "0.3.0.0"; - sha256 = "15ed186360bea0bfc64dd4e6fc27b4e4aed9ba2cc344f1d8ea69687933cc65f0"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/caneroj1/tile#readme"; - description = "Slippy map tile functionality"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-compat" = callPackage - ({ mkDerivation, base, old-time, stdenv, time }: - mkDerivation { - pname = "time-compat"; - version = "0.1.0.3"; - sha256 = "590711214510c0d2d09780c7fe3b21748bc4802e9053f78ccd6658e951fe0f7f"; - libraryHaskellDepends = [ base old-time time ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/dag/time-compat"; - description = "Compatibility with old-time for the time package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-lens" = callPackage - ({ mkDerivation, base, data-lens-light, stdenv, time }: - mkDerivation { - pname = "time-lens"; - version = "0.4.0.2"; - sha256 = "d8cbb8fcb79867d4a5fe6bc024d0badd68fad8986f6cdc1161b0f41afa49d01e"; - libraryHaskellDepends = [ base data-lens-light time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/feuerbach/time-lens"; - description = "Lens-based interface to Data.Time data structures"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-locale-compat" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "time-locale-compat"; - version = "0.1.1.5"; - sha256 = "07ff1566de7d851423a843b2de385442319348c621d4f779b3d365ce91ac502c"; - configureFlags = [ "-f-old-locale" ]; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/khibino/haskell-time-locale-compat"; - description = "Compatibile module for time-format locale"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-locale-vietnamese" = callPackage - ({ mkDerivation, base, stdenv, time }: - mkDerivation { - pname = "time-locale-vietnamese"; - version = "1.0.0.0"; - sha256 = "96062db31c2a858c20c8e3eb10aaff93e87f6514f335c14d0243429a7f730b76"; - libraryHaskellDepends = [ base time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tungd/time-locale-vietnamese#readme"; - description = "Vietnamese locale for date and time format"; - license = stdenv.lib.licenses.asl20; - }) {}; - "time-parsers" = callPackage - ({ mkDerivation, base, parsers, stdenv, template-haskell, time }: - mkDerivation { - pname = "time-parsers"; - version = "0.1.2.0"; - sha256 = "4e50d40f13f8e6c5175be22b91586f909607ecb631f8209ff45bce2031bb3c24"; - revision = "3"; - editedCabalFile = "0im963wjcmwf6ii9a00mbi8lhmx5cy7cs6rmp0qi2j2jddba78j2"; - libraryHaskellDepends = [ base parsers template-haskell time ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/time-parsers#readme"; - description = "Parsers for types in `time`"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "time-qq" = callPackage - ({ mkDerivation, base, stdenv, template-haskell, time - , time-locale-compat - }: - mkDerivation { - pname = "time-qq"; - version = "0.0.1.0"; - sha256 = "ad6f0e5a6e5606ec2df3bb20006f92158100f20298a1b71fe6d79532c6814c87"; - libraryHaskellDepends = [ - base template-haskell time time-locale-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/christian-marie/time-qq"; - description = "Quasi-quoter for UTCTime times"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "timeit" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "timeit"; - version = "2.0"; - sha256 = "a14df4e578db371e5c609f0784209144545f9cae90026d24a3398042f7c591ea"; - revision = "1"; - editedCabalFile = "0d4vjg48xyqjmydnjqjxica0zr30vgb91b3vv75cig686ikpjmq7"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/merijn/timeit"; - description = "Time monadic computations with an IO base"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "timelens" = callPackage - ({ mkDerivation, base, lens, stdenv, time }: - mkDerivation { - pname = "timelens"; - version = "0.2.0.2"; - sha256 = "f4e6fa016ec37f79c96a62cff174929f04152831c308ab1f9a797f5b5674a764"; - libraryHaskellDepends = [ base lens time ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.github.com/massysett/timelens"; - description = "Lenses for the time package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "timer-wheel" = callPackage - ({ mkDerivation, atomic-primops, base, ghc-prim, primitive - , psqueues, stdenv - }: - mkDerivation { - pname = "timer-wheel"; - version = "0.1.0"; - sha256 = "52e8679dc2daea5ce7bf49d2e100d6ba6db74084a05980ee7870b8ee8f395572"; - revision = "1"; - editedCabalFile = "0vk0p21x90wiazss30zkbzr5fnsc4gih9a6xaa9myyycw078600v"; - libraryHaskellDepends = [ - atomic-primops base ghc-prim primitive psqueues - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mitchellwrosen/timer-wheel"; - description = "A timer wheel"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "timerep" = callPackage - ({ mkDerivation, attoparsec, base, monoid-subclasses, stdenv, text - , time - }: - mkDerivation { - pname = "timerep"; - version = "2.0.0.2"; - sha256 = "1d4e417f3ca08921941c16791680e13b66fb1844d94759068846ede78c965339"; - libraryHaskellDepends = [ - attoparsec base monoid-subclasses text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/HugoDaniel/timerep"; - description = "Parse and display time according to some RFCs (RFC3339, RFC2822, RFC822)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "timezone-olson" = callPackage - ({ mkDerivation, base, binary, bytestring, extensible-exceptions - , stdenv, time, timezone-series - }: - mkDerivation { - pname = "timezone-olson"; - version = "0.1.9"; - sha256 = "32230509029bcf9e1bd95b5ad7ee69b8b0250cffc4bb8f2df88a651b3af74b15"; - libraryHaskellDepends = [ - base binary bytestring extensible-exceptions time timezone-series - ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/time-ng/"; - description = "A pure Haskell parser and renderer for binary Olson timezone files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "timezone-series" = callPackage - ({ mkDerivation, base, deepseq, stdenv, time }: - mkDerivation { - pname = "timezone-series"; - version = "0.1.9"; - sha256 = "e5d35df5dc2408803120602b0a66ed63439e36b38dd0895f3e2159fcbd7d9cae"; - libraryHaskellDepends = [ base deepseq time ]; - doHaddock = false; - doCheck = false; - homepage = "http://projects.haskell.org/time-ng/"; - description = "Enhanced timezone handling for Data.Time"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tinylog" = callPackage - ({ mkDerivation, base, bytestring, containers, double-conversion - , fast-logger, stdenv, text, transformers, unix-time - }: - mkDerivation { - pname = "tinylog"; - version = "0.14.1"; - sha256 = "d13e96117dfcedc861185bee5d1d130a92bce7876cc1ffd041ace2426820df07"; - libraryHaskellDepends = [ - base bytestring containers double-conversion fast-logger text - transformers unix-time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/twittner/tinylog/"; - description = "Simplistic logging using fast-logger"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "titlecase" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "titlecase"; - version = "1.0.1"; - sha256 = "e7731c29509d2b41b1d94b89484edffa10b86689a755c4019617a6c9485e49cc"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/peti/titlecase#readme"; - description = "Convert English Words to Title Case"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tldr" = callPackage - ({ mkDerivation, ansi-terminal, base, bytestring, cmark, directory - , filepath, optparse-applicative, semigroups, stdenv, text - , typed-process - }: - mkDerivation { - pname = "tldr"; - version = "0.4.0.1"; - sha256 = "a35525699a5a16fa0e9d4a80c00336f3285ac561883c84286afc4b997c408559"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal base bytestring cmark text - ]; - executableHaskellDepends = [ - base directory filepath optparse-applicative semigroups - typed-process - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/tldr-hs#readme"; - description = "Haskell tldr client"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tls" = callPackage - ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring - , cereal, cryptonite, data-default-class, memory, mtl, network - , stdenv, transformers, x509, x509-store, x509-validation - }: - mkDerivation { - pname = "tls"; - version = "1.4.1"; - sha256 = "bbead1afc0b808bd5cff7bddaeae84ade37f18bbe72bd78d45a2fa4ac41908f8"; - revision = "1"; - editedCabalFile = "0qk07miindqvynhgsqj8jjk1d6i95lbgwipanwnn4vh1707z8xhv"; - libraryHaskellDepends = [ - asn1-encoding asn1-types async base bytestring cereal cryptonite - data-default-class memory mtl network transformers x509 x509-store - x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-tls"; - description = "TLS/SSL protocol native implementation (Server and Client)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tls-debug" = callPackage - ({ mkDerivation, base, bytestring, cryptonite, data-default-class - , network, pem, stdenv, time, tls, x509, x509-store, x509-system - , x509-validation - }: - mkDerivation { - pname = "tls-debug"; - version = "0.4.5"; - sha256 = "a345c4863bf923829d73abb8e2b706dab8058b12cdf73859d3860eaf7223eb9b"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - base bytestring cryptonite data-default-class network pem time tls - x509 x509-store x509-system x509-validation - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-tls"; - description = "Set of programs for TLS testing and debugging"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tls-session-manager" = callPackage - ({ mkDerivation, auto-update, base, clock, psqueues, stdenv, tls }: - mkDerivation { - pname = "tls-session-manager"; - version = "0.0.0.2"; - sha256 = "c586ccfd8da578ed2174352bea1952f55fe38023e476f851d7f0ed428aa57567"; - libraryHaskellDepends = [ auto-update base clock psqueues tls ]; - doHaddock = false; - doCheck = false; - description = "In-memory TLS session manager"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tmapchan" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv, stm - , unordered-containers - }: - mkDerivation { - pname = "tmapchan"; - version = "0.0.3"; - sha256 = "e86db4c2e6cdd373b0cbe91e01d2a223c95d5d36930f5a6c484c1586ae5011e0"; - libraryHaskellDepends = [ - base containers hashable stm unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/tmapchan#readme"; - description = "An insert-ordered multimap (indexed FIFO) which consumes values as you lookup"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tmapmvar" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv, stm - , unordered-containers - }: - mkDerivation { - pname = "tmapmvar"; - version = "0.0.4"; - sha256 = "a6e58cfd8bed77c9ec6122d26db79b3d16f139c977a255bd336fe3c53822b4e3"; - libraryHaskellDepends = [ - base containers hashable stm unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "A single-entity stateful Map in STM, similar to tmapchan"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tmp-postgres" = callPackage - ({ mkDerivation, base, bytestring, directory, network - , postgresql-simple, process, stdenv, temporary, unix - }: - mkDerivation { - pname = "tmp-postgres"; - version = "0.1.1.1"; - sha256 = "2c5d557c53f60179d5e5e8c7fb6e393ff703e45b55c126359b308ab7a82be863"; - libraryHaskellDepends = [ - base bytestring directory network postgresql-simple process - temporary unix - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jfischoff/tmp-postgres#readme"; - description = "Start and stop a temporary postgres for testing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "token-bucket" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "token-bucket"; - version = "0.1.0.1"; - sha256 = "312609c0037271b1091f23c2edf467e9449edca5bbed0cfb45c2c93c1bee6ad0"; - revision = "4"; - editedCabalFile = "19kxi77aqyra00m02751sdfm6qy6mx4mlh7bhqv4wyaggwga707g"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/token-bucket"; - description = "Rate limiter using lazy bucket algorithm"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "tomland" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, hashable - , megaparsec, mtl, parser-combinators, stdenv, text, time - , transformers, unordered-containers - }: - mkDerivation { - pname = "tomland"; - version = "0.5.0"; - sha256 = "eeedfcdd08b0d4839ff1417d39e437bdb12ba7429f174c6a1b6f4520fde02f00"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring containers deepseq hashable megaparsec mtl - parser-combinators text time transformers unordered-containers - ]; - executableHaskellDepends = [ base text time unordered-containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/tomland"; - description = "Bidirectional TOML parser"; - license = stdenv.lib.licenses.mpl20; - }) {}; - "tostring" = callPackage - ({ mkDerivation, base, case-insensitive, stdenv, text, utf8-string - }: - mkDerivation { - pname = "tostring"; - version = "0.2.1.1"; - sha256 = "efa700d44aec57c82be60c0eabd610f62f2df0d9b06cf41b5fc35a2b77502531"; - libraryHaskellDepends = [ base case-insensitive text utf8-string ]; - doHaddock = false; - doCheck = false; - description = "The ToString class"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transaction" = callPackage - ({ mkDerivation, base, mono-traversable, stdenv }: - mkDerivation { - pname = "transaction"; - version = "0.1.1.3"; - sha256 = "d264b1324726e70aceafdc2fa7eef1c863c527c69486a967116dee29aa23c0c5"; - libraryHaskellDepends = [ base mono-traversable ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arowM/haskell-transaction#readme"; - description = "Monadic representation of transactions"; - license = stdenv.lib.licenses.mit; - }) {}; - "transformers-base" = callPackage - ({ mkDerivation, base, base-orphans, stdenv, stm, transformers - , transformers-compat - }: - mkDerivation { - pname = "transformers-base"; - version = "0.4.5.2"; - sha256 = "d0c80c63fdce6a077dd8eda4f1ff289b85578703a3f1272e141d400fe23245e8"; - libraryHaskellDepends = [ - base base-orphans stm transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/transformers-base"; - description = "Lift computations from the bottom of a transformer stack"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transformers-bifunctors" = callPackage - ({ mkDerivation, base, mmorph, stdenv, transformers }: - mkDerivation { - pname = "transformers-bifunctors"; - version = "0.1"; - sha256 = "3c25d3d76361f62b4c7c37d4bc4b7497af691d000fcd8e5fe9cbb3544d284807"; - libraryHaskellDepends = [ base mmorph transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jystic/transformers-bifunctors"; - description = "Bifunctors over monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transformers-compat" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv, transformers }: - mkDerivation { - pname = "transformers-compat"; - version = "0.6.2"; - sha256 = "dc06228b7b8a546f9d257b4fe2b369fc2cb279240bbe4312aa8f47bb2752e4be"; - configureFlags = [ "-ffive-three" ]; - libraryHaskellDepends = [ base ghc-prim transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/transformers-compat/"; - description = "A small compatibility shim for the transformers library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transformers-fix" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "transformers-fix"; - version = "1.0"; - sha256 = "65d1fff36b844d8ac22d47eb47e2c7e9d7ece54fafeeca4d4e38a08910be4a09"; - revision = "1"; - editedCabalFile = "126gyjr8jp42md6nblx7c0kan97jgsakvsf2vzv2pj828ax1icrs"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/thumphries/transformers-fix"; - description = "Monad transformer for evaluating to a fixpoint"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "transformers-lift" = callPackage - ({ mkDerivation, base, stdenv, transformers - , writer-cps-transformers - }: - mkDerivation { - pname = "transformers-lift"; - version = "0.2.0.1"; - sha256 = "0bd8bf23fb29874daf9ff990bf25035e21208cfa292f9f18e8cfdb0b4b1ee09d"; - revision = "3"; - editedCabalFile = "0rkbjlpn460gn93qr0l7025ggkgj46j6pkcil6m2chkzk91cpk9i"; - libraryHaskellDepends = [ - base transformers writer-cps-transformers - ]; - doHaddock = false; - doCheck = false; - description = "Ad-hoc type classes for lifting"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "traverse-with-class" = callPackage - ({ mkDerivation, base, stdenv, template-haskell, transformers }: - mkDerivation { - pname = "traverse-with-class"; - version = "1.0.0.0"; - sha256 = "65a220f1652b68269dfe8cc283a6e9292941eb12bdbd79344e073ba766191fbb"; - libraryHaskellDepends = [ base template-haskell transformers ]; - doHaddock = false; - doCheck = false; - description = "Generic applicative traversals"; - license = stdenv.lib.licenses.mit; - }) {}; - "tree-diff" = callPackage - ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base - , base-compat, bytestring, containers, generics-sop, hashable - , MemoTrie, parsec, parsers, pretty, QuickCheck, scientific, stdenv - , tagged, text, time, unordered-containers, uuid-types, vector - }: - mkDerivation { - pname = "tree-diff"; - version = "0.0.2"; - sha256 = "f8690bd14977f66292759f432a9f0d1b15f00b37001e7c4ea1a04c3fa38a9b7e"; - revision = "2"; - editedCabalFile = "07pz7mhzvh7iwgn2rvw29valfdm4y845zqqffxb89ywbb6gnm8x8"; - libraryHaskellDepends = [ - aeson ansi-terminal ansi-wl-pprint base base-compat bytestring - containers generics-sop hashable MemoTrie parsec parsers pretty - QuickCheck scientific tagged text time unordered-containers - uuid-types vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/tree-diff"; - description = "Diffing of (expression) trees"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tree-fun" = callPackage - ({ mkDerivation, base, containers, mtl, stdenv }: - mkDerivation { - pname = "tree-fun"; - version = "0.8.1.0"; - sha256 = "2ae925f198e9700dedbf809c2b77086fef32f58b4a4adb6c398dca49f4d56f1f"; - libraryHaskellDepends = [ base containers mtl ]; - doHaddock = false; - doCheck = false; - description = "Library for functions pertaining to tree exploration and manipulation"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "trifecta" = callPackage - ({ mkDerivation, ansi-terminal, ansi-wl-pprint, array, base - , blaze-builder, blaze-html, blaze-markup, bytestring, Cabal - , cabal-doctest, charset, comonad, containers, deepseq, fingertree - , ghc-prim, hashable, lens, mtl, parsers, profunctors, reducers - , semigroups, stdenv, transformers, unordered-containers - , utf8-string - }: - mkDerivation { - pname = "trifecta"; - version = "2"; - sha256 = "53972fe9d206eab6ae1a654fe8c57274f01b373b0c8b3882ef01e962226af643"; - revision = "2"; - editedCabalFile = "1ihw0dm0sjn7cql6rb3y0gb5kxy1ca3ggflm4lxlmhm3gfrj2sxc"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - ansi-terminal ansi-wl-pprint array base blaze-builder blaze-html - blaze-markup bytestring charset comonad containers deepseq - fingertree ghc-prim hashable lens mtl parsers profunctors reducers - semigroups transformers unordered-containers utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/trifecta/"; - description = "A modern parser combinator library with convenient diagnostics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "triplesec" = callPackage - ({ mkDerivation, base, cryptonite, memory, mtl, stdenv - , transformers - }: - mkDerivation { - pname = "triplesec"; - version = "0.2.2.0"; - sha256 = "077e32dc11a2d80b74baa37d3fb0fab46a1e0165e56c912d0d6a64090bd1b3bf"; - libraryHaskellDepends = [ - base cryptonite memory mtl transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/SamProtas/hs-triplesec"; - description = "TripleSec is a simple, triple-paranoid, symmetric encryption library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tsv2csv" = callPackage - ({ mkDerivation, base, HUnit, split, stdenv }: - mkDerivation { - pname = "tsv2csv"; - version = "0.1.0.2"; - sha256 = "2c082f8bac93a5d47e312148493d0b8f078e2e0d0e919caa0fa24cab63dd3397"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base HUnit split ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Convert tsv to csv"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ttrie" = callPackage - ({ mkDerivation, atomic-primops, base, hashable, primitive, stdenv - , stm - }: - mkDerivation { - pname = "ttrie"; - version = "0.1.2.1"; - sha256 = "50444fe989559a0b16120df72765321ffd9de2fd97c943104513d894f21f4a68"; - libraryHaskellDepends = [ - atomic-primops base hashable primitive stm - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/mcschroeder/ttrie"; - description = "Contention-free STM hash map"; - license = stdenv.lib.licenses.mit; - }) {}; - "tuple" = callPackage - ({ mkDerivation, base, OneTuple, stdenv }: - mkDerivation { - pname = "tuple"; - version = "0.3.0.2"; - sha256 = "2fcb068ffafbe64170e02094a363f83d1725f44f8af963d9dad943a592e89624"; - libraryHaskellDepends = [ base OneTuple ]; - doHaddock = false; - doCheck = false; - description = "Various functions on tuples"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tuple-sop" = callPackage - ({ mkDerivation, base, generics-sop, stdenv }: - mkDerivation { - pname = "tuple-sop"; - version = "0.3.1.0"; - sha256 = "f6e18d0f444993c959eaa7d1aca87993c779b929260b1c6dd823715d3e736043"; - libraryHaskellDepends = [ base generics-sop ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Ferdinand-vW/tuple-sop#readme"; - description = "functions on n-ary tuples using generics-sop"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "tuple-th" = callPackage - ({ mkDerivation, base, containers, stdenv, template-haskell }: - mkDerivation { - pname = "tuple-th"; - version = "0.2.5"; - sha256 = "56ea37dcede07b5cf5385108540ae626db163f9df0387583d3c7afdaf72634d7"; - libraryHaskellDepends = [ base containers template-haskell ]; - doHaddock = false; - doCheck = false; - description = "Generate (non-recursive) utility functions for tuples of statically known size"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "tuples-homogenous-h98" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "tuples-homogenous-h98"; - version = "0.1.1.0"; - sha256 = "025afc8f0fe9c92fb43cebedfa6a764f744d3dc3a3d52935d0a01bc80d111f3a"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ppetr/tuples-homogenous-h98"; - description = "Wrappers for n-ary tuples with Traversable and Applicative/Monad instances"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "turtle" = callPackage - ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock - , containers, directory, exceptions, foldl, hostname, managed - , optional-args, optparse-applicative, process, semigroups, stdenv - , stm, system-fileio, system-filepath, temporary, text, time - , transformers, unix, unix-compat - }: - mkDerivation { - pname = "turtle"; - version = "1.5.13"; - sha256 = "0f06763f7a50b19862bd048e9387ddc441f085c5e1aa3a392322210a38f44484"; - libraryHaskellDepends = [ - ansi-wl-pprint async base bytestring clock containers directory - exceptions foldl hostname managed optional-args - optparse-applicative process semigroups stm system-fileio - system-filepath temporary text time transformers unix unix-compat - ]; - doHaddock = false; - doCheck = false; - description = "Shell programming, Haskell-style"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-fun" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "type-fun"; - version = "0.1.1"; - sha256 = "df5ec7428a101235df46c0b819a9ab3562d1d27991cc3b04303643952c555da1"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/s9gf4ult/type-fun"; - description = "Collection of widely reimplemented type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-hint" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "type-hint"; - version = "0.1"; - sha256 = "1161cdbf4b4b43c2953ee60438e948737604193e1bfe2c880ff178538faa99b9"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mvv/type-hint"; - description = "Guide type inference with proxy values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-level-integers" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "type-level-integers"; - version = "0.0.1"; - sha256 = "118be3a4b3ab65bb1d31220738079013bd14fc77db674a9a1577f5582ffcc7ba"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mtesseract/type-level-integers"; - description = "Provides integers lifted to the type level"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-level-kv-list" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "type-level-kv-list"; - version = "1.1.0"; - sha256 = "4ff032e59108edc7dd27309ac0ee8987cc41ffba695d9699700bd37c6e7f7d73"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/arowM/type-level-kv-list#readme"; - description = "A module for hash map like object with type level keys"; - license = stdenv.lib.licenses.mit; - }) {}; - "type-level-numbers" = callPackage - ({ mkDerivation, base, stdenv, template-haskell }: - mkDerivation { - pname = "type-level-numbers"; - version = "0.1.1.1"; - sha256 = "5b56ef5f6e0b6476b9aba46055c3919e67823cbc1b87ed8e6ed70113b1f2318a"; - libraryHaskellDepends = [ base template-haskell ]; - doHaddock = false; - doCheck = false; - description = "Type level numbers implemented using type families"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-of-html" = callPackage - ({ mkDerivation, base, bytestring, containers, double-conversion - , ghc-prim, stdenv, text - }: - mkDerivation { - pname = "type-of-html"; - version = "1.5.0.0"; - sha256 = "891aa1694017f96ebab4633cc240b2ce51352b42c4d033c8e8c73e0d2b2f402e"; - libraryHaskellDepends = [ - base bytestring containers double-conversion ghc-prim text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/knupfer/type-of-html"; - description = "High performance type driven html generation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-of-html-static" = callPackage - ({ mkDerivation, base, stdenv, template-haskell, type-of-html }: - mkDerivation { - pname = "type-of-html-static"; - version = "0.1.0.2"; - sha256 = "29b3d951eed5498e8011db25996660a5aa0895e1e25fc12da7522fdae74f6200"; - libraryHaskellDepends = [ base template-haskell type-of-html ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/knupfer/type-of-html-static"; - description = "Optimize static parts of type-of-html"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-operators" = callPackage - ({ mkDerivation, base, ghc-prim, stdenv }: - mkDerivation { - pname = "type-operators"; - version = "0.1.0.4"; - sha256 = "dbbcedf368c23c46abac04f157cb4f2c812099a4f75d606b24f1ac1116d40b74"; - libraryHaskellDepends = [ base ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Shou/type-operators#readme"; - description = "Various type-level operators"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "type-spec" = callPackage - ({ mkDerivation, base, pretty, stdenv }: - mkDerivation { - pname = "type-spec"; - version = "0.3.0.1"; - sha256 = "aecd1a319efc13eb42b73b489cf374f94bf126f19fdc28b2f5cd6f73dda3a241"; - libraryHaskellDepends = [ base pretty ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sheyll/type-spec#readme"; - description = "Type Level Specification by Example"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "typed-process" = callPackage - ({ mkDerivation, async, base, bytestring, process, stdenv, stm - , transformers - }: - mkDerivation { - pname = "typed-process"; - version = "0.2.4.0"; - sha256 = "997ff5a892c6f2834736a25cbc9e8936138a4a2f36093bebc292774db0f2bb0b"; - libraryHaskellDepends = [ - async base bytestring process stm transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://haskell-lang.org/library/typed-process"; - description = "Run external processes, with strong typing of streams"; - license = stdenv.lib.licenses.mit; - }) {}; - "typelits-witnesses" = callPackage - ({ mkDerivation, base, constraints, reflection, stdenv }: - mkDerivation { - pname = "typelits-witnesses"; - version = "0.3.0.3"; - sha256 = "4edd4aff3f49961a1eb87130c4d36c39f4cc81d411ff20100ef5f33fd74d191d"; - libraryHaskellDepends = [ base constraints reflection ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/typelits-witnesses"; - description = "Existential witnesses, singletons, and classes for operations on GHC TypeLits"; - license = stdenv.lib.licenses.mit; - }) {}; - "typenums" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "typenums"; - version = "0.1.2.1"; - sha256 = "c6b4e083e664ecea40be2555f24c2e8b322b4f32a4a434e6514fecd6d6d6991b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/adituv/typenums#readme"; - description = "Type level numbers using existing Nat functionality"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "typerep-map" = callPackage - ({ mkDerivation, base, containers, deepseq, ghc-prim, primitive - , stdenv, vector - }: - mkDerivation { - pname = "typerep-map"; - version = "0.3.1"; - sha256 = "e4784457e6a9f83fb86a2e6c89048886b1f43e02c7077727711b9d020f999ef9"; - revision = "2"; - editedCabalFile = "0zcvg2kr3kcnhxdndw6fcjdd1421ncglr34mc8d9sw1hjjcb5w38"; - libraryHaskellDepends = [ - base containers deepseq ghc-prim primitive vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kowainik/typerep-map"; - description = "Efficient implementation of a dependent map with types as keys"; - license = stdenv.lib.licenses.mit; - }) {}; - "tz" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, data-default - , deepseq, stdenv, template-haskell, time, tzdata, vector - }: - mkDerivation { - pname = "tz"; - version = "0.1.3.2"; - sha256 = "f0d066d0169f283b199193d8825aa56de6e3818cd85d8979791c0e7504bf654c"; - libraryHaskellDepends = [ - base binary bytestring containers data-default deepseq - template-haskell time tzdata vector - ]; - doHaddock = false; - doCheck = false; - preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo"; - homepage = "https://github.com/nilcons/haskell-tz"; - description = "Efficient time zone handling"; - license = stdenv.lib.licenses.asl20; - }) {}; - "tzdata" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, stdenv - , vector - }: - mkDerivation { - pname = "tzdata"; - version = "0.1.20181026.0"; - sha256 = "ee99daf34ed04513ec69d4d97b719f0f8adbc1a1a2b12b3f217898c59a0fa32c"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring containers deepseq vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nilcons/haskell-tzdata"; - description = "Time zone database (as files and as a module)"; - license = stdenv.lib.licenses.asl20; - }) {}; - "ua-parser" = callPackage - ({ mkDerivation, aeson, base, bytestring, data-default, file-embed - , pcre-light, stdenv, text, yaml - }: - mkDerivation { - pname = "ua-parser"; - version = "0.7.5.1"; - sha256 = "1fcc39a99b9ad7eb2ddb2194ea84def35860078c0344531e2715dc2b819e3424"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring data-default file-embed pcre-light text yaml - ]; - doHaddock = false; - doCheck = false; - description = "A library for parsing User-Agent strings, official Haskell port of ua-parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ucam-webauth" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, containers - , cryptonite, errors, http-api-data, http-types, microlens - , microlens-mtl, mtl, parser-combinators, pem, stdenv, text, time - , ucam-webauth-types, x509 - }: - mkDerivation { - pname = "ucam-webauth"; - version = "0.1.0.0"; - sha256 = "335920d87a8d8fa24bcba34c4cba0a7adc84199c3161757ae00d7bad54428992"; - revision = "3"; - editedCabalFile = "01j0296a60hpw0n5d50327hnqpkxwzz7pngxq8da5ram0q13cfzw"; - libraryHaskellDepends = [ - aeson attoparsec base bytestring containers cryptonite errors - http-api-data http-types microlens microlens-mtl mtl - parser-combinators pem text time ucam-webauth-types x509 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dbaynard/UcamWebauth#readme"; - description = "The Ucam-Webauth protocol, used by Raven"; - license = "(BSD-3-Clause OR Apache-2.0)"; - }) {}; - "ucam-webauth-types" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring - , case-insensitive, containers, deepseq, http-types, microlens - , microlens-mtl, mtl, stdenv, text, time, timerep - }: - mkDerivation { - pname = "ucam-webauth-types"; - version = "0.1.0.0"; - sha256 = "d1ca7f834078ca63d398c1c2498e8f89e9edfae16b3150937973e5daaa32064b"; - revision = "3"; - editedCabalFile = "1png0b60pfhx5gfwbmxxq42nfy9yj2zrcw8krq0vm45qgjw4gd8g"; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring case-insensitive containers - deepseq http-types microlens microlens-mtl mtl text time timerep - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dbaynard/UcamWebauth#readme"; - description = "Types for the Ucam-Webauth protocol, as used by Raven"; - license = "(BSD-3-Clause OR Apache-2.0)"; - }) {}; - "uglymemo" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "uglymemo"; - version = "0.1.0.1"; - sha256 = "fe89ef49c0cb15867c58815b050b33f17d394d4c48a9b7240a39780a5a79b847"; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - description = "A simple (but internally ugly) memoization function"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "unbound-generics" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, containers, contravariant - , deepseq, exceptions, mtl, profunctors, stdenv, template-haskell - , transformers, transformers-compat - }: - mkDerivation { - pname = "unbound-generics"; - version = "0.4.0"; - sha256 = "bd6aeda0921d540b3c4181805299ab34e0194389bd8617696d7fa9cc49d95511"; - libraryHaskellDepends = [ - ansi-wl-pprint base containers contravariant deepseq exceptions mtl - profunctors template-haskell transformers transformers-compat - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/lambdageek/unbound-generics"; - description = "Support for programming with names and binders using GHC Generics"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unbounded-delays" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "unbounded-delays"; - version = "0.1.1.0"; - sha256 = "8aa7f7d10a8d0073518804db76c3ef4c313359994ef175122341b0bce07329c7"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/basvandijk/unbounded-delays"; - description = "Unbounded thread delays and timeouts"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unboxed-ref" = callPackage - ({ mkDerivation, base, ghc-prim, primitive, stdenv }: - mkDerivation { - pname = "unboxed-ref"; - version = "0.4.0.0"; - sha256 = "64eba8d550035a3a90cf9179e52f79877b426f0a6337cc216fdef45fcbb8773f"; - libraryHaskellDepends = [ base ghc-prim primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/unboxed-ref"; - description = "Fast unboxed references for ST and IO monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uncertain" = callPackage - ({ mkDerivation, ad, base, base-compat, containers, free - , mwc-random, primitive, stdenv, transformers - }: - mkDerivation { - pname = "uncertain"; - version = "0.3.1.0"; - sha256 = "6f67855ed4799e0c3465dfaef062b637efc61fbea40ebc44ced163028a996ff2"; - libraryHaskellDepends = [ - ad base base-compat containers free mwc-random primitive - transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mstksg/uncertain"; - description = "Manipulating numbers with inherent experimental/measurement uncertainty"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unconstrained" = callPackage - ({ mkDerivation, stdenv }: - mkDerivation { - pname = "unconstrained"; - version = "0.1.0.2"; - sha256 = "d2717a66a0232ce454740f45c74645af5ef052e23ba81195ce6c3a06a10e010d"; - doHaddock = false; - doCheck = false; - description = "Null constraint"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unicode" = callPackage - ({ mkDerivation, base, containers, semigroups, stdenv }: - mkDerivation { - pname = "unicode"; - version = "0.0.1.1"; - sha256 = "6fdbaa2f45e191c4226b305b4f56a1c43149eb4e253b0a3ebf80ab77e9b5f8c1"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers semigroups ]; - doHaddock = false; - doCheck = false; - homepage = "http://hub.darcs.net/thielema/unicode/"; - description = "Construct and transform unicode characters"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unicode-show" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "unicode-show"; - version = "0.1.0.3"; - sha256 = "3f2e33277ce6e2e3d8644fd68d945a799ff86d0cbefee05cf3441c29a1769c21"; - revision = "1"; - editedCabalFile = "0sw9kn147kbgp0x9823hwiqn1yiyfxqkrchk34lsjfx2lq3igrzv"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/haskell-jp/unicode-show#readme"; - description = "print and show in unicode"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unicode-transforms" = callPackage - ({ mkDerivation, base, bitarray, bytestring, stdenv, text }: - mkDerivation { - pname = "unicode-transforms"; - version = "0.3.5"; - sha256 = "c9f7d138ab43ed2e11de5973b0bd771c8f5c14cc0d87d3fbd1c6980c176fa03e"; - libraryHaskellDepends = [ base bitarray bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/harendra-kumar/unicode-transforms"; - description = "Unicode normalization"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unification-fd" = callPackage - ({ mkDerivation, base, containers, logict, mtl, stdenv }: - mkDerivation { - pname = "unification-fd"; - version = "0.10.0.1"; - sha256 = "5bf46760e6db104c57f915322b32744f7604323281f5c7dd20185f905fb51996"; - libraryHaskellDepends = [ base containers logict mtl ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Simple generic unification algorithms"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "union" = callPackage - ({ mkDerivation, base, deepseq, hashable, profunctors, stdenv - , tagged, vinyl - }: - mkDerivation { - pname = "union"; - version = "0.1.2"; - sha256 = "63e9dc2901a7d857e278445ca2b03bb869ecb01264206a14319d073e39dd8ec4"; - revision = "2"; - editedCabalFile = "170dhg4z4jzi50nh4xx75r9k8zz5br7j2iqjjw2r1dx29ajqbcw9"; - libraryHaskellDepends = [ - base deepseq hashable profunctors tagged vinyl - ]; - doHaddock = false; - doCheck = false; - description = "Extensible type-safe unions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "union-find" = callPackage - ({ mkDerivation, base, containers, stdenv, transformers }: - mkDerivation { - pname = "union-find"; - version = "0.2"; - sha256 = "e6c2682bb8c06e8c43e360f45658d0eea17209cce84953e2a7d2f0240591f0ec"; - revision = "1"; - editedCabalFile = "13cwjh03n82sgshbk4fdlvhc0pb3v979sdcdrpvnpjdqmvcprs92"; - libraryHaskellDepends = [ base containers transformers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/nominolo/union-find"; - description = "Efficient union and equivalence testing of sets"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uniplate" = callPackage - ({ mkDerivation, base, containers, hashable, stdenv, syb - , unordered-containers - }: - mkDerivation { - pname = "uniplate"; - version = "1.6.12"; - sha256 = "fcc60bc6b3f6e925f611646db90e6db9f05286a9363405f844df1dc15572a8b7"; - libraryHaskellDepends = [ - base containers hashable syb unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://community.haskell.org/~ndm/uniplate/"; - description = "Help writing simple, concise and fast generic operations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uniprot-kb" = callPackage - ({ mkDerivation, attoparsec, base, stdenv, text }: - mkDerivation { - pname = "uniprot-kb"; - version = "0.1.2.0"; - sha256 = "d40c80522f9e70e6fe97234f362e503736ae9f520f1e10e9ab249a5cad750642"; - revision = "4"; - editedCabalFile = "1g4qds20lwsbn5hqrgbhb4yd5w5vx2gkw47mjvxr8z8nj20g2pii"; - libraryHaskellDepends = [ attoparsec base text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/biocad/uniprot-kb#readme"; - description = "UniProt-KB format parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uniq-deep" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv }: - mkDerivation { - pname = "uniq-deep"; - version = "1.1.1"; - sha256 = "c642d17af439700fc359ac3a3c35cc7ce79ab77e0f34fdc9a0a26aacb7df33cf"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ base bytestring containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ncaq/uniq-deep#readme"; - description = "uniq-deep"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "unique" = callPackage - ({ mkDerivation, base, ghc-prim, hashable, stdenv }: - mkDerivation { - pname = "unique"; - version = "0"; - sha256 = "e3fb171b7b1787683863934df0fc082fb47c0da6972bb1839c2ee8ceb64a0a90"; - revision = "1"; - editedCabalFile = "0pq3a5y8ddgd37x21vafwxpyi079ir7k9g96y99pygmxwibkg4v8"; - libraryHaskellDepends = [ base ghc-prim hashable ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/unique/"; - description = "Fully concurrent unique identifiers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unit-constraint" = callPackage - ({ mkDerivation, base, constraints, stdenv }: - mkDerivation { - pname = "unit-constraint"; - version = "0.0.0"; - sha256 = "446de8480016c9db75676445477b5ce1ff5c6d486d6708c55b06de7cbd845e59"; - libraryHaskellDepends = [ base constraints ]; - doHaddock = false; - doCheck = false; - description = "Extremely simple typeclass"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "universe-base" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "universe-base"; - version = "1.0.2.1"; - sha256 = "07c48350afacdc0b5569f72e3d6a27a8ff3c208b7a6f22d00e149a201798bb51"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dmwit/universe"; - description = "A class for finite and recursively enumerable types and some helper functions for enumerating them"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "universe-instances-base" = callPackage - ({ mkDerivation, base, containers, stdenv, universe-base }: - mkDerivation { - pname = "universe-instances-base"; - version = "1.0"; - sha256 = "a21150ee3bb71283522a573bf092c8d96b2e28a95336a95505aa4c2a067dd212"; - revision = "2"; - editedCabalFile = "0c9zxmifhy2qjvsikgm168n8k8ka8ia88ldy8qjqkz5pqknlr9sj"; - libraryHaskellDepends = [ base containers universe-base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dmwit/universe"; - description = "Universe instances for types from the base package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "universe-instances-trans" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers, universe-base - , universe-instances-base - }: - mkDerivation { - pname = "universe-instances-trans"; - version = "1.0.0.1"; - sha256 = "0d047cf1eb4af9f2052f44f487e7d2d44c86f51b54a3cc1fc5243ad816e8310e"; - revision = "1"; - editedCabalFile = "0dcwgbgmbkjwzbxlncpl1b5hgjrmkl73djknjkhbnh02pysbwv69"; - libraryHaskellDepends = [ - base mtl transformers universe-base universe-instances-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dmwit/universe"; - description = "Universe instances for types from the transformers and mtl packages"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "universe-reverse-instances" = callPackage - ({ mkDerivation, base, containers, stdenv, universe-instances-base - }: - mkDerivation { - pname = "universe-reverse-instances"; - version = "1.0"; - sha256 = "e9d41cbf26eabd77587fddf69493d7ad23028303d1c1d1d2ee1de1bf3d3e8d49"; - revision = "2"; - editedCabalFile = "0cpnsip1iakwkgnwnd21gwrc8qbifzpff6agjwm34jgkq9j646k8"; - libraryHaskellDepends = [ - base containers universe-instances-base - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/dmwit/universe"; - description = "instances of standard classes that are made possible by enumerations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "universum" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim - , hashable, microlens, microlens-mtl, mtl, safe-exceptions, stdenv - , stm, text, transformers, unordered-containers, utf8-string - , vector - }: - mkDerivation { - pname = "universum"; - version = "1.5.0"; - sha256 = "53d29c4de630320c4364d37ea26a150c40e8df7faf81f69bb94372314f883f9f"; - libraryHaskellDepends = [ - base bytestring containers deepseq ghc-prim hashable microlens - microlens-mtl mtl safe-exceptions stm text transformers - unordered-containers utf8-string vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/serokell/universum"; - description = "Custom prelude used in Serokell"; - license = stdenv.lib.licenses.mit; - }) {}; - "unix-bytestring" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "unix-bytestring"; - version = "0.3.7.3"; - sha256 = "a3ec273da411988b7d9eb7317f6d84ce47f4b7fd39bdc721acd5229e7cff808c"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~wren/"; - description = "Unix/Posix-specific functions for ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unix-compat" = callPackage - ({ mkDerivation, base, stdenv, unix }: - mkDerivation { - pname = "unix-compat"; - version = "0.5.1"; - sha256 = "a39d0c79dd906763770b80ba5b6c5cb710e954f894350e9917de0d73f3a19c52"; - libraryHaskellDepends = [ base unix ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jystic/unix-compat"; - description = "Portable POSIX-compatibility layer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unix-time" = callPackage - ({ mkDerivation, base, binary, bytestring, old-time, stdenv }: - mkDerivation { - pname = "unix-time"; - version = "0.4.5"; - sha256 = "fe7805c62ad682589567afeee265e6e230170c3941cdce479a2318d1c5088faf"; - libraryHaskellDepends = [ base binary bytestring old-time ]; - doHaddock = false; - doCheck = false; - description = "Unix time parser/formatter and utilities"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unliftio" = callPackage - ({ mkDerivation, async, base, deepseq, directory, filepath, process - , stdenv, stm, time, transformers, unix, unliftio-core - }: - mkDerivation { - pname = "unliftio"; - version = "0.2.10"; - sha256 = "141d6e858f3c340c881d9853a38076ca09306e45a02fffc36885b9ee11cf1b5c"; - libraryHaskellDepends = [ - async base deepseq directory filepath process stm time transformers - unix unliftio-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/unliftio/tree/master/unliftio#readme"; - description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)"; - license = stdenv.lib.licenses.mit; - }) {}; - "unliftio-core" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "unliftio-core"; - version = "0.1.2.0"; - sha256 = "24c38b3d610ca2642ed496d1de3d7b6b398ce0410aa0a15f3c7ce636ba8f7a78"; - revision = "2"; - editedCabalFile = "0jqrjjbgicx48wzcjxs1xmih48ay79rhmrz6081dldlfxynli6vz"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/unliftio/tree/master/unliftio-core#readme"; - description = "The MonadUnliftIO typeclass for unlifting monads to IO"; - license = stdenv.lib.licenses.mit; - }) {}; - "unlit" = callPackage - ({ mkDerivation, base, directory, stdenv, text }: - mkDerivation { - pname = "unlit"; - version = "0.4.0.0"; - sha256 = "489ecde4843f1911ebdaac3099241d703bb1161f3d386e2b5143f2fd6c355515"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base directory text ]; - executableHaskellDepends = [ base directory text ]; - doHaddock = false; - doCheck = false; - description = "Tool to convert literate code between styles or to code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unordered-containers" = callPackage - ({ mkDerivation, base, deepseq, hashable, stdenv }: - mkDerivation { - pname = "unordered-containers"; - version = "0.2.9.0"; - sha256 = "6730cb5c4a3e953e2c199d6425be08fd088ff0089a3e140d63226c052e318250"; - libraryHaskellDepends = [ base deepseq hashable ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tibbe/unordered-containers"; - description = "Efficient hashing-based container types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unordered-intmap" = callPackage - ({ mkDerivation, base, deepseq, primitive, stdenv }: - mkDerivation { - pname = "unordered-intmap"; - version = "0.1.1"; - sha256 = "d8faaf0c23ed143942ba7948616c73134c78e02aa4cf252605c73fb2412876ef"; - libraryHaskellDepends = [ base deepseq primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ethercrow/unordered-intmap"; - description = "A specialization of `HashMap Int v`"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "unsafe" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "unsafe"; - version = "0.0"; - sha256 = "df0a74ccf7b43956c1b5decd5580e235317d1f96a1bbd75e117fc21143ee8641"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.haskell.org/~thielema/unsafe/"; - description = "Unified interface to unsafe functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uri-bytestring" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, bytestring - , containers, stdenv, template-haskell, th-lift-instances - }: - mkDerivation { - pname = "uri-bytestring"; - version = "0.3.2.1"; - sha256 = "64bd16bed1eca66d844cbc9dfb90a7ffda5b24572066765cf61b3d8d28a1c1fc"; - libraryHaskellDepends = [ - attoparsec base blaze-builder bytestring containers - template-haskell th-lift-instances - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/Soostone/uri-bytestring"; - description = "Haskell URI parsing as ByteStrings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uri-bytestring-aeson" = callPackage - ({ mkDerivation, aeson, base, bytestring, stdenv, text - , uri-bytestring - }: - mkDerivation { - pname = "uri-bytestring-aeson"; - version = "0.1.0.7"; - sha256 = "7e90b5eb1c65a83461e127a27ce635f2f8279eb0d0cb14823831b6dfb503ef9b"; - libraryHaskellDepends = [ - aeson base bytestring text uri-bytestring - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/reactormonk/uri-bytestring-aeson"; - description = "Aeson instances for URI Bytestring"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uri-encode" = callPackage - ({ mkDerivation, base, bytestring, network-uri, stdenv, text - , utf8-string - }: - mkDerivation { - pname = "uri-encode"; - version = "1.5.0.5"; - sha256 = "e82b588aad63112d34f6bad6f1ef72489b9edebfe14f2f523dc1dabdcbe2b186"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring network-uri text utf8-string - ]; - doHaddock = false; - doCheck = false; - description = "Unicode aware uri-encoding"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uri-templater" = callPackage - ({ mkDerivation, ansi-wl-pprint, base, bytestring, charset - , containers, dlist, HTTP, mtl, parsers, stdenv, template-haskell - , text, time, trifecta, unordered-containers, uuid-types, vector - }: - mkDerivation { - pname = "uri-templater"; - version = "0.3.1.0"; - sha256 = "21e665ff2600b3de42b6ad01ef342b6165859dc6e66897f84a9075649f1c49c2"; - revision = "1"; - editedCabalFile = "0vl1nv40yzns9fnaz6h34x72vpfaaws8f0zm8qlr82333pxg2scw"; - libraryHaskellDepends = [ - ansi-wl-pprint base bytestring charset containers dlist HTTP mtl - parsers template-haskell text time trifecta unordered-containers - uuid-types vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/iand675/uri-templater"; - description = "Parsing & Quasiquoting for RFC 6570 URI Templates"; - license = stdenv.lib.licenses.mit; - }) {}; - "url" = callPackage - ({ mkDerivation, base, stdenv, utf8-string }: - mkDerivation { - pname = "url"; - version = "2.1.3"; - sha256 = "5af27e3f8c0a27e52d0dcb98ef06a0fdd01efe8bb21242c29432e1bc380a4f61"; - libraryHaskellDepends = [ base utf8-string ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.haskell.org/haskellwiki/Url"; - description = "A library for working with URLs"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "urlpath" = callPackage - ({ mkDerivation, attoparsec-uri, base, exceptions, mmorph - , monad-control, monad-control-aligned, monad-logger, mtl, path - , path-extra, resourcet, split, stdenv, strict, text, transformers - , transformers-base, vector - }: - mkDerivation { - pname = "urlpath"; - version = "9.0.1"; - sha256 = "2fe703a9c65fcfb12ba86bcffed22dca4c4a76fc78e1271816ae46b0f6a58e29"; - libraryHaskellDepends = [ - attoparsec-uri base exceptions mmorph monad-control - monad-control-aligned monad-logger mtl path path-extra resourcet - split strict text transformers transformers-base vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/urlpath#readme"; - description = "Painfully simple URL deployment"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "users" = callPackage - ({ mkDerivation, aeson, base, bcrypt, path-pieces, stdenv, text - , time - }: - mkDerivation { - pname = "users"; - version = "0.5.0.0"; - sha256 = "6761ac937b0d4c13c5158239a0c51199c394facb72cc734ada90a391f01e53d4"; - revision = "1"; - editedCabalFile = "1x26g7k6kmq2vng9y5qkz82z06rs322s2y8bs9y6r4vayvg07q9v"; - libraryHaskellDepends = [ - aeson base bcrypt path-pieces text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/users"; - description = "A library simplifying user management for web applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "users-postgresql-simple" = callPackage - ({ mkDerivation, base, bytestring, mtl, postgresql-simple, stdenv - , text, time, users, uuid - }: - mkDerivation { - pname = "users-postgresql-simple"; - version = "0.5.0.2"; - sha256 = "051b5d2c9c6cdeaacb6271a50ee4084cc1473de8d873825dc6d98023e96ec100"; - libraryHaskellDepends = [ - base bytestring mtl postgresql-simple text time users uuid - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/users"; - description = "A PostgreSQL backend for the users package"; - license = stdenv.lib.licenses.mit; - }) {}; - "users-test" = callPackage - ({ mkDerivation, base, hspec, stdenv, text, users }: - mkDerivation { - pname = "users-test"; - version = "0.5.0.1"; - sha256 = "f68549fa0cc002b16dc55f23a73b1a423aa2e64ab584c4041252a3bb6a5cac3e"; - libraryHaskellDepends = [ base hspec text users ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/agrafix/users"; - description = "Library to test backends for the users library"; - license = stdenv.lib.licenses.mit; - }) {}; - "utf8-light" = callPackage - ({ mkDerivation, base, bytestring, ghc-prim, stdenv }: - mkDerivation { - pname = "utf8-light"; - version = "0.4.2"; - sha256 = "184c428ce7896d702da46f6f107e6873ff100dbc1af40b49b5ce87317e619e67"; - libraryHaskellDepends = [ base bytestring ghc-prim ]; - doHaddock = false; - doCheck = false; - description = "Unicode"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "utf8-string" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "utf8-string"; - version = "1.0.1.1"; - sha256 = "fb0b9e3acbe0605bcd1c63e51f290a7bbbe6628dfa3294ff453e4235fbaef140"; - revision = "3"; - editedCabalFile = "02vhj5gykkqa2dyn7s6gn8is1b5fdn9xcqqvlls268g7cpv6rk38"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/glguy/utf8-string/"; - description = "Support for reading and writing UTF8 Strings"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "util" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "util"; - version = "0.1.11.0"; - sha256 = "8bc5a5f56cc94f17bf9460efb47e79f430c98adddaf646be22fe78980207119b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Utilities"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "utility-ht" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "utility-ht"; - version = "0.0.14"; - sha256 = "69c2eee1330839cdff40fad4f68f8c7ce41ae3b46a9e1d575f589fcdcf7ceba8"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Various small helper functions for Lists, Maybes, Tuples, Functions"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uuid" = callPackage - ({ mkDerivation, base, binary, bytestring, cryptohash-md5 - , cryptohash-sha1, entropy, network-info, random, stdenv, text - , time, uuid-types - }: - mkDerivation { - pname = "uuid"; - version = "1.3.13"; - sha256 = "dfac808a7026217d018b408eab18facc6a85c6183be308d4ac7877e80599b027"; - revision = "2"; - editedCabalFile = "0m185q62jkfb5jsv358nxbnrkv8y8hd0qqvgvh22wvc5g9ipz0r9"; - libraryHaskellDepends = [ - base binary bytestring cryptohash-md5 cryptohash-sha1 entropy - network-info random text time uuid-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hvr/uuid"; - description = "For creating, comparing, parsing and printing Universally Unique Identifiers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "uuid-types" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, hashable - , random, stdenv, text - }: - mkDerivation { - pname = "uuid-types"; - version = "1.0.3"; - sha256 = "9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd"; - revision = "2"; - editedCabalFile = "1lmlmng4lph57cljga3r9jy2axdls5mllsb2xzcwy2a34wgidarc"; - libraryHaskellDepends = [ - base binary bytestring deepseq hashable random text - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/aslatter/uuid"; - description = "Type definitions for Universally Unique Identifiers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "validation" = callPackage - ({ mkDerivation, base, bifunctors, deepseq, lens, semigroupoids - , semigroups, stdenv - }: - mkDerivation { - pname = "validation"; - version = "1"; - sha256 = "70455a22637983dbcf7a688ff80c05bb8bf2690d9e4523d6ca4ebcef77abb921"; - revision = "1"; - editedCabalFile = "1x1g4nannz81j1h64l1m3ancc96zc57d1bjhj1wk7bwn1xxbi5h3"; - libraryHaskellDepends = [ - base bifunctors deepseq lens semigroupoids semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/qfpl/validation"; - description = "A data-type like Either but with an accumulating Applicative"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "validity" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "validity"; - version = "0.9.0.0"; - sha256 = "78fc7728861013f828f389c3fa5ead5ce949f4450e599c4b4ceeec44007fa0e6"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity typeclass"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-aeson" = callPackage - ({ mkDerivation, aeson, base, stdenv, validity, validity-scientific - , validity-text, validity-unordered-containers, validity-vector - }: - mkDerivation { - pname = "validity-aeson"; - version = "0.2.0.2"; - sha256 = "fac03d29cf3d6f72c288111b68feb3c656574a1ac616b49f40426a9daf0e1d04"; - libraryHaskellDepends = [ - aeson base validity validity-scientific validity-text - validity-unordered-containers validity-vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for aeson"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-bytestring" = callPackage - ({ mkDerivation, base, bytestring, stdenv, validity }: - mkDerivation { - pname = "validity-bytestring"; - version = "0.4.0.0"; - sha256 = "4c86f016d2ed9721e00a85a349c5df5a28ae037787eea01731b76851b310c77d"; - libraryHaskellDepends = [ base bytestring validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for bytestring"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-containers" = callPackage - ({ mkDerivation, base, containers, stdenv, validity }: - mkDerivation { - pname = "validity-containers"; - version = "0.3.1.0"; - sha256 = "39096c06200f3ce670c89d557def5dbdd0ba3f608bdc7587b057c2344b3f20b2"; - libraryHaskellDepends = [ base containers validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for containers"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-path" = callPackage - ({ mkDerivation, base, filepath, path, stdenv, validity }: - mkDerivation { - pname = "validity-path"; - version = "0.3.0.2"; - sha256 = "979cda9b9fce257e4793c53e869076cbb41b9516f6a7cef2ea3edca84dc5e146"; - libraryHaskellDepends = [ base filepath path validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for Path"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-scientific" = callPackage - ({ mkDerivation, base, scientific, stdenv, validity }: - mkDerivation { - pname = "validity-scientific"; - version = "0.2.0.2"; - sha256 = "8132aa43307c7dcb29718b5c1ef7c2b8e0d1fb6f650c0b117b99397c34da8dc1"; - libraryHaskellDepends = [ base scientific validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for scientific"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-text" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text, validity }: - mkDerivation { - pname = "validity-text"; - version = "0.3.1.0"; - sha256 = "edd3f26e97ea07593c3995002a7ef7670f0306bfc31213f6b49ffe1a6fbc4264"; - libraryHaskellDepends = [ base bytestring text validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for text"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-time" = callPackage - ({ mkDerivation, base, stdenv, time, validity }: - mkDerivation { - pname = "validity-time"; - version = "0.2.0.2"; - sha256 = "51b24adef82f272a1060d5d0dffaa2eb1e54c0016c7dcd75631e5916df45e265"; - libraryHaskellDepends = [ base time validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for time"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-unordered-containers" = callPackage - ({ mkDerivation, base, hashable, stdenv, unordered-containers - , validity - }: - mkDerivation { - pname = "validity-unordered-containers"; - version = "0.2.0.2"; - sha256 = "50547e85c80e42a90143b816b41389cca1e0fccacd8d620a09142cf65b36181b"; - libraryHaskellDepends = [ - base hashable unordered-containers validity - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for unordered-containers"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-uuid" = callPackage - ({ mkDerivation, base, stdenv, uuid, validity }: - mkDerivation { - pname = "validity-uuid"; - version = "0.1.0.2"; - sha256 = "95dc31e68630951d6971ad5b425e88d492c7400ccd4937a42252d464d89c564c"; - libraryHaskellDepends = [ base uuid validity ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for uuid"; - license = stdenv.lib.licenses.mit; - }) {}; - "validity-vector" = callPackage - ({ mkDerivation, base, hashable, stdenv, validity, vector }: - mkDerivation { - pname = "validity-vector"; - version = "0.2.0.2"; - sha256 = "a7cc60182c9c5c25fa64d1073c1da61e79686fea6d2b2a9cf55690e61b83ce78"; - libraryHaskellDepends = [ base hashable validity vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/NorfairKing/validity#readme"; - description = "Validity instances for vector"; - license = stdenv.lib.licenses.mit; - }) {}; - "valor" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "valor"; - version = "0.1.0.0"; - sha256 = "04ce514f40ef954cdd4b45acb6b2bf6228a30e905fdce0b671df3bf789d6bae6"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/reygoch/valor#readme"; - description = "Simple general structured validation library"; - license = stdenv.lib.licenses.mit; - }) {}; - "vault" = callPackage - ({ mkDerivation, base, containers, hashable, semigroups, stdenv - , unordered-containers - }: - mkDerivation { - pname = "vault"; - version = "0.3.1.2"; - sha256 = "9e00e52ec0b054cfb9b1e44d8ce2eefb499cc1dcd4bcdd0d434b370d635e551c"; - libraryHaskellDepends = [ - base containers hashable semigroups unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/HeinrichApfelmus/vault"; - description = "a persistent store for values of arbitrary types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vec" = callPackage - ({ mkDerivation, adjunctions, base, base-compat, deepseq - , distributive, fin, hashable, lens, semigroupoids, stdenv - }: - mkDerivation { - pname = "vec"; - version = "0.1"; - sha256 = "be54ef0a53ff4f27a7a0f14b249d1fd47ede63c085d4c68962db24bf4ba3e054"; - revision = "3"; - editedCabalFile = "093q5qlhlia12ckhvax322lyy3sb554pg46ghabvsvx8znixw2hh"; - libraryHaskellDepends = [ - adjunctions base base-compat deepseq distributive fin hashable lens - semigroupoids - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phadej/vec"; - description = "Vec: length-indexed (sized) list"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector" = callPackage - ({ mkDerivation, base, deepseq, ghc-prim, primitive, stdenv }: - mkDerivation { - pname = "vector"; - version = "0.12.0.2"; - sha256 = "52e89dacaff10bedb8653181963cae928f9674a099bb706713dae83994bbc0f3"; - libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/vector"; - description = "Efficient Arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-algorithms" = callPackage - ({ mkDerivation, base, bytestring, primitive, stdenv, vector }: - mkDerivation { - pname = "vector-algorithms"; - version = "0.8.0.1"; - sha256 = "15bcde786dcf03861946885e030d3dbe3b683e1a6fc12d7317e115084f4637fe"; - revision = "1"; - editedCabalFile = "18jm5zjzbphyzgc1hjqay04c6j4h7bq2bs8rzngnxk2q8gv658vz"; - libraryHaskellDepends = [ base bytestring primitive vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/erikd/vector-algorithms/"; - description = "Efficient algorithms for vector arrays"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-binary-instances" = callPackage - ({ mkDerivation, base, binary, stdenv, vector }: - mkDerivation { - pname = "vector-binary-instances"; - version = "0.2.5.1"; - sha256 = "3945b99f8efd319c837700b7cef5163ee23e656e89227357e0b7a41d2a66c512"; - libraryHaskellDepends = [ base binary vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/bos/vector-binary-instances"; - description = "Instances of Data.Binary for vector"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-buffer" = callPackage - ({ mkDerivation, base, deepseq, stdenv, vector }: - mkDerivation { - pname = "vector-buffer"; - version = "0.4.1"; - sha256 = "9b5a9b57488267a765d9e7a8f2aa387ee0d3153989c169952da1e1229a60fd9b"; - libraryHaskellDepends = [ base deepseq vector ]; - doHaddock = false; - doCheck = false; - description = "A buffer compatible with Data.Vector.*"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-builder" = callPackage - ({ mkDerivation, base, base-prelude, semigroups, stdenv, vector }: - mkDerivation { - pname = "vector-builder"; - version = "0.3.7.2"; - sha256 = "aeb191a7504162c5b05b8265a02bc1c721f934367427bef3859433ecc288b911"; - libraryHaskellDepends = [ base base-prelude semigroups vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nikita-volkov/vector-builder"; - description = "Vector builder"; - license = stdenv.lib.licenses.mit; - }) {}; - "vector-bytes-instances" = callPackage - ({ mkDerivation, base, bytes, stdenv, vector }: - mkDerivation { - pname = "vector-bytes-instances"; - version = "0.1.1"; - sha256 = "7666e6ff4553a97727625178a6902f8d23d8e94af5f4701b2d1a1394eaeb8c44"; - libraryHaskellDepends = [ base bytes vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0001/vector-bytes-instances"; - description = "Serial (from the bytes package) for Vector (from the vector package)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-instances" = callPackage - ({ mkDerivation, base, comonad, hashable, keys, pointed - , semigroupoids, semigroups, stdenv, vector - }: - mkDerivation { - pname = "vector-instances"; - version = "3.4"; - sha256 = "1b0246ef0cf8372d61d5c7840d857f49299af2304b5107510377255ed4dd5381"; - libraryHaskellDepends = [ - base comonad hashable keys pointed semigroupoids semigroups vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/vector-instances"; - description = "Orphan Instances for 'Data.Vector'"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-mmap" = callPackage - ({ mkDerivation, base, mmap, primitive, stdenv, vector }: - mkDerivation { - pname = "vector-mmap"; - version = "0.0.3"; - sha256 = "e539ddb02190ab5d04ba2605ac24317360919f99c332af470aafd0b78d9a868a"; - libraryHaskellDepends = [ base mmap primitive vector ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/pumpkin/vector-mmap"; - description = "Memory map immutable and mutable vectors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-sized" = callPackage - ({ mkDerivation, adjunctions, base, comonad, deepseq, distributive - , finite-typelits, hashable, indexed-list-literals, primitive - , stdenv, vector - }: - mkDerivation { - pname = "vector-sized"; - version = "1.2.0.0"; - sha256 = "a4c06f26a2f72d51409f24d7876d9753c03ccb1ab92c84ac29cfab0dc61a2413"; - libraryHaskellDepends = [ - adjunctions base comonad deepseq distributive finite-typelits - hashable indexed-list-literals primitive vector - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/expipiplus1/vector-sized#readme"; - description = "Size tagged vectors"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-space" = callPackage - ({ mkDerivation, base, Boolean, MemoTrie, NumInstances, stdenv }: - mkDerivation { - pname = "vector-space"; - version = "0.15"; - sha256 = "6849b443dbb246fa39ac8dc645cc364ce63bd91fb0761ad759eea10eeca25c0f"; - revision = "1"; - editedCabalFile = "19549mrhg3x0d1ancrxyvrskd6p4x11iprnv0b0d84q7sc40fa8w"; - libraryHaskellDepends = [ base Boolean MemoTrie NumInstances ]; - doHaddock = false; - doCheck = false; - description = "Vector & affine spaces, linear maps, and derivatives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vector-split" = callPackage - ({ mkDerivation, base, stdenv, vector }: - mkDerivation { - pname = "vector-split"; - version = "1.0.0.2"; - sha256 = "b4aeeea50fec52e594b2d3c05aca3a112b2095d1e5238ced065cecf2d89bbd16"; - libraryHaskellDepends = [ base vector ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fhaust/vector-split"; - description = "Combinator library for splitting vectors"; - license = stdenv.lib.licenses.mit; - }) {}; - "vector-th-unbox" = callPackage - ({ mkDerivation, base, stdenv, template-haskell, vector }: - mkDerivation { - pname = "vector-th-unbox"; - version = "0.2.1.6"; - sha256 = "be87d4a6f1005ee2d0de6adf521e05c9e83c441568a8a8b60c79efe24ae90235"; - libraryHaskellDepends = [ base template-haskell vector ]; - doHaddock = false; - doCheck = false; - description = "Deriver for Data.Vector.Unboxed using Template Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "verbosity" = callPackage - ({ mkDerivation, base, binary, data-default-class, deepseq, stdenv - }: - mkDerivation { - pname = "verbosity"; - version = "0.2.3.0"; - sha256 = "8b4ce5ab48aab17b6752dec4efba259964b7084ce10330198ae3ff7ea090f264"; - libraryHaskellDepends = [ base binary data-default-class deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/trskop/verbosity"; - description = "Simple enum that encodes application verbosity"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "versions" = callPackage - ({ mkDerivation, base, deepseq, hashable, megaparsec, stdenv, text - }: - mkDerivation { - pname = "versions"; - version = "3.5.0"; - sha256 = "9c707e3e48fdf32188641243e6a7d37dd1bfce57e076cf4b0dd3a3031558cdbc"; - revision = "1"; - editedCabalFile = "13gb4n3bdkbgf199q3px7ihaqycbx76cb8isrs3qn16n67mx5b2f"; - libraryHaskellDepends = [ base deepseq hashable megaparsec text ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/fosskers/versions"; - description = "Types and parsers for software version numbers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vinyl" = callPackage - ({ mkDerivation, array, base, ghc-prim, stdenv }: - mkDerivation { - pname = "vinyl"; - version = "0.10.0.1"; - sha256 = "e445737adab5a729b4424aedf36dce8c724bb7d45aaa49f8f74342ff18205df4"; - libraryHaskellDepends = [ array base ghc-prim ]; - doHaddock = false; - doCheck = false; - description = "Extensible Records"; - license = stdenv.lib.licenses.mit; - }) {}; - "vivid" = callPackage - ({ mkDerivation, base, binary, bytestring, containers, directory - , filepath, hashable, MonadRandom, mtl, network, process, random - , random-shuffle, split, stdenv, stm, time, transformers - , utf8-string, vivid-osc, vivid-supercollider - }: - mkDerivation { - pname = "vivid"; - version = "0.4.2.3"; - sha256 = "11c0ae576e0cd38894c5ad052c90b7bce33e81abdc6a691c0e1dbb272d4b952b"; - libraryHaskellDepends = [ - base binary bytestring containers directory filepath hashable - MonadRandom mtl network process random random-shuffle split stm - time transformers utf8-string vivid-osc vivid-supercollider - ]; - doHaddock = false; - doCheck = false; - description = "Sound synthesis with SuperCollider"; - license = "GPL"; - }) {}; - "vivid-osc" = callPackage - ({ mkDerivation, base, bytestring, cereal, stdenv, time }: - mkDerivation { - pname = "vivid-osc"; - version = "0.5.0.0"; - sha256 = "46fb67915fdfa37db0ff620b1529caf77a19d41a71007aae2b834facc2243510"; - libraryHaskellDepends = [ base bytestring cereal time ]; - doHaddock = false; - doCheck = false; - description = "Open Sound Control encode/decode"; - license = "GPL"; - }) {}; - "vivid-supercollider" = callPackage - ({ mkDerivation, base, binary, bytestring, cereal, split, stdenv - , utf8-string, vivid-osc - }: - mkDerivation { - pname = "vivid-supercollider"; - version = "0.4.1.2"; - sha256 = "d2a40e8f4fff13200e6ead4d6397fe31095d990f75616bf7f89dbf3fa81821cb"; - libraryHaskellDepends = [ - base binary bytestring cereal split utf8-string vivid-osc - ]; - doHaddock = false; - doCheck = false; - description = "Implementation of SuperCollider server specifications"; - license = "GPL"; - }) {}; - "void" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "void"; - version = "0.7.2"; - sha256 = "d3fffe66a03e4b53db1e459edf75ad8402385a817cae415d857ec0b03ce0cf2b"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/void"; - description = "A Haskell 98 logically uninhabited data type"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "vty" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, containers - , deepseq, directory, filepath, hashable, microlens, microlens-mtl - , microlens-th, mtl, parallel, parsec, stdenv, stm, terminfo, text - , transformers, unix, utf8-string, vector - }: - mkDerivation { - pname = "vty"; - version = "5.25.1"; - sha256 = "3cab792e32c59647c2bdb2785c9c9a94bdb84fc85499bb1ab488999e1c9525f4"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-builder bytestring containers deepseq directory filepath - hashable microlens microlens-mtl microlens-th mtl parallel parsec - stm terminfo text transformers unix utf8-string vector - ]; - executableHaskellDepends = [ - base containers microlens microlens-mtl mtl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/jtdaugherty/vty"; - description = "A simple terminal UI library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai" = callPackage - ({ mkDerivation, base, bytestring, http-types, network, stdenv - , text, transformers, vault - }: - mkDerivation { - pname = "wai"; - version = "3.2.2"; - sha256 = "2a64d54901d7bcc3c59dd94dcc99b5dcbbb95b4ec9176e677877888526c17fe1"; - libraryHaskellDepends = [ - base bytestring http-types network text transformers vault - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/wai"; - description = "Web Application Interface"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-app-static" = callPackage - ({ mkDerivation, base, blaze-html, blaze-markup, bytestring - , containers, cryptonite, directory, file-embed, filepath - , http-date, http-types, memory, mime-types, old-locale - , optparse-applicative, stdenv, template-haskell, text, time - , transformers, unix-compat, unordered-containers, wai, wai-extra - , warp, zlib - }: - mkDerivation { - pname = "wai-app-static"; - version = "3.1.6.2"; - sha256 = "d0b0a566be61ef4c8f800922a71dbc4de64287f8f73782b1461cd5d294c1dc3e"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-html blaze-markup bytestring containers cryptonite - directory file-embed filepath http-date http-types memory - mime-types old-locale optparse-applicative template-haskell text - time transformers unix-compat unordered-containers wai wai-extra - warp zlib - ]; - executableHaskellDepends = [ - base bytestring containers directory mime-types text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/web-application-interface"; - description = "WAI application for static serving"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-cli" = callPackage - ({ mkDerivation, ansi-terminal, base, http-types, monads-tf - , network, options, socket-activation, stdenv, stm - , streaming-commons, unix, wai, wai-extra, warp, warp-tls - }: - mkDerivation { - pname = "wai-cli"; - version = "0.1.1"; - sha256 = "0643ebd8cbd4fcedd2076450b635d020aa2101b26e80f69ade10acd2c3252862"; - libraryHaskellDepends = [ - ansi-terminal base http-types monads-tf network options - socket-activation stm streaming-commons unix wai wai-extra warp - warp-tls - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/myfreeweb/wai-cli"; - description = "Command line runner for Wai apps (using Warp) with TLS, CGI, socket activation & graceful shutdown"; - license = stdenv.lib.licenses.publicDomain; - }) {}; - "wai-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, http-types, stdenv - , transformers, wai - }: - mkDerivation { - pname = "wai-conduit"; - version = "3.0.0.4"; - sha256 = "2790093bd52892b8087c295044573c720773144f4061ccc72d6d6a617320d61f"; - libraryHaskellDepends = [ - base bytestring conduit http-types transformers wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/wai"; - description = "conduit wrappers for WAI"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-cors" = callPackage - ({ mkDerivation, attoparsec, base, base-unicode-symbols, bytestring - , case-insensitive, http-types, mtl, stdenv, transformers, wai - }: - mkDerivation { - pname = "wai-cors"; - version = "0.2.6"; - sha256 = "cac61023184404ba5abf8d3739e51c4862561ba56f829f6f5e69dd64216aa986"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - attoparsec base base-unicode-symbols bytestring case-insensitive - http-types mtl transformers wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/larskuhtz/wai-cors"; - description = "CORS for WAI"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-eventsource" = callPackage - ({ mkDerivation, stdenv, wai }: - mkDerivation { - pname = "wai-eventsource"; - version = "3.0.0"; - sha256 = "785005f23bf9bf4e1dfaae0705472c0e3ea4c3843ff6a8625db8d1e327a6bfc0"; - libraryHaskellDepends = [ wai ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/book/web-application-interface"; - description = "WAI support for server-sent events (deprecated)"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-extra" = callPackage - ({ mkDerivation, aeson, ansi-terminal, base, base64-bytestring - , bytestring, case-insensitive, containers, cookie - , data-default-class, deepseq, directory, fast-logger, http-types - , iproute, network, old-locale, resourcet, stdenv - , streaming-commons, text, time, transformers, unix, unix-compat - , vault, void, wai, wai-logger, word8, zlib - }: - mkDerivation { - pname = "wai-extra"; - version = "3.0.25"; - sha256 = "def0216fdad1da6015fc076c1405a65ffae6fc8a673fd79e79587acb630d5f31"; - revision = "2"; - editedCabalFile = "0gdg5rfxqfgwj922lxz7ya637nj1qhh1imskiaf453hdpj619aaf"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson ansi-terminal base base64-bytestring bytestring - case-insensitive containers cookie data-default-class deepseq - directory fast-logger http-types iproute network old-locale - resourcet streaming-commons text time transformers unix unix-compat - vault void wai wai-logger word8 zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/wai"; - description = "Provides some basic WAI handlers and middleware"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-handler-launch" = callPackage - ({ mkDerivation, async, base, bytestring, http-types, process - , stdenv, streaming-commons, transformers, wai, warp - }: - mkDerivation { - pname = "wai-handler-launch"; - version = "3.0.2.4"; - sha256 = "0e9d9c61310890380dc87807ba1285bc1ab185914be6367ea4bb0a05d3df2900"; - libraryHaskellDepends = [ - async base bytestring http-types process streaming-commons - transformers wai warp - ]; - doHaddock = false; - doCheck = false; - description = "Launch a web app in the default browser"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-logger" = callPackage - ({ mkDerivation, base, byteorder, bytestring, Cabal, cabal-doctest - , fast-logger, http-types, network, stdenv, wai - }: - mkDerivation { - pname = "wai-logger"; - version = "2.3.4"; - sha256 = "93fe191310c4054ccf5ad8c431e9075646b0d2b7405faf697640461c72789600"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base byteorder bytestring fast-logger http-types network wai - ]; - doHaddock = false; - doCheck = false; - description = "A logging system for WAI"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-middleware-auth" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, binary - , blaze-builder, blaze-html, bytestring, case-insensitive, cereal - , clientsession, cookie, exceptions, hoauth2, http-client - , http-client-tls, http-conduit, http-reverse-proxy, http-types - , optparse-simple, regex-posix, safe-exceptions, shakespeare - , stdenv, text, unix-compat, unordered-containers, uri-bytestring - , vault, wai, wai-app-static, wai-extra, warp, yaml - }: - mkDerivation { - pname = "wai-middleware-auth"; - version = "0.1.2.1"; - sha256 = "4199220758290dd22136fd9f53a8e0a856c217c0b8b26eb6dbf41d2ad81e7d74"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base base64-bytestring binary blaze-builder blaze-html - bytestring case-insensitive cereal clientsession cookie exceptions - hoauth2 http-client http-client-tls http-conduit http-reverse-proxy - http-types regex-posix safe-exceptions shakespeare text unix-compat - unordered-containers uri-bytestring vault wai wai-app-static - wai-extra yaml - ]; - executableHaskellDepends = [ - base bytestring cereal clientsession optparse-simple warp - ]; - doHaddock = false; - doCheck = false; - description = "Authentication middleware that secures WAI application"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-middleware-caching" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, http-types - , stdenv, wai - }: - mkDerivation { - pname = "wai-middleware-caching"; - version = "0.1.0.2"; - sha256 = "15b5fb9c92599d5ecb6a70ba40bad024488f9eca7139abe23b961ba21602d78d"; - libraryHaskellDepends = [ - base blaze-builder bytestring http-types wai - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yogsototh/wai-middleware-caching/tree/master/wai-middleware-caching#readme"; - description = "WAI Middleware to cache things"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-middleware-crowd" = callPackage - ({ mkDerivation, authenticate, base, base64-bytestring, binary - , blaze-builder, bytestring, case-insensitive, clientsession - , containers, cookie, gitrev, http-client, http-client-tls - , http-reverse-proxy, http-types, optparse-applicative, resourcet - , stdenv, template-haskell, text, time, transformers, unix-compat - , vault, wai, wai-app-static, wai-extra, warp - }: - mkDerivation { - pname = "wai-middleware-crowd"; - version = "0.1.4.2"; - sha256 = "1136b61a6ce7729093664b63a4ab70de73e356d34b0c7a8114b639b18626b058"; - revision = "1"; - editedCabalFile = "0qvh92p9s80kmzg5w7rga54kfqbwcrkkv5p03pd92px04j2h5lbm"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - authenticate base base64-bytestring binary blaze-builder bytestring - case-insensitive clientsession containers cookie http-client - http-client-tls http-types resourcet text time unix-compat vault - wai - ]; - executableHaskellDepends = [ - base bytestring clientsession gitrev http-client http-client-tls - http-reverse-proxy http-types optparse-applicative template-haskell - text transformers wai wai-app-static wai-extra warp - ]; - doHaddock = false; - doCheck = false; - description = "Middleware and utilities for using Atlassian Crowd authentication"; - license = stdenv.lib.licenses.mit; - }) {}; - "wai-middleware-static" = callPackage - ({ mkDerivation, base, bytestring, containers, cryptonite - , directory, expiring-cache-map, filepath, http-types, memory - , mime-types, mtl, old-locale, semigroups, stdenv, text, time, wai - }: - mkDerivation { - pname = "wai-middleware-static"; - version = "0.8.2"; - sha256 = "0be4e9fd5252d526334e4e5885a2a75269aaaad560282b5c383c49e4d855befc"; - revision = "2"; - editedCabalFile = "17vq38dh7x1kqzfwla1s0rldd5hzm5mcrx49sjlzy8b66gd2n3ac"; - libraryHaskellDepends = [ - base bytestring containers cryptonite directory expiring-cache-map - filepath http-types memory mime-types mtl old-locale semigroups - text time wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/scotty-web/wai-middleware-static"; - description = "WAI middleware that serves requests to static files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-middleware-throttle" = callPackage - ({ mkDerivation, base, bytestring, bytestring-builder, cache, clock - , containers, hashable, http-types, mtl, network, safe-exceptions - , stdenv, stm, text, token-bucket, transformers, wai - }: - mkDerivation { - pname = "wai-middleware-throttle"; - version = "0.3.0.0"; - sha256 = "7befb5ed84c06515dcc45891e0d8ef4f051e8d5f4411c0b0f85015071876109b"; - libraryHaskellDepends = [ - base bytestring bytestring-builder cache clock containers hashable - http-types mtl network safe-exceptions stm text token-bucket - transformers wai - ]; - doHaddock = false; - doCheck = false; - description = "WAI Middleware for Request Throttling"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-middleware-travisci" = callPackage - ({ mkDerivation, aeson, base, base64-bytestring, bytestring - , cryptonite, http-types, stdenv, text, transformers, vault, wai - }: - mkDerivation { - pname = "wai-middleware-travisci"; - version = "0.1.0"; - sha256 = "bbc9f2fea4c0ee3d9a73fd13dd1a2a7ef85fc294bd311ed519c1e41a1fada828"; - revision = "1"; - editedCabalFile = "0fd99j9lyb562p3rsdb8d7swg31bwahzhgjm6afijc5f6i5awcw3"; - libraryHaskellDepends = [ - aeson base base64-bytestring bytestring cryptonite http-types text - transformers vault wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mitchellwrosen/wai-middleware-travisci"; - description = "WAI middleware for authenticating webhook payloads from Travis CI"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-predicates" = callPackage - ({ mkDerivation, attoparsec, base, bytestring - , bytestring-conversion, case-insensitive, cookie, http-types - , singletons, stdenv, text, transformers, vault, vector, wai - }: - mkDerivation { - pname = "wai-predicates"; - version = "0.10.0"; - sha256 = "b7b3f6d147bbbf7a959c84235d0533763eda8fc4973b42f131fd47fe8ffbd7c2"; - libraryHaskellDepends = [ - attoparsec base bytestring bytestring-conversion case-insensitive - cookie http-types singletons text transformers vault vector wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/twittner/wai-predicates/"; - description = "WAI request predicates"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "wai-session" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring - , bytestring-builder, containers, cookie, entropy, http-types - , StateVar, stdenv, time, transformers, vault, wai - }: - mkDerivation { - pname = "wai-session"; - version = "0.3.3"; - sha256 = "d2392702446b9af8d45b83b2ce1bbb9937024c2d65fcf943ab51a7d52c7e0053"; - libraryHaskellDepends = [ - base blaze-builder bytestring bytestring-builder containers cookie - entropy http-types StateVar time transformers vault wai - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/singpolyma/wai-session"; - description = "Flexible session middleware for WAI"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "wai-session-postgresql" = callPackage - ({ mkDerivation, base, bytestring, cereal, cookie, data-default - , entropy, postgresql-simple, resource-pool, stdenv, text, time - , transformers, wai, wai-session - }: - mkDerivation { - pname = "wai-session-postgresql"; - version = "0.2.1.2"; - sha256 = "39d570dd99b4dc38e7803b60b4da4bc804244ed83b3fb250a6e2191a1419ac83"; - libraryHaskellDepends = [ - base bytestring cereal cookie data-default entropy - postgresql-simple resource-pool text time transformers wai - wai-session - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hce/postgresql-session#readme"; - description = "PostgreSQL backed Wai session store"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-slack-middleware" = callPackage - ({ mkDerivation, aeson, base, http-client, http-types, stdenv, wai - }: - mkDerivation { - pname = "wai-slack-middleware"; - version = "0.2.0"; - sha256 = "d14482f43147e16f05c7282f5b478e76a803dc7398d73dbf6cd2d9be83695750"; - libraryHaskellDepends = [ aeson base http-client http-types wai ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/wai-slack-middleware#readme"; - description = "A Slack middleware for WAI"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-transformers" = callPackage - ({ mkDerivation, base, exceptions, extractable-singleton - , monad-control-aligned, stdenv, transformers, wai, wai-websockets - , websockets - }: - mkDerivation { - pname = "wai-transformers"; - version = "0.1.0"; - sha256 = "17a330c80bad8a95add5d6efb0a12c774c197a2d19f83e6b9dc08ab73d8c8592"; - libraryHaskellDepends = [ - base exceptions extractable-singleton monad-control-aligned - transformers wai wai-websockets websockets - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/wai-transformers#readme"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wai-websockets" = callPackage - ({ mkDerivation, base, bytestring, case-insensitive, file-embed - , http-types, network, stdenv, text, transformers, wai - , wai-app-static, warp, websockets - }: - mkDerivation { - pname = "wai-websockets"; - version = "3.0.1.2"; - sha256 = "917cceb08f296d7dc6b6cafb66133ae53888b2c98b8fb2a2d7fa629d75ab5d2c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring case-insensitive http-types network transformers - wai websockets - ]; - executableHaskellDepends = [ - base bytestring case-insensitive file-embed http-types network text - transformers wai wai-app-static warp websockets - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/wai"; - description = "Provide a bridge between WAI and the websockets package"; - license = stdenv.lib.licenses.mit; - }) {}; - "warp" = callPackage - ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked - , bytestring, case-insensitive, containers, ghc-prim, hashable - , http-date, http-types, http2, iproute, network, simple-sendfile - , stdenv, stm, streaming-commons, text, unix, unix-compat, vault - , wai, word8 - }: - mkDerivation { - pname = "warp"; - version = "3.2.26"; - sha256 = "4ca338568a3b867e36d6f01255bf562429f25d8f1373e79122881bcd461803e9"; - libraryHaskellDepends = [ - array async auto-update base bsb-http-chunked bytestring - case-insensitive containers ghc-prim hashable http-date http-types - http2 iproute network simple-sendfile stm streaming-commons text - unix unix-compat vault wai word8 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/wai"; - description = "A fast, light-weight web server for WAI applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "warp-tls" = callPackage - ({ mkDerivation, base, bytestring, cryptonite, data-default-class - , network, stdenv, streaming-commons, tls, tls-session-manager, wai - , warp - }: - mkDerivation { - pname = "warp-tls"; - version = "3.2.4.3"; - sha256 = "84cd511e32019ba5bef07b0e8a3550b2da06d534bf3df1673d14a5ec4a12f29d"; - libraryHaskellDepends = [ - base bytestring cryptonite data-default-class network - streaming-commons tls tls-session-manager wai warp - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/yesodweb/wai"; - description = "HTTP over TLS support for Warp via the TLS package"; - license = stdenv.lib.licenses.mit; - }) {}; - "warp-tls-uid" = callPackage - ({ mkDerivation, base, bytestring, network, stdenv - , streaming-commons, unix, wai, warp, warp-tls - }: - mkDerivation { - pname = "warp-tls-uid"; - version = "0.2.0.5"; - sha256 = "b856932108364220abbba3cdebc86740a9b7436684f39936c6dda6a8d6ed73ac"; - libraryHaskellDepends = [ - base bytestring network streaming-commons unix wai warp warp-tls - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/YoshikuniJujo/warp-tls-uid#readme"; - description = "set group and user id before running server"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wave" = callPackage - ({ mkDerivation, base, bytestring, cereal, containers - , data-default-class, stdenv, transformers - }: - mkDerivation { - pname = "wave"; - version = "0.1.5"; - sha256 = "250a08b0c36870fb7fd0de7714818784eed0c4ff74377746dc1842967965fe0f"; - revision = "2"; - editedCabalFile = "0zs0mw42z9xzs1r935pd5dssf0x10qbkhxlpfknv0x75n2k0azzj"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - base bytestring cereal containers data-default-class transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/wave"; - description = "Work with WAVE and RF64 files"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wcwidth" = callPackage - ({ mkDerivation, base, containers, stdenv }: - mkDerivation { - pname = "wcwidth"; - version = "0.0.2"; - sha256 = "ffc68736a3bbde3e8157710f29f4a99c0ca593c41194579c54a92c62f6c12ed8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base containers ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/solidsnack/wcwidth/"; - description = "Native wcwidth"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "web-routes" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, exceptions - , ghc-prim, http-types, mtl, parsec, split, stdenv, text - , utf8-string - }: - mkDerivation { - pname = "web-routes"; - version = "0.27.14.2"; - sha256 = "af8b349c5d17de1d1accc30ab0a21537414a66e9d9515852098443e1d5d1f74a"; - libraryHaskellDepends = [ - base blaze-builder bytestring exceptions ghc-prim http-types mtl - parsec split text utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.happstack.com/docs/crashcourse/index.html#web-routes"; - description = "portable, type-safe URL routing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "web-routes-hsp" = callPackage - ({ mkDerivation, base, hsp, stdenv, text, web-routes }: - mkDerivation { - pname = "web-routes-hsp"; - version = "0.24.6.1"; - sha256 = "ca7cf5bf026c52fee5b6af3ca173c7341cd991dcd38508d07589cc7ea8102cab"; - libraryHaskellDepends = [ base hsp text web-routes ]; - doHaddock = false; - doCheck = false; - description = "Adds XMLGenerator instance for RouteT monad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "web-routes-wai" = callPackage - ({ mkDerivation, base, bytestring, http-types, stdenv, text, wai - , web-routes - }: - mkDerivation { - pname = "web-routes-wai"; - version = "0.24.3.1"; - sha256 = "8e1fd187686452af39929bc6b6a31319001859930744e22e2eee1fa9ad103049"; - libraryHaskellDepends = [ - base bytestring http-types text wai web-routes - ]; - doHaddock = false; - doCheck = false; - description = "Library for maintaining correctness of URLs within an application"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "web3" = callPackage - ({ mkDerivation, aeson, async, base, basement, bytestring, cereal - , cryptonite, data-default, exceptions, generics-sop, http-client - , http-client-tls, machines, memory, microlens, microlens-aeson - , microlens-mtl, microlens-th, mtl, OneTuple, parsec, relapse - , stdenv, tagged, template-haskell, text, transformers, uuid-types - , vinyl - }: - mkDerivation { - pname = "web3"; - version = "0.8.3.1"; - sha256 = "f17ef4b6cb70c105487f17a7f47001066d88dce0ba88dffd155ff6aad4f67edf"; - libraryHaskellDepends = [ - aeson async base basement bytestring cereal cryptonite data-default - exceptions generics-sop http-client http-client-tls machines memory - microlens microlens-aeson microlens-mtl microlens-th mtl OneTuple - parsec relapse tagged template-haskell text transformers uuid-types - vinyl - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/airalab/hs-web3#readme"; - description = "Ethereum API for Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "webdriver" = callPackage - ({ mkDerivation, aeson, attoparsec, base, base64-bytestring - , bytestring, data-default-class, directory, directory-tree - , exceptions, filepath, http-client, http-types, lifted-base - , monad-control, network, network-uri, scientific, stdenv - , temporary, text, time, transformers, transformers-base - , unordered-containers, vector, zip-archive - }: - mkDerivation { - pname = "webdriver"; - version = "0.8.5"; - sha256 = "a8167a8b147411a929e81727a77bc31fcd7d93424442268913fb522e1932c1be"; - libraryHaskellDepends = [ - aeson attoparsec base base64-bytestring bytestring - data-default-class directory directory-tree exceptions filepath - http-client http-types lifted-base monad-control network - network-uri scientific temporary text time transformers - transformers-base unordered-containers vector zip-archive - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kallisti-dev/hs-webdriver"; - description = "a Haskell client for the Selenium WebDriver protocol"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "webex-teams-api" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bitset-word8, bytestring - , conduit, data-default, http-conduit, network-uri - , optparse-applicative, stdenv, text, utf8-string - }: - mkDerivation { - pname = "webex-teams-api"; - version = "0.2.0.0"; - sha256 = "7756e38bd54d4dae1f70e7343259438f98bf58ff484ebc1c798166904178a40b"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson attoparsec base bitset-word8 bytestring conduit data-default - http-conduit network-uri text - ]; - executableHaskellDepends = [ - aeson base bytestring data-default http-conduit - optparse-applicative text utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nshimaza/webex-teams-api#readme"; - description = "A Haskell bindings for Webex Teams API"; - license = stdenv.lib.licenses.mit; - }) {}; - "webex-teams-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, data-default - , http-client, optparse-applicative, stdenv, text, utf8-string - , webex-teams-api - }: - mkDerivation { - pname = "webex-teams-conduit"; - version = "0.2.0.0"; - sha256 = "0d7c7db689092656653d687adadeb92669b647b1d7adc2493d8ca08a87742e5d"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base conduit webex-teams-api ]; - executableHaskellDepends = [ - base bytestring conduit data-default http-client - optparse-applicative text utf8-string webex-teams-api - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nshimaza/webex-teams-api#readme"; - description = "Conduit wrapper of Webex Teams List API"; - license = stdenv.lib.licenses.mit; - }) {}; - "webex-teams-pipes" = callPackage - ({ mkDerivation, base, bytestring, data-default, http-client - , optparse-applicative, pipes, stdenv, text, utf8-string - , webex-teams-api - }: - mkDerivation { - pname = "webex-teams-pipes"; - version = "0.2.0.0"; - sha256 = "77fad574346613e4989997852ca5972185a6321290caa718ce081be985a33100"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base pipes webex-teams-api ]; - executableHaskellDepends = [ - base bytestring data-default http-client optparse-applicative pipes - text utf8-string webex-teams-api - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/nshimaza/webex-teams-api#readme"; - description = "Pipes wrapper of Webex Teams List API"; - license = stdenv.lib.licenses.mit; - }) {}; - "webrtc-vad" = callPackage - ({ mkDerivation, base, primitive, stdenv, vector }: - mkDerivation { - pname = "webrtc-vad"; - version = "0.1.0.3"; - sha256 = "89cc6691d314c8c2ae7801bf56e1cca0252617536af4ac94acb92ad6d560d453"; - libraryHaskellDepends = [ base primitive vector ]; - doHaddock = false; - doCheck = false; - description = "Easy voice activity detection"; - license = stdenv.lib.licenses.mit; - }) {}; - "websockets" = callPackage - ({ mkDerivation, attoparsec, base, base64-bytestring, binary - , bytestring, bytestring-builder, case-insensitive, containers - , entropy, network, random, SHA, stdenv, streaming-commons, text - }: - mkDerivation { - pname = "websockets"; - version = "0.12.5.3"; - sha256 = "445b50cc38cb4eb57c91b288330b891030b2111129caad0117f416cae3a17d56"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - attoparsec base base64-bytestring binary bytestring - bytestring-builder case-insensitive containers entropy network - random SHA streaming-commons text - ]; - doHaddock = false; - doCheck = false; - homepage = "http://jaspervdj.be/websockets"; - description = "A sensible and clean way to write WebSocket-capable servers in Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "websockets-snap" = callPackage - ({ mkDerivation, base, bytestring, bytestring-builder, io-streams - , mtl, snap-core, snap-server, stdenv, websockets - }: - mkDerivation { - pname = "websockets-snap"; - version = "0.10.3.0"; - sha256 = "b34a40583a2111bb44233b728095fac38b8de1ab74c027fc4ee92a65af373be4"; - libraryHaskellDepends = [ - base bytestring bytestring-builder io-streams mtl snap-core - snap-server websockets - ]; - doHaddock = false; - doCheck = false; - description = "Snap integration for the websockets library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "weeder" = callPackage - ({ mkDerivation, aeson, base, bytestring, cmdargs, deepseq - , directory, extra, filepath, foundation, hashable, process, stdenv - , text, unordered-containers, vector, yaml - }: - mkDerivation { - pname = "weeder"; - version = "1.0.8"; - sha256 = "26204eeabb0cdce707548b3be451b1947567b0a13bcfe28bbdd7f48340c09cfa"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring cmdargs deepseq directory extra filepath - foundation hashable process text unordered-containers vector yaml - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ndmitchell/weeder#readme"; - description = "Detect dead code"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "weigh" = callPackage - ({ mkDerivation, base, deepseq, mtl, process, split, stdenv - , temporary - }: - mkDerivation { - pname = "weigh"; - version = "0.0.13"; - sha256 = "e4baa4b5dd90e882f83c13a3f653204d3dbb6ba285c6c6a96003a29a3ce88efa"; - libraryHaskellDepends = [ - base deepseq mtl process split temporary - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fpco/weigh#readme"; - description = "Measure allocations of a Haskell functions/values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wide-word" = callPackage - ({ mkDerivation, base, deepseq, primitive, stdenv }: - mkDerivation { - pname = "wide-word"; - version = "0.1.0.8"; - sha256 = "b2093afcd8dacb17b412a10823ff5fb5482fe22d332e872216f1a179ec4ccfd8"; - libraryHaskellDepends = [ base deepseq primitive ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/erikd/wide-word"; - description = "Data types for large but fixed width signed and unsigned integers"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "wikicfp-scraper" = callPackage - ({ mkDerivation, attoparsec, base, bytestring, scalpel-core, stdenv - , text, time - }: - mkDerivation { - pname = "wikicfp-scraper"; - version = "0.1.0.9"; - sha256 = "9e3cfd6dae669c34c8037cfc0996f371799297f4d08588702399413d8a4242e2"; - libraryHaskellDepends = [ - attoparsec base bytestring scalpel-core text time - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/wikicfp-scraper"; - description = "Scrape WikiCFP web site"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wild-bind" = callPackage - ({ mkDerivation, base, containers, semigroups, stdenv, text - , transformers - }: - mkDerivation { - pname = "wild-bind"; - version = "0.1.2.3"; - sha256 = "22bc0e4bd9dff23fb50869d3f3df67571cf428c7feaae6aba0b51adb09dc83b6"; - libraryHaskellDepends = [ - base containers semigroups text transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/wild-bind"; - description = "Dynamic key binding framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wild-bind-x11" = callPackage - ({ mkDerivation, base, containers, fold-debounce, mtl, semigroups - , stdenv, stm, text, transformers, wild-bind, X11 - }: - mkDerivation { - pname = "wild-bind-x11"; - version = "0.2.0.6"; - sha256 = "496dc4068050ff1e7fc585c6cced0b7633c0a82d6bdac6efc436b6d15b651d37"; - libraryHaskellDepends = [ - base containers fold-debounce mtl semigroups stm text transformers - wild-bind X11 - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/debug-ito/wild-bind"; - description = "X11-specific implementation for WildBind"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "windns" = callPackage - ({ mkDerivation, base, bytestring, deepseq, dnsapi, stdenv }: - mkDerivation { - pname = "windns"; - version = "0.1.0.1"; - sha256 = "087fa65c99021f4233102430d554aebe114af68f6b1647ff821bcb501c0bcd04"; - configureFlags = [ "-fallow-non-windows" ]; - libraryHaskellDepends = [ base bytestring deepseq ]; - librarySystemDepends = [ dnsapi ]; - doHaddock = false; - doCheck = false; - description = "Domain Name Service (DNS) lookup via the /dnsapi.dll standard library"; - license = stdenv.lib.licenses.gpl2; - }) {inherit (pkgs) dnsapi;}; - "winery" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, cpu, hashable - , megaparsec, mtl, prettyprinter, prettyprinter-ansi-terminal - , scientific, semigroups, stdenv, text, time, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "winery"; - version = "0.3.1"; - sha256 = "fef1c0ea4228b713c5dc6067e78aba63c4fdbac43007321b68d3f879f873c3b8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers cpu hashable megaparsec mtl - prettyprinter prettyprinter-ansi-terminal scientific semigroups - text time transformers unordered-containers vector - ]; - executableHaskellDepends = [ - aeson base bytestring containers cpu hashable megaparsec mtl - prettyprinter prettyprinter-ansi-terminal scientific semigroups - text time transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/winery#readme"; - description = "Sustainable serialisation library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wire-streams" = callPackage - ({ mkDerivation, base, binary, binary-parsers, bytestring - , io-streams, stdenv - }: - mkDerivation { - pname = "wire-streams"; - version = "0.1.1.0"; - sha256 = "96dffb70c08c89589881c96f199d271b55e4a5b3cc5be0f3e24e101858e2fb27"; - revision = "1"; - editedCabalFile = "1j7gpk3k82h0kxnhpv40jmnqxpnr0v0m4lj6bhpga81vlmznr088"; - libraryHaskellDepends = [ - base binary binary-parsers bytestring io-streams - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/wire-streams"; - description = "Fast binary io-streams adapter"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "with-location" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "with-location"; - version = "0.1.0"; - sha256 = "2c91d70cb28d39d6d5fbb37800c7d984aed4254cdcbf03ffa0787404bddefde7"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sol/with-location#readme"; - description = "Use ImplicitParams-based source locations in a backward compatible way"; - license = stdenv.lib.licenses.mit; - }) {}; - "witherable" = callPackage - ({ mkDerivation, base, base-orphans, containers, hashable, stdenv - , transformers, transformers-compat, unordered-containers, vector - }: - mkDerivation { - pname = "witherable"; - version = "0.3"; - sha256 = "620f619d37d50e5248a985888153149531155455f037746fdeca9c2c9fdf19c0"; - libraryHaskellDepends = [ - base base-orphans containers hashable transformers - transformers-compat unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/witherable"; - description = "filterable traversable"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "witness" = callPackage - ({ mkDerivation, base, constraints, semigroupoids, stdenv - , transformers - }: - mkDerivation { - pname = "witness"; - version = "0.4"; - sha256 = "93c6c83681a3ab94f53e49c07d0d1474e21169f779c917a896c9d6ed1bf01ea0"; - libraryHaskellDepends = [ - base constraints semigroupoids transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/AshleyYakeley/witness"; - description = "values that witness types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wizards" = callPackage - ({ mkDerivation, base, containers, control-monad-free, haskeline - , mtl, stdenv, transformers - }: - mkDerivation { - pname = "wizards"; - version = "1.0.3"; - sha256 = "05650d7bf6dd0e6b87d0d7da6fb003601ce5d7b1f3d69571127ec3c9425b9bb2"; - libraryHaskellDepends = [ - base containers control-monad-free haskeline mtl transformers - ]; - doHaddock = false; - doCheck = false; - description = "High level, generic library for interrogative user interfaces"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wl-pprint-annotated" = callPackage - ({ mkDerivation, base, containers, deepseq, stdenv, text }: - mkDerivation { - pname = "wl-pprint-annotated"; - version = "0.1.0.1"; - sha256 = "6b662b244b2e318a2923dc7057d707369a29ea4a0e721b4710eac7239cc727af"; - libraryHaskellDepends = [ base containers deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/wl-pprint-annotated#readme"; - description = "Pretty printer with annotation support"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wl-pprint-console" = callPackage - ({ mkDerivation, base, bytestring, colorful-monoids, stdenv, text - , wl-pprint-annotated - }: - mkDerivation { - pname = "wl-pprint-console"; - version = "0.1.0.2"; - sha256 = "cb76b445aa338cae075d149e752e53cf30e2480827eff4c157957b013f48b815"; - libraryHaskellDepends = [ - base bytestring colorful-monoids text wl-pprint-annotated - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/wl-pprint-console#readme"; - description = "Wadler/Leijen pretty printer supporting colorful console output"; - license = stdenv.lib.licenses.mit; - }) {}; - "wl-pprint-text" = callPackage - ({ mkDerivation, base, base-compat, stdenv, text }: - mkDerivation { - pname = "wl-pprint-text"; - version = "1.2.0.0"; - sha256 = "40dd4c2d2b8a2884616f3a240f01143d0aadd85f5988e5ee55a59ba6b2487c3c"; - libraryHaskellDepends = [ base base-compat text ]; - doHaddock = false; - doCheck = false; - description = "A Wadler/Leijen Pretty Printer for Text values"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "word-trie" = callPackage - ({ mkDerivation, base, binary, containers, stdenv }: - mkDerivation { - pname = "word-trie"; - version = "0.3.0"; - sha256 = "a3f3c2c088c64219ae35f7383a5dc1a368217183ba603e98785c110ac3f29282"; - revision = "1"; - editedCabalFile = "01aanzslm69z94lqy43hgyxj1ys7sqfqwn72l0snw3h2n3pjwn45"; - libraryHaskellDepends = [ base binary containers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yi-editor/word-trie"; - description = "Implementation of a finite trie over words"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "word24" = callPackage - ({ mkDerivation, base, deepseq, stdenv }: - mkDerivation { - pname = "word24"; - version = "2.0.1"; - sha256 = "c34ba17cc88df314151ef27dea192102ed73d5f0678f1359a5fe59799dc3a086"; - libraryHaskellDepends = [ base deepseq ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/winterland1989/word24"; - description = "24-bit word and int types for GHC"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "word8" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "word8"; - version = "0.1.3"; - sha256 = "2630934c75728bfbf390c1f0206b225507b354f68d4047b06c018a36823b5d8a"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Word8 library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "world-peace" = callPackage - ({ mkDerivation, aeson, base, deepseq, profunctors, stdenv, tagged - }: - mkDerivation { - pname = "world-peace"; - version = "0.1.0.0"; - sha256 = "737685799cdd97c2178c749a60906d15548b040570b90f1bbb4f259ba0e756a5"; - libraryHaskellDepends = [ aeson base deepseq profunctors tagged ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/world-peace"; - description = "Open Union and Open Product Types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wrap" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "wrap"; - version = "0.0.0"; - sha256 = "f8bbc4b417b2291532784d0c7940c0f1a24d054e6012963f7d727ad13977f50e"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - description = "Wrap a function's return value with another function"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wreq" = callPackage - ({ mkDerivation, aeson, attoparsec, authenticate-oauth, base - , base16-bytestring, bytestring, Cabal, cabal-doctest - , case-insensitive, containers, cryptonite, exceptions, ghc-prim - , hashable, http-client, http-client-tls, http-types, lens - , lens-aeson, memory, mime-types, psqueues, stdenv - , template-haskell, text, time, time-locale-compat - , unordered-containers - }: - mkDerivation { - pname = "wreq"; - version = "0.5.3.1"; - sha256 = "e33b4ea7a4008ed933744de13d98f6e8d0a54b8778ecf4e7c78812d4fb124ec4"; - revision = "1"; - editedCabalFile = "016sf02sm58fjsa7nmj12y8m2rwg34md8cnn533kdxm831jc9zyb"; - isLibrary = true; - isExecutable = true; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - aeson attoparsec authenticate-oauth base base16-bytestring - bytestring case-insensitive containers cryptonite exceptions - ghc-prim hashable http-client http-client-tls http-types lens - lens-aeson memory mime-types psqueues template-haskell text time - time-locale-compat unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.serpentine.com/wreq"; - description = "An easy-to-use HTTP client library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "writer-cps-exceptions" = callPackage - ({ mkDerivation, base, exceptions, stdenv, transformers - , writer-cps-transformers - }: - mkDerivation { - pname = "writer-cps-exceptions"; - version = "0.1.0.0"; - sha256 = "9bb4d8df625bc0822d4e2040a66f141f4ef304963bbb62e4e08720075a8184e8"; - libraryHaskellDepends = [ - base exceptions transformers writer-cps-transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/writer-cps-exceptions"; - description = "Control.Monad.Catch instances for the stricter CPS WriterT and RWST"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "writer-cps-full" = callPackage - ({ mkDerivation, base, stdenv, writer-cps-lens, writer-cps-morph - , writer-cps-mtl, writer-cps-transformers - }: - mkDerivation { - pname = "writer-cps-full"; - version = "0.1.0.0"; - sha256 = "ba51df5149470be6d70fd179f2af4cae30824a3a63528f1549a97f57610a5e95"; - revision = "1"; - editedCabalFile = "01zizhxk6kk5z3sqv5r7dp2yxbv5q87h5wgb5kbss60ncf042661"; - libraryHaskellDepends = [ - base writer-cps-lens writer-cps-morph writer-cps-mtl - writer-cps-transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/writer-cps-full#readme"; - description = "WriteT and RWST monad transformers (Reexport with all dependencies)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "writer-cps-lens" = callPackage - ({ mkDerivation, base, lens, profunctors, stdenv, transformers - , writer-cps-mtl, writer-cps-transformers - }: - mkDerivation { - pname = "writer-cps-lens"; - version = "0.1.0.1"; - sha256 = "2d6b8b6f4f86dcb3cc75bdd25d4ab186d09c2859023f3a6ef2171576b0d306ef"; - libraryHaskellDepends = [ - base lens profunctors transformers writer-cps-mtl - writer-cps-transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/writer-cps-lens#readme"; - description = "Lens instances for the stricter CPS WriterT and RWST"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "writer-cps-morph" = callPackage - ({ mkDerivation, base, mmorph, stdenv, writer-cps-transformers }: - mkDerivation { - pname = "writer-cps-morph"; - version = "0.1.0.2"; - sha256 = "e91d07b7dce83973c8ad8f489e161ea8092bd3c7d161f4e57cddeedd2f3fd5d8"; - revision = "1"; - editedCabalFile = "0dqpbpaidwa7ahk0n7pv397mv7ncr26p3vcrjh1xzl6vk26bdah5"; - libraryHaskellDepends = [ base mmorph writer-cps-transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/louispan/writer-cps-morph#readme"; - description = "MFunctor instance for CPS style WriterT and RWST"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "writer-cps-mtl" = callPackage - ({ mkDerivation, base, mtl, stdenv, transformers - , writer-cps-transformers - }: - mkDerivation { - pname = "writer-cps-mtl"; - version = "0.1.1.5"; - sha256 = "1557f5a4ee9d320f62acd0aee99164774327bdb3578e1f63dd695cc839de5627"; - libraryHaskellDepends = [ - base mtl transformers writer-cps-transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/writer-cps-mtl#readme"; - description = "MonadWriter orphan instances for writer-cps-transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "writer-cps-transformers" = callPackage - ({ mkDerivation, base, stdenv, transformers }: - mkDerivation { - pname = "writer-cps-transformers"; - version = "0.1.1.4"; - sha256 = "d6f08b4e20399cec93d8f61fd99c2fbaf0abb67364c4a9f713c5fdab110185fd"; - libraryHaskellDepends = [ base transformers ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/minad/writer-cps-transformers#readme"; - description = "WriteT and RWST monad transformers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ws" = callPackage - ({ mkDerivation, async, attoparsec, attoparsec-uri, base - , bytestring, exceptions, haskeline, mtl, network - , optparse-applicative, stdenv, strict, text, vector, websockets - , wuss - }: - mkDerivation { - pname = "ws"; - version = "0.0.5"; - sha256 = "a62b1f08248b401bc532fbbc6dca6e75b1605988c83bcc9e4488d6f305f644e2"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async attoparsec-uri base bytestring exceptions haskeline mtl - network text websockets wuss - ]; - executableHaskellDepends = [ - async attoparsec attoparsec-uri base bytestring exceptions - haskeline mtl network optparse-applicative strict text vector - websockets wuss - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/athanclark/ws#readme"; - description = "A simple CLI utility for interacting with a websocket"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "wuss" = callPackage - ({ mkDerivation, base, bytestring, connection, network, stdenv - , websockets - }: - mkDerivation { - pname = "wuss"; - version = "1.1.12"; - sha256 = "3deabd48ced44c5c07966de804adcf8996237ea08b2452b56d4cb837b7f2d6f6"; - libraryHaskellDepends = [ - base bytestring connection network websockets - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tfausak/wuss#readme"; - description = "Secure WebSocket (WSS) clients"; - license = stdenv.lib.licenses.mit; - }) {}; - "x11-xim" = callPackage - ({ mkDerivation, base, stdenv, utf8-string, X11 }: - mkDerivation { - pname = "x11-xim"; - version = "0.0.9.0"; - sha256 = "3ccb05847f7eacd607db095e4f655984607f46313d6b70130d09fd096442c76a"; - revision = "1"; - editedCabalFile = "1c561z9xvfcd7ddbiw3r0frhjvsrklachd38s66fzwjdgw1sl124"; - libraryHaskellDepends = [ base utf8-string X11 ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/YoshikuniJujo/x11-xim_haskell/wiki/"; - description = "A binding to the xim of X11 graphics library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "x509" = callPackage - ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base - , bytestring, containers, cryptonite, hourglass, memory, mtl, pem - , stdenv - }: - mkDerivation { - pname = "x509"; - version = "1.7.5"; - sha256 = "b1b0fcbb4aa0d749ed2b54710c2ebd6d900cb932108ad14f97640cf4ca60c7c8"; - revision = "1"; - editedCabalFile = "1z98llpggldy4yb7afcsn3r3q4vklvx2pqyrhy9fir5y2yd5l601"; - libraryHaskellDepends = [ - asn1-encoding asn1-parse asn1-types base bytestring containers - cryptonite hourglass memory mtl pem - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-certificate"; - description = "X509 reader and writer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "x509-store" = callPackage - ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring - , containers, cryptonite, directory, filepath, mtl, pem, stdenv - , x509 - }: - mkDerivation { - pname = "x509-store"; - version = "1.6.7"; - sha256 = "9786356c8bfdf631ea018c3244d0854c6db2cb24e583891ea553961443f61ef9"; - revision = "1"; - editedCabalFile = "04h2h8kdzhd2fp3w4a834xc1n88b1jgrxlgcsynfn0iwpbsb41x7"; - libraryHaskellDepends = [ - asn1-encoding asn1-types base bytestring containers cryptonite - directory filepath mtl pem x509 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-certificate"; - description = "X.509 collection accessing and storing methods"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "x509-system" = callPackage - ({ mkDerivation, base, bytestring, containers, directory, filepath - , mtl, pem, process, stdenv, x509, x509-store - }: - mkDerivation { - pname = "x509-system"; - version = "1.6.6"; - sha256 = "40dcdaae3ec67f38c08d96d4365b901eb8ac0c590bd7972eb429d37d58aa4419"; - libraryHaskellDepends = [ - base bytestring containers directory filepath mtl pem process x509 - x509-store - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-certificate"; - description = "Handle per-operating-system X.509 accessors and storage"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "x509-validation" = callPackage - ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring - , containers, cryptonite, data-default-class, hourglass, memory - , mtl, pem, stdenv, x509, x509-store - }: - mkDerivation { - pname = "x509-validation"; - version = "1.6.11"; - sha256 = "f94321cbcc4a534adf5889ae6950f3673e38b62b89b6970b477f502ce987d19b"; - libraryHaskellDepends = [ - asn1-encoding asn1-types base bytestring containers cryptonite - data-default-class hourglass memory mtl pem x509 x509-store - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/vincenthz/hs-certificate"; - description = "X.509 Certificate and CRL validation"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xdg-basedir" = callPackage - ({ mkDerivation, base, directory, filepath, stdenv }: - mkDerivation { - pname = "xdg-basedir"; - version = "0.2.2"; - sha256 = "e461c3a5c6007c55ceaea03be3be0ef3a92aa0ea1aea936da0c43671bbfaf42b"; - libraryHaskellDepends = [ base directory filepath ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/willdonnelly/xdg-basedir"; - description = "A basic implementation of the XDG Base Directory specification"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xeno" = callPackage - ({ mkDerivation, array, base, bytestring, deepseq, hspec, mtl - , mutable-containers, stdenv, vector - }: - mkDerivation { - pname = "xeno"; - version = "0.3.5.1"; - sha256 = "c054d631fc0a7258cda979087d462e647a38e8442d0932d6463161407191bbad"; - revision = "1"; - editedCabalFile = "0d9w9x6lwhvshy4dbvd80ckb9p0g4vcmzy6kvwai9rqmszf89cnh"; - libraryHaskellDepends = [ - array base bytestring deepseq hspec mtl mutable-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ocramz/xeno"; - description = "A fast event-based XML parser in pure Haskell"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xenstore" = callPackage - ({ mkDerivation, base, bytestring, cereal, mtl, network, stdenv }: - mkDerivation { - pname = "xenstore"; - version = "0.1.1"; - sha256 = "c2b538c9ce6716f4a1b4c0cb63ed5c6e5ee3e69e80dbb7826ee7f5392f45e874"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bytestring cereal mtl network ]; - doHaddock = false; - doCheck = false; - description = "Xenstore client access"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xhtml" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "xhtml"; - version = "3000.2.2.1"; - sha256 = "5cc869013ecc07ff68b3f873c0ab7f03b943fd7fa16d6f8725d4601b2f9f6924"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell/xhtml"; - description = "An XHTML combinator library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xls" = callPackage - ({ mkDerivation, base, conduit, filepath, getopt-generics - , resourcet, stdenv, transformers - }: - mkDerivation { - pname = "xls"; - version = "0.1.1"; - sha256 = "097711246a78389bdde19484d422ffb2248d46ab62248e4ca653c50e12ff0928"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base conduit filepath resourcet transformers - ]; - executableHaskellDepends = [ - base conduit getopt-generics resourcet transformers - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/harendra-kumar/xls"; - description = "Parse Microsoft Excel xls files (BIFF/Excel 97-2004)"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xlsx" = callPackage - ({ mkDerivation, attoparsec, base, base64-bytestring, binary-search - , bytestring, conduit, containers, data-default, deepseq, errors - , extra, filepath, lens, mtl, network-uri, old-locale, safe, stdenv - , text, time, transformers, vector, xeno, xml-conduit, zip-archive - , zlib - }: - mkDerivation { - pname = "xlsx"; - version = "0.7.2"; - sha256 = "b2560467ea5639d7bbd97ecf492f2e2cc9fa34e0b05fc5d55243304bbe7f1103"; - libraryHaskellDepends = [ - attoparsec base base64-bytestring binary-search bytestring conduit - containers data-default deepseq errors extra filepath lens mtl - network-uri old-locale safe text time transformers vector xeno - xml-conduit zip-archive zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/qrilka/xlsx"; - description = "Simple and incomplete Excel file parser/writer"; - license = stdenv.lib.licenses.mit; - }) {}; - "xlsx-tabular" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, data-default - , lens, stdenv, text, xlsx - }: - mkDerivation { - pname = "xlsx-tabular"; - version = "0.2.2.1"; - sha256 = "48dd897d41df81f9009e6c6c988021bc989286cee385bd2535d8e60b54d0fd2d"; - libraryHaskellDepends = [ - aeson base bytestring containers data-default lens text xlsx - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/kkazuo/xlsx-tabular"; - description = "Xlsx table cell value extraction utility"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml" = callPackage - ({ mkDerivation, base, bytestring, stdenv, text }: - mkDerivation { - pname = "xml"; - version = "1.3.14"; - sha256 = "32d1a1a9f21a59176d84697f96ae3a13a0198420e3e4f1c48abbab7d2425013d"; - revision = "1"; - editedCabalFile = "130xwqmgmg9vp988mppm5ivz1r5qbivb270fz2rwl4q0x04czdzd"; - libraryHaskellDepends = [ base bytestring text ]; - doHaddock = false; - doCheck = false; - homepage = "http://code.galois.com"; - description = "A simple XML library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-basic" = callPackage - ({ mkDerivation, base, containers, data-accessor - , explicit-exception, semigroups, stdenv, utility-ht - }: - mkDerivation { - pname = "xml-basic"; - version = "0.1.3.1"; - sha256 = "8d743ff8e489dc52fd256b18b75c21689945cfcb52481f5ca0aa6df50178a3e2"; - libraryHaskellDepends = [ - base containers data-accessor explicit-exception semigroups - utility-ht - ]; - doHaddock = false; - doCheck = false; - description = "Basics for XML/HTML representation and processing"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-conduit" = callPackage - ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup - , bytestring, conduit, conduit-extra, containers - , data-default-class, deepseq, resourcet, stdenv, text - , transformers, xml-types - }: - mkDerivation { - pname = "xml-conduit"; - version = "1.8.0.1"; - sha256 = "980b2f13ab8f54d8c2cbf92d186d5fac6c6ead42197c6687bd81e2fea2afef9c"; - libraryHaskellDepends = [ - attoparsec base blaze-html blaze-markup bytestring conduit - conduit-extra containers data-default-class deepseq resourcet text - transformers xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snoyberg/xml"; - description = "Pure-Haskell utilities for dealing with XML with the conduit package"; - license = stdenv.lib.licenses.mit; - }) {}; - "xml-conduit-parse" = callPackage - ({ mkDerivation, base, conduit, conduit-parse, containers - , exceptions, parsers, stdenv, text, xml-conduit, xml-types - }: - mkDerivation { - pname = "xml-conduit-parse"; - version = "0.3.1.2"; - sha256 = "c1aae117720128195dbbf2ce196271e4ca2973163c6a03a1b0ead3b32f936308"; - revision = "1"; - editedCabalFile = "0jnnr4z3c6rq2dz0ldiic5zwkrp36igf6gip11qrm9ss2pk9khbl"; - libraryHaskellDepends = [ - base conduit conduit-parse containers exceptions parsers text - xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/k0ral/xml-conduit-parse"; - description = "Streaming XML parser based on conduits"; - license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - "xml-conduit-writer" = callPackage - ({ mkDerivation, base, containers, data-default, dlist, mtl, stdenv - , text, xml-conduit, xml-types - }: - mkDerivation { - pname = "xml-conduit-writer"; - version = "0.1.1.2"; - sha256 = "0891c05ad2a2de68183868de8f66230d02f209446ee91bca772cbf22b599ae58"; - libraryHaskellDepends = [ - base containers data-default dlist mtl text xml-conduit xml-types - ]; - doHaddock = false; - doCheck = false; - homepage = "https://bitbucket.org/dpwiz/xml-conduit-writer"; - description = "Warm and fuzzy creation of XML documents"; - license = stdenv.lib.licenses.mit; - }) {}; - "xml-hamlet" = callPackage - ({ mkDerivation, base, containers, parsec, shakespeare, stdenv - , template-haskell, text, xml-conduit - }: - mkDerivation { - pname = "xml-hamlet"; - version = "0.5.0"; - sha256 = "7bcec0aad83e72c2870efd3327553b3d78f6332cf01c12ad4b67c02f499015a3"; - libraryHaskellDepends = [ - base containers parsec shakespeare template-haskell text - xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Hamlet-style quasiquoter for XML content"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-html-qq" = callPackage - ({ mkDerivation, base, blaze-markup, conduit, data-default - , from-sum, heterocephalus, html-conduit, resourcet, stdenv - , template-haskell, text, th-lift, th-lift-instances, xml-conduit - }: - mkDerivation { - pname = "xml-html-qq"; - version = "0.1.0.1"; - sha256 = "1a2ebb1f4ca58a4f442c470db6d3271e6b1069d41860f8683b5da9082329235a"; - libraryHaskellDepends = [ - base blaze-markup conduit data-default from-sum heterocephalus - html-conduit resourcet template-haskell text th-lift - th-lift-instances xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/xml-html-qq"; - description = "Quasi-quoters for XML and HTML Documents"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-indexed-cursor" = callPackage - ({ mkDerivation, base, bytestring, containers, data-default, stdenv - , text, xml-conduit - }: - mkDerivation { - pname = "xml-indexed-cursor"; - version = "0.1.1.0"; - sha256 = "46d622fc738e8cc1513f598207ee5e6cda790c79e0697fe02d2da6ad02a6da74"; - libraryHaskellDepends = [ - base bytestring containers data-default text xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/cdepillabout/xml-indexed-cursor"; - description = "Indexed XML cursors similar to 'Text.XML.Cursor' from xml-conduit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-isogen" = callPackage - ({ mkDerivation, base, deepseq, dom-parser, lens, mtl, QuickCheck - , semigroups, stdenv, template-haskell, text, xml-conduit - , xml-conduit-writer - }: - mkDerivation { - pname = "xml-isogen"; - version = "0.3.0"; - sha256 = "9f812d7bb5dd280e62f5013fd77af27e3710fb1a76dcf7a12f0abbfae5400a17"; - libraryHaskellDepends = [ - base deepseq dom-parser lens mtl QuickCheck semigroups - template-haskell text xml-conduit xml-conduit-writer - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/typeable/xml-isogen"; - description = "Generate XML-isomorphic types"; - license = stdenv.lib.licenses.mit; - }) {}; - "xml-lens" = callPackage - ({ mkDerivation, base, case-insensitive, containers, lens, stdenv - , text, xml-conduit - }: - mkDerivation { - pname = "xml-lens"; - version = "0.1.6.3"; - sha256 = "4dd7f1a91fbb12ae52d5a14badd9f38c0f0d7556f08ee77d79a67cc546dcb1e8"; - revision = "1"; - editedCabalFile = "1fbk4wv7zr10wsh8a0svd799im64fybnlb09rjpfl2pvb6i6h1qs"; - libraryHaskellDepends = [ - base case-insensitive containers lens text xml-conduit - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/fumieval/xml-lens"; - description = "Lenses, traversals, and prisms for xml-conduit"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-picklers" = callPackage - ({ mkDerivation, base, containers, stdenv, text, xml-types }: - mkDerivation { - pname = "xml-picklers"; - version = "0.3.6"; - sha256 = "d1b802cd9543a228c6699928e6695539c28f6cbd8e7859a65ca874543ef1d1a4"; - libraryHaskellDepends = [ base containers text xml-types ]; - doHaddock = false; - doCheck = false; - description = "XML picklers based on xml-types, ported from hexpat-pickle"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xml-to-json" = callPackage - ({ mkDerivation, aeson, base, bytestring, containers, curl - , hashable, hxt, hxt-curl, hxt-expat, hxt-tagsoup, regex-posix - , stdenv, tagsoup, text, unordered-containers, vector - }: - mkDerivation { - pname = "xml-to-json"; - version = "2.0.1"; - sha256 = "ad1a2501828052a1798178c309638a9b8e4fe66ad24dae9c76de939c156d2e2f"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring containers curl hashable hxt hxt-curl - hxt-expat hxt-tagsoup regex-posix tagsoup text unordered-containers - vector - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sinelaw/xml-to-json"; - description = "Library and command line tool for converting XML files to json"; - license = stdenv.lib.licenses.mit; - }) {}; - "xml-to-json-fast" = callPackage - ({ mkDerivation, base, directory, process, stdenv, tagsoup, text }: - mkDerivation { - pname = "xml-to-json-fast"; - version = "2.0.0"; - sha256 = "dd852fe1aa54db3c6d87a2e74b5345b0f14effdd49bad5b73d79571e1b47563f"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base tagsoup text ]; - executableHaskellDepends = [ base directory process ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/sinelaw/xml-to-json-fast"; - description = "Fast, light converter of xml to json capable of handling huge xml files"; - license = stdenv.lib.licenses.mit; - }) {}; - "xml-types" = callPackage - ({ mkDerivation, base, deepseq, stdenv, text }: - mkDerivation { - pname = "xml-types"; - version = "0.3.6"; - sha256 = "9937d440072552c03c6d8ad79f61e61467dc28dcd5adeaad81038b9b94eef8c9"; - libraryHaskellDepends = [ base deepseq text ]; - doHaddock = false; - doCheck = false; - homepage = "https://john-millikin.com/software/haskell-xml/"; - description = "Basic types for representing XML"; - license = stdenv.lib.licenses.mit; - }) {}; - "xmlbf" = callPackage - ({ mkDerivation, base, bytestring, containers, stdenv, text - , transformers, unordered-containers - }: - mkDerivation { - pname = "xmlbf"; - version = "0.4.1"; - sha256 = "189a02e8b54c3576c3a919799def7b83c0e602b222264901c644c941c34fdc75"; - revision = "1"; - editedCabalFile = "0j5yvsz0ib5w80wp1gc0li376adw8l861xvf5paa2hdq55jkxvi6"; - libraryHaskellDepends = [ - base bytestring containers text transformers unordered-containers - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/k0001/xmlbf"; - description = "XML back and forth! Parser, renderer, ToXml, FromXml, fixpoints"; - license = stdenv.lib.licenses.asl20; - }) {}; - "xmlbf-xeno" = callPackage - ({ mkDerivation, base, bytestring, html-entities, stdenv, text - , unordered-containers, xeno, xmlbf - }: - mkDerivation { - pname = "xmlbf-xeno"; - version = "0.1.1"; - sha256 = "6c1c4e419240c1e480d5543e89883cd2a356c1bb470a452f935424a80367dd32"; - libraryHaskellDepends = [ - base bytestring html-entities text unordered-containers xeno xmlbf - ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/k0001/xmlbf"; - description = "xeno backend support for the xmlbf library"; - license = stdenv.lib.licenses.asl20; - }) {}; - "xmlgen" = callPackage - ({ mkDerivation, base, blaze-builder, bytestring, containers, mtl - , stdenv, text - }: - mkDerivation { - pname = "xmlgen"; - version = "0.6.2.2"; - sha256 = "926fa98c77525f5046274758fcebd190e86de3f53a4583179e8ce328f25a34d6"; - libraryHaskellDepends = [ - base blaze-builder bytestring containers mtl text - ]; - doHaddock = false; - doCheck = false; - description = "Fast XML generation library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xmonad" = callPackage - ({ mkDerivation, base, containers, data-default, directory - , extensible-exceptions, filepath, mtl, process, setlocale, stdenv - , unix, utf8-string, X11 - }: - mkDerivation { - pname = "xmonad"; - version = "0.15"; - sha256 = "4a7948e6eee5e34a27d15444589ade3b3fa1adecadbf37b943cff8348380f928"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base containers data-default directory extensible-exceptions - filepath mtl process setlocale unix utf8-string X11 - ]; - executableHaskellDepends = [ base mtl unix X11 ]; - doHaddock = false; - doCheck = false; - postInstall = '' - install -D man/xmonad.1 $doc/share/man/man1/xmonad.1 - install -D man/xmonad.hs $doc/share/doc/$name/sample-xmonad.hs - ''; - homepage = "http://xmonad.org"; - description = "A tiling window manager"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xmonad-contrib" = callPackage - ({ mkDerivation, base, bytestring, containers, directory - , extensible-exceptions, filepath, mtl, old-locale, old-time - , process, random, semigroups, stdenv, unix, utf8-string, X11 - , X11-xft, xmonad - }: - mkDerivation { - pname = "xmonad-contrib"; - version = "0.15"; - sha256 = "ba7686007037fc081de09fc05914fbb84cad8123e1f4eedb8895c863fcfb3e65"; - libraryHaskellDepends = [ - base bytestring containers directory extensible-exceptions filepath - mtl old-locale old-time process random semigroups unix utf8-string - X11 X11-xft xmonad - ]; - doHaddock = false; - doCheck = false; - homepage = "http://xmonad.org/"; - description = "Third party extensions for xmonad"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xmonad-extras" = callPackage - ({ mkDerivation, alsa-mixer, base, bytestring, containers, hint - , libmpd, mtl, network, regex-posix, stdenv, X11, xmonad - , xmonad-contrib - }: - mkDerivation { - pname = "xmonad-extras"; - version = "0.15.1"; - sha256 = "b8086169d15feb65c85b513ba19576c7caa2f4a5f234be503402569b03d2c1f4"; - configureFlags = [ - "-f-with_hlist" "-fwith_parsec" "-fwith_split" - ]; - libraryHaskellDepends = [ - alsa-mixer base bytestring containers hint libmpd mtl network - regex-posix X11 xmonad xmonad-contrib - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/xmonad/xmonad-extras"; - description = "Third party extensions for xmonad with wacky dependencies"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "xss-sanitize" = callPackage - ({ mkDerivation, attoparsec, base, containers, css-text - , network-uri, stdenv, tagsoup, text, utf8-string - }: - mkDerivation { - pname = "xss-sanitize"; - version = "0.3.6"; - sha256 = "b385eea5652c798b701c627dce8b327c3d6cbfd8c92e1e18e7118862d4d0e2b4"; - libraryHaskellDepends = [ - attoparsec base containers css-text network-uri tagsoup text - utf8-string - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/haskell-xss-sanitize#readme"; - description = "sanitize untrusted HTML to prevent XSS attacks"; - license = stdenv.lib.licenses.bsd2; - }) {}; - "xxhash-ffi" = callPackage - ({ mkDerivation, base, bytestring, stdenv }: - mkDerivation { - pname = "xxhash-ffi"; - version = "0.2.0.0"; - sha256 = "fc2e63ea54531e2888a9ddd6816cb113bd5fd0e01192156e9f1459d88af92e6b"; - libraryHaskellDepends = [ base bytestring ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/haskell-haskey/xxhash-ffi#readme"; - description = "Bindings to the C implementation the xxHash algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yam" = callPackage - ({ mkDerivation, base, base16-bytestring, binary, bytestring - , data-default, fast-logger, http-client, http-types, lens - , monad-logger, mtl, mwc-random, reflection, salak, scientific - , servant-client, servant-server, servant-swagger - , servant-swagger-ui, stdenv, swagger2, text, unliftio-core - , unordered-containers, vault, vector, wai, warp - }: - mkDerivation { - pname = "yam"; - version = "0.5.11"; - sha256 = "8edd7035d26abc6cb8db4a04d44b551e2dae1bf8b436379859bd2d1dde473e4d"; - libraryHaskellDepends = [ - base base16-bytestring binary bytestring data-default fast-logger - http-client http-types lens monad-logger mtl mwc-random reflection - salak scientific servant-client servant-server servant-swagger - servant-swagger-ui swagger2 text unliftio-core unordered-containers - vault vector wai warp - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/leptonyu/yam/yam#readme"; - description = "Yam Web"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yam-datasource" = callPackage - ({ mkDerivation, base, conduit, persistent, resource-pool - , resourcet, stdenv, unliftio-core, yam - }: - mkDerivation { - pname = "yam-datasource"; - version = "0.5.11"; - sha256 = "f4a29f8a9f82c40c30e9f7fee7e8f1187c35fbfa251ddd7e7a03103e43bb1d9c"; - libraryHaskellDepends = [ - base conduit persistent resource-pool resourcet unliftio-core yam - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/leptonyu/yam/yam-datasource#readme"; - description = "Yam DataSource Middleware"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yaml" = callPackage - ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit - , containers, directory, filepath, libyaml, mtl, resourcet - , scientific, stdenv, template-haskell, text, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "yaml"; - version = "0.11.0.0"; - sha256 = "e66466cd29a4d256c3dd4dd4ab366033dbc5fa1fb67fdc6f7ac7aa3f161527bf"; - configureFlags = [ "-fsystem-libyaml" ]; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson attoparsec base bytestring conduit containers directory - filepath libyaml mtl resourcet scientific template-haskell text - transformers unordered-containers vector - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/yaml#readme"; - description = "Support for parsing and rendering YAML documents"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yes-precure5-command" = callPackage - ({ mkDerivation, base, Cabal, containers, mtl, parsec, random - , stdenv - }: - mkDerivation { - pname = "yes-precure5-command"; - version = "5.5.3"; - sha256 = "27f2f2dcd81923a18450cda21a31585d0d3887afde504190667cb7dbf0a0af7e"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base Cabal containers mtl parsec random - ]; - executableHaskellDepends = [ - base Cabal containers mtl parsec random - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/igrep/yes-precure5-command/"; - description = "Extended yes command to reproduce phrases in Yes! Precure 5"; - license = stdenv.lib.licenses.mit; - }) {}; - "yeshql" = callPackage - ({ mkDerivation, base, stdenv, yeshql-core, yeshql-hdbc }: - mkDerivation { - pname = "yeshql"; - version = "4.1.0.1"; - sha256 = "c4c590682d6581cf49893bdcd3c2d0e4046d81240a7f5abd7bcaa17037c29db6"; - libraryHaskellDepends = [ base yeshql-core yeshql-hdbc ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tdammers/yeshql"; - description = "YesQL-style SQL database abstraction (legacy compatibility wrapper)"; - license = stdenv.lib.licenses.mit; - }) {}; - "yeshql-core" = callPackage - ({ mkDerivation, base, containers, convertible, filepath, parsec - , stdenv, template-haskell - }: - mkDerivation { - pname = "yeshql-core"; - version = "4.1.0.2"; - sha256 = "c0db2a2f415846236e9c38a652dc38e56f2a68baa72b61bdf5c5238f1b6317fe"; - libraryHaskellDepends = [ - base containers convertible filepath parsec template-haskell - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tdammers/yeshql"; - description = "YesQL-style SQL database abstraction (core)"; - license = stdenv.lib.licenses.mit; - }) {}; - "yeshql-hdbc" = callPackage - ({ mkDerivation, base, containers, convertible, filepath, HDBC - , parsec, stdenv, template-haskell, yeshql-core - }: - mkDerivation { - pname = "yeshql-hdbc"; - version = "4.1.0.2"; - sha256 = "f4ac521c6970d9a06d321e9f2b1143e6901c9875314281505aafcda3bd0352dc"; - libraryHaskellDepends = [ - base containers convertible filepath HDBC parsec template-haskell - yeshql-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/tdammers/yeshql"; - description = "YesQL-style SQL database abstraction (HDBC backend)"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod" = callPackage - ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring - , conduit, data-default-class, directory, fast-logger, monad-logger - , resourcet, semigroups, shakespeare, stdenv, streaming-commons - , template-haskell, text, transformers, unix, unordered-containers - , wai, wai-extra, wai-logger, warp, yaml, yesod-core, yesod-form - , yesod-persistent - }: - mkDerivation { - pname = "yesod"; - version = "1.6.0"; - sha256 = "8a242ffe1df10bc2c5dffb6e255ad21b11e96a9c4794bac20504b67f973da773"; - libraryHaskellDepends = [ - aeson base blaze-html blaze-markup bytestring conduit - data-default-class directory fast-logger monad-logger resourcet - semigroups shakespeare streaming-commons template-haskell text - transformers unix unordered-containers wai wai-extra wai-logger - warp yaml yesod-core yesod-form yesod-persistent - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Creation of type-safe, RESTful web applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-alerts" = callPackage - ({ mkDerivation, alerts, base, blaze-html, blaze-markup, safe - , stdenv, text, yesod-core - }: - mkDerivation { - pname = "yesod-alerts"; - version = "0.1.2.0"; - sha256 = "8e52c8a7ec9cdbe7cdc06f39ea4e27b852be0391cf78652e349f0f2c169b146f"; - libraryHaskellDepends = [ - alerts base blaze-html blaze-markup safe text yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/alx741/yesod-alerts#readme"; - description = "Alert messages for the Yesod framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yesod-auth" = callPackage - ({ mkDerivation, aeson, authenticate, base, base16-bytestring - , base64-bytestring, binary, blaze-builder, blaze-html - , blaze-markup, bytestring, conduit, conduit-extra, containers - , cryptonite, data-default, email-validate, file-embed, http-client - , http-client-tls, http-conduit, http-types, memory, network-uri - , nonce, persistent, random, safe, shakespeare, stdenv - , template-haskell, text, time, transformers, unliftio - , unliftio-core, unordered-containers, wai, yesod-core, yesod-form - , yesod-persistent - }: - mkDerivation { - pname = "yesod-auth"; - version = "1.6.5"; - sha256 = "b9dd963473a4d18d6a6921c0c321d86c77f264d8be2849b4aadcfa8f3ac337b3"; - libraryHaskellDepends = [ - aeson authenticate base base16-bytestring base64-bytestring binary - blaze-builder blaze-html blaze-markup bytestring conduit - conduit-extra containers cryptonite data-default email-validate - file-embed http-client http-client-tls http-conduit http-types - memory network-uri nonce persistent random safe shakespeare - template-haskell text time transformers unliftio unliftio-core - unordered-containers wai yesod-core yesod-form yesod-persistent - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Authentication for Yesod"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-auth-hashdb" = callPackage - ({ mkDerivation, aeson, base, bytestring, persistent, stdenv, text - , yesod-auth, yesod-core, yesod-form, yesod-persistent - }: - mkDerivation { - pname = "yesod-auth-hashdb"; - version = "1.7.1"; - sha256 = "0d6f27a49aa862af8f4d1a84f8fe540300e42f9208728fba03a7996a5517dfe5"; - libraryHaskellDepends = [ - aeson base bytestring persistent text yesod-auth yesod-core - yesod-form yesod-persistent - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/paul-rouse/yesod-auth-hashdb"; - description = "Authentication plugin for Yesod"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-auth-oauth2" = callPackage - ({ mkDerivation, aeson, base, bytestring, errors, hoauth2 - , http-client, http-conduit, http-types, microlens, random - , safe-exceptions, stdenv, text, uri-bytestring, yesod-auth - , yesod-core - }: - mkDerivation { - pname = "yesod-auth-oauth2"; - version = "0.6.1.0"; - sha256 = "5ad514358e1f29a65cf0f06bf821961e5a8938fd22f7ea3d36b602672c131c91"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson base bytestring errors hoauth2 http-client http-conduit - http-types microlens random safe-exceptions text uri-bytestring - yesod-auth yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/thoughtbot/yesod-auth-oauth2"; - description = "OAuth 2.0 authentication plugins"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-bin" = callPackage - ({ mkDerivation, attoparsec, base, base64-bytestring, blaze-builder - , bytestring, Cabal, conduit, conduit-extra, containers - , data-default-class, directory, file-embed, filepath, fsnotify - , http-client, http-client-tls, http-reverse-proxy, http-types - , network, optparse-applicative, parsec, process, project-template - , resourcet, say, shakespeare, split, stdenv, stm - , streaming-commons, tar, template-haskell, text, time - , transformers, transformers-compat, unix-compat, unliftio - , unordered-containers, wai, wai-extra, warp, warp-tls, yaml, zlib - }: - mkDerivation { - pname = "yesod-bin"; - version = "1.6.0.3"; - sha256 = "e4db295b4c651c205a1730df38501c217d9b600f3dbc1eea21d5fa47e832aedc"; - revision = "4"; - editedCabalFile = "1iw9m3z6m4n9dlwamf1kwr7pp2wpk6awf1m63zjkgw5j4vwxlcpg"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - attoparsec base base64-bytestring blaze-builder bytestring Cabal - conduit conduit-extra containers data-default-class directory - file-embed filepath fsnotify http-client http-client-tls - http-reverse-proxy http-types network optparse-applicative parsec - process project-template resourcet say shakespeare split stm - streaming-commons tar template-haskell text time transformers - transformers-compat unix-compat unliftio unordered-containers wai - wai-extra warp warp-tls yaml zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "The yesod helper executable"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-core" = callPackage - ({ mkDerivation, aeson, auto-update, base, blaze-html, blaze-markup - , byteable, bytestring, case-insensitive, cereal, clientsession - , conduit, conduit-extra, containers, cookie, deepseq, fast-logger - , http-types, monad-logger, mtl, parsec, path-pieces, primitive - , random, resourcet, rio, shakespeare, stdenv, template-haskell - , text, time, transformers, unix-compat, unliftio - , unordered-containers, vector, wai, wai-extra, wai-logger, warp - , word8 - }: - mkDerivation { - pname = "yesod-core"; - version = "1.6.11"; - sha256 = "99cb86dae3327e37311751c89a0d1c244e9b78320119bd772867efa6c543f4b2"; - libraryHaskellDepends = [ - aeson auto-update base blaze-html blaze-markup byteable bytestring - case-insensitive cereal clientsession conduit conduit-extra - containers cookie deepseq fast-logger http-types monad-logger mtl - parsec path-pieces primitive random resourcet rio shakespeare - template-haskell text time transformers unix-compat unliftio - unordered-containers vector wai wai-extra wai-logger warp word8 - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Creation of type-safe, RESTful web applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-csp" = callPackage - ({ mkDerivation, attoparsec, base, case-insensitive - , mono-traversable, network-uri, semigroups, stdenv, syb - , template-haskell, text, wai, yesod, yesod-core - }: - mkDerivation { - pname = "yesod-csp"; - version = "0.2.4.0"; - sha256 = "e05d31857d6d0e8aececdd83b6a896267ecab2c29426d559e3dafb259eac92a5"; - libraryHaskellDepends = [ - attoparsec base case-insensitive mono-traversable network-uri - semigroups syb template-haskell text wai yesod yesod-core - ]; - doHaddock = false; - doCheck = false; - description = "Add CSP headers to Yesod apps"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-eventsource" = callPackage - ({ mkDerivation, base, blaze-builder, conduit, stdenv, transformers - , wai, wai-eventsource, wai-extra, yesod-core - }: - mkDerivation { - pname = "yesod-eventsource"; - version = "1.6.0"; - sha256 = "6fceeca34d5e80c8a0d65ab95fab3c53807d1f18eb506abdef67a8f70d0e418b"; - libraryHaskellDepends = [ - base blaze-builder conduit transformers wai wai-eventsource - wai-extra yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Server-sent events support for Yesod apps"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-fb" = callPackage - ({ mkDerivation, aeson, base, bytestring, conduit, crypto-api, fb - , http-client-tls, http-conduit, stdenv, text, wai, yesod-core - }: - mkDerivation { - pname = "yesod-fb"; - version = "0.5.0"; - sha256 = "de375004c12e89eec47738d60465c7c63b5f0c7bfc3591c70a35522fdc0841db"; - libraryHaskellDepends = [ - aeson base bytestring conduit crypto-api fb http-client-tls - http-conduit text wai yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/psibi/yesod-fb"; - description = "Useful glue functions between the fb library and Yesod"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yesod-form" = callPackage - ({ mkDerivation, aeson, attoparsec, base, blaze-builder, blaze-html - , blaze-markup, byteable, bytestring, containers, data-default - , email-validate, network-uri, persistent, resourcet, semigroups - , shakespeare, stdenv, text, time, transformers, wai, xss-sanitize - , yesod-core, yesod-persistent - }: - mkDerivation { - pname = "yesod-form"; - version = "1.6.4"; - sha256 = "2c9110fd6213d3bbeb0fcaa148ea3c19ff98461c365811313ad33dc8ebca0c47"; - libraryHaskellDepends = [ - aeson attoparsec base blaze-builder blaze-html blaze-markup - byteable bytestring containers data-default email-validate - network-uri persistent resourcet semigroups shakespeare text time - transformers wai xss-sanitize yesod-core yesod-persistent - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Form handling support for Yesod Web Framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-form-bootstrap4" = callPackage - ({ mkDerivation, base, stdenv, text, yesod-core, yesod-form }: - mkDerivation { - pname = "yesod-form-bootstrap4"; - version = "2.1.0"; - sha256 = "2c42f2c38549e0f782572162a215cbb86bffa09a39db7c4e2ac711ede092c1f1"; - libraryHaskellDepends = [ base text yesod-core yesod-form ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ncaq/yesod-form-bootstrap4#readme"; - description = "renderBootstrap4"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-gitrepo" = callPackage - ({ mkDerivation, base, directory, http-types, process, stdenv - , temporary, text, unliftio, wai, yesod-core - }: - mkDerivation { - pname = "yesod-gitrepo"; - version = "0.3.0"; - sha256 = "b03c67c506bc3fc402cb41759d69f2c3159af47959cbd964cb6531996084981e"; - libraryHaskellDepends = [ - base directory http-types process temporary text unliftio wai - yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/snoyberg/yesod-gitrepo#readme"; - description = "Host content provided by a Git repo"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-gitrev" = callPackage - ({ mkDerivation, aeson, base, gitrev, stdenv, template-haskell - , yesod-core - }: - mkDerivation { - pname = "yesod-gitrev"; - version = "0.2.0.0"; - sha256 = "df9f374e6099e55eb62cc273451605ce8746785a293e76115d25002355fee052"; - revision = "1"; - editedCabalFile = "1b0df34lz569gnwbbz0p20dml6bi2nbva9wfdsxyvva0dhvxjaz5"; - libraryHaskellDepends = [ - aeson base gitrev template-haskell yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/DanBurton/yesod-gitrev"; - description = "A subsite for displaying git information"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yesod-markdown" = callPackage - ({ mkDerivation, base, blaze-html, blaze-markup, bytestring - , directory, pandoc, persistent, shakespeare, stdenv, text - , xss-sanitize, yesod-core, yesod-form - }: - mkDerivation { - pname = "yesod-markdown"; - version = "0.12.6.1"; - sha256 = "d233ad5589ffcb62d7fa529b1d952313057e37ee60cd3c67e12d87617819c201"; - libraryHaskellDepends = [ - base blaze-html blaze-markup bytestring directory pandoc persistent - shakespeare text xss-sanitize yesod-core yesod-form - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/pbrisbin/yesod-markdown"; - description = "Tools for using markdown in a yesod application"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "yesod-newsfeed" = callPackage - ({ mkDerivation, base, blaze-html, blaze-markup, bytestring - , containers, shakespeare, stdenv, text, time, xml-conduit - , yesod-core - }: - mkDerivation { - pname = "yesod-newsfeed"; - version = "1.6.1.0"; - sha256 = "6d0b97592d74ca45e204f1876fb113a4830c5f35612b876175169af3d2f79615"; - libraryHaskellDepends = [ - base blaze-html blaze-markup bytestring containers shakespeare text - time xml-conduit yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Helper functions and data types for producing News feeds"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-paginator" = callPackage - ({ mkDerivation, base, blaze-markup, path-pieces, persistent, safe - , stdenv, text, transformers, uri-encode, yesod-core - }: - mkDerivation { - pname = "yesod-paginator"; - version = "1.1.0.1"; - sha256 = "6e241fb7e55debfe3b674e62faeb02967abb982cd77295847085423d23230b90"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base blaze-markup path-pieces persistent safe text transformers - uri-encode yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/pbrisbin/yesod-paginator"; - description = "A pagination approach for yesod"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yesod-persistent" = callPackage - ({ mkDerivation, base, blaze-builder, conduit, persistent - , persistent-template, resource-pool, resourcet, stdenv - , transformers, yesod-core - }: - mkDerivation { - pname = "yesod-persistent"; - version = "1.6.0.1"; - sha256 = "748acc0a08e371548920a1b5e2e8b2c95b95014becd63acf259712d306a9bd4f"; - libraryHaskellDepends = [ - base blaze-builder conduit persistent persistent-template - resource-pool resourcet transformers yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Some helpers for using Persistent from Yesod"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-recaptcha2" = callPackage - ({ mkDerivation, aeson, base, classy-prelude, http-conduit, stdenv - , yesod-auth, yesod-core, yesod-form - }: - mkDerivation { - pname = "yesod-recaptcha2"; - version = "0.3.0"; - sha256 = "0c42aad0943a1a1518d23632b243709542690921bdf25262367357b74d906f89"; - libraryHaskellDepends = [ - aeson base classy-prelude http-conduit yesod-auth yesod-core - yesod-form - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/ncaq/yesod-recaptcha2#readme"; - description = "yesod recaptcha2"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-sitemap" = callPackage - ({ mkDerivation, base, conduit, containers, data-default, stdenv - , text, time, xml-conduit, xml-types, yesod-core - }: - mkDerivation { - pname = "yesod-sitemap"; - version = "1.6.0"; - sha256 = "e5fa06abdcd57772fc74707ae663c63b45b172bce48117b70a4a9af15131dbd6"; - libraryHaskellDepends = [ - base conduit containers data-default text time xml-conduit - xml-types yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Generate XML sitemaps"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-static" = callPackage - ({ mkDerivation, async, attoparsec, base, base64-bytestring - , blaze-builder, bytestring, conduit, containers, cryptonite - , cryptonite-conduit, css-text, data-default, directory, file-embed - , filepath, hashable, hjsmin, http-types, memory, mime-types - , process, stdenv, template-haskell, text, transformers - , unix-compat, unordered-containers, wai, wai-app-static - , yesod-core - }: - mkDerivation { - pname = "yesod-static"; - version = "1.6.0.1"; - sha256 = "abe7e802f5efd064823b827074fea3613f4ba46115afedb5e2d96f919dcfa0c9"; - libraryHaskellDepends = [ - async attoparsec base base64-bytestring blaze-builder bytestring - conduit containers cryptonite cryptonite-conduit css-text - data-default directory file-embed filepath hashable hjsmin - http-types memory mime-types process template-haskell text - transformers unix-compat unordered-containers wai wai-app-static - yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com/"; - description = "Static file serving subsite for Yesod Web Framework"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-test" = callPackage - ({ mkDerivation, attoparsec, base, blaze-builder, blaze-html - , bytestring, case-insensitive, conduit, containers, cookie - , hspec-core, html-conduit, http-types, HUnit, network, pretty-show - , semigroups, stdenv, text, time, transformers, wai, wai-extra - , xml-conduit, xml-types, yesod-core - }: - mkDerivation { - pname = "yesod-test"; - version = "1.6.6"; - sha256 = "4e3a2ba8abe50bc441ae2c63d38d26e9f4ac07aaf1cf1e9536d0e435b1b402c1"; - libraryHaskellDepends = [ - attoparsec base blaze-builder blaze-html bytestring - case-insensitive conduit containers cookie hspec-core html-conduit - http-types HUnit network pretty-show semigroups text time - transformers wai wai-extra xml-conduit xml-types yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "http://www.yesodweb.com"; - description = "integration testing for WAI/Yesod Applications"; - license = stdenv.lib.licenses.mit; - }) {}; - "yesod-text-markdown" = callPackage - ({ mkDerivation, aeson, base, markdown, persistent, shakespeare - , stdenv, text, yesod-core, yesod-form, yesod-persistent - }: - mkDerivation { - pname = "yesod-text-markdown"; - version = "0.1.10"; - sha256 = "3cee8b3d8d84f30e8b825076d650afb05e79ebd22f34a21fc7ad7f45e1637ddc"; - libraryHaskellDepends = [ - aeson base markdown persistent shakespeare text yesod-core - yesod-form yesod-persistent - ]; - doHaddock = false; - doCheck = false; - description = "Yesod support for Text.Markdown."; - license = stdenv.lib.licenses.bsd3; - }) {}; - "yesod-websockets" = callPackage - ({ mkDerivation, base, conduit, mtl, stdenv, transformers, unliftio - , wai-websockets, websockets, yesod-core - }: - mkDerivation { - pname = "yesod-websockets"; - version = "0.3.0.1"; - sha256 = "86c947aa0354c8b98ec7364b51df2ba98ac7c8e184d6ebfcf4bfb9b2e8c381cc"; - libraryHaskellDepends = [ - base conduit mtl transformers unliftio wai-websockets websockets - yesod-core - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yesodweb/yesod"; - description = "WebSockets support for Yesod"; - license = stdenv.lib.licenses.mit; - }) {}; - "yi-language" = callPackage - ({ mkDerivation, alex, array, base, binary, containers - , data-default, hashable, microlens-platform, oo-prototypes - , pointedlist, regex-base, regex-tdfa, stdenv, template-haskell - , transformers-base, unordered-containers - }: - mkDerivation { - pname = "yi-language"; - version = "0.18.0"; - sha256 = "e86eaae8c0c21834d14dd9aaec50730df92c08e4ffa8846dc750d6b0033cc470"; - libraryHaskellDepends = [ - array base binary containers data-default hashable - microlens-platform oo-prototypes pointedlist regex-base regex-tdfa - template-haskell transformers-base unordered-containers - ]; - libraryToolDepends = [ alex ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/yi-editor/yi#readme"; - description = "Collection of language-related Yi libraries"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "yi-rope" = callPackage - ({ mkDerivation, base, binary, bytestring, deepseq, fingertree - , stdenv, text - }: - mkDerivation { - pname = "yi-rope"; - version = "0.11"; - sha256 = "9a9318693501bdbb3e8f3c19b0acd6c3cbd607a6e9d966201b613c41a1b71008"; - libraryHaskellDepends = [ - base binary bytestring deepseq fingertree text - ]; - doHaddock = false; - doCheck = false; - description = "A rope data structure used by Yi"; - license = stdenv.lib.licenses.gpl2; - }) {}; - "yjtools" = callPackage - ({ mkDerivation, base, stdenv }: - mkDerivation { - pname = "yjtools"; - version = "0.9.18"; - sha256 = "9b121c6fcece8241d87aec737458d49c0b76313e9e5e1e70f72b5f71cfc0eb8f"; - libraryHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "http://homepage3.nifty.com/salamander/second/projects/yjtools/index.xhtml"; - description = "some tools for Monad, List, Tuple and so on"; - license = "LGPL"; - }) {}; - "yoga" = callPackage - ({ mkDerivation, base, bindings-DSL, ieee754, stdenv }: - mkDerivation { - pname = "yoga"; - version = "0.0.0.5"; - sha256 = "30020283ef7b241787bae810b1f563bd2c7a6ada69a582b8d7cc020365015f91"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ base bindings-DSL ieee754 ]; - doHaddock = false; - doCheck = false; - description = "Bindings to Facebook's Yoga layout library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "youtube" = callPackage - ({ mkDerivation, base, bytestring, process, stdenv, utility-ht }: - mkDerivation { - pname = "youtube"; - version = "0.2.1.1"; - sha256 = "2e396a785f3d8f504f0e39ed8c87d0a748111ed40b26b950595d83c3fd840e25"; - isLibrary = false; - isExecutable = true; - enableSeparateDataOutput = true; - executableHaskellDepends = [ base bytestring process utility-ht ]; - doHaddock = false; - doCheck = false; - description = "Upload video to YouTube via YouTube API"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zero" = callPackage - ({ mkDerivation, base, semigroups, stdenv }: - mkDerivation { - pname = "zero"; - version = "0.1.4"; - sha256 = "38cdc62d9673b8b40999de69da2ec60dab7a65fb1c22133ecd54e0a2ec61d5d5"; - libraryHaskellDepends = [ base semigroups ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/phaazon/zero"; - description = "Semigroups with absorption"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zeromq4-haskell" = callPackage - ({ mkDerivation, async, base, bytestring, containers, exceptions - , monad-control, semigroups, stdenv, transformers - , transformers-base, zeromq - }: - mkDerivation { - pname = "zeromq4-haskell"; - version = "0.7.0"; - sha256 = "58d4504ee607cb681fc3da2474ed92afaefdb2dc34752b145aa9f746ab29079f"; - libraryHaskellDepends = [ - async base bytestring containers exceptions monad-control - semigroups transformers transformers-base - ]; - libraryPkgconfigDepends = [ zeromq ]; - doHaddock = false; - doCheck = false; - homepage = "https://gitlab.com/twittner/zeromq-haskell/"; - description = "Bindings to ZeroMQ 4.x"; - license = stdenv.lib.licenses.mit; - }) {inherit (pkgs) zeromq;}; - "zeromq4-patterns" = callPackage - ({ mkDerivation, async, base, binary, bytestring, exceptions - , stdenv, stm, zeromq4-haskell - }: - mkDerivation { - pname = "zeromq4-patterns"; - version = "0.3.1.0"; - sha256 = "74f3a82a72a22684449103c0786e290be2c14de9d48a3ea9d64a7cc063b33ed9"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - async base binary bytestring exceptions stm zeromq4-haskell - ]; - executableHaskellDepends = [ base ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/hverr/zeromq4-patterns#readme"; - description = "Haskell implementation of several ZeroMQ patterns"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zim-parser" = callPackage - ({ mkDerivation, array, base, base-compat, binary, binary-conduit - , bytestring, conduit, conduit-extra, lzma, stdenv - }: - mkDerivation { - pname = "zim-parser"; - version = "0.2.1.0"; - sha256 = "b27f6a395c54e0dac6926a5ea18b582aa21c5d91e31b53f8749f063947a15789"; - libraryHaskellDepends = [ - array base base-compat binary binary-conduit bytestring conduit - conduit-extra lzma - ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/robbinch/zim-parser#readme"; - description = "Read and parse ZIM files"; - license = stdenv.lib.licenses.gpl3; - }) {}; - "zip" = callPackage - ({ mkDerivation, base, bytestring, bzlib-conduit, case-insensitive - , cereal, conduit, conduit-extra, containers, digest, directory - , dlist, exceptions, filepath, monad-control, mtl, resourcet - , stdenv, text, time, transformers, transformers-base - }: - mkDerivation { - pname = "zip"; - version = "1.2.0"; - sha256 = "b61de150884e376923e247f8f7386966d6d5d1804238c42fd874b61fe3b27dc9"; - revision = "1"; - editedCabalFile = "084dfylc1h45r4v2zyld1vvrxs6x1ljq8hzinqrkv2ii748cmzdb"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base bytestring bzlib-conduit case-insensitive cereal conduit - conduit-extra containers digest directory dlist exceptions filepath - monad-control mtl resourcet text time transformers - transformers-base - ]; - executableHaskellDepends = [ base filepath ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/mrkkrp/zip"; - description = "Operations on zip archives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zip-archive" = callPackage - ({ mkDerivation, array, base, binary, bytestring, containers - , digest, directory, filepath, mtl, pretty, stdenv, text, time - , unix, zlib - }: - mkDerivation { - pname = "zip-archive"; - version = "0.4"; - sha256 = "5fbea91d95ae1b1ec73aed8a8c67c8bae89bc3b6f7d9da898f07209e4a4ada19"; - revision = "1"; - editedCabalFile = "1y4i0xblglhkj6nv2p0r2xgw8gqrhnsamkh7d389z68sf9zpgl6c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - array base binary bytestring containers digest directory filepath - mtl pretty text time unix zlib - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/jgm/zip-archive"; - description = "Library for creating and modifying zip archives"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zip-stream" = callPackage - ({ mkDerivation, base, binary, binary-conduit, bytestring, conduit - , conduit-extra, digest, directory, exceptions, filepath, mtl - , primitive, resourcet, stdenv, text, time, transformers - , transformers-base, zlib - }: - mkDerivation { - pname = "zip-stream"; - version = "0.2.0.1"; - sha256 = "b7c45c612f1f53546923162d73c644b9704d5293b1e767108728d3c08b46a587"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base binary binary-conduit bytestring conduit conduit-extra digest - exceptions mtl primitive resourcet text time transformers-base zlib - ]; - executableHaskellDepends = [ - base bytestring conduit conduit-extra directory filepath resourcet - text time transformers - ]; - doHaddock = false; - doCheck = false; - description = "ZIP archive streaming using conduits"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zippers" = callPackage - ({ mkDerivation, base, Cabal, cabal-doctest, lens, profunctors - , semigroupoids, semigroups, stdenv - }: - mkDerivation { - pname = "zippers"; - version = "0.2.5"; - sha256 = "2d127772564655df0cb99d5191b91a555797e66e535d0b8b4f5ed4d54097c085"; - revision = "3"; - editedCabalFile = "0y0klc2jaj611cjvmqi95dyj9yvribf9xhibn1andrz5rs6ysz3p"; - setupHaskellDepends = [ base Cabal cabal-doctest ]; - libraryHaskellDepends = [ - base lens profunctors semigroupoids semigroups - ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/ekmett/zippers/"; - description = "Traversal based zippers"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zlib" = callPackage - ({ mkDerivation, base, bytestring, stdenv, zlib }: - mkDerivation { - pname = "zlib"; - version = "0.6.2"; - sha256 = "0dcc7d925769bdbeb323f83b66884101084167501f11d74d21eb9bc515707fed"; - libraryHaskellDepends = [ base bytestring ]; - librarySystemDepends = [ zlib ]; - doHaddock = false; - doCheck = false; - description = "Compression and decompression in the gzip and zlib formats"; - license = stdenv.lib.licenses.bsd3; - }) {inherit (pkgs) zlib;}; - "zlib-bindings" = callPackage - ({ mkDerivation, base, bytestring, stdenv, zlib }: - mkDerivation { - pname = "zlib-bindings"; - version = "0.1.1.5"; - sha256 = "c83bb438f9b6c5fe860982731eb8ac7eff993e8b56cbc15ef5b471f229f79109"; - revision = "2"; - editedCabalFile = "0fq49694gqkab8m0vq4i879blswczwd66n7xh4r4gwiahf0ryvqc"; - libraryHaskellDepends = [ base bytestring zlib ]; - doHaddock = false; - doCheck = false; - homepage = "http://github.com/snapframework/zlib-bindings"; - description = "Low-level bindings to the zlib package"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zlib-lens" = callPackage - ({ mkDerivation, base, bytestring, profunctors, stdenv, zlib }: - mkDerivation { - pname = "zlib-lens"; - version = "0.1.2.1"; - sha256 = "e5a563453899e0896cfa3aed22a2fbfc67012990ace6d14631f31b704ff766eb"; - libraryHaskellDepends = [ base bytestring profunctors zlib ]; - doHaddock = false; - doCheck = false; - homepage = "http://lens.github.io/"; - description = "Lenses for zlib"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zot" = callPackage - ({ mkDerivation, base, monads-tf, stdenv }: - mkDerivation { - pname = "zot"; - version = "0.0.3"; - sha256 = "c8a9091b939e3f74aca6be3007a0066c8a1de69da4b62e22891bed543f8a2b32"; - revision = "1"; - editedCabalFile = "04gsbs6fvwpjjg1f6g1j17dxlfzsci9vmirk7mwqwmm9ha0a4hxm"; - isLibrary = false; - isExecutable = true; - enableSeparateDataOutput = true; - executableHaskellDepends = [ base monads-tf ]; - doHaddock = false; - doCheck = false; - description = "Zot language"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "zstd" = callPackage - ({ mkDerivation, base, bytestring, deepseq, ghc-prim, stdenv }: - mkDerivation { - pname = "zstd"; - version = "0.1.0.0"; - sha256 = "0875840799d987cf8f8dd5e0a7686978084b3088c07123e66f6f88561f474bff"; - libraryHaskellDepends = [ base bytestring deepseq ghc-prim ]; - doHaddock = false; - doCheck = false; - homepage = "https://github.com/facebookexperimental/hs-zstd"; - description = "Haskell bindings to the Zstandard compression algorithm"; - license = stdenv.lib.licenses.bsd3; - }) {}; - "ztail" = callPackage - ({ mkDerivation, array, base, bytestring, filepath, hinotify - , process, regex-posix, stdenv, time, unix, unordered-containers - }: - mkDerivation { - pname = "ztail"; - version = "1.2.0.2"; - sha256 = "a14341d51da6dbef9f0edcdefe185dbd7726880ec4e230855fb9871de7c07717"; - revision = "1"; - editedCabalFile = "0d0cpgb0v849zxl12c2gkm3x4nmyfycka1pcfix43lawx62rky8s"; - isLibrary = false; - isExecutable = true; - executableHaskellDepends = [ - array base bytestring filepath hinotify process regex-posix time - unix unordered-containers - ]; - doHaddock = false; - doCheck = false; - description = "Multi-file, colored, filtered log tailer"; - license = stdenv.lib.licenses.bsd3; - }) {}; - }; -in compiler.override { - initialPackages = stackPackages; - configurationCommon = { ... }: self: super: {}; - compilerConfig = self: super: {}; -} - diff --git a/src/app/kademlia-haskell/release2.nix b/src/app/kademlia-haskell/release2.nix deleted file mode 100644 index d32061e6983..00000000000 --- a/src/app/kademlia-haskell/release2.nix +++ /dev/null @@ -1,21 +0,0 @@ -# We use stack.yaml as a single source of truth for our Haskell build -# configuration. You can use Stack to build the package when you're writing -# Haskell, and Nix to build it for use in Coda, and they should both use the -# same dependencies, compiler version, etc. stack2nix is used to build -# packages.nix, based on the Stackage snapshot we use. To rebuild it, get -# stack2nix from https://github.com/input-output-hk/stack2nix and run: -# cd src/app/kademlia-haskell; stack2nix . > packages.nix - -# Library profiling is on by default, and approximately doubles compile time. -# Turn it off. -let pinnedNixpkgs = import (builtins.fetchTarball { - name = "nixpkgs-unstable-2019-03-18"; - url = https://github.com/nixos/nixpkgs/archive/0125544e2a0552590c87dca1583768b49ba911c0.tar.gz; - sha256 = "04xvlqw3zbq91zkfa506b2k1ajmj7pqh3nvdh9maabw6m5jhm5rl"; - }); -in -((import ./packages.nix { pkgs = pinnedNixpkgs {} ; }).override - {overrides = self: super: { - mkDerivation = args: super.mkDerivation (args // {enableLibraryProfiling = false;}); - }; - }).kademlia-haskell diff --git a/src/app/kademlia-haskell/stack.yaml b/src/app/kademlia-haskell/stack.yaml deleted file mode 100644 index 69a5872427c..00000000000 --- a/src/app/kademlia-haskell/stack.yaml +++ /dev/null @@ -1,15 +0,0 @@ -resolver: lts-13.7 -compiler: ghc-8.6.4 -packages: -- '.' -# uncomment this, fix the path, and comment out the extra-dep below to do local -# dev with the library -# - '/home/enolan/code/kademlia-bkase' -nix: - enable: false - packages: [gmp] -extra-deps: -- git: https://github.com/CodaProtocol/kademlia.git - commit: bd02de9c5cda6204e881bbc5bbc6e0e445706b1c -flags: {} -extra-package-dbs: [] diff --git a/src/app/libp2p_helper/build/DEBIAN/control b/src/app/libp2p_helper/build/DEBIAN/control deleted file mode 100644 index dfc71615860..00000000000 --- a/src/app/libp2p_helper/build/DEBIAN/control +++ /dev/null @@ -1,9 +0,0 @@ -Package: coda-discovery -Version: 0.1.DATE-HASH -Section: base -Priority: optional -Architecture: amd64 -Homepage: https://codaprotocol.com/ -Maintainer: o(1)Labs -Description: Coda Protocol Discovery libp2p - Coda Protocol Discovery libp2p diff --git a/src/app/libp2p_helper/default.nix b/src/app/libp2p_helper/default.nix index 18eb96ad069..75c1f725391 100644 --- a/src/app/libp2p_helper/default.nix +++ b/src/app/libp2p_helper/default.nix @@ -1,11 +1,11 @@ ((import (builtins.fetchTarball { - name = "nixpkgs-unstable-2019-03-18"; - url = https://github.com/nixos/nixpkgs/archive/0125544e2a0552590c87dca1583768b49ba911c0.tar.gz; - sha256 = "04xvlqw3zbq91zkfa506b2k1ajmj7pqh3nvdh9maabw6m5jhm5rl"; + name = "nixpkgs-stable-2019-12-05"; + url = https://github.com/nixos/nixpkgs/archive/19.09.tar.gz; + sha256 = "0mhqhq21y5vrr1f30qd2bvydv4bbbslvyzclhw0kdxmkgg3z4c92"; })) {}).buildGoModule rec { name = "libp2p_helper-${version}"; version = "0.1"; src = ./src; - modSha256 = "1spndcx0z50cmpfxfd0971nj9n0v77fghxl36hr1pvs6kv0ra5c3"; + modSha256 = "0wrqxik9z713w50w49ivy5c2vapk07fdmd0zsvk6kfkchkq1nsdy"; } diff --git a/src/app/libp2p_helper/src/codanet.go b/src/app/libp2p_helper/src/codanet.go index 8a1411d7ce2..32adf6ea7cf 100644 --- a/src/app/libp2p_helper/src/codanet.go +++ b/src/app/libp2p_helper/src/codanet.go @@ -24,6 +24,7 @@ import ( secio "github.com/libp2p/go-libp2p-secio" p2pconfig "github.com/libp2p/go-libp2p/config" mdns "github.com/libp2p/go-libp2p/p2p/discovery" + filters "github.com/libp2p/go-maddr-filter" tcp "github.com/libp2p/go-tcp-transport" ws "github.com/libp2p/go-ws-transport" ma "github.com/multiformats/go-multiaddr" @@ -38,9 +39,11 @@ type Helper struct { Ctx context.Context Pubsub *pubsub.PubSub Logger logging.EventLogger + Filters *filters.Filters DiscoveredPeers chan peer.AddrInfo Rendezvous string Discovery *discovery.RoutingDiscovery + Me peer.ID } type customValidator struct { @@ -62,6 +65,12 @@ func (cv customValidator) Select(key string, values [][]byte) (int, error) { // MakeHelper does all the initialization to run one host func MakeHelper(ctx context.Context, listenOn []ma.Multiaddr, externalAddr ma.Multiaddr, statedir string, pk crypto.PrivKey, networkID string) (*Helper, error) { logger := logging.Logger("codanet.Helper") + + me, err := peer.IDFromPrivateKey(pk) + if err != nil { + return nil, err + } + dso := dsb.DefaultOptions ds, err := dsb.NewDatastore(path.Join(statedir, "libp2p-peerstore-v0"), &dso) @@ -93,6 +102,8 @@ func MakeHelper(ctx context.Context, listenOn []ma.Multiaddr, externalAddr ma.Mu // gross hack to exfiltrate the DHT from the side effect of option evaluation kadch := make(chan *kad.IpfsDHT) + filters := filters.NewFilters() + // Make sure this doesn't get too out of sync with the defaults, // NewWithoutDefaults is considered unstable. host, err := p2p.NewWithoutDefaults(ctx, @@ -108,6 +119,7 @@ func MakeHelper(ctx context.Context, listenOn []ma.Multiaddr, externalAddr ma.Mu as = append(as, externalAddr) return as }), + p2p.Filters(filters), p2p.NATPortMap(), p2p.Routing( p2pconfig.RoutingC(func(host host.Host) (routing.PeerRouting, error) { @@ -138,6 +150,8 @@ func MakeHelper(ctx context.Context, listenOn []ma.Multiaddr, externalAddr ma.Mu Logger: logger, DiscoveredPeers: nil, Rendezvous: rendezvousString, + Filters: filters, Discovery: nil, + Me: me, }, nil } diff --git a/src/app/libp2p_helper/src/gen_keys/libp2p_priv_to_pub.go b/src/app/libp2p_helper/src/gen_keys/libp2p_priv_to_pub.go index 8bab933df42..472512d3613 100644 --- a/src/app/libp2p_helper/src/gen_keys/libp2p_priv_to_pub.go +++ b/src/app/libp2p_helper/src/gen_keys/libp2p_priv_to_pub.go @@ -1,27 +1,34 @@ package main + import ( - crypto "github.com/libp2p/go-libp2p-crypto" - b58 "github.com/mr-tron/base58/base58" - "os" - ) + crypto "github.com/libp2p/go-libp2p-crypto" + b58 "github.com/mr-tron/base58/base58" + "os" +) func main() { - if len(os.Args) != 2 { - println("usage: libp2p-priv-to-pub PRIVKEY_BASE58_STRING"); - } - privk_enc := os.Args[1] - privk_raw, err := b58.Decode(privk_enc) - if err != nil { panic(err); } + if len(os.Args) != 2 { + println("usage: libp2p-priv-to-pub PRIVKEY_BASE58_STRING") + } + privk_enc := os.Args[1] + privk_raw, err := b58.Decode(privk_enc) + if err != nil { + panic(err) + } - priv, err := crypto.UnmarshalPrivateKey(privk_raw) - if err != nil { panic(err); } + priv, err := crypto.UnmarshalPrivateKey(privk_raw) + if err != nil { + panic(err) + } - pub := priv.GetPublic() + pub := priv.GetPublic() - pubk_raw, err := crypto.MarshalPublicKey(pub) - if err != nil { panic(err); } + pubk_raw, err := crypto.MarshalPublicKey(pub) + if err != nil { + panic(err) + } - pubk_enc := b58.Encode(pubk_raw) + pubk_enc := b58.Encode(pubk_raw) - println(pubk_enc) + println(pubk_enc) } diff --git a/src/app/libp2p_helper/src/generate_methodidx/main.go b/src/app/libp2p_helper/src/generate_methodidx/main.go index 0049115c1b1..480fa2285ee 100644 --- a/src/app/libp2p_helper/src/generate_methodidx/main.go +++ b/src/app/libp2p_helper/src/generate_methodidx/main.go @@ -99,7 +99,7 @@ func main() { Command: "generate_methodidx", PackageName: "main", TypesAndValues: map[string][]string{ - "methodIdx": []string{"configure", "listen", "publish", "subscribe", "unsubscribe", "validationComplete", "generateKeypair", "openStream", "closeStream", "resetStream", "sendStreamMsg", "removeStreamHandler", "addStreamHandler", "listeningAddrs", "addPeer", "beginAdvertising"}, + "methodIdx": []string{"configure", "listen", "publish", "subscribe", "unsubscribe", "validationComplete", "generateKeypair", "openStream", "closeStream", "resetStream", "sendStreamMsg", "removeStreamHandler", "addStreamHandler", "listeningAddrs", "addPeer", "beginAdvertising", "findPeer", "listPeers", "banIP", "unbanIP"}, }, } diff --git a/src/app/libp2p_helper/src/go.mod b/src/app/libp2p_helper/src/go.mod index 383bb83eb21..754345040d5 100644 --- a/src/app/libp2p_helper/src/go.mod +++ b/src/app/libp2p_helper/src/go.mod @@ -4,72 +4,59 @@ go 1.12 require ( cloud.google.com/go v0.43.0 // indirect - github.com/Kubuxu/go-os-helper v0.0.1 // indirect - github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 // indirect github.com/btcsuite/goleveldb v1.0.0 // indirect github.com/campoy/jsonenums v0.0.0-20180221195324-eec6d38da64e github.com/coreos/bbolt v1.3.3 // indirect github.com/coreos/etcd v3.3.13+incompatible // indirect github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect github.com/davidlazar/go-crypto v0.0.0-20190522120613-62389b5e4ae0 // indirect - github.com/dgraph-io/badger v1.6.0 // indirect github.com/go-errors/errors v1.0.1 github.com/go-kit/kit v0.9.0 // indirect - github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect github.com/golang/snappy v0.0.1 // indirect github.com/google/pprof v0.0.0-20190723021845-34ac40c74b70 // indirect github.com/grpc-ecosystem/grpc-gateway v1.9.5 // indirect github.com/hashicorp/go-multierror v1.0.0 // indirect - github.com/hashicorp/golang-lru v0.5.3 // indirect - github.com/ipfs/go-cid v0.0.3 // indirect - github.com/ipfs/go-ds-badger v0.0.5 - github.com/ipfs/go-ds-leveldb v0.0.2 // indirect + github.com/ipfs/go-ds-badger v0.0.7 github.com/ipfs/go-ipfs-delay v0.0.1 // indirect github.com/ipfs/go-log v0.0.1 github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/kisielk/errcheck v1.2.0 // indirect github.com/kkdai/bstream v1.0.0 // indirect github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect github.com/kr/pty v1.1.8 // indirect + github.com/libp2p/go-buffer-pool v0.0.2 github.com/libp2p/go-conn-security v0.1.0 // indirect - github.com/libp2p/go-eventbus v0.0.3 // indirect - github.com/libp2p/go-libp2p v0.2.1 - github.com/libp2p/go-libp2p-circuit v0.1.1 // indirect - github.com/libp2p/go-libp2p-core v0.2.0 + github.com/libp2p/go-libp2p v0.4.2 + github.com/libp2p/go-libp2p-core v0.2.4 github.com/libp2p/go-libp2p-crypto v0.1.0 - github.com/libp2p/go-libp2p-discovery v0.1.0 + github.com/libp2p/go-libp2p-discovery v0.2.0 github.com/libp2p/go-libp2p-host v0.1.0 github.com/libp2p/go-libp2p-interface-connmgr v0.1.0 // indirect github.com/libp2p/go-libp2p-interface-pnet v0.1.0 // indirect - github.com/libp2p/go-libp2p-kad-dht v0.1.1 + github.com/libp2p/go-libp2p-kad-dht v0.3.0 github.com/libp2p/go-libp2p-metrics v0.1.0 // indirect github.com/libp2p/go-libp2p-net v0.1.0 github.com/libp2p/go-libp2p-peer v0.2.0 - github.com/libp2p/go-libp2p-peerstore v0.1.3 + github.com/libp2p/go-libp2p-peerstore v0.1.4 github.com/libp2p/go-libp2p-pnet v0.1.0 github.com/libp2p/go-libp2p-protocol v0.1.0 - github.com/libp2p/go-libp2p-pubsub v0.1.0 + github.com/libp2p/go-libp2p-pubsub v0.2.3 github.com/libp2p/go-libp2p-record v0.1.1 github.com/libp2p/go-libp2p-routing v0.1.0 - github.com/libp2p/go-libp2p-secio v0.1.1 - github.com/libp2p/go-libp2p-testing v0.1.0 // indirect + github.com/libp2p/go-libp2p-secio v0.2.1 github.com/libp2p/go-libp2p-transport v0.1.0 // indirect + github.com/libp2p/go-maddr-filter v0.0.5 github.com/libp2p/go-mplex v0.1.0 github.com/libp2p/go-stream-muxer v0.1.0 - github.com/libp2p/go-tcp-transport v0.1.0 + github.com/libp2p/go-tcp-transport v0.1.1 github.com/libp2p/go-testutil v0.1.0 // indirect - github.com/libp2p/go-ws-transport v0.1.0 + github.com/libp2p/go-ws-transport v0.1.2 github.com/magiconair/properties v1.8.1 // indirect github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e // indirect github.com/mattn/go-colorable v0.1.2 // indirect github.com/miekg/dns v1.1.15 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.1 // indirect github.com/mr-tron/base58 v1.1.2 - github.com/multiformats/go-multiaddr v0.0.4 - github.com/multiformats/go-multiaddr-dns v0.0.3 // indirect + github.com/multiformats/go-multiaddr v0.1.1 github.com/multiformats/go-multicodec v0.1.6 // indirect - github.com/multiformats/go-multihash v0.0.6 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/opentracing/opentracing-go v1.1.0 // indirect github.com/pelletier/go-toml v1.4.0 // indirect @@ -89,13 +76,12 @@ require ( github.com/whyrusleeping/go-smux-yamux v2.0.9+incompatible // indirect github.com/whyrusleeping/yamux v1.2.0 // indirect go.etcd.io/bbolt v1.3.3 // indirect - golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 + golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56 // indirect golang.org/x/image v0.0.0-20190802002840-cff245a6509b // indirect golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 // indirect golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 // indirect golang.org/x/tools v0.0.0-20190802220118-1d1727260058 // indirect - golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 // indirect google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64 // indirect google.golang.org/grpc v1.22.1 // indirect gopkg.in/src-d/go-cli.v0 v0.0.0-20190422143124-3a646154da79 // indirect diff --git a/src/app/libp2p_helper/src/go.sum b/src/app/libp2p_helper/src/go.sum index 7401d929045..28a3acac8f6 100644 --- a/src/app/libp2p_helper/src/go.sum +++ b/src/app/libp2p_helper/src/go.sum @@ -7,6 +7,9 @@ github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9 h1:HD8gA2tkByhMAwYaFAX9w2l7vxvBQ5NMoxDrkhqhtn4= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= +github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Kubuxu/go-os-helper v0.0.1 h1:EJiD2VUQyh5A9hWJLmc6iWg6yIcJ7jpBcwC8GMGXfDk= @@ -30,6 +33,10 @@ github.com/btcsuite/btcd v0.0.0-20190605094302-a0d1e3e36d50 h1:4i3KsuVA0o0KoBxAC github.com/btcsuite/btcd v0.0.0-20190605094302-a0d1e3e36d50/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 h1:mOg8/RgDSHTQ1R0IR+LMDuW4TDShPv+JzYHuR4GLoNA= github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= +github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3 h1:A/EVblehb75cUgXA5njHPn0kLAsykn6mJGz7rnmW5W0= +github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= +github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= @@ -66,6 +73,8 @@ github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018 h1:6xT9KW8zLC github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/davidlazar/go-crypto v0.0.0-20190522120613-62389b5e4ae0 h1:t2BzsfK9SPTlddm0l5PgRQp5fBzByku985NYG1otL/U= github.com/davidlazar/go-crypto v0.0.0-20190522120613-62389b5e4ae0/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= +github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f h1:BOaYiTvg8p9vBUXpklC22XSK/mifLF7lG9jtmYYi3Tc= +github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f h1:6itBiEUtu+gOzXZWn46bM5/qm8LlV6/byR7Yflx/y6M= github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= github.com/dgraph-io/badger v1.6.0-rc1 h1:JphPpoBZJ3WHha133BGYlQqltSGIhV+VsEID0++nN9A= @@ -79,6 +88,8 @@ github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f h1:dDxpBYafY/GYpcl github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20191112170834-c2139c5d712b h1:SeiGBzKrEtuDddnBABHkp4kq9sBGE9nuYmk6FPTg0zg= +github.com/dgryski/go-farm v0.0.0-20191112170834-c2139c5d712b/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dgryski/go-sip13 v0.0.0-20190329191031-25c5027a8c7b/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= @@ -98,6 +109,10 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -130,6 +145,8 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= @@ -165,6 +182,13 @@ github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAK github.com/ipfs/go-datastore v0.0.3/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.0.5 h1:q3OfiOZV5rlsK1H5V8benjeUApRfMGs4Mrhmr6NriQo= github.com/ipfs/go-datastore v0.0.5/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.1.0 h1:TOxI04l8CmO4zGtesENhzm4PwkFwJXY3rKiYaaMf9fI= +github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= +github.com/ipfs/go-datastore v0.1.1 h1:F4k0TkTAZGLFzBOrVKDAvch6JZtuN4NHkfdcEZL50aI= +github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= +github.com/ipfs/go-datastore v0.3.0/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= +github.com/ipfs/go-datastore v0.3.1 h1:SS1t869a6cctoSYmZXUk8eL6AzVXgASmKIWFNQkQ1jU= +github.com/ipfs/go-datastore v0.3.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= github.com/ipfs/go-ds-badger v0.0.2 h1:7ToQt7QByBhOTuZF2USMv+PGlMcBC7FW7FdgQ4FCsoo= @@ -173,21 +197,32 @@ github.com/ipfs/go-ds-badger v0.0.3 h1:sVYE2YlCzltznTZeAP1S+bp3qipz7VzogfZDtf6tG github.com/ipfs/go-ds-badger v0.0.3/go.mod h1:7AzMKCsGav0u46HpdLiAEAOqizR1H6AZsjpHpQSPYCQ= github.com/ipfs/go-ds-badger v0.0.5 h1:dxKuqw5T1Jm8OuV+lchA76H9QZFyPKZeLuT6bN42hJQ= github.com/ipfs/go-ds-badger v0.0.5/go.mod h1:g5AuuCGmr7efyzQhLL8MzwqcauPojGPUaHzfGTzuE3s= +github.com/ipfs/go-ds-badger v0.0.7 h1:NMyh88Q50HG6/S2YD58DLkq0c0/ZQPMbSojONH+PRf4= +github.com/ipfs/go-ds-badger v0.0.7/go.mod h1:qt0/fWzZDoPW6jpQeqUjR5kBfhDNB65jd9YlmAvpQBk= +github.com/ipfs/go-ds-badger v0.2.0 h1:3h0U3L4o0v7LT2qyK5GScXH23DoYxat+VU2a4Ldt8yo= +github.com/ipfs/go-ds-badger v0.2.0/go.mod h1:471n2X/Qtk8rRO1iuxcgdwmHJdWjDj9VRGhaP/tvoZw= github.com/ipfs/go-ds-leveldb v0.0.1 h1:Z0lsTFciec9qYsyngAw1f/czhRU35qBLR2vhavPFgqA= github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= github.com/ipfs/go-ds-leveldb v0.0.2/go.mod h1:CWFeBh5IAAscWyG/QRH+lJaAlnLWjsfPSNs4teyPUp0= +github.com/ipfs/go-ds-leveldb v0.1.0/go.mod h1:hqAW8y4bwX5LWcCtku2rFNX3vjDZCy5LZCg+cSZvYb8= github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= github.com/ipfs/go-ipfs-util v0.0.1 h1:Wz9bL2wB2YBJqggkA4dD7oSmqB4cAnpNbGrlHJulv50= github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-log v1.0.0 h1:BW3LQIiZzpNyolt84yvKNCd3FU+AK4VDw1hnHR+1aiI= +github.com/ipfs/go-log v1.0.0/go.mod h1:JO7RzlMK6rA+CIxFMLOuB6Wf5b81GDiKElL7UPSIKjA= github.com/ipfs/go-todocounter v0.0.1 h1:kITWA5ZcQZfrUnDNkRn04Xzh0YFaDFXsoO2A81Eb6Lw= github.com/ipfs/go-todocounter v0.0.1/go.mod h1:l5aErvQc8qKE2r7NDMjmq5UNAvuZy0rC8BHOplkWvZ4= +github.com/ipfs/go-todocounter v0.0.2 h1:9UBngSQhylg2UDcxSAtpkT+rEWFr26hDPXVStE8LFyc= +github.com/ipfs/go-todocounter v0.0.2/go.mod h1:l5aErvQc8qKE2r7NDMjmq5UNAvuZy0rC8BHOplkWvZ4= github.com/jackpal/gateway v1.0.5 h1:qzXWUJfuMdlLMtt0a3Dgt+xkWQiA5itDEITVJtuSwMc= github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= github.com/jackpal/go-nat-pmp v1.0.1 h1:i0LektDkO1QlrTm/cSuP+PyBCDnYvjPLGl4LdWEMiaA= github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec h1:DQqZhhDvrTrEQ3Qod5yfavcA064e53xlQ+xajiorXgM= github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= @@ -217,6 +252,8 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b h1:wxtKgYHEncAU00muMD06dzLiahtGM1eouRNOzVV7tdQ= github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= +github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d h1:68u9r4wEvL3gYg2jvAOgROwZ3H+Y3hIDk4tbbmIjcYQ= +github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -233,6 +270,7 @@ github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOS github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/libp2p/go-conn-security v0.0.1 h1:4kMMrqrt9EUNCNjX1xagSJC+bq16uqjMe9lk1KBMVNs= github.com/libp2p/go-conn-security v0.0.1/go.mod h1:bGmu51N0KU9IEjX7kl2PQjgZa40JQWnayTvNMgD/vyk= +github.com/libp2p/go-conn-security v0.1.0 h1:q8ii9TUOtSBD1gIoKTSOZIzPFP/agPM28amrCCoeIIA= github.com/libp2p/go-conn-security v0.1.0/go.mod h1:NQdPF4opCZ5twtEUadzPL0tNSdkrbFc/HmLO7eWqEzY= github.com/libp2p/go-conn-security-multistream v0.0.1 h1:XefjAQRHcnUaxKb26RGupToucx3uU4ecbOZ3aACXlDU= github.com/libp2p/go-conn-security-multistream v0.0.1/go.mod h1:nc9vud7inQ+d6SO0I/6dSWrdMnHnzZNHeyUQqrAJulE= @@ -241,8 +279,14 @@ github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2h github.com/libp2p/go-eventbus v0.0.2/go.mod h1:Hr/yGlwxA/stuLnpMiu82lpNKpvRy3EaJxPu40XYOwk= github.com/libp2p/go-eventbus v0.0.3 h1:4sB0NrwnWr6qGeq2RWUp/JG1wNajf6gyILInId72hrw= github.com/libp2p/go-eventbus v0.0.3/go.mod h1:Hr/yGlwxA/stuLnpMiu82lpNKpvRy3EaJxPu40XYOwk= +github.com/libp2p/go-eventbus v0.1.0 h1:mlawomSAjjkk97QnYiEmHsLu7E136+2oCWSHRUvMfzQ= +github.com/libp2p/go-eventbus v0.1.0/go.mod h1:vROgu5cs5T7cv7POWlWxBaVLxfSegC5UGQf8A2eEmx4= github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s= github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= +github.com/libp2p/go-flow-metrics v0.0.2 h1:U5TvqfoyR6GVRM+bC15Ux1ltar1kbj6Zw6xOVR02CZs= +github.com/libp2p/go-flow-metrics v0.0.2/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= +github.com/libp2p/go-flow-metrics v0.0.3 h1:8tAs/hSdNvUiLgtlSy3mxwxWP4I9y/jlkPFT7epKdeM= +github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= github.com/libp2p/go-libp2p v0.0.12/go.mod h1:l8kmLMc4DToz2TtA0aWEaE4/jVMALRKw8Kv2WTR0LHc= github.com/libp2p/go-libp2p v0.0.13 h1:F8EJzBX3eipwW1yrvlmpkpc3jh5YpGwZiG7zVAt8mjM= github.com/libp2p/go-libp2p v0.0.13/go.mod h1:99u6nHehR0M9pxJM682dq44GDdowQBcQPxXNTPGoEgU= @@ -251,20 +295,31 @@ github.com/libp2p/go-libp2p v0.1.1 h1:52sB0TJuDk2nYMcMfHOKaPoaayDZjaYVCq6Vk1ejUT github.com/libp2p/go-libp2p v0.1.1/go.mod h1:I00BRo1UuUSdpuc8Q2mN7yDF/oTUTRAX6JWpTiK9Rp8= github.com/libp2p/go-libp2p v0.2.1 h1:Z6po5cdEj+SvSppsPxeZIlKVVl0REA915fEa4YlcBNM= github.com/libp2p/go-libp2p v0.2.1/go.mod h1:HZbtEOrgZN4F1fGZVvkV+930Wx3DkqlpBlO8dIoZWds= +github.com/libp2p/go-libp2p v0.3.1 h1:opd8/1Sm9zFG37LzNQsIzMTMeBabhlcX5VlvLrNZPV0= +github.com/libp2p/go-libp2p v0.3.1/go.mod h1:e6bwxbdYH1HqWTz8faTChKGR0BjPc8p+6SyP8GTTR7Y= +github.com/libp2p/go-libp2p v0.4.2 h1:p0cthB0jDNHO4gH2HzS8/nAMMXbfUlFHs0jwZ4U+F2g= +github.com/libp2p/go-libp2p v0.4.2/go.mod h1:MNmgUxUw5pMsdOzMlT0EE7oKjRasl+WyVwM0IBlpKgQ= +github.com/libp2p/go-libp2p v6.0.23+incompatible h1:J/h9LNTeQwMhJeg3M96r/UOPLGxJn1vqJBb3LeKufpM= +github.com/libp2p/go-libp2p v6.0.23+incompatible/go.mod h1:CyUlFa6Mw04PkmMg8gBIlHUl8j3TrEiA6oFiF4SgD8w= github.com/libp2p/go-libp2p-autonat v0.0.4 h1:cZzdB9KW1ZkHnSjLCB6aFNw47XS4r+SecCVMuVB1xgo= github.com/libp2p/go-libp2p-autonat v0.0.4/go.mod h1:fs71q5Xk+pdnKU014o2iq1RhMs9/PMaG5zXRFNnIIT4= github.com/libp2p/go-libp2p-autonat v0.1.0 h1:aCWAu43Ri4nU0ZPO7NyLzUvvfqd0nE3dX0R/ZGYVgOU= github.com/libp2p/go-libp2p-autonat v0.1.0/go.mod h1:1tLf2yXxiE/oKGtDwPYWTSYG3PtvYlJmg7NeVtPRqH8= +github.com/libp2p/go-libp2p-autonat v0.1.1 h1:WLBZcIRsjZlWdAZj9CiBSvU2wQXoUOiS1Zk1tM7DTJI= +github.com/libp2p/go-libp2p-autonat v0.1.1/go.mod h1:OXqkeGOY2xJVWKAGV2inNF5aKN/djNA3fdpCWloIudE= github.com/libp2p/go-libp2p-blankhost v0.0.1 h1:/mZuuiwntNR8RywnCFlGHLKrKLYne+qciBpQXWqp5fk= github.com/libp2p/go-libp2p-blankhost v0.0.1/go.mod h1:Ibpbw/7cPPYwFb7PACIWdvxxv0t0XCCI10t7czjAjTc= github.com/libp2p/go-libp2p-blankhost v0.1.1/go.mod h1:pf2fvdLJPsC1FsVrNP3DUUvMzUts2dsLLBEpo1vW1ro= github.com/libp2p/go-libp2p-blankhost v0.1.3/go.mod h1:KML1//wiKR8vuuJO0y3LUd1uLv+tlkGTAr3jC0S5cLg= +github.com/libp2p/go-libp2p-blankhost v0.1.4/go.mod h1:oJF0saYsAXQCSfDq254GMNmLNz6ZTHTOvtF4ZydUvwU= github.com/libp2p/go-libp2p-circuit v0.0.4 h1:yOgEadnSVFj3e9KLBuLG+edqCImeav0VXxXvcimpOUQ= github.com/libp2p/go-libp2p-circuit v0.0.4/go.mod h1:p1cHJnB9xnX5/1vZLkXgKwmNEOQQuF/Hp+SkATXnXYk= github.com/libp2p/go-libp2p-circuit v0.1.0 h1:eniLL3Y9aq/sryfyV1IAHj5rlvuyj3b7iz8tSiZpdhY= github.com/libp2p/go-libp2p-circuit v0.1.0/go.mod h1:Ahq4cY3V9VJcHcn1SBXjr78AbFkZeIRmfunbA7pmFh8= github.com/libp2p/go-libp2p-circuit v0.1.1 h1:eopfG9fAg6rEHWQO1TSrLosXDgYbbbu/RTva/tBANus= github.com/libp2p/go-libp2p-circuit v0.1.1/go.mod h1:Ahq4cY3V9VJcHcn1SBXjr78AbFkZeIRmfunbA7pmFh8= +github.com/libp2p/go-libp2p-circuit v0.1.4 h1:Phzbmrg3BkVzbqd4ZZ149JxCuUWu2wZcXf/Kr6hZJj8= +github.com/libp2p/go-libp2p-circuit v0.1.4/go.mod h1:CY67BrEjKNDhdTk8UgBX1Y/H5c3xkAcs3gnksxY7osU= github.com/libp2p/go-libp2p-core v0.0.1/go.mod h1:g/VxnTZ/1ygHxH3dKok7Vno1VfpvGcGip57wjTU4fco= github.com/libp2p/go-libp2p-core v0.0.3 h1:+IonUYY0nJZLb5Fdv6a6DOjtGP1L8Bb3faamiI2q5FY= github.com/libp2p/go-libp2p-core v0.0.3/go.mod h1:j+YQMNz9WNSkNezXOsahp9kwZBKBvxLpKD316QWSJXE= @@ -272,6 +327,12 @@ github.com/libp2p/go-libp2p-core v0.0.4/go.mod h1:jyuCQP356gzfCFtRKyvAbNkyeuxb7O github.com/libp2p/go-libp2p-core v0.0.6/go.mod h1:0d9xmaYAVY5qmbp/fcgxHT3ZJsLjYeYPMJAUKpaCHrE= github.com/libp2p/go-libp2p-core v0.2.0 h1:ycFtuNwtZBAJSxzaHbyv6NjG3Yj5Nmra1csHaQ3zwaw= github.com/libp2p/go-libp2p-core v0.2.0/go.mod h1:X0eyB0Gy93v0DZtSYbEM7RnMChm9Uv3j7yRXjO77xSI= +github.com/libp2p/go-libp2p-core v0.2.2 h1:Sv1ggdoMx9c7v7FOFkR7agraHCnAgqYsXrU1ARSRUMs= +github.com/libp2p/go-libp2p-core v0.2.2/go.mod h1:8fcwTbsG2B+lTgRJ1ICZtiM5GWCWZVoVrLaDRvIRng0= +github.com/libp2p/go-libp2p-core v0.2.4 h1:Et6ykkTwI6PU44tr8qUF9k43vP0aduMNniShAbUJJw8= +github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g= +github.com/libp2p/go-libp2p-core v0.2.5 h1:iP1PIiIrlRrGbE1fYq2918yBc5NlCH3pFuIPSWU9hds= +github.com/libp2p/go-libp2p-core v0.2.5/go.mod h1:6+5zJmKhsf7yHn1RbmYDu08qDUpIUxGdqHuEZckmZOA= github.com/libp2p/go-libp2p-crypto v0.0.1 h1:JNQd8CmoGTohO/akqrH16ewsqZpci2CbgYH/LmYl8gw= github.com/libp2p/go-libp2p-crypto v0.0.1/go.mod h1:yJkNyDmO341d5wwXxDUGO0LykUVT72ImHNUqh5D/dBE= github.com/libp2p/go-libp2p-crypto v0.1.0 h1:k9MFy+o2zGDNGsaoZl0MA3iZ75qXxr9OOoAZF+sD5OQ= @@ -280,14 +341,19 @@ github.com/libp2p/go-libp2p-discovery v0.0.1 h1:VkjCKmJQMwpDUwtA8Qc1z3TQAHJgQ5nG github.com/libp2p/go-libp2p-discovery v0.0.1/go.mod h1:ZkkF9xIFRLA1xCc7bstYFkd80gBGK8Fc1JqGoU2i+zI= github.com/libp2p/go-libp2p-discovery v0.1.0 h1:j+R6cokKcGbnZLf4kcNwpx6mDEUPF3N6SrqMymQhmvs= github.com/libp2p/go-libp2p-discovery v0.1.0/go.mod h1:4F/x+aldVHjHDHuX85x1zWoFTGElt8HnoDzwkFZm29g= +github.com/libp2p/go-libp2p-discovery v0.2.0 h1:1p3YSOq7VsgaL+xVHPi8XAmtGyas6D2J6rWBEfz/aiY= +github.com/libp2p/go-libp2p-discovery v0.2.0/go.mod h1:s4VGaxYMbw4+4+tsoQTqh7wfxg97AEdo4GYBt6BadWg= github.com/libp2p/go-libp2p-host v0.0.1 h1:dnqusU+DheGcdxrE718kG4XgHNuL2n9eEv8Rg5zy8hQ= github.com/libp2p/go-libp2p-host v0.0.1/go.mod h1:qWd+H1yuU0m5CwzAkvbSjqKairayEHdR5MMl7Cwa7Go= +github.com/libp2p/go-libp2p-host v0.1.0 h1:OZwENiFm6JOK3YR5PZJxkXlJE8a5u8g4YvAUrEV2MjM= github.com/libp2p/go-libp2p-host v0.1.0/go.mod h1:5+fWuLbDn8OxoxPN3CV0vsLe1hAKScSMbT84qRfxum8= github.com/libp2p/go-libp2p-interface-connmgr v0.0.1 h1:Q9EkNSLAOF+u90L88qmE9z/fTdjLh8OsJwGw74mkwk4= github.com/libp2p/go-libp2p-interface-connmgr v0.0.1/go.mod h1:GarlRLH0LdeWcLnYM/SaBykKFl9U5JFnbBGruAk/D5k= +github.com/libp2p/go-libp2p-interface-connmgr v0.1.0 h1:dFYeUNi5NjKIAVE+yQJULS99CovMUx9p/IgxI+2e+uc= github.com/libp2p/go-libp2p-interface-connmgr v0.1.0/go.mod h1:bmmppYG/Bc6FTdLYEdpuSfifDa5Nr+5Ia1Mm6lE2+Eg= github.com/libp2p/go-libp2p-interface-pnet v0.0.1 h1:7GnzRrBTJHEsofi1ahFdPN9Si6skwXQE9UqR2S+Pkh8= github.com/libp2p/go-libp2p-interface-pnet v0.0.1/go.mod h1:el9jHpQAXK5dnTpKA4yfCNBZXvrzdOU75zz+C6ryp3k= +github.com/libp2p/go-libp2p-interface-pnet v0.1.0 h1:PaofJtuDcrGBukgTymiGyuI313nxARRQFmE/oxZXlog= github.com/libp2p/go-libp2p-interface-pnet v0.1.0/go.mod h1:8+FQ08+xMxR6BjG0tUZoQzKxPAV2W7ck6IxjCWqZ6ek= github.com/libp2p/go-libp2p-kad-dht v0.0.8 h1:oUnAqkCAWYvAoF5TmnDIf4k1fIcipMAFec6sQlTXGKE= github.com/libp2p/go-libp2p-kad-dht v0.0.8/go.mod h1:fGQfSQWWOxQFB97kETE09lYRLPRKaZZdguIq98fE5PI= @@ -295,25 +361,35 @@ github.com/libp2p/go-libp2p-kad-dht v0.1.0 h1:cupGornmncdQCnjArAv9Txkqy43wgQCxoe github.com/libp2p/go-libp2p-kad-dht v0.1.0/go.mod h1:EiH74cOsCxcu2Yh1XxQMpf1uHcLNm/hYEJBOIRlzHNE= github.com/libp2p/go-libp2p-kad-dht v0.1.1 h1:IH6NQuoUv5w5e1O8Jc3KyVDtr0rNd0G9aaADpLI1xVo= github.com/libp2p/go-libp2p-kad-dht v0.1.1/go.mod h1:1kj2Rk5pX3/0RwqMm9AMNCT7DzcMHYhgDN5VTi+cY0M= +github.com/libp2p/go-libp2p-kad-dht v0.3.0 h1:KUJaqW3kkHP6zcL0s1CDg+yO0NYNNPkXmG4FrnZbwzM= +github.com/libp2p/go-libp2p-kad-dht v0.3.0/go.mod h1:7nBsfkMq2zN1qPs6n/fNopJfvmK9NZRNicRrCnwQR8o= +github.com/libp2p/go-libp2p-kad-dht v0.3.1 h1:Ogu9ZFXX/VJfcaZklBIsS2HV+lfMrYy9mHvYfoADpj4= +github.com/libp2p/go-libp2p-kad-dht v0.3.1/go.mod h1:xPb9+X4cU5TchWtgfuJ73hyMZZ/MRt3E+PrA1Dap/ow= github.com/libp2p/go-libp2p-kbucket v0.0.1 h1:7H5hM851hkEpLOFjrVNSrrxo6J4bWrUQxxv+z1JW9xk= github.com/libp2p/go-libp2p-kbucket v0.0.1/go.mod h1:Y0iQDHRTk/ZgM8PC4jExoF+E4j+yXWwRkdldkMa5Xm4= github.com/libp2p/go-libp2p-kbucket v0.2.0 h1:FB2a0VkOTNGTP5gu/I444u4WabNM9V1zCkQcWb7zajI= github.com/libp2p/go-libp2p-kbucket v0.2.0/go.mod h1:JNymBToym3QXKBMKGy3m29+xprg0EVr/GJFHxFEdgh8= +github.com/libp2p/go-libp2p-kbucket v0.2.1 h1:q9Jfwww9XnXc1K9dyYuARJxJvIvhgYVaQCuziO/dF3c= +github.com/libp2p/go-libp2p-kbucket v0.2.1/go.mod h1:/Rtu8tqbJ4WQ2KTCOMJhggMukOLNLNPY1EtEWWLxUvc= github.com/libp2p/go-libp2p-loggables v0.0.1 h1:HVww9oAnINIxbt69LJNkxD8lnbfgteXR97Xm4p3l9ps= github.com/libp2p/go-libp2p-loggables v0.0.1/go.mod h1:lDipDlBNYbpyqyPX/KcoO+eq0sJYEVR2JgOexcivchg= github.com/libp2p/go-libp2p-loggables v0.1.0 h1:h3w8QFfCt2UJl/0/NW4K829HX/0S4KD31PQ7m8UXXO8= github.com/libp2p/go-libp2p-loggables v0.1.0/go.mod h1:EyumB2Y6PrYjr55Q3/tiJ/o3xoDasoRYM7nOzEpoa90= github.com/libp2p/go-libp2p-metrics v0.0.1 h1:yumdPC/P2VzINdmcKZd0pciSUCpou+s0lwYCjBbzQZU= github.com/libp2p/go-libp2p-metrics v0.0.1/go.mod h1:jQJ95SXXA/K1VZi13h52WZMa9ja78zjyy5rspMsC/08= +github.com/libp2p/go-libp2p-metrics v0.1.0 h1:v7YMUTHNobFaQeqaMfJJMbnK3EPlZeb6/KFm4gE9dks= github.com/libp2p/go-libp2p-metrics v0.1.0/go.mod h1:rpoJmXWFxnj7qs5sJ02sxSzrhaZvpqBn8GCG6Sx6E1k= github.com/libp2p/go-libp2p-mplex v0.2.0/go.mod h1:Ejl9IyjvXJ0T9iqUTE1jpYATQ9NM3g+OtR+EMMODbKo= github.com/libp2p/go-libp2p-mplex v0.2.1 h1:E1xaJBQnbSiTHGI1gaBKmKhu1TUKkErKJnE8iGvirYI= github.com/libp2p/go-libp2p-mplex v0.2.1/go.mod h1:SC99Rxs8Vuzrf/6WhmH41kNn13TiYdAWNYHrwImKLnE= github.com/libp2p/go-libp2p-nat v0.0.4 h1:+KXK324yaY701On8a0aGjTnw8467kW3ExKcqW2wwmyw= github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY= +github.com/libp2p/go-libp2p-nat v0.0.5 h1:/mH8pXFVKleflDL1YwqMg27W9GD8kjEx7NY0P6eGc98= +github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE= github.com/libp2p/go-libp2p-net v0.0.1/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= github.com/libp2p/go-libp2p-net v0.0.2 h1:qP06u4TYXfl7uW/hzqPhlVVTSA2nw1B/bHBJaUnbh6M= github.com/libp2p/go-libp2p-net v0.0.2/go.mod h1:Yt3zgmlsHOgUWSXmt5V/Jpz9upuJBE8EgNU9DrCcR8c= +github.com/libp2p/go-libp2p-net v0.1.0 h1:3t23V5cR4GXcNoFriNoZKFdUZEUDZgUkvfwkD2INvQE= github.com/libp2p/go-libp2p-net v0.1.0/go.mod h1:R5VZbutk75tkC5YJJS61OCO1NWoajxYjCEV2RoHh3FY= github.com/libp2p/go-libp2p-netutil v0.0.1 h1:LgD6+skofkOx8z6odD9+MZHKjupv3ng1u6KRhaADTnA= github.com/libp2p/go-libp2p-netutil v0.0.1/go.mod h1:GdusFvujWZI9Vt0X5BKqwWWmZFxecf9Gt03cKxm2f/Q= @@ -330,23 +406,32 @@ github.com/libp2p/go-libp2p-peerstore v0.1.0/go.mod h1:2CeHkQsr8svp4fZ+Oi9ykN1HB github.com/libp2p/go-libp2p-peerstore v0.1.2/go.mod h1:BJ9sHlm59/80oSkpWgr1MyY1ciXAXV397W6h1GH/uKI= github.com/libp2p/go-libp2p-peerstore v0.1.3 h1:wMgajt1uM2tMiqf4M+4qWKVyyFc8SfA+84VV9glZq1M= github.com/libp2p/go-libp2p-peerstore v0.1.3/go.mod h1:BJ9sHlm59/80oSkpWgr1MyY1ciXAXV397W6h1GH/uKI= +github.com/libp2p/go-libp2p-peerstore v0.1.4 h1:d23fvq5oYMJ/lkkbO4oTwBp/JP+I/1m5gZJobNXCE/k= +github.com/libp2p/go-libp2p-peerstore v0.1.4/go.mod h1:+4BDbDiiKf4PzpANZDAT+knVdLxvqh7hXOujessqdzs= github.com/libp2p/go-libp2p-pnet v0.0.1 h1:2e5d15M8XplUKsU4Fqrll5eDfqGg/7mHUufLkhbfKHM= github.com/libp2p/go-libp2p-pnet v0.0.1/go.mod h1:bWN8HqdpgCdKnXSCsJhbWjiU3UZFa/tIe4no5jCmHVw= github.com/libp2p/go-libp2p-pnet v0.1.0 h1:kRUES28dktfnHNIRW4Ro78F7rKBHBiw5MJpl0ikrLIA= github.com/libp2p/go-libp2p-pnet v0.1.0/go.mod h1:ZkyZw3d0ZFOex71halXRihWf9WH/j3OevcJdTmD0lyE= github.com/libp2p/go-libp2p-protocol v0.0.1 h1:+zkEmZ2yFDi5adpVE3t9dqh/N9TbpFWywowzeEzBbLM= github.com/libp2p/go-libp2p-protocol v0.0.1/go.mod h1:Af9n4PiruirSDjHycM1QuiMi/1VZNHYcK8cLgFJLZ4s= +github.com/libp2p/go-libp2p-protocol v0.1.0 h1:HdqhEyhg0ToCaxgMhnOmUO8snQtt/kQlcjVk3UoJU3c= github.com/libp2p/go-libp2p-protocol v0.1.0/go.mod h1:KQPHpAabB57XQxGrXCNvbL6UEXfQqUgC/1adR2Xtflk= github.com/libp2p/go-libp2p-pubsub v0.0.1 h1:iJWpvBDZiZOoRBGqEifu9yUHti9ptnSODHt6tgrBC6c= github.com/libp2p/go-libp2p-pubsub v0.0.1/go.mod h1:fYKlZBOF2yrJzYlgeEVFSbYWfbS+E8Zix6gMZ0A6WgE= github.com/libp2p/go-libp2p-pubsub v0.1.0 h1:SmQeMa7IUv5vadh0fYgYsafWCBA1sCy5d/68kIYqGcU= github.com/libp2p/go-libp2p-pubsub v0.1.0/go.mod h1:ZwlKzRSe1eGvSIdU5bD7+8RZN/Uzw0t1Bp9R1znpR/Q= +github.com/libp2p/go-libp2p-pubsub v0.2.3 h1:qJRnRnM7Z4xnHb4i6EBb3DKQXRPgtFWlKP4AmfJudLQ= +github.com/libp2p/go-libp2p-pubsub v0.2.3/go.mod h1:Jscj3fk23R5mCrOwb625xjVs5ZEyTZcx/OlTwMDqU+g= +github.com/libp2p/go-libp2p-pubsub v0.2.4 h1:O4BcaKpPQ9p82yTBtzIzgDFoOXkqhrQpfcVac3FAywU= +github.com/libp2p/go-libp2p-pubsub v0.2.4/go.mod h1:1tJwAfySvZQ49R9uTVlkwtSTMVLeQQdrnLTJrr91gVc= github.com/libp2p/go-libp2p-record v0.0.1 h1:zN7AS3X46qmwsw5JLxdDuI43cH5UYwovKxHPjKBYQxw= github.com/libp2p/go-libp2p-record v0.0.1/go.mod h1:grzqg263Rug/sRex85QrDOLntdFAymLDLm7lxMgU79Q= github.com/libp2p/go-libp2p-record v0.1.0 h1:wHwBGbFzymoIl69BpgwIu0O6ta3TXGcMPvHUAcodzRc= github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q= github.com/libp2p/go-libp2p-record v0.1.1 h1:ZJK2bHXYUBqObHX+rHLSNrM3M8fmJUlUHrodDPPATmY= github.com/libp2p/go-libp2p-record v0.1.1/go.mod h1:VRgKajOyMVgP/F0L5g3kH7SVskp17vFi2xheb5uMJtg= +github.com/libp2p/go-libp2p-record v0.1.2 h1:M50VKzWnmUrk/M5/Dz99qO9Xh4vs8ijsK+7HkJvRP+0= +github.com/libp2p/go-libp2p-record v0.1.2/go.mod h1:pal0eNcT5nqZaTV7UGhqeGqxFgGdsU/9W//C8dqjQDk= github.com/libp2p/go-libp2p-routing v0.0.1 h1:hPMAWktf9rYi3ME4MG48qE7dq1ofJxiQbfdvpNntjhc= github.com/libp2p/go-libp2p-routing v0.0.1/go.mod h1:N51q3yTr4Zdr7V8Jt2JIktVU+3xBBylx1MZeVA6t1Ys= github.com/libp2p/go-libp2p-routing v0.1.0 h1:hFnj3WR3E2tOcKaGpyzfP4gvFZ3t8JkQmbapN0Ct+oU= @@ -357,6 +442,10 @@ github.com/libp2p/go-libp2p-secio v0.1.0 h1:NNP5KLxuP97sE5Bu3iuwOWyT/dKEGMN5zSLM github.com/libp2p/go-libp2p-secio v0.1.0/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8= github.com/libp2p/go-libp2p-secio v0.1.1 h1:NQ9nTGmyf7/pgiVdThRrZylPsOQObVMyhT1XG9sEyOQ= github.com/libp2p/go-libp2p-secio v0.1.1/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8= +github.com/libp2p/go-libp2p-secio v0.2.0 h1:ywzZBsWEEz2KNTn5RtzauEDq5RFEefPsttXYwAWqHng= +github.com/libp2p/go-libp2p-secio v0.2.0/go.mod h1:2JdZepB8J5V9mBp79BmwsaPQhRPNN2NrnB2lKQcdy6g= +github.com/libp2p/go-libp2p-secio v0.2.1 h1:eNWbJTdyPA7NxhP7J3c5lT97DC5d+u+IldkgCYFTPVA= +github.com/libp2p/go-libp2p-secio v0.2.1/go.mod h1:cWtZpILJqkqrSkiYcDBh5lA3wbT2Q+hz3rJQq3iftD8= github.com/libp2p/go-libp2p-swarm v0.0.1/go.mod h1:mh+KZxkbd3lQnveQ3j2q60BM1Cw2mX36XXQqwfPOShs= github.com/libp2p/go-libp2p-swarm v0.0.2 h1:cpHHXTeU2IgUu8LPemF7vaLPGtVC6VxMoll2EwqlC+E= github.com/libp2p/go-libp2p-swarm v0.0.2/go.mod h1:n0cAAcKyndIrJWctQwjqXlAdIPBZzfdpBjx1SSvz30g= @@ -364,14 +453,20 @@ github.com/libp2p/go-libp2p-swarm v0.1.0 h1:HrFk2p0awrGEgch9JXK/qp/hfjqQfgNxpLWn github.com/libp2p/go-libp2p-swarm v0.1.0/go.mod h1:wQVsCdjsuZoc730CgOvh5ox6K8evllckjebkdiY5ta4= github.com/libp2p/go-libp2p-swarm v0.1.1 h1:QW7pjyTRIxt9yyBid52YmMRGtkFXUE/rbEVWsQ0ae+w= github.com/libp2p/go-libp2p-swarm v0.1.1/go.mod h1:4NVJaLwq/dr5kEq79Jo6pMin7ZFwLx73ln1FTefR91Q= +github.com/libp2p/go-libp2p-swarm v0.2.1 h1:9A8oQqPIZvbaRyrjViHeDYS7fE7fNtP7BRWdJrBHbe8= +github.com/libp2p/go-libp2p-swarm v0.2.1/go.mod h1:x07b4zkMFo2EvgPV2bMTlNmdQc8i+74Jjio7xGvsTgU= +github.com/libp2p/go-libp2p-swarm v0.2.2 h1:T4hUpgEs2r371PweU3DuH7EOmBIdTBCwWs+FLcgx3bQ= +github.com/libp2p/go-libp2p-swarm v0.2.2/go.mod h1:fvmtQ0T1nErXym1/aa1uJEyN7JzaTNyBcHImCxRpPKU= github.com/libp2p/go-libp2p-testing v0.0.1/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= github.com/libp2p/go-libp2p-testing v0.0.2/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= github.com/libp2p/go-libp2p-testing v0.0.4/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= github.com/libp2p/go-libp2p-testing v0.1.0/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= +github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= github.com/libp2p/go-libp2p-transport v0.0.1/go.mod h1:UzbUs9X+PHOSw7S3ZmeOxfnwaQY5vGDzZmKPod3N3tk= github.com/libp2p/go-libp2p-transport v0.0.4 h1:/CPHQMN75/IQwkhBxxIo6p6PtL3rwFZtlzBROT3e8mw= github.com/libp2p/go-libp2p-transport v0.0.4/go.mod h1:StoY3sx6IqsP6XKoabsPnHCwqKXWUMWU7Rfcsubee/A= +github.com/libp2p/go-libp2p-transport v0.1.0 h1:q68SOTvX+71mk+n5eE3+FnUEPY5UL1CSFImH0bq0Vg8= github.com/libp2p/go-libp2p-transport v0.1.0/go.mod h1:iL3c2tV3OVldqSwJrds8pmIWf4t/TwiF+eI/mhw/jjQ= github.com/libp2p/go-libp2p-transport-upgrader v0.0.1 h1:rNtXkY6dty46mxYOHHAZQchI7gQdJStF683FhVnei/k= github.com/libp2p/go-libp2p-transport-upgrader v0.0.1/go.mod h1:NJpUAgQab/8K6K0m+JmZCe5RUXG10UMEx4kWe9Ipj5c= @@ -400,6 +495,12 @@ github.com/libp2p/go-msgio v0.0.4 h1:agEFehY3zWJFUHK6SEMR7UYmk2z6kC3oeCM7ybLhguA github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= github.com/libp2p/go-nat v0.0.3 h1:l6fKV+p0Xa354EqQOQP+d8CivdLM4kl5GxC1hSc/UeI= github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= +github.com/libp2p/go-nat v0.0.4 h1:KbizNnq8YIf7+Hn7+VFL/xE0eDrkPru2zIO9NMwL8UQ= +github.com/libp2p/go-nat v0.0.4/go.mod h1:Nmw50VAvKuk38jUBcmNh6p9lUJLoODbJRvYAa/+KSDo= +github.com/libp2p/go-openssl v0.0.2 h1:9pP2d3Ubaxkv7ZisLjx9BFwgOGnQdQYnfcH29HNY3ls= +github.com/libp2p/go-openssl v0.0.2/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0= +github.com/libp2p/go-openssl v0.0.3 h1:wjlG7HvQkt4Fq4cfH33Ivpwp0omaElYEi9z26qaIkIk= +github.com/libp2p/go-openssl v0.0.3/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= github.com/libp2p/go-reuseport v0.0.1 h1:7PhkfH73VXfPJYKQ6JwS5I/eVcoyYi9IMNGc6FWpFLw= github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= github.com/libp2p/go-reuseport-transport v0.0.1/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= @@ -416,6 +517,8 @@ github.com/libp2p/go-tcp-transport v0.0.2 h1:EzOSRaHpyrGpJ5qe+9SaxJM1mrWlkSLFfNT github.com/libp2p/go-tcp-transport v0.0.2/go.mod h1:VjZFHasNJ0QiJQNNwiFDy25qyGWTXQWs8GM5DR4/L1k= github.com/libp2p/go-tcp-transport v0.1.0 h1:IGhowvEqyMFknOar4FWCKSWE0zL36UFKQtiRQD60/8o= github.com/libp2p/go-tcp-transport v0.1.0/go.mod h1:oJ8I5VXryj493DEJ7OsBieu8fcg2nHGctwtInJVpipc= +github.com/libp2p/go-tcp-transport v0.1.1 h1:yGlqURmqgNA2fvzjSgZNlHcsd/IulAnKM8Ncu+vlqnw= +github.com/libp2p/go-tcp-transport v0.1.1/go.mod h1:3HzGvLbx6etZjnFlERyakbaYPdfjg2pWP97dFZworkY= github.com/libp2p/go-testutil v0.0.1 h1:Xg+O0G2HIMfHqBOBDcMS1iSZJ3GEcId4qOxCQvsGZHk= github.com/libp2p/go-testutil v0.0.1/go.mod h1:iAcJc/DKJQanJ5ws2V+u5ywdL2n12X1WbbEG+Jjy69I= github.com/libp2p/go-testutil v0.1.0/go.mod h1:81b2n5HypcVyrCg/MJx4Wgfp/VHojytjVe/gLzZ2Ehc= @@ -423,9 +526,12 @@ github.com/libp2p/go-ws-transport v0.0.2 h1:PtK1AoM16nm96FwPBQoq+4T4t9LdDwOhkB+m github.com/libp2p/go-ws-transport v0.0.2/go.mod h1:p3bKjDWHEgtuKKj+2OdPYs5dAPIjtpQGHF2tJfGz7Ww= github.com/libp2p/go-ws-transport v0.1.0 h1:F+0OvvdmPTDsVc4AjPHjV7L7Pk1B7D5QwtDcKE2oag4= github.com/libp2p/go-ws-transport v0.1.0/go.mod h1:rjw1MG1LU9YDC6gzmwObkPd/Sqwhw7yT74kj3raBFuo= +github.com/libp2p/go-ws-transport v0.1.2 h1:VnxQcLfSGtqupqPpBNu8fUiCv+IN1RJ2BcVqQEM+z8E= +github.com/libp2p/go-ws-transport v0.1.2/go.mod h1:dsh2Ld8F+XNmzpkaAijmg5Is+e9l6/1tK/6VFOdN69Y= github.com/libp2p/go-yamux v1.2.2/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= github.com/libp2p/go-yamux v1.2.3 h1:xX8A36vpXb59frIzWFdEgptLMsOANMFq2K7fPRlunYI= github.com/libp2p/go-yamux v1.2.3/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= +github.com/libp2p/go-yamux v1.2.4/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -435,11 +541,13 @@ github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0X github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.1.4 h1:rCMZsU2ScVSYcAsOXgmC6+AKOK+6pmQTOcw03nfwYV0= @@ -449,6 +557,8 @@ github.com/miekg/dns v1.1.14 h1:wkQWn9wIp4mZbwW8XV6Km6owkvRPbOiV004ZM2CkGvA= github.com/miekg/dns v1.1.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.15 h1:CSSIDtllwGLMoA6zjdKnaE6Tx6eVUxQ29LUgGetiDCI= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.22 h1:Jm64b3bO9kP43ddLjL2EY3Io6bmy1qGb9Xxz6TqS6rc= +github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16 h1:5W7KhL8HVF3XCFOweFD3BNESdnO8ewyYTFT2R+/b8FQ= @@ -456,6 +566,9 @@ github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+ github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= github.com/minio/sha256-simd v0.1.0 h1:U41/2erhAKcmSI14xh/ZTUdBPOzDOIfS93ibzUSl8KM= github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= +github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= +github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= +github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -467,6 +580,8 @@ github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVq github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.2 h1:ZEw4I2EgPKDJ2iEw0cNmLB3ROrEmkOtXIkaG7wZg+78= github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mr-tron/base58 v1.1.3 h1:v+sk57XuaCKGXpWtVBX8YJzO7hMGx4Aajh4TQbdEFdc= +github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiformats/go-base32 v0.0.3 h1:tw5+NhuwaOjJCC5Pp82QuXbrmLzWg7uxlMFp8Nq/kkI= github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= github.com/multiformats/go-multiaddr v0.0.1 h1:/QUV3VBMDI6pi6xfiw7lr6xhDWWvQKn9udPn68kLSdY= @@ -475,15 +590,28 @@ github.com/multiformats/go-multiaddr v0.0.2 h1:RBysRCv5rv3FWlhKWKoXv8tnsCUpEpIZp github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= github.com/multiformats/go-multiaddr v0.0.4 h1:WgMSI84/eRLdbptXMkMWDXPjPq7SPLIgGUVm2eroyU4= github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= +github.com/multiformats/go-multiaddr v0.1.1 h1:rVAztJYMhCQ7vEFr8FvxW3mS+HF2eY/oPbOMeS0ZDnE= +github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= +github.com/multiformats/go-multiaddr v0.1.2 h1:HWYHNSyyllbQopmVIF5K7JKJugiah+L9/kuZKHbmNdQ= +github.com/multiformats/go-multiaddr v0.1.2/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= github.com/multiformats/go-multiaddr-dns v0.0.2 h1:/Bbsgsy3R6e3jf2qBahzNHzww6usYaZ0NhNH3sqdFS8= github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= github.com/multiformats/go-multiaddr-dns v0.0.3 h1:P19q/k9jwmtgh+qXFkKfgFM7rCg/9l5AVqh7VNxSXhs= github.com/multiformats/go-multiaddr-dns v0.0.3/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= +github.com/multiformats/go-multiaddr-dns v0.2.0 h1:YWJoIDwLePniH7OU5hBnDZV6SWuvJqJ0YtN6pLeH9zA= +github.com/multiformats/go-multiaddr-dns v0.2.0/go.mod h1:TJ5pr5bBO7Y1B18djPuRsVkduhQH2YqYSbxWJzYGdK0= github.com/multiformats/go-multiaddr-fmt v0.0.1 h1:5YjeOIzbX8OTKVaN72aOzGIYW7PnrZrnkDyOfAWRSMA= github.com/multiformats/go-multiaddr-fmt v0.0.1/go.mod h1:aBYjqL4T/7j4Qx+R73XSv/8JsgnRFlf0w2KGLCmXl3Q= +github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= +github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= github.com/multiformats/go-multiaddr-net v0.0.1 h1:76O59E3FavvHqNg7jvzWzsPSW5JSi/ek0E4eiDVbg9g= github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= +github.com/multiformats/go-multiaddr-net v0.1.0 h1:ZepO8Ezwovd+7b5XPPDhQhayk1yt0AJpzQBpq9fejx4= +github.com/multiformats/go-multiaddr-net v0.1.0/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= +github.com/multiformats/go-multiaddr-net v0.1.1 h1:jFFKUuXTXv+3ARyHZi3XUqQO+YWMKgBdhEvuGRfnL6s= +github.com/multiformats/go-multiaddr-net v0.1.1/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= github.com/multiformats/go-multibase v0.0.1 h1:PN9/v21eLywrFWdFNsFKaU04kLJzuYzmrJR+ubhT9qA= github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= github.com/multiformats/go-multicodec v0.1.6 h1:4u6lcjbE4VVVoigU4QJSSVYsGVP4j2jtDkR8lPwOrLE= @@ -494,10 +622,17 @@ github.com/multiformats/go-multihash v0.0.5 h1:1wxmCvTXAifAepIMyF39vZinRw5sbqjPs github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po= github.com/multiformats/go-multihash v0.0.6 h1:cAVKO4epVd+SSpYJQD6d3vbdqQJvsrtGbTGzsp+V094= github.com/multiformats/go-multihash v0.0.6/go.mod h1:XuKXPp8VHcTygube3OWZC+aZrA+H1IhmjoCDtJc7PXM= +github.com/multiformats/go-multihash v0.0.8 h1:wrYcW5yxSi3dU07n5jnuS5PrNwyHy0zRHGVoUugWvXg= +github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.0.9/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= +github.com/multiformats/go-multihash v0.0.10 h1:lMoNbh2Ssd9PUF74Nz008KGzGPlfeV6wH3rit5IIGCM= +github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multistream v0.0.1 h1:JV4VfSdY9n7ECTtY59/TlSyFCzRILvYx4T4Ws8ZgihU= github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= github.com/multiformats/go-multistream v0.1.0 h1:UpO6jrsjqs46mqAK3n6wKRYFhugss9ArzbyUzU+4wkQ= github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= +github.com/multiformats/go-varint v0.0.1 h1:TR/0rdQtnNxuN2IhiB639xC3tWM4IUi7DkTBVTdGW/M= +github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= @@ -546,6 +681,7 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= +github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= @@ -566,6 +702,7 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -581,6 +718,7 @@ github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdz github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +github.com/whyrusleeping/go-logging v0.0.1/go.mod h1:lDPYj54zutzG1XYfHAhcc7oNXEburHQBn+Iqd4yS4vE= github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f h1:M/lL30eFZTKnomXY6huvM6G0+gVquFNf6mxghaWlFUg= github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= github.com/whyrusleeping/go-smux-multiplex v3.0.16+incompatible h1:iqksILj8STw03EJQe7Laj4ubnw+ojOyik18cd5vPL1o= @@ -594,12 +732,15 @@ github.com/whyrusleeping/mafmt v1.2.8 h1:TCghSl5kkwEE0j+sU/gudyhVMRlpBin8fMBBHg5 github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30 h1:nMCC9Pwz1pxfC1Y6mYncdk+kq8d5aLx0Q+/gyZGE44M= github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= +github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9 h1:Y1/FEOpaCpD21WxrmfeIYCFPuVPRCY2XZTWzTNHGw30= +github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSvJi5zk5GLKVuid9TVjS9a0OmLIDKTfoZBL6Ow= github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg= github.com/whyrusleeping/yamux v1.1.5 h1:4CK3aUUJQu0qpKZv5gEWJjNOQtdbdDhVVS6PJ+HimdE= github.com/whyrusleeping/yamux v1.1.5/go.mod h1:E8LnQQ8HKx5KD29HZFUwM1PxCOdPRzGwur1mcYhXcD8= +github.com/whyrusleeping/yamux v1.2.0 h1:PzUrk7/Z0g/N5V4/+DesmKXYcCToALgj+SbATgs0B34= github.com/whyrusleeping/yamux v1.2.0/go.mod h1:Cgw3gpb4DrDZ1FrP/5pxg/cpiY54Gr5uCXwUylwi2GE= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -609,9 +750,26 @@ go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.1 h1:8dP3SGL7MPB94crU3bEPplMPe83FI4EouesJUeFHv50= +go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= +go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.5.1 h1:rsqfU5vBkVknbhUGbAUwQKR2H4ItV8tjJ+6kJX4cxHM= +go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.4.0 h1:f3WCSC2KzAcBXGATIxAB1E2XuCpNU255wNKZ505qi3E= +go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0 h1:nR6NoDBgAf67s68NhaXbsojM+2gxp3S1hWkHDl27pVU= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -631,6 +789,11 @@ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM= +golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -643,6 +806,10 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f h1:J5lckAjkw6qYlOZNj90mLYNTEKDvWeuc1yieZ8qUzUE= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190607214518-6fa95d984e88/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= @@ -672,6 +839,9 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 h1:Ao/3l156eZf2AW5wK8a7/smtodRU+gha3+BeqJ69lRk= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191204025024-5ee1b9f4859a h1:+HHJiFUXVOIS9mr1ThqkQD1N8vpFCfCShqADBM12KTc= +golang.org/x/net v0.0.0-20191204025024-5ee1b9f4859a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -705,6 +875,12 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 h1:4y9KwBHBgBNwDbtu44R5o1fdOCQUEXhbk/P4A9WmJq0= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e h1:9vRrk9YW2BTzLP0VCB9ZDjU4cPqkg+IDWL7XgxA1yxQ= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -730,13 +906,24 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190610181509-5ae6a9745e44/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190802220118-1d1727260058 h1:OsDcfiJHbqcv+S4eovUaiPY2ILzR76hXrjILS4sV4Wg= golang.org/x/tools v0.0.0-20190802220118-1d1727260058/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191205225056-3393d29bb9fe h1:BEVcKURC7E0EF+vD1l52Jb3LOM5Iwu7OI5FpdPuU50o= +golang.org/x/tools v0.0.0-20191205225056-3393d29bb9fe/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3 h1:P6iTFmrTQqWrqLZPX1VMzCUbCRCAUXSUsSpkEOvWzJ0= golang.org/x/xerrors v0.0.0-20190212162355-a5947ffaace3/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522 h1:bhOzK9QyoD0ogCnFro1m2mz41+Ib0oOhfJnBp5MR4K4= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -783,4 +970,6 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190607181801-497c8f037f5a/go.mod h1:JlmFZigtG9vBVR3QGIQ9g/Usz4BzH+Xm6Z8iHQWRYUw= honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/src/app/libp2p_helper/src/libp2p_helper/main.go b/src/app/libp2p_helper/src/libp2p_helper/main.go index 50848bd83d1..ff915d226fe 100644 --- a/src/app/libp2p_helper/src/libp2p_helper/main.go +++ b/src/app/libp2p_helper/src/libp2p_helper/main.go @@ -9,12 +9,17 @@ import ( "fmt" "io" "log" + gonet "net" "os" + "runtime/debug" + "strconv" "sync" "time" mdns "github.com/libp2p/go-libp2p/p2p/discovery" + "encoding/base64" + "github.com/go-errors/errors" logging "github.com/ipfs/go-log" logwriter "github.com/ipfs/go-log/writer" @@ -25,7 +30,7 @@ import ( protocol "github.com/libp2p/go-libp2p-core/protocol" discovery "github.com/libp2p/go-libp2p-discovery" pubsub "github.com/libp2p/go-libp2p-pubsub" - b58 "github.com/mr-tron/base58/base58" + filter "github.com/libp2p/go-maddr-filter" "github.com/multiformats/go-multiaddr" logging2 "github.com/whyrusleeping/go-logging" ) @@ -38,14 +43,16 @@ type subscription struct { } type app struct { - P2p *codanet.Helper - Ctx context.Context - Subs map[int]subscription - Validators map[int]chan bool - Streams map[int]net.Stream - OutLock sync.Mutex - Out *bufio.Writer - RpcLock sync.Mutex + P2p *codanet.Helper + Ctx context.Context + Subs map[int]subscription + Validators map[int]chan bool + ValidatorMutex *sync.Mutex + Streams map[int]net.Stream + OutLock sync.Mutex + Out *bufio.Writer + UnsafeNoTrustIP bool + Extra *os.File } var seqs = make(chan int) @@ -70,8 +77,18 @@ const ( listeningAddrs addPeer beginAdvertising + findPeer + listPeers + banIP + unbanIP ) +type codaPeerInfo struct { + Libp2pPort int `json:"libp2p_port"` + Host string `json:"host"` + PeerID string `json:"peer_id"` +} + type envelope struct { Method methodIdx `json:"method"` Seqno int `json:"seqno"` @@ -82,6 +99,7 @@ func (app *app) writeMsg(msg interface{}) { app.OutLock.Lock() defer app.OutLock.Unlock() bytes, err := json.Marshal(msg) + app.Extra.Write(bytes) if err == nil { n, err := app.Out.Write(bytes) if err != nil { @@ -141,12 +159,56 @@ func needsDHT() error { return badRPC(errors.New("helper not yet joined to pubsub")) } +func parseMultiaddrWithID(ma multiaddr.Multiaddr, id peer.ID) (*codaPeerInfo, error) { + ipComponent, tcpMaddr := multiaddr.SplitFirst(ma) + if !(ipComponent.Protocol().Code == multiaddr.P_IP4 || ipComponent.Protocol().Code == multiaddr.P_IP6) { + return nil, badRPC(errors.New(fmt.Sprintf("only IP connections are supported right now, how did this peer connect?: %s", ma.String()))) + } + + tcpComponent, _ := multiaddr.SplitFirst(tcpMaddr) + if tcpComponent.Protocol().Code != multiaddr.P_TCP { + return nil, badRPC(errors.New("only TCP connections are supported right now, how did this peer connect?")) + } + + port, err := strconv.Atoi(tcpComponent.Value()) + if err != nil { + return nil, err + } + + return &codaPeerInfo{Libp2pPort: port, Host: ipComponent.Value(), PeerID: peer.IDB58Encode(id)}, nil +} + +func findPeerInfo(app *app, id peer.ID) (*codaPeerInfo, error) { + if app.P2p == nil { + return nil, needsConfigure() + } + + conns := app.P2p.Host.Network().ConnsToPeer(id) + + if len(conns) == 0 { + if app.UnsafeNoTrustIP { + app.P2p.Logger.Info("UnsafeNoTrustIP: pretending it's localhost") + return &codaPeerInfo{Libp2pPort: 0, Host: "127.0.0.1", PeerID: peer.IDB58Encode(id)}, nil + } + return nil, badp2p(errors.New("tried to find peer info but no open connections to that peer ID")) + } + + conn := conns[0] + + maybePeer, err := parseMultiaddrWithID(conn.RemoteMultiaddr(), conn.RemotePeer()) + if err != nil { + return nil, err + } + return maybePeer, nil +} + type configureMsg struct { - Statedir string `json:"statedir"` - Privk string `json:"privk"` - NetworkID string `json:"network_id"` - ListenOn []string `json:"ifaces"` - External string `json:"external_maddr"` + Statedir string `json:"statedir"` + Privk string `json:"privk"` + NetworkID string `json:"network_id"` + ListenOn []string `json:"ifaces"` + External string `json:"external_maddr"` + UnsafeNoTrustIP bool `json:"unsafe_no_trust_ip"` } type discoveredPeerUpcall struct { @@ -156,7 +218,8 @@ type discoveredPeerUpcall struct { } func (m *configureMsg) run(app *app) (interface{}, error) { - privkBytes, err := b58.Decode(m.Privk) + app.UnsafeNoTrustIP = m.UnsafeNoTrustIP + privkBytes, err := codaDecode(m.Privk) if err != nil { return nil, badRPC(err) } @@ -227,7 +290,7 @@ func (t *publishMsg) run(app *app) (interface{}, error) { return nil, needsDHT() } - data, err := b58.Decode(t.Data) + data, err := codaDecode(t.Data) if err != nil { return nil, badRPC(err) } @@ -243,9 +306,21 @@ type subscribeMsg struct { } type publishUpcall struct { - Upcall string `json:"upcall"` - Subscription int `json:"subscription_idx"` - Data string `json:"data"` + Upcall string `json:"upcall"` + Subscription int `json:"subscription_idx"` + Data string `json:"data"` + Sender *codaPeerInfo `json:"sender"` +} + +// we use base64 for encoding blobs in our JSON protocol. there are more +// efficient options but this one is easy to reach to. + +func codaEncode(data []byte) string { + return base64.StdEncoding.EncodeToString(data) +} + +func codaDecode(data string) ([]byte, error) { + return base64.StdEncoding.DecodeString(data) } func (s *subscribeMsg) run(app *app) (interface{}, error) { @@ -256,12 +331,33 @@ func (s *subscribeMsg) run(app *app) (interface{}, error) { return nil, needsDHT() } err := app.P2p.Pubsub.RegisterTopicValidator(s.Topic, func(ctx context.Context, id peer.ID, msg *pubsub.Message) bool { + if id == app.P2p.Me { + // messages from ourself are valid. + app.P2p.Logger.Info("would have validated but it's from us!") + return true + } + seqno := <-seqs - ch := make(chan bool) + ch := make(chan bool, 1) + app.ValidatorMutex.Lock() app.Validators[seqno] = ch + app.ValidatorMutex.Unlock() + + app.P2p.Logger.Info("validating a new pubsub message ...") + + sender, err := findPeerInfo(app, id) + + if err != nil && !app.UnsafeNoTrustIP { + app.P2p.Logger.Errorf("failed to connect to peer %s that just sent us a pubsub message, dropping it", peer.IDB58Encode(id)) + app.ValidatorMutex.Lock() + defer app.ValidatorMutex.Unlock() + delete(app.Validators, seqno) + return false + } + app.writeMsg(validateUpcall{ - PeerID: id.Pretty(), - Data: b58.Encode(msg.Data), + Sender: sender, + Data: codaEncode(msg.Data), Seqno: seqno, Upcall: "validate", Idx: s.Subscription, @@ -270,15 +366,26 @@ func (s *subscribeMsg) run(app *app) (interface{}, error) { // Wait for the validation response, but be sure to honor any timeout/deadline in ctx select { case <-ctx.Done(): - // do NOT delete app.Validators[seqno] here! the ocaml side doesn't + // XXX: do 🅽🅾🆃 delete app.Validators[seqno] here! the ocaml side doesn't // care about the timeout and will validate it anyway. // validationComplete will remove app.Validators[seqno] once the // coda process gets around to it. + app.P2p.Logger.Error("validation timed out :(") + if app.UnsafeNoTrustIP { + app.P2p.Logger.Info("validated!") + return true + } + app.P2p.Logger.Info("unvalidated :(") return false case res := <-ch: + if !res { + app.P2p.Logger.Error("why u fail to validate :(") + } else { + app.P2p.Logger.Info("validated!") + } return res } - }, pubsub.WithValidatorConcurrency(1), pubsub.WithValidatorTimeout(5*time.Second)) + }, pubsub.WithValidatorTimeout(5*time.Minute)) if err != nil { return nil, badp2p(err) @@ -299,15 +406,21 @@ func (s *subscribeMsg) run(app *app) (interface{}, error) { for { msg, err := sub.Next(ctx) if err == nil { - data := b58.Encode(msg.Data) - app.writeMsg(publishUpcall{ - Upcall: "publish", - Subscription: s.Subscription, - Data: data, - }) + sender, err := findPeerInfo(app, msg.ReceivedFrom) + if err != nil && !app.UnsafeNoTrustIP { + app.P2p.Logger.Errorf("failed to connect to peer %s that just sent us an already-validated pubsub message, dropping it", peer.IDB58Encode(msg.ReceivedFrom)) + } else { + data := codaEncode(msg.Data) + app.writeMsg(publishUpcall{ + Upcall: "publish", + Subscription: s.Subscription, + Data: data, + Sender: sender, + }) + } } else { if ctx.Err() != context.Canceled { - log.Print("sub.Next failed: ", err) + app.P2p.Logger.Error("sub.Next failed: ", err) } else { break } @@ -328,17 +441,18 @@ func (u *unsubscribeMsg) run(app *app) (interface{}, error) { if sub, ok := app.Subs[u.Subscription]; ok { sub.Sub.Cancel() sub.Cancel() + delete(app.Subs, u.Subscription) return "unsubscribe success", nil } return nil, badRPC(errors.New("subscription not found")) } type validateUpcall struct { - PeerID string `json:"peer_id"` - Data string `json:"data"` - Seqno int `json:"seqno"` - Upcall string `json:"upcall"` - Idx int `json:"subscription_idx"` + Sender *codaPeerInfo `json:"sender"` + Data string `json:"data"` + Seqno int `json:"seqno"` + Upcall string `json:"upcall"` + Idx int `json:"subscription_idx"` } type validationCompleteMsg struct { @@ -350,6 +464,8 @@ func (r *validationCompleteMsg) run(app *app) (interface{}, error) { if app.P2p == nil { return nil, needsConfigure() } + app.ValidatorMutex.Lock() + defer app.ValidatorMutex.Unlock() if ch, ok := app.Validators[r.Seqno]; ok { ch <- r.Valid delete(app.Validators, r.Seqno) @@ -387,7 +503,7 @@ func (*generateKeypairMsg) run(app *app) (interface{}, error) { return nil, badp2p(err) } - return generatedKeypair{Private: b58.Encode(privkBytes), Public: b58.Encode(pubkBytes), PeerID: peer.IDB58Encode(peerID)}, nil + return generatedKeypair{Private: codaEncode(privkBytes), Public: codaEncode(pubkBytes), PeerID: peer.IDB58Encode(peerID)}, nil } type streamLostUpcall struct { @@ -421,7 +537,7 @@ func handleStreamReads(app *app, stream net.Stream, idx int) { if len != 0 { app.writeMsg(incomingMsgUpcall{ Upcall: "incomingStreamMsg", - Data: b58.Encode(buf[:len]), + Data: codaEncode(buf[:len]), StreamIdx: idx, }) } @@ -447,9 +563,8 @@ func handleStreamReads(app *app, stream net.Stream, idx int) { } type openStreamResult struct { - StreamIdx int `json:"stream_idx"` - RemoteAddr string `json:"remote_addr"` - RemotePeerID string `json:"remote_peerid"` + StreamIdx int `json:"stream_idx"` + Peer codaPeerInfo `json:"peer"` } func (o *openStreamMsg) run(app *app) (interface{}, error) { @@ -470,13 +585,20 @@ func (o *openStreamMsg) run(app *app) (interface{}, error) { return nil, badp2p(err) } + maybePeer, err := parseMultiaddrWithID(stream.Conn().RemoteMultiaddr(), stream.Conn().RemotePeer()) + + if err != nil { + stream.Reset() + return nil, badp2p(err) + } + app.Streams[streamIdx] = stream go func() { // FIXME HACK: allow time for the openStreamResult to get printed before we start inserting stream events time.Sleep(250 * time.Millisecond) handleStreamReads(app, stream, streamIdx) }() - return openStreamResult{StreamIdx: streamIdx, RemoteAddr: stream.Conn().RemoteMultiaddr().String(), RemotePeerID: stream.Conn().RemotePeer().String()}, nil + return openStreamResult{StreamIdx: streamIdx, Peer: *maybePeer}, nil } type closeStreamMsg struct { @@ -507,6 +629,7 @@ func (cs *resetStreamMsg) run(app *app) (interface{}, error) { } if stream, ok := app.Streams[cs.StreamIdx]; ok { err := stream.Reset() + delete(app.Streams, cs.StreamIdx) if err != nil { return nil, badp2p(err) } @@ -524,15 +647,15 @@ func (cs *sendStreamMsgMsg) run(app *app) (interface{}, error) { if app.P2p == nil { return nil, needsConfigure() } - data, err := b58.Decode(cs.Data) + data, err := codaDecode(cs.Data) if err != nil { return nil, badRPC(err) } if stream, ok := app.Streams[cs.StreamIdx]; ok { - _, err := stream.Write(data) + n, err := stream.Write(data) if err != nil { - return nil, badp2p(err) + return nil, wrapError(badp2p(err), fmt.Sprintf("only wrote %d out of %d bytes", n, len(data))) } return "sendStreamMsg success", nil } @@ -544,11 +667,10 @@ type addStreamHandlerMsg struct { } type incomingStreamUpcall struct { - Upcall string `json:"upcall"` - RemoteAddr string `json:"remote_addr"` - RemotePeerID string `json:"remote_peerid"` - StreamIdx int `json:"stream_idx"` - Protocol string `json:"protocol"` + Upcall string `json:"upcall"` + Peer codaPeerInfo `json:"peer"` + StreamIdx int `json:"stream_idx"` + Protocol string `json:"protocol"` } func (as *addStreamHandlerMsg) run(app *app) (interface{}, error) { @@ -556,14 +678,18 @@ func (as *addStreamHandlerMsg) run(app *app) (interface{}, error) { return nil, needsConfigure() } app.P2p.Host.SetStreamHandler(protocol.ID(as.Protocol), func(stream net.Stream) { + peerinfo, err := parseMultiaddrWithID(stream.Conn().RemoteMultiaddr(), stream.Conn().RemotePeer()) + if err != nil { + app.P2p.Logger.Errorf("failed to parse remote connection information, silently dropping stream: %s", err.Error()) + return + } streamIdx := <-seqs app.Streams[streamIdx] = stream app.writeMsg(incomingStreamUpcall{ - Upcall: "incomingStream", - RemoteAddr: stream.Conn().RemoteMultiaddr().String(), - RemotePeerID: stream.Conn().RemotePeer().String(), - StreamIdx: streamIdx, - Protocol: as.Protocol, + Upcall: "incomingStream", + Peer: *peerinfo, + StreamIdx: streamIdx, + Protocol: as.Protocol, }) handleStreamReads(app, stream, streamIdx) }) @@ -657,9 +783,9 @@ func (ap *beginAdvertisingMsg) run(app *app) (interface{}, error) { ctx, cancel := context.WithTimeout(app.Ctx, 15*time.Second) defer cancel() if err := app.P2p.Host.Connect(ctx, info); err != nil { - app.P2p.Logger.Warning("couldn't connect to %s peer %v (maybe the network ID mismatched?): %v", source, info.Loggable(), err) + app.P2p.Logger.Warningf("couldn't connect to %s peer %v (maybe the network ID mismatched?): %v", source, info.Loggable(), err) } else { - app.P2p.Logger.Info("Found a %s peer: %s", source, info.Loggable()) + app.P2p.Logger.Infof("Found a %s peer: %s", source, info.Loggable()) app.P2p.Host.Peerstore().AddAddrs(info.ID, info.Addrs, peerstore.ConnectedAddrTTL) addrStrings := make([]string, len(info.Addrs)) for i, a := range info.Addrs { @@ -681,8 +807,17 @@ func (ap *beginAdvertisingMsg) run(app *app) (interface{}, error) { } }() + if err := app.P2p.Dht.Bootstrap(app.Ctx); err != nil { + return nil, badp2p(err) + } + + discovery.Advertise(app.Ctx, routingDiscovery, app.P2p.Rendezvous) + // report dht peers go func() { + // wait a bit for our advertisement to go out and get some responses + time.Sleep(5 * time.Second) + for { // default is to yield only 100 peers at a time. for now, always be // looking... TODO: Is there a better way to use discovery? Should we only @@ -698,13 +833,107 @@ func (ap *beginAdvertisingMsg) run(app *app) (interface{}, error) { } }() - if err := app.P2p.Dht.Bootstrap(app.Ctx); err != nil { - return nil, badp2p(err) + return "beginAdvertising success", nil +} + +type findPeerMsg struct { + PeerID string `json:"peer_id"` +} + +func (ap *findPeerMsg) run(app *app) (interface{}, error) { + id, err := peer.IDB58Decode(ap.PeerID) + if err != nil { + return nil, err } - discovery.Advertise(app.Ctx, routingDiscovery, app.P2p.Rendezvous) + maybePeer, err := findPeerInfo(app, id) - return "beginAdvertising success", nil + if err != nil { + return nil, err + } + + return *maybePeer, nil +} + +type listPeersMsg struct { +} + +func (lp *listPeersMsg) run(app *app) (interface{}, error) { + if app.P2p == nil { + return nil, needsConfigure() + } + + connsHere := app.P2p.Host.Network().Conns() + + peerInfos := make([]codaPeerInfo, len(connsHere)) + + for _, conn := range connsHere { + maybePeer, err := parseMultiaddrWithID(conn.RemoteMultiaddr(), conn.RemotePeer()) + if err != nil { + app.P2p.Logger.Warning("skipping maddr ", conn.RemoteMultiaddr().String(), " because it failed to parse: ", err.Error()) + continue + } + peerInfos = append(peerInfos, *maybePeer) + } + + return peerInfos, nil +} + +type banIPMsg struct { + IP string `json:"ip"` +} + +func (ban *banIPMsg) run(app *app) (interface{}, error) { + if app.P2p == nil { + return nil, needsConfigure() + } + + ip := gonet.ParseIP(ban.IP).To4() + + if ip == nil { + // TODO: how to compute mask for IPv6? + return nil, badRPC(errors.New("unparsable IP or IPv6")) + } + + ipnet := gonet.IPNet{Mask: gonet.IPv4Mask(255, 255, 255, 255), IP: ip} + + currentAction, isFromRule := app.P2p.Filters.ActionForFilter(ipnet) + + app.P2p.Filters.AddFilter(ipnet, filter.ActionDeny) + + if currentAction == filter.ActionDeny && isFromRule { + return "banIP already banned", nil + } + return "banIP success", nil +} + +type unbanIPMsg struct { + IP string `json:"ip"` +} + +func (unban *unbanIPMsg) run(app *app) (interface{}, error) { + if app.P2p == nil { + return nil, needsConfigure() + } + + ip := gonet.ParseIP(unban.IP).To4() + + if ip == nil { + // TODO: how to compute mask for IPv6? + return nil, badRPC(errors.New("unparsable IP or IPv6")) + } + + ipnet := gonet.IPNet{Mask: gonet.IPv4Mask(255, 255, 255, 255), IP: ip} + + currentAction, isFromRule := app.P2p.Filters.ActionForFilter(ipnet) + + if !isFromRule || currentAction == filter.ActionAccept { + return "unbanIP not banned", nil + } + + app.P2p.Filters.RemoveLiteral(ipnet) + + return "unbanIP success", nil } var msgHandlers = map[methodIdx]func() action{ @@ -724,6 +953,10 @@ var msgHandlers = map[methodIdx]func() action{ listeningAddrs: func() action { return &listeningAddrsMsg{} }, addPeer: func() action { return &addPeerMsg{} }, beginAdvertising: func() action { return &beginAdvertisingMsg{} }, + findPeer: func() action { return &findPeerMsg{} }, + listPeers: func() action { return &listPeersMsg{} }, + banIP: func() action { return &banIPMsg{} }, + unbanIP: func() action { return &unbanIPMsg{} }, } type errorResult struct { @@ -732,13 +965,19 @@ type errorResult struct { } type successResult struct { - Seqno int `json:"seqno"` - Success json.RawMessage `json:"success"` + Seqno int `json:"seqno"` + Success json.RawMessage `json:"success"` + Duration string `json:"duration"` } func main() { - logwriter.Configure(logwriter.Output(os.Stderr), logwriter.LdJSONFormatter) - log.SetOutput(os.Stderr) + logwriter.Configure(logwriter.Output(os.Stderr), logwriter.LdJSONFormatter) + os.Mkdir("/tmp/artifacts", os.ModePerm) + logfile, err := os.Create("/tmp/artifacts/helper.log") + if err != nil { + panic(err) + } + log.SetOutput(logfile) logging.SetAllLoggers(logging2.INFO) helperLog := logging.Logger("helper top-level JSON handling") @@ -751,17 +990,21 @@ func main() { }() lines := bufio.NewScanner(os.Stdin) + // 11MiB buffer size, larger than the 10.66MB minimum for 8MiB to be b64'd + bufsize := (1024 * 1024) * 11 + lines.Buffer(make([]byte, bufsize), bufsize) out := bufio.NewWriter(os.Stdout) app := &app{ - P2p: nil, - Ctx: context.Background(), - Subs: make(map[int]subscription), - Validators: make(map[int]chan bool), - Streams: make(map[int]net.Stream), + P2p: nil, + Ctx: context.Background(), + Subs: make(map[int]subscription), + ValidatorMutex: &sync.Mutex{}, + Validators: make(map[int]chan bool), + Streams: make(map[int]net.Stream), + Extra: logfile, // OutLock doesn't need to be initialized Out: out, - // RpcLock doesn't need to be initialized } for lines.Scan() { @@ -772,23 +1015,24 @@ func main() { } if err := json.Unmarshal([]byte(line), &env); err != nil { log.Print("when unmarshaling the envelope...") - log.Fatal(err) + log.Panic(err) } msg := msgHandlers[env.Method]() if err := json.Unmarshal(raw, msg); err != nil { log.Print("when unmarshaling the method invocation...") - log.Fatal(err) + log.Panic(err) } defer func() { if r := recover(); r != nil { - helperLog.Error("While handling RPC:", line, "\nThe following panic occurred: ", r) + helperLog.Error("While handling RPC:", line, "\nThe following panic occurred: ", r, "\nstack:\n", debug.Stack()) } }() + start := time.Now() res, err := msg.run(app) if err == nil { res, err := json.Marshal(res) if err == nil { - app.writeMsg(successResult{Seqno: env.Seqno, Success: res}) + app.writeMsg(successResult{Seqno: env.Seqno, Success: res, Duration: time.Now().Sub(start).String()}) } else { app.writeMsg(errorResult{Seqno: env.Seqno, Errorr: err.Error()}) } @@ -796,7 +1040,10 @@ func main() { app.writeMsg(errorResult{Seqno: env.Seqno, Errorr: err.Error()}) } } - os.Exit(0) + app.writeMsg(errorResult{Seqno: 0, Errorr: fmt.Sprintf("helper stdin scanning stopped because %v", lines.Err())}) + // we never want the helper to get here, it should be killed or gracefully + // shut down instead of stdin closed. + os.Exit(1) } var _ json.Marshaler = (*methodIdx)(nil) diff --git a/src/app/libp2p_helper/src/libp2p_helper/methodidx_jsonenum.go b/src/app/libp2p_helper/src/libp2p_helper/methodidx_jsonenum.go index d87e80c0bd5..72e56022046 100644 --- a/src/app/libp2p_helper/src/libp2p_helper/methodidx_jsonenum.go +++ b/src/app/libp2p_helper/src/libp2p_helper/methodidx_jsonenum.go @@ -25,6 +25,10 @@ var ( "listeningAddrs": listeningAddrs, "addPeer": addPeer, "beginAdvertising": beginAdvertising, + "findPeer": findPeer, + "listPeers": listPeers, + "banIP": banIP, + "unbanIP": unbanIP, } _methodIdxValueToName = map[methodIdx]string{ @@ -44,6 +48,10 @@ var ( listeningAddrs: "listeningAddrs", addPeer: "addPeer", beginAdvertising: "beginAdvertising", + findPeer: "findPeer", + listPeers: "listPeers", + banIP: "banIP", + unbanIP: "unbanIP", } ) @@ -67,6 +75,10 @@ func init() { interface{}(listeningAddrs).(fmt.Stringer).String(): listeningAddrs, interface{}(addPeer).(fmt.Stringer).String(): addPeer, interface{}(beginAdvertising).(fmt.Stringer).String(): beginAdvertising, + interface{}(findPeer).(fmt.Stringer).String(): findPeer, + interface{}(listPeers).(fmt.Stringer).String(): listPeers, + interface{}(banIP).(fmt.Stringer).String(): banIP, + interface{}(unbanIP).(fmt.Stringer).String(): unbanIP, } } } diff --git a/src/app/libp2p_helper/src/mplex.go b/src/app/libp2p_helper/src/mplex.go index 552820dd898..84c880764ad 100644 --- a/src/app/libp2p_helper/src/mplex.go +++ b/src/app/libp2p_helper/src/mplex.go @@ -1,14 +1,27 @@ package codanet import ( + "bufio" + "encoding/binary" + "fmt" "net" - mp "github.com/libp2p/go-mplex" // Conn is a connection to a remote peer. + logging "github.com/ipfs/go-log" smux "github.com/libp2p/go-stream-muxer" // Conn is a connection to a remote peer. + + "context" + "errors" + "io" + "sync" + "time" + + "github.com/libp2p/go-libp2p-core/mux" + + pool "github.com/libp2p/go-buffer-pool" ) type conn struct { - *mp.Multiplex + *Multiplex } func (c *conn) Close() error { @@ -38,5 +51,947 @@ var DefaultMplexTransport = &MplexTransport{} // NewConn opens a new conn func (t *MplexTransport) NewConn(nc net.Conn, isServer bool) (smux.Conn, error) { - return &conn{mp.NewMultiplex(nc, isServer)}, nil + return &conn{NewMultiplex(nc, isServer)}, nil +} + +// below is libp2p/go-mplex inlined in a bad way to change the MaxMessageSize. +// The MIT License (MIT) +// +// Copyright (c) 2016 Jeromy Johnson +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +var mplexlog = logging.Logger("mplex") + +// Max message size in bytes before dropping (8MiB) +var MaxMessageSize = 1 << 23 + +// Max time to block waiting for a slow reader to read from a stream before +// resetting it. Preferably, we'd have some form of back-pressure mechanism but +// we don't have that in this protocol. +var ReceiveTimeout = 5 * time.Second + +// ErrShutdown is returned when operating on a shutdown session +var ErrShutdown = errors.New("session shut down") + +// ErrTwoInitiators is returned when both sides think they're the initiator +var ErrTwoInitiators = errors.New("two initiators") + +// ErrInvalidState is returned when the other side does something it shouldn't. +// In this case, we close the connection to be safe. +var ErrInvalidState = errors.New("received an unexpected message from the peer") + +var errTimeout = timeout{} +var errStreamClosed = errors.New("stream closed") + +var ( + NewStreamTimeout = time.Minute + ResetStreamTimeout = 2 * time.Minute + + WriteCoalesceDelay = 100 * time.Microsecond +) + +type timeout struct{} + +func (_ timeout) Error() string { + return "i/o deadline exceeded" +} + +func (_ timeout) Temporary() bool { + return true +} + +func (_ timeout) Timeout() bool { + return true +} + +// +1 for initiator +const ( + newStreamTag = 0 + messageTag = 2 + closeTag = 4 + resetTag = 6 +) + +// Multiplex is a mplex session. +type Multiplex struct { + con net.Conn + buf *bufio.Reader + nextID uint64 + initiator bool + + closed chan struct{} + shutdown chan struct{} + shutdownErr error + shutdownLock sync.Mutex + + writeCh chan []byte + writeTimer *time.Timer + writeTimerFired bool + + nstreams chan *Stream + + channels map[streamID]*Stream + chLock sync.Mutex +} + +// NewMultiplex creates a new multiplexer session. +func NewMultiplex(con net.Conn, initiator bool) *Multiplex { + mp := &Multiplex{ + con: con, + initiator: initiator, + buf: bufio.NewReader(con), + channels: make(map[streamID]*Stream), + closed: make(chan struct{}), + shutdown: make(chan struct{}), + writeCh: make(chan []byte, 16), + writeTimer: time.NewTimer(0), + nstreams: make(chan *Stream, 16), + } + + go mp.handleIncoming() + go mp.handleOutgoing() + + return mp +} + +func (mp *Multiplex) newStream(id streamID, name string) (s *Stream) { + s = &Stream{ + id: id, + name: name, + dataIn: make(chan []byte, 8), + reset: make(chan struct{}), + rDeadline: makePipeDeadline(), + wDeadline: makePipeDeadline(), + mp: mp, + } + + s.closedLocal, s.doCloseLocal = context.WithCancel(context.Background()) + return +} + +// Accept accepts the next stream from the connection. +func (m *Multiplex) Accept() (*Stream, error) { + select { + case s, ok := <-m.nstreams: + if !ok { + return nil, errors.New("multiplex closed") + } + return s, nil + case <-m.closed: + return nil, m.shutdownErr + } +} + +// Close closes the session. +func (mp *Multiplex) Close() error { + mp.closeNoWait() + + // Wait for the receive loop to finish. + <-mp.closed + + return nil +} + +func (mp *Multiplex) closeNoWait() { + mp.shutdownLock.Lock() + select { + case <-mp.shutdown: + default: + mp.con.Close() + close(mp.shutdown) + } + mp.shutdownLock.Unlock() +} + +// IsClosed returns true if the session is closed. +func (mp *Multiplex) IsClosed() bool { + select { + case <-mp.closed: + return true + default: + return false + } +} + +func (mp *Multiplex) sendMsg(done <-chan struct{}, header uint64, data []byte) error { + buf := pool.Get(len(data) + 20) + + n := 0 + n += binary.PutUvarint(buf[n:], header) + n += binary.PutUvarint(buf[n:], uint64(len(data))) + n += copy(buf[n:], data) + + select { + case mp.writeCh <- buf[:n]: + return nil + case <-mp.shutdown: + return ErrShutdown + case <-done: + return errTimeout + } +} + +func (mp *Multiplex) handleOutgoing() { + for { + select { + case <-mp.shutdown: + return + + case data := <-mp.writeCh: + err := mp.writeMsg(data) + if err != nil { + // the connection is closed by this time + mplexlog.Warningf("error writing data: %s", err.Error()) + return + } + } + } +} + +func (mp *Multiplex) writeMsg(data []byte) error { + if len(data) >= 512 { + err := mp.doWriteMsg(data) + pool.Put(data) + return err + } + + buf := pool.Get(4096) + defer pool.Put(buf) + + n := copy(buf, data) + pool.Put(data) + + if !mp.writeTimerFired { + if !mp.writeTimer.Stop() { + <-mp.writeTimer.C + } + } + mp.writeTimer.Reset(WriteCoalesceDelay) + mp.writeTimerFired = false + + for { + select { + case data = <-mp.writeCh: + wr := copy(buf[n:], data) + if wr < len(data) { + // we filled the buffer, send it + err := mp.doWriteMsg(buf) + if err != nil { + pool.Put(data) + return err + } + + if len(data)-wr >= 512 { + // the remaining data is not a small write, send it + err := mp.doWriteMsg(data[wr:]) + pool.Put(data) + return err + } + + n = copy(buf, data[wr:]) + + // we've written some, reset the timer to coalesce the rest + if !mp.writeTimer.Stop() { + <-mp.writeTimer.C + } + mp.writeTimer.Reset(WriteCoalesceDelay) + } else { + n += wr + } + + pool.Put(data) + + case <-mp.writeTimer.C: + mp.writeTimerFired = true + return mp.doWriteMsg(buf[:n]) + + case <-mp.shutdown: + return ErrShutdown + } + } +} + +func (mp *Multiplex) doWriteMsg(data []byte) error { + if mp.isShutdown() { + return ErrShutdown + } + + _, err := mp.con.Write(data) + if err != nil { + mp.closeNoWait() + } + + return err +} + +func (mp *Multiplex) nextChanID() uint64 { + out := mp.nextID + mp.nextID++ + return out +} + +// NewStream creates a new stream. +func (mp *Multiplex) NewStream() (*Stream, error) { + return mp.NewNamedStream("") +} + +// NewNamedStream creates a new named stream. +func (mp *Multiplex) NewNamedStream(name string) (*Stream, error) { + mp.chLock.Lock() + + // We could call IsClosed but this is faster (given that we already have + // the lock). + if mp.channels == nil { + mp.chLock.Unlock() + return nil, ErrShutdown + } + + sid := mp.nextChanID() + header := (sid << 3) | newStreamTag + + if name == "" { + name = fmt.Sprint(sid) + } + s := mp.newStream(streamID{ + id: sid, + initiator: true, + }, name) + mp.channels[s.id] = s + mp.chLock.Unlock() + + ctx, cancel := context.WithTimeout(context.Background(), NewStreamTimeout) + defer cancel() + + err := mp.sendMsg(ctx.Done(), header, []byte(name)) + if err != nil { + return nil, err + } + + return s, nil +} + +func (mp *Multiplex) cleanup() { + mp.closeNoWait() + mp.chLock.Lock() + defer mp.chLock.Unlock() + for _, msch := range mp.channels { + msch.clLock.Lock() + if !msch.closedRemote { + msch.closedRemote = true + // Cancel readers + close(msch.reset) + } + + msch.doCloseLocal() + msch.clLock.Unlock() + } + // Don't remove this nil assignment. We check if this is nil to check if + // the connection is closed when we already have the lock (faster than + // checking if the stream is closed). + mp.channels = nil + if mp.shutdownErr == nil { + mp.shutdownErr = ErrShutdown + } + close(mp.closed) +} + +func (mp *Multiplex) handleIncoming() { + defer mp.cleanup() + + recvTimeout := time.NewTimer(0) + defer recvTimeout.Stop() + + if !recvTimeout.Stop() { + <-recvTimeout.C + } + + for { + chID, tag, err := mp.readNextHeader() + if err != nil { + mp.shutdownErr = err + return + } + + remoteIsInitiator := tag&1 == 0 + ch := streamID{ + // true if *I'm* the initiator. + initiator: !remoteIsInitiator, + id: chID, + } + // Rounds up the tag: + // 0 -> 0 + // 1 -> 2 + // 2 -> 2 + // 3 -> 4 + // etc... + tag += (tag & 1) + + b, err := mp.readNext() + if err != nil { + mp.shutdownErr = err + return + } + + mp.chLock.Lock() + msch, ok := mp.channels[ch] + mp.chLock.Unlock() + + switch tag { + case newStreamTag: + if ok { + mplexlog.Debugf("received NewStream message for existing stream: %d", ch) + mp.shutdownErr = ErrInvalidState + return + } + + name := string(b) + pool.Put(b) + + msch = mp.newStream(ch, name) + mp.chLock.Lock() + mp.channels[ch] = msch + mp.chLock.Unlock() + select { + case mp.nstreams <- msch: + case <-mp.shutdown: + return + } + + case resetTag: + if !ok { + // This is *ok*. We forget the stream on reset. + continue + } + msch.clLock.Lock() + + isClosed := msch.isClosed() + + if !msch.closedRemote { + close(msch.reset) + msch.closedRemote = true + } + + if !isClosed { + msch.doCloseLocal() + } + + msch.clLock.Unlock() + + msch.cancelDeadlines() + + mp.chLock.Lock() + delete(mp.channels, ch) + mp.chLock.Unlock() + case closeTag: + if !ok { + continue + } + + msch.clLock.Lock() + + if msch.closedRemote { + msch.clLock.Unlock() + // Technically a bug on the other side. We + // should consider killing the connection. + continue + } + + close(msch.dataIn) + msch.closedRemote = true + + cleanup := msch.isClosed() + + msch.clLock.Unlock() + + if cleanup { + msch.cancelDeadlines() + mp.chLock.Lock() + delete(mp.channels, ch) + mp.chLock.Unlock() + } + case messageTag: + if !ok { + // reset stream, return b + pool.Put(b) + + // This is a perfectly valid case when we reset + // and forget about the stream. + mplexlog.Debugf("message for non-existant stream, dropping data: %d", ch) + // go mp.sendResetMsg(ch.header(resetTag), false) + continue + } + + msch.clLock.Lock() + remoteClosed := msch.closedRemote + msch.clLock.Unlock() + if remoteClosed { + // closed stream, return b + pool.Put(b) + + mplexlog.Warningf("Received data from remote after stream was closed by them. (len = %d)", len(b)) + // go mp.sendResetMsg(msch.id.header(resetTag), false) + continue + } + + recvTimeout.Reset(ReceiveTimeout) + select { + case msch.dataIn <- b: + case <-msch.reset: + pool.Put(b) + case <-recvTimeout.C: + pool.Put(b) + mplexlog.Warningf("timed out receiving message into stream queue.") + // Do not do this asynchronously. Otherwise, we + // could drop a message, then receive a message, + // then reset. + msch.Reset() + continue + case <-mp.shutdown: + pool.Put(b) + return + } + if !recvTimeout.Stop() { + <-recvTimeout.C + } + default: + mplexlog.Debugf("message with unknown header on stream %s", ch) + if ok { + msch.Reset() + } + } + } +} + +func (mp *Multiplex) isShutdown() bool { + select { + case <-mp.shutdown: + return true + default: + return false + } +} + +func (mp *Multiplex) sendResetMsg(header uint64, hard bool) { + ctx, cancel := context.WithTimeout(context.Background(), ResetStreamTimeout) + defer cancel() + + err := mp.sendMsg(ctx.Done(), header, nil) + if err != nil && !mp.isShutdown() { + if hard { + mplexlog.Warningf("error sending reset message: %s; killing connection", err.Error()) + mp.Close() + } else { + mplexlog.Debugf("error sending reset message: %s", err.Error()) + } + } +} + +func (mp *Multiplex) readNextHeader() (uint64, uint64, error) { + h, err := binary.ReadUvarint(mp.buf) + if err != nil { + return 0, 0, err + } + + // get channel ID + ch := h >> 3 + + rem := h & 7 + + return ch, rem, nil +} + +func (mp *Multiplex) readNext() ([]byte, error) { + // get length + l, err := binary.ReadUvarint(mp.buf) + if err != nil { + return nil, err + } + + if l > uint64(MaxMessageSize) { + return nil, fmt.Errorf("message size too large!") + } + + if l == 0 { + return nil, nil + } + + buf := pool.Get(int(l)) + n, err := io.ReadFull(mp.buf, buf) + if err != nil { + return nil, err + } + + return buf[:n], nil +} + +func isFatalNetworkError(err error) bool { + nerr, ok := err.(net.Error) + if ok { + return !(nerr.Timeout() || nerr.Temporary()) + } + return false +} + +// streamID is a convenience type for operating on stream IDs +type streamID struct { + id uint64 + initiator bool +} + +// header computes the header for the given tag +func (id *streamID) header(tag uint64) uint64 { + header := id.id<<3 | tag + if !id.initiator { + header-- + } + return header +} + +type Stream struct { + id streamID + name string + dataIn chan []byte + mp *Multiplex + + extra []byte + + // exbuf is for holding the reference to the beginning of the extra slice + // for later memory pool freeing + exbuf []byte + + rDeadline, wDeadline pipeDeadline + + clLock sync.Mutex + closedRemote bool + + // Closed when the connection is reset. + reset chan struct{} + + // Closed when the writer is closed (reset will also be closed) + closedLocal context.Context + doCloseLocal context.CancelFunc +} + +func (s *Stream) Name() string { + return s.name +} + +// tries to preload pending data +func (s *Stream) preloadData() { + select { + case read, ok := <-s.dataIn: + if !ok { + return + } + s.extra = read + s.exbuf = read + default: + } +} + +func (s *Stream) waitForData() error { + select { + case <-s.reset: + // This is the only place where it's safe to return these. + s.returnBuffers() + return mux.ErrReset + case read, ok := <-s.dataIn: + if !ok { + return io.EOF + } + s.extra = read + s.exbuf = read + return nil + case <-s.rDeadline.wait(): + return errTimeout + } +} + +func (s *Stream) returnBuffers() { + if s.exbuf != nil { + pool.Put(s.exbuf) + s.exbuf = nil + s.extra = nil + } + for { + select { + case read, ok := <-s.dataIn: + if !ok { + return + } + if read == nil { + continue + } + pool.Put(read) + default: + return + } + } +} + +func (s *Stream) Read(b []byte) (int, error) { + select { + case <-s.reset: + return 0, mux.ErrReset + default: + } + if s.extra == nil { + err := s.waitForData() + if err != nil { + return 0, err + } + } + n := 0 + for s.extra != nil && n < len(b) { + read := copy(b[n:], s.extra) + n += read + if read < len(s.extra) { + s.extra = s.extra[read:] + } else { + if s.exbuf != nil { + pool.Put(s.exbuf) + } + s.extra = nil + s.exbuf = nil + s.preloadData() + } + } + return n, nil +} + +func (s *Stream) Write(b []byte) (int, error) { + var written int + for written < len(b) { + wl := len(b) - written + if wl > MaxMessageSize { + wl = MaxMessageSize + } + + n, err := s.write(b[written : written+wl]) + if err != nil { + return written, err + } + + written += n + } + + return written, nil +} + +func (s *Stream) write(b []byte) (int, error) { + if s.isClosed() { + return 0, errors.New("cannot write to closed stream") + } + + err := s.mp.sendMsg(s.wDeadline.wait(), s.id.header(messageTag), b) + + if err != nil { + if err == context.Canceled { + err = errors.New("cannot write to closed stream") + } + return 0, err + } + + return len(b), nil +} + +func (s *Stream) isClosed() bool { + return s.closedLocal.Err() != nil +} + +func (s *Stream) Close() error { + ctx, cancel := context.WithTimeout(context.Background(), ResetStreamTimeout) + defer cancel() + + err := s.mp.sendMsg(ctx.Done(), s.id.header(closeTag), nil) + + if s.isClosed() { + return nil + } + + s.clLock.Lock() + remote := s.closedRemote + s.clLock.Unlock() + + s.doCloseLocal() + + if remote { + s.cancelDeadlines() + s.mp.chLock.Lock() + delete(s.mp.channels, s.id) + s.mp.chLock.Unlock() + } + + if err != nil && !s.mp.isShutdown() { + mplexlog.Warningf("Error closing stream: %s; killing connection", err.Error()) + s.mp.Close() + } + + return err +} + +func (s *Stream) Reset() error { + s.clLock.Lock() + + // Don't reset when fully closed. + if s.closedRemote && s.isClosed() { + s.clLock.Unlock() + return nil + } + + // Don't reset twice. + select { + case <-s.reset: + s.clLock.Unlock() + return nil + default: + } + + close(s.reset) + s.doCloseLocal() + s.closedRemote = true + s.cancelDeadlines() + + go s.mp.sendResetMsg(s.id.header(resetTag), true) + + s.clLock.Unlock() + + s.mp.chLock.Lock() + delete(s.mp.channels, s.id) + s.mp.chLock.Unlock() + + return nil +} + +func (s *Stream) cancelDeadlines() { + s.rDeadline.set(time.Time{}) + s.wDeadline.set(time.Time{}) +} + +func (s *Stream) SetDeadline(t time.Time) error { + s.clLock.Lock() + defer s.clLock.Unlock() + + if s.closedRemote && s.isClosed() { + return errStreamClosed + } + + if !s.closedRemote { + s.rDeadline.set(t) + } + + if !s.isClosed() { + s.wDeadline.set(t) + } + + return nil +} + +func (s *Stream) SetReadDeadline(t time.Time) error { + s.clLock.Lock() + defer s.clLock.Unlock() + + if s.closedRemote { + return errStreamClosed + } + + s.rDeadline.set(t) + return nil +} + +func (s *Stream) SetWriteDeadline(t time.Time) error { + s.clLock.Lock() + defer s.clLock.Unlock() + + if s.isClosed() { + return errStreamClosed + } + + s.wDeadline.set(t) + return nil +} + +// pipeDeadline is an abstraction for handling timeouts. +type pipeDeadline struct { + mu sync.Mutex // Guards timer and cancel + timer *time.Timer + cancel chan struct{} // Must be non-nil +} + +func makePipeDeadline() pipeDeadline { + return pipeDeadline{cancel: make(chan struct{})} +} + +// set sets the point in time when the deadline will time out. +// A timeout event is signaled by closing the channel returned by waiter. +// Once a timeout has occurred, the deadline can be refreshed by specifying a +// t value in the future. +// +// A zero value for t prevents timeout. +func (d *pipeDeadline) set(t time.Time) { + d.mu.Lock() + defer d.mu.Unlock() + + if d.timer != nil && !d.timer.Stop() { + <-d.cancel // Wait for the timer callback to finish and close cancel + } + d.timer = nil + + // Time is zero, then there is no deadline. + closed := isClosedChan(d.cancel) + if t.IsZero() { + if closed { + d.cancel = make(chan struct{}) + } + return + } + + // Time in the future, setup a timer to cancel in the future. + if dur := time.Until(t); dur > 0 { + if closed { + d.cancel = make(chan struct{}) + } + d.timer = time.AfterFunc(dur, func() { + close(d.cancel) + }) + return + } + + // Time in the past, so close immediately. + if !closed { + close(d.cancel) + } +} + +// wait returns a channel that is closed when the deadline is exceeded. +func (d *pipeDeadline) wait() chan struct{} { + d.mu.Lock() + defer d.mu.Unlock() + return d.cancel +} + +func isClosedChan(c <-chan struct{}) bool { + select { + case <-c: + return true + default: + return false + } } diff --git a/src/app/logproc/logproc.ml b/src/app/logproc/logproc.ml index 990a6308574..2a69191b2ff 100644 --- a/src/app/logproc/logproc.ml +++ b/src/app/logproc/logproc.ml @@ -18,7 +18,7 @@ let level_color = let open Bash_colors in let open Logger.Level in function - | Trace -> + | Spam | Trace -> cyan | Debug -> green @@ -49,9 +49,15 @@ let format_msg ~interpolation_config ~timezone msg = bright_red err none ; (msg.message, []) in - printf !"%s[%s]%s: %s%s\n" (level_color msg.level) - (format_timestamp ~timezone msg.timestamp) - msg.source.module_ message Bash_colors.none ; + ( match msg.source with + | Some source -> + printf !"%s[%s]%s: %s%s\n" (level_color msg.level) + (format_timestamp ~timezone msg.timestamp) + source.module_ message Bash_colors.none + | None -> + printf !"%s[%s]: %s%s\n" (level_color msg.level) + (format_timestamp ~timezone msg.timestamp) + message Bash_colors.none ) ; List.iter extra ~f:(fun (k, v) -> printf !"$%s = %s\n" k v) ; Out_channel.(flush stdout) diff --git a/src/app/trace-tool/src/main.rs b/src/app/trace-tool/src/main.rs index 67d93b14e1c..9724789bdb9 100644 --- a/src/app/trace-tool/src/main.rs +++ b/src/app/trace-tool/src/main.rs @@ -137,6 +137,7 @@ fn main() { .unwrap() .read_to_end(&mut contents) .unwrap(); + let mut seen_tids = HashMap::::new(); let mut recurring_map = HashMap::::new(); let mut tidmap = HashMap::::new(); diff --git a/src/config/test_postake_bootstrap.mlh b/src/config/test_postake_bootstrap.mlh index 0e0eecb6c4c..4787af4fc69 100644 --- a/src/config/test_postake_bootstrap.mlh +++ b/src/config/test_postake_bootstrap.mlh @@ -13,7 +13,7 @@ [%%define genesis_ledger "test"] [%%define genesis_state_timestamp "2019-01-30 12:00:00-08:00"] -[%%define block_window_duration 1000] +[%%define block_window_duration 1500] [%%define integration_tests true] [%%define force_updates false] diff --git a/src/envelope.opam b/src/envelope.opam deleted file mode 100644 index a1b56499734..00000000000 --- a/src/envelope.opam +++ /dev/null @@ -1,5 +0,0 @@ -opam-version: "1.2" -version: "0.1" -build: [ - ["dune" "build" "--only" "src" "--root" "." "-j" jobs "@install"] -] diff --git a/src/lib/block_producer/block_producer.ml b/src/lib/block_producer/block_producer.ml index 7e3def280c7..dc9236ecc71 100644 --- a/src/lib/block_producer/block_producer.ml +++ b/src/lib/block_producer/block_producer.ml @@ -397,6 +397,7 @@ let run ~logger ~prover ~verifier ~trust_system ~get_completed_work ; data= External_transition.create ~protocol_state ~protocol_state_proof ~staged_ledger_diff + ~validation_callback:Fn.ignore ~delta_transition_chain_proof } |> External_transition.skip_time_received_validation `This_transition_was_not_received_via_gossip diff --git a/src/lib/block_producer/dune b/src/lib/block_producer/dune index 32ec470efd2..d493084178c 100644 --- a/src/lib/block_producer/dune +++ b/src/lib/block_producer/dune @@ -5,7 +5,7 @@ (inline_tests) (libraries async async_extra core coda_base coda_intf coda_state - coda_transition envelope interruptible o1trace pipe_lib + coda_transition interruptible o1trace pipe_lib prover transaction_snark_scan_state transition_frontier network_pool unix_timestamp otp_lib transition_chain_prover) (preprocess diff --git a/src/lib/bootstrap_controller/bootstrap_controller.ml b/src/lib/bootstrap_controller/bootstrap_controller.ml index 6cd39826bfb..f0af7a6a32e 100644 --- a/src/lib/bootstrap_controller/bootstrap_controller.ml +++ b/src/lib/bootstrap_controller/bootstrap_controller.ml @@ -4,6 +4,7 @@ open Coda_base open Coda_state open Pipe_lib.Strict_pipe open Coda_transition +open Network_peer type t = { logger: Logger.t @@ -25,9 +26,9 @@ let worth_getting_root t candidate = |> External_transition.Initial_validated.consensus_state ) ~candidate -let received_bad_proof t sender_host e = +let received_bad_proof t host e = Trust_system.( - record t.trust_system t.logger sender_host + record t.trust_system t.logger host Actions. ( Violated_protocol , Some @@ -45,7 +46,7 @@ let start_sync_job_with_peer ~sender ~root_sync_ledger t peer_best_tip peer_root = let%bind () = Trust_system.( - record t.trust_system t.logger sender + record t.trust_system t.logger (fst sender) Actions. ( Fulfilled_request , Some ("Received verified peer root and best tip", []) )) @@ -79,7 +80,7 @@ let start_sync_job_with_peer ~sender ~root_sync_ledger t peer_best_tip | `Repeat -> `Ignored -let on_transition t ~sender ~root_sync_ledger +let on_transition t ~sender:(host, peer_id) ~root_sync_ledger (candidate_transition : External_transition.t) = let candidate_state = External_transition.consensus_state candidate_transition @@ -88,7 +89,7 @@ let on_transition t ~sender ~root_sync_ledger Deferred.return `Ignored else match%bind - Coda_networking.get_ancestry t.network sender candidate_state + Coda_networking.get_ancestry t.network peer_id candidate_state with | Error e -> Logger.error t.logger ~module_:__MODULE__ ~location:__LOC__ @@ -99,15 +100,15 @@ let on_transition t ~sender ~root_sync_ledger | Ok peer_root_with_proof -> ( match%bind Sync_handler.Root.verify ~logger:t.logger ~verifier:t.verifier - candidate_state peer_root_with_proof + candidate_state peer_root_with_proof.data with | Ok (`Root root, `Best_tip best_tip) -> if done_syncing_root root_sync_ledger then return `Ignored else - start_sync_job_with_peer ~sender ~root_sync_ledger t best_tip - root + start_sync_job_with_peer ~sender:(host, peer_id) + ~root_sync_ledger t best_tip root | Error e -> - return (received_bad_proof t sender e |> Fn.const `Ignored) ) + return (received_bad_proof t host e |> Fn.const `Ignored) ) let sync_ledger t ~root_sync_ledger ~transition_graph ~sync_ledger_reader = let query_reader = Sync_ledger.Db.query_reader root_sync_ledger in @@ -119,15 +120,7 @@ let sync_ledger t ~root_sync_ledger ~transition_graph ~sync_ledger_reader = Envelope.Incoming.data incoming_transition in let previous_state_hash = External_transition.parent_hash transition in - let sender = - match Envelope.Incoming.sender incoming_transition with - | Envelope.Sender.Local -> - failwith - "Unexpected, we should be syncing only to remote nodes in sync \ - ledger" - | Envelope.Sender.Remote inet_addr -> - inet_addr - in + let sender = Envelope.Incoming.remote_sender_exn incoming_transition in Transition_cache.add transition_graph ~parent:previous_state_hash incoming_transition ; (* TODO: Efficiently limiting the number of green threads in #1337 *) @@ -178,7 +171,7 @@ let run ~logger ~trust_system ~verifier ~network ~consensus_local_state Transition_frontier.Persistent_root.Instance.snarked_ledger temp_persistent_root_instance in - let%bind hash, sender, expected_staged_ledger_hash = + let%bind hash, (sender_host, sender_peer_id), expected_staged_ledger_hash = let root_sync_ledger = Sync_ledger.Db.create temp_snarked_ledger ~logger:t.logger ~trust_system @@ -196,7 +189,7 @@ let run ~logger ~trust_system ~verifier ~network ~consensus_local_state let open Deferred.Or_error.Let_syntax in let%bind scan_state, expected_merkle_root, pending_coinbases = Coda_networking.get_staged_ledger_aux_and_pending_coinbases_at_hash - t.network sender hash + t.network sender_peer_id hash in let received_staged_ledger_hash = Staged_ledger_hash.of_aux_ledger_and_coinbase_hash @@ -242,9 +235,9 @@ let run ~logger ~trust_system ~verifier ~network ~consensus_local_state | Error e -> let%bind () = Trust_system.( - record t.trust_system t.logger sender + record t.trust_system t.logger sender_host Actions. - ( Violated_protocol + ( Outgoing_connection_error , Some ( "Can't find scan state from the peer or received faulty \ scan state from the peer." @@ -264,7 +257,7 @@ let run ~logger ~trust_system ~verifier ~network ~consensus_local_state | Ok (scan_state, pending_coinbase, new_root) -> ( let%bind () = Trust_system.( - record t.trust_system t.logger sender + record t.trust_system t.logger sender_host Actions. ( Fulfilled_request , Some ("Received valid scan state from peer", []) )) @@ -296,15 +289,17 @@ let run ~logger ~trust_system ~verifier ~network ~consensus_local_state Consensus.Hooks.sync_local_state ~local_state:consensus_local_state ~logger ~trust_system ~random_peers:(fun n -> - List.append - (Coda_networking.peers_by_ip t.network sender) - (Coda_networking.random_peers t.network n) ) + (* This port is completely made up but we only use the peer_id when doing a query, so it shouldn't matter. *) + let%map peers = Coda_networking.random_peers t.network n in + Network_peer.Peer.create sender_host ~libp2p_port:0 + ~peer_id:sender_peer_id + :: peers ) ~query_peer: { Consensus.Hooks.Rpcs.query= (fun peer rpc query -> Coda_networking.( - query_peer t.network peer (Rpcs.Consensus_rpc rpc) - query) ) } + query_peer t.network peer.peer_id + (Rpcs.Consensus_rpc rpc) query) ) } sync_jobs with | Error e -> @@ -408,7 +403,7 @@ let%test_module "Bootstrap_controller tests" = let pids = Child_processes.Termination.create_pid_table () - let downcast_transition transition = + let downcast_transition ~sender transition = let transition = transition |> External_transition.Validation @@ -416,10 +411,12 @@ let%test_module "Bootstrap_controller tests" = |> External_transition.Validation.reset_staged_ledger_diff_validation in Envelope.Incoming.wrap ~data:transition - ~sender:(Envelope.Sender.Remote Network_peer.Peer.local.host) + ~sender: + (Envelope.Sender.Remote + (sender.Network_peer.Peer.host, sender.peer_id)) - let downcast_breadcrumb breadcrumb = - downcast_transition + let downcast_breadcrumb ~sender breadcrumb = + downcast_transition ~sender (Transition_frontier.Breadcrumb.validated_transition breadcrumb) let make_non_running_bootstrap ~genesis_root ~network = @@ -488,7 +485,7 @@ let%test_module "Bootstrap_controller tests" = let%bind () = Deferred.List.iter branch ~f:(fun breadcrumb -> Strict_pipe.Writer.write sync_ledger_writer - (downcast_breadcrumb breadcrumb) ) + (downcast_breadcrumb ~sender:me.peer breadcrumb) ) in Strict_pipe.Writer.close sync_ledger_writer ; sync_deferred ) ; diff --git a/src/lib/bootstrap_controller/bootstrap_controller.mli b/src/lib/bootstrap_controller/bootstrap_controller.mli index c6a6a8d5c46..bef0d9abc41 100644 --- a/src/lib/bootstrap_controller/bootstrap_controller.mli +++ b/src/lib/bootstrap_controller/bootstrap_controller.mli @@ -1,6 +1,7 @@ open Async_kernel open Coda_transition open Pipe_lib +open Network_peer val run : logger:Logger.t diff --git a/src/lib/bootstrap_controller/dune b/src/lib/bootstrap_controller/dune index 6e327ff0cf8..30a7d4782f0 100644 --- a/src/lib/bootstrap_controller/dune +++ b/src/lib/bootstrap_controller/dune @@ -10,7 +10,6 @@ syncable_ledger pipe_lib consensus - kademlia transition_frontier coda_networking sync_handler diff --git a/src/lib/bootstrap_controller/transition_cache.ml b/src/lib/bootstrap_controller/transition_cache.ml index a356b79c2d5..db6f01b8fff 100644 --- a/src/lib/bootstrap_controller/transition_cache.ml +++ b/src/lib/bootstrap_controller/transition_cache.ml @@ -1,6 +1,7 @@ open Coda_base open Core open Coda_transition +open Network_peer (* Cache represents a graph. The key is a State_hash, which is the node in the graph, and the value is the children transitions of the node *) diff --git a/src/lib/bootstrap_controller/transition_cache.mli b/src/lib/bootstrap_controller/transition_cache.mli index b2b865a0eda..6ab08dfa962 100644 --- a/src/lib/bootstrap_controller/transition_cache.mli +++ b/src/lib/bootstrap_controller/transition_cache.mli @@ -1,5 +1,6 @@ open Coda_base open Coda_transition +open Network_peer type t diff --git a/src/lib/child_processes/child_processes.ml b/src/lib/child_processes/child_processes.ml index 1b0215c89ad..259ebe8a597 100644 --- a/src/lib/child_processes/child_processes.ml +++ b/src/lib/child_processes/child_processes.ml @@ -154,7 +154,9 @@ let maybe_kill_and_unlock : string -> Filename.t -> Logger.t -> unit Deferred.t Deferred.unit type output_handling = - [`Log of Logger.Level.t | `Don't_log] * [`Pipe | `No_pipe] + [`Log of Logger.Level.t | `Don't_log] + * [`Pipe | `No_pipe] + * [`Keep_empty | `Filter_empty] (** Given a Reader.t coming from a process output, optionally log the lines coming from it and return a strict pipe that will get the lines if the @@ -165,7 +167,7 @@ let reader_to_strict_pipe_with_logging : -> output_handling -> Logger.t -> string Strict_pipe.Reader.t = - fun reader name (log, pipe) logger -> + fun reader name (log, pipe, filter_empty) logger -> let master_r, master_w = Strict_pipe.create ~name (Strict_pipe.Buffered (`Capacity 100, `Overflow Crash)) @@ -173,7 +175,12 @@ let reader_to_strict_pipe_with_logging : let lines_js_pipe = Reader.lines reader in don't_wait_for ( Pipe.iter_without_pushback lines_js_pipe ~f:(fun line -> - Strict_pipe.Writer.write master_w line ) + match filter_empty with + | `Keep_empty -> + Strict_pipe.Writer.write master_w line + | `Filter_empty -> + if not (String.equal line "") then + Strict_pipe.Writer.write master_w line ) >>= fun () -> Strict_pipe.Writer.close master_w ; Deferred.unit ) ; @@ -187,7 +194,9 @@ let reader_to_strict_pipe_with_logging : { Logger.Message.timestamp= Time.now () ; level ; source= - Logger.Source.create ~module_:__MODULE__ ~location:__LOC__ + Some + (Logger.Source.create ~module_:__MODULE__ + ~location:__LOC__) ; message= sprintf "Output from process %s: %s" name line ; metadata= Logger.metadata logger } in @@ -248,12 +257,15 @@ let start_custom : "Starting custom child process %s with args $args" name ~metadata:[("args", `List (List.map args ~f:(fun a -> `String a)))] ; let%bind coda_binary_path = get_coda_binary () in + let relative_to_root = + get_project_root () + |> Option.map ~f:(fun root -> root ^/ git_root_relative_path) + in let%bind process = keep_trying (List.filter_opt [ Unix.getenv @@ "CODA_" ^ String.uppercase name ^ "_PATH" - ; get_project_root () - |> Option.map ~f:(fun root -> root ^/ git_root_relative_path) + ; relative_to_root ; Some (Filename.dirname coda_binary_path ^/ name) ; Some ("coda-" ^ name) ]) ~f:(fun prog -> Process.create ~prog ~args ()) @@ -288,9 +300,13 @@ let start_custom : don't_wait_for (let open Deferred.Let_syntax in let%bind termination_status = Process.wait process in - let%bind () = Writer.close @@ Process.stdin process in - let%bind () = Reader.close @@ Process.stdout process in - let%bind () = Reader.close @@ Process.stderr process in + Logger.trace logger "child process %s died" name ~module_:__MODULE__ + ~location:__LOC__ ; + don't_wait_for + (let%bind () = after (Time.Span.of_sec 1.) in + let%bind () = Writer.close @@ Process.stdin process in + let%bind () = Reader.close @@ Process.stdout process in + Reader.close @@ Process.stderr process) ; let%bind () = Sys.remove lock_path in Ivar.fill terminated_ivar termination_status ; let log_bad_termination () = @@ -339,7 +355,7 @@ let kill : t -> Unix.Exit_or_signal.t Deferred.Or_error.t = let%test_module _ = ( module struct - let logger = Logger.null () + let logger = Logger.create () let async_with_temp_dir f = Async.Thread_safe.block_on_async_exn (fun () -> @@ -351,14 +367,16 @@ let%test_module _ = let git_root_relative_path = "src/lib/child_processes/tester.sh" + let process_wait_timeout = Time.Span.of_sec 2.1 + let%test_unit "can launch and get stdout" = async_with_temp_dir (fun conf_dir -> let open Deferred.Let_syntax in let%bind process = start_custom ~logger ~name ~git_root_relative_path ~conf_dir ~args:["exit"] - ~stdout:(`Log Logger.Level.Debug, `Pipe) - ~stderr:(`Log Logger.Level.Error, `No_pipe) + ~stdout:(`Log Logger.Level.Debug, `Pipe, `Keep_empty) + ~stderr:(`Log Logger.Level.Error, `No_pipe, `Keep_empty) ~termination:`Raise_on_failure |> Deferred.map ~f:Or_error.ok_exn in @@ -369,7 +387,7 @@ let%test_module _ = in (* Pipe will be closed before the ivar is filled, so we need to wait a bit. *) - let%bind () = after @@ Time.Span.of_sec 0.1 in + let%bind () = after process_wait_timeout in [%test_eq: Unix.Exit_or_signal.t option] (Some (Ok ())) (termination_status process) ; Deferred.unit ) @@ -380,8 +398,8 @@ let%test_module _ = let%bind process = start_custom ~logger ~name ~git_root_relative_path ~conf_dir ~args:["loop"] - ~stdout:(`Don't_log, `Pipe) - ~stderr:(`Don't_log, `No_pipe) + ~stdout:(`Don't_log, `Pipe, `Keep_empty) + ~stderr:(`Don't_log, `No_pipe, `Keep_empty) ~termination:`Always_raise |> Deferred.map ~f:Or_error.ok_exn in @@ -408,7 +426,7 @@ let%test_module _ = in let%bind () = go () in [%test_eq: string list] !output (List.init 10 ~f:(fun _ -> "hello")) ; - let%bind () = after @@ Time.Span.of_sec 0.1 in + let%bind () = after process_wait_timeout in assert (Option.is_none @@ termination_status process) ; let%bind kill_res = kill process in let%bind () = assert_lock_does_not_exist () in @@ -424,8 +442,8 @@ let%test_module _ = let mk_process () = start_custom ~logger ~name ~git_root_relative_path ~conf_dir ~args:["loop"] - ~stdout:(`Don't_log, `No_pipe) - ~stderr:(`Don't_log, `No_pipe) + ~stdout:(`Don't_log, `No_pipe, `Keep_empty) + ~stderr:(`Don't_log, `No_pipe, `Keep_empty) ~termination:`Ignore in let%bind process1 = @@ -434,6 +452,7 @@ let%test_module _ = let%bind process2 = mk_process () |> Deferred.map ~f:Or_error.ok_exn in + let%bind () = after process_wait_timeout in [%test_eq: Unix.Exit_or_signal.t option] (termination_status process1) (Some (Error (`Signal Core.Signal.term))) ; diff --git a/src/lib/child_processes/child_processes.mli b/src/lib/child_processes/child_processes.mli index e4ed5e64bbe..87095a7bc3d 100644 --- a/src/lib/child_processes/child_processes.mli +++ b/src/lib/child_processes/child_processes.mli @@ -30,7 +30,9 @@ val termination_status : t -> Unix.Exit_or_signal.t option exception. *) type output_handling = - [`Log of Logger.Level.t | `Don't_log] * [`Pipe | `No_pipe] + [`Log of Logger.Level.t | `Don't_log] + * [`Pipe | `No_pipe] + * [`Keep_empty | `Filter_empty] (** Start a process, handling a lock file, termination, optional logging, and the standard in, out and error fds. This is for "custom" processes, as diff --git a/src/lib/cli_lib/flag.ml b/src/lib/cli_lib/flag.ml index 4ddb6f858b0..f44608e21a3 100644 --- a/src/lib/cli_lib/flag.ml +++ b/src/lib/cli_lib/flag.ml @@ -106,16 +106,11 @@ module Port = struct let default_client = 8301 - let default_external = 8302 - let default_rest = 0xc0d let default_archive = default_rest + 1 - (* This is always computed as default_external+1 *) - let _default_discovery = 8303 - - let default_libp2p = 28675 + let default_libp2p = 8302 let default_hasura_port = 9000 @@ -135,8 +130,8 @@ module Port = struct module Daemon = struct let external_ = - create ~name:"external-port" ~default:default_external - "Base server port for daemon TCP (discovery UDP on port+1)" + create ~name:"external-port" ~default:default_libp2p + "Port to use for all libp2p communications (gossip and RPC)" let client = create ~name:"client-port" ~default:default_client @@ -145,10 +140,6 @@ module Port = struct let rest_server = create ~name:"rest-port" ~default:default_rest "local REST-server for daemon interaction" - - let discovery = - create ~name:"discovery-port" ~default:default_libp2p - "Daemon to archive process communication" end module Archive = struct diff --git a/src/lib/cli_lib/flag.mli b/src/lib/cli_lib/flag.mli index 5ff1ce0fd82..872ca2cefcf 100644 --- a/src/lib/cli_lib/flag.mli +++ b/src/lib/cli_lib/flag.mli @@ -48,9 +48,6 @@ module Port : sig val rest_server : int Types.with_name_and_displayed_default Command.Spec.param - - val discovery : - int Types.with_name_and_displayed_default Command.Spec.param end module Archive : sig diff --git a/src/lib/coda_base/rpc_intf.ml b/src/lib/coda_base/rpc_intf.ml index c3041c33dc9..c31e6ff4dce 100644 --- a/src/lib/coda_base/rpc_intf.ml +++ b/src/lib/coda_base/rpc_intf.ml @@ -1,11 +1,16 @@ open Async open Core +open Network_peer -type state = Host_and_port.t +type state = Peer.t type ('query, 'response) rpc_fn = state -> version:int -> 'query -> 'response Deferred.t +type 'r rpc_response = + | Failed_to_connect of Error.t + | Connected of 'r Or_error.t Envelope.Incoming.t + module type Rpc_implementation_intf = sig type query diff --git a/src/lib/coda_commands/coda_commands.ml b/src/lib/coda_commands/coda_commands.ml index e8ce63cf03c..b7ea1a7983d 100644 --- a/src/lib/coda_commands/coda_commands.ml +++ b/src/lib/coda_commands/coda_commands.ml @@ -260,8 +260,9 @@ let get_status ~flag t = in let commit_id = Coda_version.commit_id in let conf_dir = (Coda_lib.config t).conf_dir in + let%map peers = Coda_lib.peers t in let peers = - List.map (Coda_lib.peers t) ~f:(fun peer -> + List.map peers ~f:(fun peer -> Network_peer.Peer.to_discovery_host_and_port peer |> Host_and_port.to_string ) in @@ -391,14 +392,8 @@ let get_status ~flag t = | `Check_again time -> `Check_again (time |> Span.of_ms |> of_span_since_epoch) ) in - let libp2p_peer_id = - Option.value ~default:"" - Option.( - Coda_lib.net t |> Coda_networking.net2 >>= Coda_net2.me - >>| Coda_net2.Keypair.to_peerid >>| Coda_net2.PeerID.to_string) - in let addrs_and_ports = - Kademlia.Node_addrs_and_ports.to_display + Node_addrs_and_ports.to_display (Coda_lib.config t).gossip_net_params.addrs_and_ports in { Daemon_rpcs.Types.Status.num_accounts @@ -423,7 +418,6 @@ let get_status ~flag t = ; consensus_time_now ; consensus_mechanism ; consensus_configuration - ; libp2p_peer_id ; addrs_and_ports } let clear_hist_status ~flag t = Perf_histograms.wipe () ; get_status ~flag t diff --git a/src/lib/coda_commands/dune b/src/lib/coda_commands/dune index 916f372ce98..8cc30a00800 100644 --- a/src/lib/coda_commands/dune +++ b/src/lib/coda_commands/dune @@ -5,5 +5,5 @@ ; opam deps core ; libs - coda_base coda_lib coda_version daemon_rpcs) + coda_base coda_lib coda_version daemon_rpcs node_addrs_and_ports) (preprocess (pps ppx_coda ppx_jane))) diff --git a/src/lib/coda_graphql/coda_graphql.ml b/src/lib/coda_graphql/coda_graphql.ml index 6910d7afab6..45ed2fc0ba4 100644 --- a/src/lib/coda_graphql/coda_graphql.ml +++ b/src/lib/coda_graphql/coda_graphql.ml @@ -211,15 +211,21 @@ module Types = struct ~slot_duration:nn_int ~epoch_duration:nn_int ~acceptable_network_delay:nn_int ) + let peer : (_, Network_peer.Peer.Display.Stable.V1.t option) typ = + obj "Peer" ~fields:(fun _ -> + let open Reflection.Shorthand in + List.rev + @@ Network_peer.Peer.Display.Stable.V1.Fields.fold ~init:[] + ~host:nn_string ~libp2p_port:nn_int ~peer_id:nn_string ) + let addrs_and_ports : - (_, Kademlia.Node_addrs_and_ports.Display.Stable.V1.t option) typ = + (_, Node_addrs_and_ports.Display.Stable.V1.t option) typ = obj "AddrsAndPorts" ~fields:(fun _ -> let open Reflection.Shorthand in List.rev - @@ Kademlia.Node_addrs_and_ports.Display.Stable.V1.Fields.fold - ~init:[] ~external_ip:nn_string ~bind_ip:nn_string - ~discovery_port:nn_int ~client_port:nn_int ~libp2p_port:nn_int - ~communication_port:nn_int ) + @@ Node_addrs_and_ports.Display.Stable.V1.Fields.fold ~init:[] + ~external_ip:nn_string ~bind_ip:nn_string ~client_port:nn_int + ~libp2p_port:nn_int ~peer:(id ~typ:peer) ) let t : (_, Daemon_rpcs.Types.Status.t option) typ = obj "DaemonStatus" ~fields:(fun _ -> @@ -247,7 +253,6 @@ module Types = struct (Consensus.Data.Consensus_time.graphql_type ()))) ~consensus_mechanism:nn_string ~addrs_and_ports:(id ~typ:(non_null addrs_and_ports)) - ~libp2p_peer_id:nn_string ~consensus_configuration: (id ~typ:(non_null consensus_configuration)) ~highest_block_length_received:nn_int ) @@ -1715,9 +1720,9 @@ module Queries = struct ~f:Error.to_string_hum ) let daemon_status = - field "daemonStatus" ~doc:"Get running daemon status" ~args:[] + io_field "daemonStatus" ~doc:"Get running daemon status" ~args:[] ~typ:(non_null Types.DaemonStatus.t) ~resolve:(fun {ctx= coda; _} () -> - Coda_commands.get_status ~flag:`Performance coda ) + Coda_commands.get_status ~flag:`Performance coda >>| Result.return ) let trust_status = field "trustStatus" ~typ:Types.Payload.trust_status @@ -1863,8 +1868,8 @@ module Queries = struct ~args:Arg.[] ~typ:(non_null @@ list @@ non_null string) ~resolve:(fun {ctx= coda; _} () -> - List.map (Coda_lib.initial_peers coda) - ~f:(fun {Host_and_port.host; port} -> sprintf !"%s:%i" host port) ) + List.map (Coda_lib.initial_peers coda) ~f:Coda_net2.Multiaddr.to_string + ) let snark_pool = field "snarkPool" diff --git a/src/lib/coda_graphql/dune b/src/lib/coda_graphql/dune index 51070d440ee..c7f383ced83 100644 --- a/src/lib/coda_graphql/dune +++ b/src/lib/coda_graphql/dune @@ -3,7 +3,7 @@ (public_name coda_graphql) (libraries ; opam deps - async core cohttp graphql-async graphql-cohttp + async node_addrs_and_ports network_peer core cohttp graphql-async graphql-cohttp ; libs auxiliary_database coda_base coda_commands coda_lib lite_compat) (preprocess (pps ppx_coda ppx_jane))) diff --git a/src/lib/coda_intf/transition_frontier_components_intf.ml b/src/lib/coda_intf/transition_frontier_components_intf.ml index 71b6b108139..4a78fbc6378 100644 --- a/src/lib/coda_intf/transition_frontier_components_intf.ml +++ b/src/lib/coda_intf/transition_frontier_components_intf.ml @@ -4,6 +4,7 @@ open Pipe_lib open Cache_lib open Coda_base open Coda_transition +open Network_peer module type Transition_handler_validator_intf = sig type unprocessed_transition_cache @@ -305,7 +306,8 @@ module type Initial_validator_intf = sig -> trust_system:Trust_system.t -> transition_reader:( [ `Transition of external_transition Envelope.Incoming.t ] - * [`Time_received of Block_time.t] ) + * [`Time_received of Block_time.t] + * [`Valid_cb of bool -> unit] ) Strict_pipe.Reader.t -> valid_transition_writer:( [ `Transition of external_transition_with_initial_validation @@ -345,7 +347,8 @@ module type Transition_router_intf = sig -> network_transition_reader:( [ `Transition of External_transition.t Envelope.Incoming.t ] - * [`Time_received of Block_time.t] ) + * [`Time_received of Block_time.t] + * [`Valid_cb of bool -> unit] ) Strict_pipe.Reader.t -> producer_transition_reader:breadcrumb Strict_pipe.Reader.t -> most_recent_valid_block:External_transition.Initial_validated.t diff --git a/src/lib/coda_lib/coda_lib.ml b/src/lib/coda_lib/coda_lib.ml index de5a6e01c24..9f9d7205d2b 100644 --- a/src/lib/coda_lib/coda_lib.ml +++ b/src/lib/coda_lib/coda_lib.ml @@ -11,6 +11,7 @@ open Signature_lib open O1trace open Otp_lib open Module_version +open Network_peer module Config = Config module Subscriptions = Coda_subscriptions module Snark_worker_lib = Snark_worker @@ -48,8 +49,10 @@ type pipes = ; producer_transition_writer: (Transition_frontier.Breadcrumb.t, synchronous, unit Deferred.t) Writer.t ; external_transitions_writer: - (External_transition.t Envelope.Incoming.t * Block_time.t) Pipe.Writer.t - } + ( External_transition.t Envelope.Incoming.t + * Block_time.t + * (bool -> unit) ) + Pipe.Writer.t } type t = { config: Config.t @@ -77,7 +80,7 @@ let peek_frontier frontier_broadcast_pipe = "Cannot retrieve transition frontier now. Bootstrapping right now.") let client_port t = - let {Kademlia.Node_addrs_and_ports.client_port; _} = + let {Node_addrs_and_ports.client_port; _} = t.config.gossip_net_params.addrs_and_ports in client_port @@ -797,8 +800,22 @@ let create (config : Config.t) ~genesis_ledger ~base_proof = (frontier_broadcast_pipe_r, frontier_broadcast_pipe_w) ~network_transition_reader: (Strict_pipe.Reader.map external_transitions_reader - ~f:(fun (tn, tm) -> (`Transition tn, `Time_received tm))) - ~producer_transition_reader ~most_recent_valid_block + ~f:(fun (tn, tm, cb) -> + (`Transition tn, `Time_received tm, `Valid_cb cb) )) + ~producer_transition_reader: + (Strict_pipe.Reader.map producer_transition_reader + ~f:(fun breadcrumb -> + let et = + Transition_frontier.Breadcrumb.validated_transition + breadcrumb + |> External_transition.Validation.forget_validation + in + External_transition.poke_validation_callback et + (fun v -> + if v then Coda_networking.broadcast_state net et + ) ; + breadcrumb )) + ~most_recent_valid_block ~genesis_state_hash:config.genesis_state_hash ~genesis_ledger ~base_proof ) in @@ -840,10 +857,7 @@ let create (config : Config.t) ~genesis_ledger ~base_proof = , External_transition.Validated.to_yojson transition ) ] "Rebroadcasting $state_hash" ; - (* remove verified status for network broadcast *) - Coda_networking.broadcast_state net - (External_transition.Validation.forget_validation - transition) + External_transition.Validated.broadcast transition | Error reason -> let timing_error_json = match reason with @@ -852,6 +866,7 @@ let create (config : Config.t) ~genesis_ledger ~base_proof = | `Too_late slots -> `String (sprintf "%Lu slots too late" slots) in + External_transition.Validated.don't_broadcast transition ; Logger.warn config.logger ~module_:__MODULE__ ~location:__LOC__ ~metadata: @@ -866,7 +881,8 @@ let create (config : Config.t) ~genesis_ledger ~base_proof = (Strict_pipe.transfer (Coda_networking.states net) external_transitions_writer ~f:ident) ; - trace_task "ban notification loop" (fun () -> + (* FIXME #4093: augment ban_notifications with a Peer.ID so we can implement ban_notify + trace_task "ban notification loop" (fun () -> Linear_pipe.iter (Coda_networking.ban_notification_reader net) ~f:(fun notification -> let open Gossip_net in @@ -876,7 +892,11 @@ let create (config : Config.t) ~genesis_ledger ~base_proof = let%map _ = Coda_networking.ban_notify net peer banned_until in - () ) ) ; + () ) ) ; *) + don't_wait_for + (Linear_pipe.iter + (Coda_networking.ban_notification_reader net) + ~f:(Fn.const Deferred.unit)) ; let snark_pool_config = Network_pool.Snark_pool.Resource_pool.make_config ~verifier ~trust_system:config.trust_system diff --git a/src/lib/coda_lib/coda_lib.mli b/src/lib/coda_lib/coda_lib.mli index 626db6a4dc9..b1449f4dd0b 100644 --- a/src/lib/coda_lib/coda_lib.mli +++ b/src/lib/coda_lib/coda_lib.mli @@ -71,9 +71,9 @@ val sync_status : t -> Sync_status.t Coda_incremental.Status.Observer.t val visualize_frontier : filename:string -> t -> unit Participating_state.t -val peers : t -> Network_peer.Peer.t list +val peers : t -> Network_peer.Peer.t list Deferred.t -val initial_peers : t -> Host_and_port.t list +val initial_peers : t -> Coda_net2.Multiaddr.t list val client_port : t -> int diff --git a/src/lib/coda_lib/config.ml b/src/lib/coda_lib/config.ml index 1c409942d28..e2598390c44 100644 --- a/src/lib/coda_lib/config.ml +++ b/src/lib/coda_lib/config.ml @@ -23,7 +23,7 @@ type t = ; work_selection_method: (module Work_selector.Selection_method_intf) ; snark_worker_config: Snark_worker_config.t ; work_reassignment_wait: int - ; gossip_net_params: Gossip_net.Real.Config.t + ; gossip_net_params: Gossip_net.Libp2p.Config.t ; net_config: Coda_networking.Config.t ; snark_pool_disk_location: string ; wallets_disk_location: string diff --git a/src/lib/coda_lib/dune b/src/lib/coda_lib/dune index 83f2b00343c..26a272b0537 100644 --- a/src/lib/coda_lib/dune +++ b/src/lib/coda_lib/dune @@ -3,10 +3,10 @@ (public_name coda_lib) (library_flags -linkall) (inline_tests) - (libraries core coda_intf envelope pipe_lib logger async async_extra - kademlia unix_timestamp debug_assert o1trace consensus + (libraries core coda_intf pipe_lib logger async async_extra + unix_timestamp debug_assert o1trace consensus incremental secrets auxiliary_database work_selector - coda_networking block_producer sync_handler transition_router + coda_networking block_producer sync_handler transition_router node_addrs_and_ports otp_lib snark_worker participating_state transaction_status receipt_chain_database sync_status daemon_rpcs archive_lib exit_handlers) diff --git a/src/lib/coda_net2/coda_net2.ml b/src/lib/coda_net2/coda_net2.ml index 654ec5d84cb..e9c00b86ad8 100644 --- a/src/lib/coda_net2/coda_net2.ml +++ b/src/lib/coda_net2/coda_net2.ml @@ -3,22 +3,29 @@ open Async open Async_unix open Deferred.Let_syntax open Pipe_lib +open Network_peer -(* BTC alphabet *) -let alphabet = - B58.make_alphabet - "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" +(** simple types for yojson to derive, later mapped into a Peer.t *) +type peer_info = {libp2p_port: int; host: string; peer_id: string} +[@@deriving yojson] + +let peer_of_peer_info peer_info = + Peer.create + (Unix.Inet_addr.of_string peer_info.host) + ~libp2p_port:peer_info.libp2p_port + ~peer_id:(Peer.Id.unsafe_of_string peer_info.peer_id) let of_b58_data = function | `String s -> ( - try Ok (Bytes.of_string s |> B58.decode alphabet |> Bytes.to_string) - with B58.Invalid_base58_character -> - Or_error.error_string "invalid base58" ) + match Base64.decode s with + | Ok result -> + Ok result + | Error (`Msg s) -> + Or_error.error_string ("invalid base64: " ^ s) ) | _ -> Or_error.error_string "expected a string" -let to_b58_data (s : string) = - B58.encode alphabet (Bytes.of_string s) |> Bytes.to_string +let to_b58_data (s : string) = Base64.encode_string ~pad:true s let to_int_res x = match Yojson.Safe.Util.to_int_option x with @@ -27,7 +34,18 @@ let to_int_res x = | None -> Or_error.error_string "needed an int" -type keypair = {secret: string; public: string; peer_id: string} +module Keypair0 = struct + [%%versioned + module Stable = struct + module V1 = struct + type t = {secret: string; public: string; peer_id: Peer.Id.Stable.V1.t} + + let to_latest = Fn.id + end + end] + + type t = Stable.Latest.t +end type stream_state = | FullyOpen (** Streams start in this state. Both sides can still write *) @@ -35,6 +53,9 @@ type stream_state = (** Streams move from [FullyOpen] to [HalfClosed `Us] when the write pipe is closed. Streams move from [FullyOpen] to [HalfClosed `Them] when [Stream.reset] is called or the remote host closes their write stream. *) | FullyClosed (** Streams move from [HalfClosed peer] to FullyClosed once the party that isn't peer has their "close write" event. Once a stream is FullyClosed, its resources are released. *) +[@@deriving show] + +type erased_magic = [`Be_very_careful_to_be_type_safe] module Helper = struct type t = @@ -55,33 +76,39 @@ module Helper = struct *) ; mutable seqno: int ; logger: Logger.t - ; mutable me_keypair: keypair option - ; subscriptions: (int, subscription) Hashtbl.t + ; me_keypair: Keypair0.t Ivar.t + ; subscriptions: (int, erased_magic subscription) Hashtbl.t ; streams: (int, stream) Hashtbl.t ; protocol_handlers: (string, protocol_handler) Hashtbl.t + ; mutable banned_ips: Unix.Inet_addr.t list ; mutable new_peer_callback: (string -> string list -> unit) option ; mutable finished: bool } - and subscription = + and 'a subscription = { net: t ; topic: string ; idx: int ; mutable closed: bool - ; validator: string -> string -> bool Deferred.t + ; validator: 'a Envelope.Incoming.t -> bool Deferred.t + ; encode: 'a -> string + ; on_decode_failure: + [`Ignore | `Call of string Envelope.Incoming.t -> Error.t -> unit] + ; decode: string -> 'a Or_error.t ; write_pipe: - ( string Envelope.Incoming.t + ( 'a Envelope.Incoming.t , Strict_pipe.crash Strict_pipe.buffered , unit ) Strict_pipe.Writer.t - ; read_pipe: string Envelope.Incoming.t Strict_pipe.Reader.t } + ; read_pipe: 'a Envelope.Incoming.t Strict_pipe.Reader.t } and stream = { net: t ; idx: int ; mutable state: stream_state + ; mutable state_lock: bool + ; state_wait: unit Async.Condition.t ; protocol: string - ; remote_peerid: string - ; remote_addr: string + ; peer: Peer.t ; incoming_r: string Pipe.Reader.t ; incoming_w: string Pipe.Writer.t ; outgoing_r: string Pipe.Reader.t @@ -104,7 +131,40 @@ module Helper = struct type ('a, 'b) rpc = (module Rpc with type input = 'a and type output = 'b) + module Data : sig + type t [@@deriving yojson] + + val pack_data : string -> t + + val to_string : t -> string + end = struct + type t = string + + let encode_string t = Base64.encode_string ~pad:true t + + let decode_string s = Base64.decode_exn s + + let to_yojson s = `String (encode_string s) + + let of_yojson = function + | `String s -> ( + try Ok (decode_string s) + with exn -> Error Error.(to_string_hum (of_exn exn)) ) + | _ -> + Error "expected a string" + + let pack_data s = s + + let to_string s = s + end + module Rpcs = struct + module No_input = struct + type input = unit + + let input_to_yojson () = `Assoc [] + end + module Send_stream_msg = struct type input = {stream_idx: int; data: string} [@@deriving yojson] @@ -118,7 +178,9 @@ module Helper = struct type output = string [@@deriving yojson] - let name = "closeStream" + (* This RPC remains unused, see below for the commented out + Close_stream usage *) + let[@warning "-32"] name = "closeStream" end module Remove_stream_handler = struct @@ -130,9 +192,7 @@ module Helper = struct end module Generate_keypair = struct - type input = unit - - let input_to_yojson () = `Assoc [] + include No_input type output = {sk: string; pk: string; peer_id: string} [@@deriving yojson] @@ -141,7 +201,7 @@ module Helper = struct end module Publish = struct - type input = {topic: string; data: string} [@@deriving yojson] + type input = {topic: string; data: Data.t} [@@deriving yojson] type output = string [@@deriving yojson] @@ -170,7 +230,8 @@ module Helper = struct ; statedir: string ; ifaces: string list ; external_maddr: string - ; network_id: string } + ; network_id: string + ; unsafe_no_trust_ip: bool } [@@deriving yojson] type output = string [@@deriving yojson] @@ -187,7 +248,7 @@ module Helper = struct end module Listening_addrs = struct - type input = unit [@@deriving yojson] + include No_input type output = string list [@@deriving yojson] @@ -213,9 +274,7 @@ module Helper = struct module Open_stream = struct type input = {peer: string; protocol: string} [@@deriving yojson] - type output = - {stream_idx: int; remote_addr: string; remote_peerid: string} - [@@deriving yojson] + type output = {stream_idx: int; peer: peer_info} [@@deriving yojson] let name = "openStream" end @@ -237,14 +296,44 @@ module Helper = struct end module Begin_advertising = struct - type input = unit - - let input_to_yojson () = `Assoc [] + include No_input type output = string [@@deriving yojson] let name = "beginAdvertising" end + + module List_peers = struct + include No_input + + type output = peer_info list [@@deriving yojson] + + let name = "listPeers" + end + + module Find_peer = struct + type input = {peer_id: string} [@@deriving yojson] + + type output = peer_info [@@deriving yojson] + + let name = "findPeer" + end + + module Ban_ip = struct + type input = {ip: string} [@@deriving yojson] + + type output = string [@@deriving yojson] + + let name = "banIP" + end + + module Unban_ip = struct + type input = {ip: string} [@@deriving yojson] + + type output = string [@@deriving yojson] + + let name = "unbanIP" + end end (** Generate the next sequence number for our side of the connection *) @@ -259,7 +348,10 @@ module Helper = struct let do_rpc (type a b) t (rpc : (a, b) rpc) (body : a) : b Deferred.Or_error.t = let module M = (val rpc) in - if not t.finished then ( + if + (not t.finished) + && (not @@ Writer.is_closed (Child_processes.stdin t.subprocess)) + then ( let res = Ivar.create () in let seqno = genseq t in Hashtbl.add_exn t.outstanding_requests ~key:seqno ~data:res ; @@ -270,19 +362,27 @@ module Helper = struct ; ("body", M.input_to_yojson body) ] in let rpc = Yojson.Safe.to_string actual_obj in - Logger.trace t.logger "sending line to libp2p_helper: $line" - ~module_:__MODULE__ ~location:__LOC__ - ~metadata:[("line", `String rpc)] ; + Logger.spam t.logger "sending line to libp2p_helper: $line" + ~metadata: + [ ( "line" + , `String (String.slice rpc 0 (Int.min (String.length rpc) 2048)) + ) ] ; Writer.write_line (Child_processes.stdin t.subprocess) rpc ; let%map res_json = Ivar.read res in Or_error.bind res_json ~f: (Fn.compose (Result.map_error ~f:Error.of_string) M.output_of_yojson) ) - else Deferred.Or_error.error_string "helper process already exited" + else + Deferred.Or_error.errorf "helper process already exited (doing RPC %s)" + (M.input_to_yojson body |> Yojson.Safe.to_string) - let stream_state_invariant stream = + let stream_state_invariant stream logger = let us_closed = Pipe.is_closed stream.outgoing_w in let them_closed = Pipe.is_closed stream.incoming_w in + Logger.trace logger "%sus_closed && %sthem_closed" + (if us_closed then "" else "not ") + (if them_closed then "" else "not ") + ~module_:__MODULE__ ~location:__LOC__ ; match stream.state with | FullyOpen -> (not us_closed) && not them_closed @@ -293,100 +393,154 @@ module Helper = struct | FullyClosed -> us_closed && them_closed - (** Advance the stream_state automata, closing pipes as necessary. *) + (** Advance the stream_state automata, closing pipes as necessary. This + executes atomically, using a bool + condition variable to synchronize + updates. *) let advance_stream_state net (stream : stream) who_closed = - let%map () = - match who_closed with - | `Us -> ( - match%map - do_rpc net (module Rpcs.Close_stream) {stream_idx= stream.idx} - with - | Ok "closeStream success" -> - () - | Ok v -> - failwithf "helper broke RPC protocol: closeStream got %s" v () - | Error e -> - Error.raise e ) + let name_participant = function + | `Us -> + "the local host" | `Them -> - (* Helper notified us that the Go side closed its write pipe. *) - Pipe.close stream.incoming_w ; - Deferred.return () - in - let double_close () = - Logger.fatal net.logger ~module_:__MODULE__ ~location:__LOC__ - "stream with index $index closed twice by $party" - ~metadata: - [ ("index", `Int stream.idx) - ; ( "party" - , `String (match who_closed with `Us -> "us" | `Them -> "them") ) - ] ; - failwith "stream double closed" + "the remote host" in - (* replace with [%derive.eq : [`Us|`Them]] when it is supported.*) - let us_them_eq a b = - match (a, b) with `Us, `Us | `Them, `Them -> true | _, _ -> false + let rec acquire_lock () = + if not stream.state_lock then ( + stream.state_lock <- true ; + Deferred.unit ) + else + let%bind () = Async.Condition.wait stream.state_wait in + acquire_lock () in - let release () = - match Hashtbl.find_and_remove net.streams stream.idx with - | Some _ -> - () - | None -> + let%bind () = acquire_lock () in + let old_state = stream.state in + Monitor.protect + ~finally:(fun () -> + stream.state_lock <- false ; + Async.Condition.signal stream.state_wait () ; + Deferred.unit ) + (fun () -> + let%map () = + match who_closed with + | `Us -> + (* FIXME related to https://github.com/libp2p/go-libp2p-circuit/issues/18 + "preemptive" or half-closing a stream doesn't actually seem supported: + after closing it we can't read anymore.*) + (* + match%map + do_rpc net (module Rpcs.Close_stream) {stream_idx= stream.idx} + with + | Ok "closeStream success" -> + () + | Ok v -> + failwithf "helper broke RPC protocol: closeStream got %s" v + () + | Error e -> + Error.raise e ) + *) + Deferred.unit + | `Them -> + (* Helper notified us that the Go side closed its write pipe. *) + Pipe.close stream.incoming_w ; + Deferred.unit + in + let double_close () = + Logger.error net.logger ~module_:__MODULE__ ~location:__LOC__ + "stream with index $index closed twice by $party" + ~metadata: + [ ("index", `Int stream.idx) + ; ("party", `String (name_participant who_closed)) ] ; + stream.state + in + (* replace with [%derive.eq : [`Us|`Them]] when it is supported.*) + let us_them_eq a b = + match (a, b) with `Us, `Us | `Them, `Them -> true | _, _ -> false + in + let release () = + match Hashtbl.find_and_remove net.streams stream.idx with + | Some _ -> + () + | None -> + Logger.error net.logger + "tried to release stream $idx but it was already gone" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata:[("idx", `Int stream.idx)] + in + stream.state + <- ( match old_state with + | FullyOpen -> + HalfClosed who_closed + | HalfClosed other -> + if us_them_eq other who_closed then ignore (double_close ()) + else release () ; + FullyClosed + | FullyClosed -> + double_close () ) ; + (* TODO: maybe we can check some invariants on the Go side too? *) + if not (stream_state_invariant stream net.logger) then Logger.error net.logger - "tried to release stream $idx but it was already gone" - ~module_:__MODULE__ ~location:__LOC__ - ~metadata:[("idx", `Int stream.idx)] - in - stream.state - <- ( match (stream.state, who_closed) with - | FullyOpen, _ -> - HalfClosed who_closed - | HalfClosed other, _ -> - if us_them_eq other who_closed then double_close () else release () ; - FullyClosed - | FullyClosed, _ -> - double_close () ) ; - (* TODO: maybe we can check some invariants on the Go side too? *) - assert (stream_state_invariant stream) + "after $who_closed closed the stream, stream state invariant \ + broke (previous state: $old_stream_state)" + ~location:__LOC__ ~module_:__MODULE__ + ~metadata: + [ ("who_closed", `String (name_participant who_closed)) + ; ("old_stream_state", `String (show_stream_state old_state)) ] + ) (** Track a new stream. - This is used for both newly created outbound streams and incomming streams, and + This is used for both newly created outbound streams and incoming streams, and spawns the task that sends outbound messages to the helper. - The writing end of the stream will be automatically be closed once the + Our writing end of the stream will be automatically be closed once the write pipe is closed. *) - let make_stream net idx protocol remote_addr remote_peerid = + let make_stream net idx protocol remote_peer_info = let incoming_r, incoming_w = Pipe.create () in let outgoing_r, outgoing_w = Pipe.create () in + let peer = + Peer.create + (Unix.Inet_addr.of_string remote_peer_info.host) + ~libp2p_port:remote_peer_info.libp2p_port + ~peer_id:(Peer.Id.unsafe_of_string remote_peer_info.peer_id) + in let stream = { net ; idx ; state= FullyOpen - ; remote_addr - ; remote_peerid + ; state_lock= false + ; state_wait= Async.Condition.create () + ; peer ; protocol ; incoming_r ; incoming_w ; outgoing_r ; outgoing_w } in - (let%bind () = - Pipe.iter outgoing_r ~f:(fun msg -> - match%map - do_rpc net - (module Rpcs.Send_stream_msg) - {stream_idx= idx; data= to_b58_data msg} - with - | Ok "sendStreamMsg success" -> - () - | Ok v -> - failwithf "helper broke RPC protocol: sendStreamMsg got %s" v () - | Error e -> - Error.raise e ) - in - advance_stream_state net stream `Us) - |> don't_wait_for ; + let outgoing_loop () = + let%bind () = + Pipe.iter outgoing_r ~f:(fun msg -> + match%map + do_rpc net + (module Rpcs.Send_stream_msg) + {stream_idx= idx; data= to_b58_data msg} + with + | Ok "sendStreamMsg success" -> + () + | Ok v -> + failwithf "helper broke RPC protocol: sendStreamMsg got %s" v + () + | Error e -> + Logger.error net.logger + "error sending message on stream $idx: $error" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("idx", `Int idx) + ; ("error", `String (Error.to_string_hum e)) ] ; + Pipe.close outgoing_w ) + in + advance_stream_state net stream `Us + in + don't_wait_for (outgoing_loop ()) ; stream (** Parses a normal RPC response and resolves the deferred it answers. *) @@ -396,57 +550,46 @@ module Helper = struct let%bind seq = v |> member "seqno" |> to_int_res in let err = v |> member "error" in let res = v |> member "success" in - let fill_result = - match (err, res) with - | `Null, r -> - Ok r - | e, `Null -> - Or_error.errorf "RPC #%d failed: %s" seq (Yojson.Safe.to_string e) - | _, _ -> - Or_error.errorf "unexpected response to RPC #%d: %s" seq + if not (Int.equal seq 0) then + let fill_result = + match (err, res) with + | `Null, r -> + Ok r + | e, `Null -> + Or_error.errorf "RPC #%d failed: %s" seq (Yojson.Safe.to_string e) + | _, _ -> + Or_error.errorf "unexpected response to RPC #%d: %s" seq + (Yojson.Safe.to_string v) + in + match Hashtbl.find_and_remove t.outstanding_requests seq with + | Some ivar -> + Ivar.fill ivar fill_result ; Ok () + | None -> + Or_error.errorf "spurious reply to RPC #%d: %s" seq (Yojson.Safe.to_string v) - in - match Hashtbl.find_and_remove t.outstanding_requests seq with - | Some ivar -> - Ivar.fill ivar fill_result ; Ok () - | None -> - Or_error.errorf "spurious reply to RPC #%d: %s" seq - (Yojson.Safe.to_string v) + else ( + Logger.error t.logger "important info from helper: %s" + (Yojson.Safe.to_string err) + ~module_:__MODULE__ ~location:__LOC__ ; + Ok () ) (** Parses an "upcall" and performs it. An upcall is like an RPC from the helper to us.*) module Upcall = struct - module Data : sig - type t = string [@@deriving yojson] - end = struct - type t = string - - let to_string t = - B58.encode alphabet (Bytes.of_string t) |> Bytes.to_string - - let of_string s = - Bytes.of_string s |> B58.decode alphabet |> Bytes.to_string - - let to_yojson s = `String (to_string s) - - let of_yojson = function - | `String s -> ( - try Ok (of_string s) - with exn -> Error Error.(to_string_hum (of_exn exn)) ) - | _ -> - Error "expected a string" - end - module Publish = struct - type t = {upcall: string; subscription_idx: int; data: Data.t} + type t = + { upcall: string + ; subscription_idx: int + ; sender: peer_info option + ; data: Data.t } [@@deriving yojson] end module Validate = struct type t = - { peer_id: string + { sender: peer_info option ; data: Data.t ; seqno: int ; upcall: string @@ -470,11 +613,7 @@ module Helper = struct module Incoming_stream = struct type t = - { upcall: string - ; remote_addr: string - ; remote_peerid: string - ; stream_idx: int - ; protocol: string } + {upcall: string; peer: peer_info; stream_idx: int; protocol: string} [@@deriving yojson] end @@ -491,31 +630,86 @@ module Helper = struct Or_error.errorf !"Error converting from json: %s" s end + let lookup_peerid net peer_id = + match%map do_rpc net (module Rpcs.Find_peer) {peer_id} with + | Ok peer_info -> + Ok + (Peer.create + (Unix.Inet_addr.of_string peer_info.host) + ~libp2p_port:peer_info.libp2p_port ~peer_id:peer_info.peer_id) + | Error e -> + Error e + let handle_upcall t v = let open Yojson.Safe.Util in let open Or_error.Let_syntax in let open Upcall in + let wrap sender data = + match sender with + | Some sender -> + if + String.equal sender.host "127.0.0.1" + && Int.equal sender.libp2p_port 0 + then Envelope.Incoming.local data + else + Envelope.Incoming.wrap_peer ~sender:(peer_of_peer_info sender) + ~data + | None -> + Envelope.Incoming.local data + in match member "upcall" v |> to_string with (* Message published on one of our subscriptions *) | "publish" -> ( let%bind m = Publish.of_yojson v |> or_error in + let _me = + Ivar.peek t.me_keypair + |> Option.value_exn + ~message: + "How did we receive pubsub before configuring our keypair?" + in + (*if + Option.fold m.sender ~init:false ~f:(fun _ sender -> + Peer.Id.equal sender.peer_id me.peer_id ) + then ( + Logger.trace t.logger + "not handling published message originated from me" + ~module_:__MODULE__ ~location:__LOC__ ; + (* elide messages that we sent *) return () ) + else*) let idx = m.subscription_idx in let data = m.data in match Hashtbl.find t.subscriptions idx with | Some sub -> - if not sub.closed then - (* TAKE CARE: doing anything with the return value here is UNSOUND - because write_pipe has a cast type. We don't remember what the - original 'return was. *) - let _ = - Strict_pipe.Writer.write sub.write_pipe - (Envelope.Incoming.wrap ~data ~sender:Envelope.Sender.Local) - in - () + if not sub.closed then ( + let raw_data = Data.to_string data in + let decoded = sub.decode raw_data in + match decoded with + | Ok data -> + (* TAKE CARE: doing anything with the return + value here except ignore is UNSOUND because + write_pipe has a cast type. We don't remember + what the original 'return was. *) + Strict_pipe.Writer.write sub.write_pipe (wrap m.sender data) + |> ignore + | Error e -> + ( match sub.on_decode_failure with + | `Ignore -> + () + | `Call f -> + f (wrap m.sender raw_data) e ) ; + Logger.error t.logger + "failed to decode message published on subscription \ + $topic ($idx): $error" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("topic", `String sub.topic) + ; ("idx", `Int idx) + ; ("error", `String (Error.to_string_hum e)) ] ; + () (* TODO: add sender to Publish.t and include it here. *) - (* TODO: think about exposing the PeerID of the originator as well? *) + (* TODO: think about exposing the PeerID of the originator as well? *) ) else - Logger.warn t.logger + Logger.debug t.logger "received msg for subscription $sub after unsubscribe, was it \ still in the stdout pipe?" ~module_:__MODULE__ ~location:__LOC__ @@ -530,24 +724,45 @@ module Helper = struct let idx = m.subscription_idx in let seqno = m.seqno in match Hashtbl.find t.subscriptions idx with - | Some v -> + | Some sub -> (let open Deferred.Let_syntax in - (let%bind is_valid = v.validator m.peer_id m.data in - match%map - do_rpc t (module Rpcs.Validation_complete) {seqno; is_valid} - with - | Ok "validationComplete success" -> - () - | Ok v -> - failwithf - "helper broke RPC protocol: validationComplete got %s" v () - | Error e -> - Logger.error t.logger - "error during validationComplete, ignoring and continuing: \ - $error" - ~module_:__MODULE__ ~location:__LOC__ - ~metadata:[("error", `String (Error.to_string_hum e))]) - |> don't_wait_for) ; + let raw_data = Data.to_string m.data in + let decoded = sub.decode raw_data in + let%bind is_valid = + match decoded with + | Ok data -> + sub.validator (wrap m.sender data) + | Error e -> + ( match sub.on_decode_failure with + | `Ignore -> + () + | `Call f -> + f (wrap m.sender raw_data) e ) ; + Logger.error t.logger + "failed to decode message published on subscription \ + $topic ($idx): $error" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("topic", `String sub.topic) + ; ("idx", `Int idx) + ; ("error", `String (Error.to_string_hum e)) ] ; + return false + in + match%map + do_rpc t (module Rpcs.Validation_complete) {seqno; is_valid} + with + | Ok "validationComplete success" -> + () + | Ok v -> + failwithf + "helper broke RPC protocol: validationComplete got %s" v () + | Error e -> + Logger.error t.logger + "error during validationComplete, ignoring and continuing: \ + $error" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata:[("error", `String (Error.to_string_hum e))]) + |> don't_wait_for ; Ok () | None -> Or_error.errorf @@ -558,9 +773,7 @@ module Helper = struct let%bind m = Incoming_stream.of_yojson v |> or_error in let stream_idx = m.stream_idx in let protocol = m.protocol in - let stream = - make_stream t stream_idx protocol m.remote_addr m.remote_peerid - in + let stream = make_stream t stream_idx protocol m.peer in match Hashtbl.find t.protocol_handlers protocol with | Some ph -> if not ph.closed then ( @@ -611,7 +824,8 @@ module Helper = struct let%bind m = Incoming_stream_msg.of_yojson v |> or_error in match Hashtbl.find t.streams m.stream_idx with | Some {incoming_w; _} -> - don't_wait_for (Pipe.write incoming_w m.data) ; + don't_wait_for + (Pipe.write_if_open incoming_w (Data.to_string m.data)) ; Ok () | None -> Or_error.errorf @@ -620,7 +834,7 @@ module Helper = struct | "streamLost" -> let%bind m = Stream_lost.of_yojson v |> or_error in let stream_idx = m.stream_idx in - Logger.warn t.logger + Logger.trace t.logger "Encountered error while reading stream $idx: $error" ~module_:__MODULE__ ~location:__LOC__ ~metadata:[("error", `String m.reason); ("idx", `Int stream_idx)] ; @@ -639,73 +853,6 @@ module Helper = struct ) | s -> Or_error.errorf "unknown upcall %s" s - - let create logger conf_dir = - let outstanding_requests = Hashtbl.create (module Int) in - match%bind - Child_processes.start_custom ~logger ~name:"libp2p_helper" - ~git_root_relative_path: - "src/app/libp2p_helper/result/bin/libp2p_helper" ~conf_dir ~args:[] - ~stdout:(`Log Logger.Level.Trace, `Pipe) - ~stderr: - (`Log Logger.Level.Debug, `No_pipe) - (* TODO the stderr log messages are JSON but not in our format. The - helper should either emit our format or we should convert in - OCaml *) - ~termination: - (`Handler - (fun ~killed e -> - if killed then ( - Hashtbl.iter outstanding_requests ~f:(fun iv -> - Ivar.fill iv - (Or_error.error_string - "libp2p_helper process died before answering") ) ; - Deferred.unit ) - else ( - Logger.fatal logger ~module_:__MODULE__ ~location:__LOC__ - !"libp2p_helper process died: %s" - (Unix.Exit_or_signal.to_string_hum e) ; - raise Child_processes.Child_died ) )) - with - | Error e -> - Deferred.Or_error.error_string - ( "Could not start libp2p_helper. If you are a dev, did you forget \ - to `make libp2p_helper` and set CODA_LIBP2P_HELPER_PATH? Try \ - CODA_LIBP2P_HELPER_PATH=$PWD/src/app/libp2p_helper/result/bin/libp2p_helper " - ^ Error.to_string_hum e ) - | Ok subprocess -> - let t = - { subprocess - ; conf_dir - ; logger - ; me_keypair= None - ; outstanding_requests - ; subscriptions= Hashtbl.create (module Int) - ; streams= Hashtbl.create (module Int) - ; new_peer_callback= None - ; protocol_handlers= Hashtbl.create (module String) - ; seqno= 1 - ; finished= false } - in - Strict_pipe.Reader.iter (Child_processes.stdout_lines subprocess) - ~f:(fun line -> - let open Yojson.Safe.Util in - let v = Yojson.Safe.from_string line in - ( match - if member "upcall" v = `Null then handle_response t v - else handle_upcall t v - with - | Ok () -> - () - | Error e -> - Logger.error logger "handling line from helper failed! $err" - ~module_:__MODULE__ ~location:__LOC__ - ~metadata: - [ ("line", `String line) - ; ("err", `String (Error.to_string_hum e)) ] ) ; - Deferred.unit ) - |> don't_wait_for ; - Deferred.Or_error.return t end [@(* Warning 30 is about field labels being defined in multiple types. It means more disambiguation has to happen sometimes but it doesn't seem to be a big deal. *) @@ -714,10 +861,8 @@ end [@(* Warning 30 is about field labels being defined in multiple types. type net = Helper.t -type peer_id = string - module Keypair = struct - type t = keypair + include Keypair0 let random net = match%map Helper.do_rpc net (module Helper.Rpcs.Generate_keypair) () with @@ -725,49 +870,34 @@ module Keypair = struct (let open Or_error.Let_syntax in let%bind secret = of_b58_data (`String sk) in let%map public = of_b58_data (`String pk) in - {secret; public; peer_id}) + ({secret; public; peer_id= Peer.Id.unsafe_of_string peer_id} : t)) |> Or_error.ok_exn | Error e -> failwithf "other RPC error generateKeypair: %s" (Error.to_string_hum e) () - let secret_key_base58 {secret; _} = to_b58_data secret + let secret_key_base58 ({secret; _} : t) = to_b58_data secret - let to_string {secret; public; peer_id} = - String.concat ~sep:"," [to_b58_data secret; to_b58_data public; peer_id] + let to_string ({secret; public; peer_id} : t) = + String.concat ~sep:"," + [to_b58_data secret; to_b58_data public; Peer.Id.to_string peer_id] let of_string s = - let with_semicolon = - match String.split s ~on:';' with - | [secret_b58; public_b58; peer_id] -> - let open Or_error.Let_syntax in - let%map secret = of_b58_data (`String secret_b58) - and public = of_b58_data (`String public_b58) in - {secret; public; peer_id} - | _ -> - Or_error.errorf "%s is not a valid Keypair.to_string output" s - in - let with_comma = - match String.split s ~on:',' with + let parse_with_sep sep = + match String.split s ~on:sep with | [secret_b58; public_b58; peer_id] -> let open Or_error.Let_syntax in let%map secret = of_b58_data (`String secret_b58) and public = of_b58_data (`String public_b58) in - {secret; public; peer_id} + ({secret; public; peer_id= Peer.Id.unsafe_of_string peer_id} : t) | _ -> Or_error.errorf "%s is not a valid Keypair.to_string output" s in + let with_semicolon = parse_with_sep ';' in + let with_comma = parse_with_sep ',' in if Or_error.is_error with_semicolon then with_comma else with_semicolon - let to_peerid {peer_id; _} = peer_id -end - -module PeerID = struct - type t = peer_id - - let to_string t = t - - let of_keypair = Keypair.to_peerid + let to_peer_id ({peer_id; _} : t) = peer_id end module Multiaddr = struct @@ -778,36 +908,46 @@ module Multiaddr = struct let of_string t = t end -type discovered_peer = {id: PeerID.t; maddrs: Multiaddr.t list} +type discovered_peer = {id: Peer.Id.t; maddrs: Multiaddr.t list} module Pubsub = struct let publish net ~topic ~data = match%map Helper.do_rpc net (module Helper.Rpcs.Publish) - {topic; data= to_b58_data data} - |> Deferred.Or_error.ok_exn + {topic; data= Helper.Data.pack_data data} with - | "publish success" -> + | Ok "publish success" -> () - | v -> + | Ok v -> failwithf "helper broke RPC protocol: publish got %s" v () + | Error e -> + Logger.error net.logger + "error while publishing message on $topic: $err" ~module_:__MODULE__ + ~location:__LOC__ + ~metadata: + [("topic", `String topic); ("err", `String (Error.to_string_hum e))] module Subscription = struct - type t = Helper.subscription = + type 'a t = 'a Helper.subscription = { net: Helper.t ; topic: string ; idx: int ; mutable closed: bool - ; validator: string -> string -> bool Deferred.t + ; validator: 'a Envelope.Incoming.t -> bool Deferred.t + ; encode: 'a -> string + ; on_decode_failure: + [`Ignore | `Call of string Envelope.Incoming.t -> Error.t -> unit] + ; decode: string -> 'a Or_error.t ; write_pipe: - ( string Envelope.Incoming.t + ( 'a Envelope.Incoming.t , Strict_pipe.crash Strict_pipe.buffered , unit ) Strict_pipe.Writer.t - ; read_pipe: string Envelope.Incoming.t Strict_pipe.Reader.t } + ; read_pipe: 'a Envelope.Incoming.t Strict_pipe.Reader.t } - let publish {net; topic; _} message = publish net ~topic ~data:message + let publish {net; topic; encode; _} message = + publish net ~topic ~data:(encode message) let unsubscribe ({net; idx; write_pipe; _} as t) = if not t.closed then ( @@ -817,18 +957,20 @@ module Pubsub = struct Helper.do_rpc net (module Helper.Rpcs.Unsubscribe) {subscription_idx= idx} - |> Deferred.Or_error.ok_exn with - | "unsubscribe success" -> + | Ok "unsubscribe success" -> Ok () - | v -> - failwithf "helper broke RPC protocol: unsubscribe got %s" v () ) + | Ok v -> + failwithf "helper broke RPC protocol: unsubscribe got %s" v () + | Error e -> + Error e ) else Deferred.Or_error.error_string "already unsubscribed" let message_pipe {read_pipe; _} = read_pipe end - let subscribe (net : net) (topic : string) ~should_forward_message = + let subscribe_raw (net : net) (topic : string) ~should_forward_message + ~encode ~decode ~on_decode_failure = let subscription_idx = Helper.genseq net in let read_pipe, write_pipe = Strict_pipe.create @@ -840,8 +982,10 @@ module Pubsub = struct ; topic ; idx= subscription_idx ; closed= false - ; validator= - (fun s d -> should_forward_message ~sender:(s :> PeerID.t) ~data:d) + ; encode + ; on_decode_failure + ; decode + ; validator= should_forward_message ; write_pipe ; read_pipe } in @@ -860,7 +1004,8 @@ module Pubsub = struct | None -> ( let%bind _ = match - Hashtbl.add net.subscriptions ~key:subscription_idx ~data:sub + Hashtbl.add net.subscriptions ~key:subscription_idx + ~data:(Obj.magic sub : erased_magic Subscription.t) with | `Ok -> return (Ok ()) @@ -881,11 +1026,44 @@ module Pubsub = struct | Error e -> Strict_pipe.Writer.close write_pipe ; Error e ) -end -let me (net : Helper.t) = net.me_keypair + let subscribe_encode net topic ~should_forward_message ~bin_prot + ~on_decode_failure = + subscribe_raw + ~decode:(fun msg_str -> + let b = Bigstring.of_string msg_str in + Bigstring.read_bin_prot b bin_prot.Bin_prot.Type_class.reader + |> Or_error.map ~f:fst ) + ~encode:(fun msg -> + Bin_prot.Utils.bin_dump ~header:true + bin_prot.Bin_prot.Type_class.writer msg + |> Bigstring.to_string ) + ~should_forward_message ~on_decode_failure net topic + + let subscribe = + subscribe_raw ~encode:Fn.id ~decode:Or_error.return + ~on_decode_failure:`Ignore +end -let configure net ~me ~external_maddr ~maddrs ~network_id ~on_new_peer = +let me (net : Helper.t) = Ivar.read net.me_keypair + +let list_peers net = + match%map Helper.do_rpc net (module Helper.Rpcs.List_peers) () with + | Ok peers -> + (* FIXME #4039: filter_map shouldn't be necessary *) + List.filter_map peers ~f:(fun {host; libp2p_port; peer_id} -> + if Int.equal libp2p_port 0 then None + else + Some + (Peer.create + (Unix.Inet_addr.of_string host) + ~libp2p_port + ~peer_id:(Peer.Id.unsafe_of_string peer_id)) ) + | Error _ -> + [] + +let configure net ~me ~external_maddr ~maddrs ~network_id ~on_new_peer + ~unsafe_no_trust_ip = match%map Helper.do_rpc net (module Helper.Rpcs.Configure) @@ -893,15 +1071,16 @@ let configure net ~me ~external_maddr ~maddrs ~network_id ~on_new_peer = ; statedir= net.conf_dir ; ifaces= List.map ~f:Multiaddr.to_string maddrs ; external_maddr= Multiaddr.to_string external_maddr - ; network_id } + ; network_id + ; unsafe_no_trust_ip } with | Ok "configure success" -> - net.me_keypair <- Some me ; + Ivar.fill net.me_keypair me ; net.new_peer_callback <- Some (fun peer_id peer_addrs -> on_new_peer - { id= (peer_id :> PeerID.t) + { id= Peer.Id.unsafe_of_string peer_id ; maddrs= List.map ~f:Multiaddr.of_string peer_addrs } ) ; Ok () | Ok j -> @@ -909,11 +1088,8 @@ let configure net ~me ~external_maddr ~maddrs ~network_id ~on_new_peer = | Error e -> Error e -(** TODO: needs a new helper RPC. - What should the semantics be? Only peers we currently have open - connections to? Anybody in the peerbook? Only those we're gossiping to? - *) -let peers _ = failwith "Coda_net2.peers not yet implemented" +(** List of all peers we are currently connected to. *) +let peers (net : net) = list_peers net let listen_on net iface = match%map Helper.do_rpc net (module Helper.Rpcs.Listen) {iface} with @@ -930,21 +1106,10 @@ let listening_addrs net = Error e (** TODO: graceful shutdown. Reset all our streams, sync the databases, then - shutdown. Replace kill invocation with an RPC. *) +shutdown. Replace kill invocation with an RPC. *) let shutdown (net : net) = - let fail exit = - failwithf - !"Libp2p helper died when shutting down with unexpected exit: %{sexp: \ - Unix.Exit_or_signal.t}" - exit () - in - Child_processes.kill net.subprocess - >>| Or_error.ok_exn - >>= function - | Error (`Signal s) as exit -> - if Signal.equal s Signal.term then Deferred.unit else fail exit - | exit -> - fail exit + net.finished <- true ; + Deferred.ignore (Child_processes.kill net.subprocess) module Stream = struct type t = Helper.stream @@ -963,9 +1128,7 @@ module Stream = struct | Error e -> Error e - let remote_peerid ({remote_peerid; _} : t) = remote_peerid - - let remote_addr ({remote_addr; _} : t) = remote_addr + let remote_peer ({peer; _} : t) = peer end module Protocol_handler = struct @@ -994,13 +1157,21 @@ module Protocol_handler = struct Helper.do_rpc net (module Helper.Rpcs.Remove_stream_handler) {protocol= protocol_name} - |> Deferred.Or_error.ok_exn with - | "removeStreamHandler success" -> + | Ok "removeStreamHandler success" -> close_connections net protocol_name - | v -> + | Ok v -> close_connections net protocol_name ; failwithf "helper broke RPC protocol: addStreamHandler got %s" v () + | Error e -> + Logger.info net.logger + "error while closing handler for $protocol, closing connections \ + anyway: $err" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("protocol", `String protocol_name) + ; ("err", `String (Error.to_string_hum e)) ] ; + close_connections net protocol_name end let handle_protocol net ~on_handler_error ~protocol f = @@ -1012,25 +1183,24 @@ let handle_protocol net ~on_handler_error ~protocol f = else match%map Helper.do_rpc net (module Helper.Rpcs.Add_stream_handler) {protocol} - |> Deferred.Or_error.ok_exn with - | "addStreamHandler success" -> + | Ok "addStreamHandler success" -> Hashtbl.add_exn net.protocol_handlers ~key:protocol ~data:ph ; Ok ph - | v -> + | Ok v -> failwithf "helper broke RPC protocol: addStreamHandler got %s" v () + | Error e -> + Error e let open_stream net ~protocol peer = match%map Helper.( do_rpc net (module Rpcs.Open_stream) - {peer= PeerID.to_string peer; protocol}) + {peer= Peer.Id.to_string peer; protocol}) with - | Ok {stream_idx; remote_addr; remote_peerid} -> - let stream = - Helper.make_stream net stream_idx protocol remote_addr remote_peerid - in + | Ok {stream_idx; peer} -> + let stream = Helper.make_stream net stream_idx protocol peer in Hashtbl.add_exn net.streams ~key:stream_idx ~data:stream ; Ok stream | Error e -> @@ -1057,16 +1227,129 @@ let begin_advertising net = | Error e -> Error e +let lookup_peerid = Helper.lookup_peerid + +let ban_ip net ip = + match%map + Helper.(do_rpc net (module Rpcs.Ban_ip) {ip= Unix.Inet_addr.to_string ip}) + with + | Ok "banIP success" -> + net.banned_ips <- ip :: net.banned_ips ; + Ok `Ok + | Ok "banIP already banned" -> + Ok `Already_banned + | Ok v -> + failwithf "helper broke RPC protocol: banIP got %s" v () + | Error e -> + Error e + +let unban_ip net ip = + match%map + Helper.( + do_rpc net (module Rpcs.Unban_ip) {ip= Unix.Inet_addr.to_string ip}) + with + | Ok "unbanIP success" -> + net.banned_ips + <- List.filter net.banned_ips ~f:(fun banned -> + not (Unix.Inet_addr.equal banned ip) ) ; + Ok `Ok + | Ok "unbanIP not banned" -> + Ok `Not_banned + | Ok v -> + failwithf "helper broke RPC protocol: unbanIP got %s" v () + | Error e -> + Error e + +let banned_ips net = Deferred.return net.Helper.banned_ips + let create ~logger ~conf_dir = - let conf_dir' = conf_dir ^/ "libp2p_helper" in - Unix.mkdir ~p:() conf_dir' >>= fun () -> Helper.create logger conf_dir' + let outstanding_requests = Hashtbl.create (module Int) in + let termination_hack_ref : Helper.t option ref = ref None in + match%bind + Child_processes.start_custom ~logger ~name:"libp2p_helper" + ~git_root_relative_path:"src/app/libp2p_helper/result/bin/libp2p_helper" + ~conf_dir ~args:[] + ~stdout:(`Log Logger.Level.Spam, `Pipe, `Filter_empty) + ~stderr: + (`Log Logger.Level.Spam, `No_pipe, `Filter_empty) + (* TODO the stderr log messages are JSON but not in our format. The + helper should either emit our format or we should convert in + OCaml *) + ~termination: + (`Handler + (fun ~killed e -> + Hashtbl.iter outstanding_requests ~f:(fun iv -> + Ivar.fill iv + (Or_error.error_string + "libp2p_helper process died before answering") ) ; + if + (not killed) + && not + (Option.value_map ~default:false + ~f:(fun t -> t.finished) + !termination_hack_ref) + then ( + match e with + | Error (`Exit_non_zero _) | Error (`Signal _) -> + Logger.fatal logger ~module_:__MODULE__ ~location:__LOC__ + !"libp2p_helper process died unexpectedly: %s" + (Unix.Exit_or_signal.to_string_hum e) ; + raise Child_processes.Child_died + | Ok () -> + Logger.error logger ~module_:__MODULE__ ~location:__LOC__ + "libp2p helper process exited peacefully but it should \ + have been killed by shutdown!" ; + Deferred.unit ) + else ( + Logger.info logger ~module_:__MODULE__ ~location:__LOC__ + !"libp2p_helper process killed successfully: %s" + (Unix.Exit_or_signal.to_string_hum e) ; + Deferred.unit ) )) + with + | Error e -> + Deferred.Or_error.error_string + ( "Could not start libp2p_helper. If you are a dev, did you forget to \ + `make libp2p_helper` and set CODA_LIBP2P_HELPER_PATH? Try \ + CODA_LIBP2P_HELPER_PATH=$PWD/src/app/libp2p_helper/result/bin/libp2p_helper " + ^ Error.to_string_hum e ) + | Ok subprocess -> + let t : Helper.t = + { subprocess + ; conf_dir + ; logger + ; banned_ips= [] + ; me_keypair= Ivar.create () + ; outstanding_requests + ; subscriptions= Hashtbl.create (module Int) + ; streams= Hashtbl.create (module Int) + ; new_peer_callback= None + ; protocol_handlers= Hashtbl.create (module String) + ; seqno= 1 + ; finished= false } + in + termination_hack_ref := Some t ; + Strict_pipe.Reader.iter (Child_processes.stdout_lines subprocess) + ~f:(fun line -> + let open Yojson.Safe.Util in + let v = Yojson.Safe.from_string line in + ( match + if member "upcall" v = `Null then Helper.handle_response t v + else Helper.handle_upcall t v + with + | Ok () -> + () + | Error e -> + Logger.error logger "handling line from helper failed! $err" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("line", `String line) + ; ("err", `String (Error.to_string_hum e)) ] ) ; + Deferred.unit ) + |> don't_wait_for ; + Deferred.Or_error.return t let%test_module "coda network tests" = ( module struct - let () = Backtrace.elide := false - - let () = Async.Scheduler.set_record_backtraces true - let logger = Logger.create () let testmsg = @@ -1093,11 +1376,11 @@ let%test_module "coda network tests" = let maddrs = ["/ip4/127.0.0.1/tcp/0"] in let%bind () = configure a ~external_maddr:(List.hd_exn maddrs) ~me:kp_a ~maddrs - ~network_id ~on_new_peer:Fn.ignore + ~network_id ~on_new_peer:Fn.ignore ~unsafe_no_trust_ip:true >>| Or_error.ok_exn and () = configure b ~external_maddr:(List.hd_exn maddrs) ~me:kp_b ~maddrs - ~network_id ~on_new_peer:Fn.ignore + ~network_id ~on_new_peer:Fn.ignore ~unsafe_no_trust_ip:true >>| Or_error.ok_exn in let%bind a_advert = begin_advertising a @@ -1105,7 +1388,7 @@ let%test_module "coda network tests" = Or_error.ok_exn a_advert ; Or_error.ok_exn b_advert ; (* Give the helpers time to announce and discover each other on localhost *) - let%map () = after (Time.Span.of_sec 1.5) in + let%map () = after (Time.Span.of_sec 2.5) in let shutdown () = let%bind () = shutdown a in let%bind () = shutdown b in @@ -1118,7 +1401,7 @@ let%test_module "coda network tests" = let test_def = let open Deferred.Let_syntax in let%bind a, b, shutdown = setup_two_nodes "test_stream" in - let a_peerid = Keypair.to_peerid (me a |> Option.value_exn) in + let%bind a_peerid = me a >>| Keypair.to_peer_id in let handler_finished = ref false in let%bind echo_handler = handle_protocol a ~on_handler_error:`Raise ~protocol:"echo" @@ -1135,7 +1418,14 @@ let%test_module "coda network tests" = let r, w = Stream.pipes stream in Pipe.write_without_pushback w testmsg ; Pipe.close w ; + (* HACK: let our messages send before we reset. + It would be more principled to add flushing to + the stream interface. *) + let%bind () = after (Time.Span.of_sec 1.) in + let%bind _ = Stream.reset stream in let%bind msg = Pipe.read_all r in + (* give time for [a] to notice the reset finish. *) + let%bind () = after (Time.Span.of_sec 1.) in let msg = Queue.to_list msg |> String.concat in assert (msg = testmsg) ; assert !handler_finished ; @@ -1150,40 +1440,81 @@ let%test_module "coda network tests" = | `Ok a -> Envelope.Incoming.data a - let three_str_eq a b c = assert (String.equal a b && String.equal b c) + module type Pubsub_config = sig + type msg [@@deriving equal, compare, sexp, bin_io] + + val subscribe : + net -> string -> msg Pubsub.Subscription.t Deferred.Or_error.t + + val a_sent : msg - let%test_unit "pubsub" = + val b_sent : msg + end + + let make_pubsub_test name (module M : Pubsub_config) = + let open Deferred.Let_syntax in + let%bind a, b, shutdown = setup_two_nodes ("test_pubsub_" ^ name) in + let%bind a_sub = M.subscribe a "test" |> Deferred.Or_error.ok_exn in + let%bind b_sub = M.subscribe b "test" |> Deferred.Or_error.ok_exn in + let%bind a_peers = peers a in + let%bind b_peers = peers b in + Logger.fatal logger "a peers = $apeers, b peers = $bpeers" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("apeers", `List (List.map ~f:Peer.to_yojson a_peers)) + ; ("bpeers", `List (List.map ~f:Peer.to_yojson b_peers)) ] ; + let a_r = Pubsub.Subscription.message_pipe a_sub in + let b_r = Pubsub.Subscription.message_pipe b_sub in + (* Give the subscriptions time to propagate *) + let%bind () = after (sec 2.) in + let%bind () = Pubsub.Subscription.publish a_sub M.a_sent in + (* Give the publish time to propagate *) + let%bind () = after (sec 2.) in + let%bind a_recv = Strict_pipe.Reader.read a_r in + let%bind b_recv = Strict_pipe.Reader.read b_r in + [%test_eq: M.msg] M.a_sent (unwrap_eof a_recv) ; + [%test_eq: M.msg] M.a_sent (unwrap_eof b_recv) ; + let%bind () = Pubsub.Subscription.publish b_sub M.b_sent in + let%bind () = after (sec 2.) in + let%bind a_recv = Strict_pipe.Reader.read a_r in + let%bind b_recv = Strict_pipe.Reader.read b_r in + [%test_eq: M.msg] M.b_sent (unwrap_eof a_recv) ; + [%test_eq: M.msg] M.b_sent (unwrap_eof b_recv) ; + shutdown () + + let should_forward_message _ = return true + + let%test_unit "pubsub_raw" = let test_def = - let open Deferred.Let_syntax in - let%bind a, b, shutdown = setup_two_nodes "test_pubsub" in - let should_forward_message ~sender:_ ~data:_ = return true in - (* Give the libp2p helpers time to see each other. *) - let%bind a_sub = - Pubsub.subscribe a "test" ~should_forward_message - |> Deferred.Or_error.ok_exn - in - let%bind b_sub = - Pubsub.subscribe b "test" ~should_forward_message - |> Deferred.Or_error.ok_exn - in - let a_r = Pubsub.Subscription.message_pipe a_sub in - let b_r = Pubsub.Subscription.message_pipe b_sub in - (* Give the subscriptions time to propagate *) - let%bind () = after (sec 0.5) in - let%bind () = Pubsub.Subscription.publish a_sub "msg from a" in - (* Give the publish time to propagate *) - let%bind () = after (sec 0.5) in - (* FIXME: a shouldn't be receiving its own messages? *) - let%bind a_msg = Strict_pipe.Reader.read a_r in - let%bind b_msg = Strict_pipe.Reader.read b_r in - three_str_eq "msg from a" (unwrap_eof a_msg) (unwrap_eof b_msg) ; - let%bind () = Pubsub.Subscription.publish b_sub "msg from b" in - (* Give the publish time to propagate *) - let%bind () = after (sec 0.5) in - let%bind a_msg = Strict_pipe.Reader.read a_r in - let%bind b_msg = Strict_pipe.Reader.read b_r in - three_str_eq "msg from b" (unwrap_eof a_msg) (unwrap_eof b_msg) ; - shutdown () + make_pubsub_test "raw" + ( module struct + type msg = string [@@deriving equal, compare, sexp, bin_io] + + let subscribe net topic = + Pubsub.subscribe ~should_forward_message net topic + + let a_sent = "msg from a" + + let b_sent = "msg from b" + end ) + in + Async.Thread_safe.block_on_async_exn (fun () -> test_def) + + let%test_unit "pubsub_bin_prot" = + let test_def = + make_pubsub_test "bin_prot" + ( module struct + type msg = {a: int; b: string option} + [@@deriving bin_io, equal, sexp, compare] + + let subscribe net topic = + Pubsub.subscribe_encode ~should_forward_message ~bin_prot:bin_msg + ~on_decode_failure:`Ignore net topic + + let a_sent = {a= 0; b= None} + + let b_sent = {a= 1; b= Some "foo"} + end ) in Async.Thread_safe.block_on_async_exn (fun () -> test_def) end ) diff --git a/src/lib/coda_net2/coda_net2.mli b/src/lib/coda_net2/coda_net2.mli index c1f76b92d15..095c071f209 100644 --- a/src/lib/coda_net2/coda_net2.mli +++ b/src/lib/coda_net2/coda_net2.mli @@ -40,22 +40,28 @@ asynchronous and post-hoc. In the background, once per minute it checks the connection count. If it is above the "high water mark", it will close ("trim") eligible connections until it reaches the "low water mark". All connections start with a "grace period" where they won't be closed. Peer IDs -can be marked as "protected" which prevents them being trimmed. This is -vulnerable to resource exhaustion by opening many new connections. +can be marked as "protected" which prevents them being trimmed. Ember believes this +is vulnerable to resource exhaustion by opening many new connections. *) +open Base open Async open Pipe_lib +open Network_peer (** Handle to all network functionality. *) type net -(** Essentially a hash of a public key. *) -type peer_id - module Keypair : sig - type t + [%%versioned: + module Stable : sig + module V1 : sig + type t + end + end] + + type t = Stable.Latest.t (** Securely generate a new keypair. *) val random : net -> t Deferred.t @@ -69,7 +75,7 @@ module Keypair : sig keypair data is corrupt. *) val of_string : string -> t Core.Or_error.t - val to_peerid : t -> peer_id + val to_peer_id : t -> Peer.Id.t end (** A "multiaddr" is libp2p's extensible encoding for network addresses. @@ -92,20 +98,12 @@ module Multiaddr : sig val of_string : string -> t end -module PeerID : sig - type t = peer_id - - val to_string : t -> string - - val of_keypair : Keypair.t -> t -end - -type discovered_peer = {id: PeerID.t; maddrs: Multiaddr.t list} +type discovered_peer = {id: Peer.Id.t; maddrs: Multiaddr.t list} module Pubsub : sig (** A subscription to a pubsub topic. *) module Subscription : sig - type t + type 'a t (** Publish a message to this pubsub topic. * @@ -113,16 +111,16 @@ module Pubsub : sig * This function continues to work even if [unsubscribe t] has been called. * It is exactly [Pubsub.publish] with the topic this subscription was * created for, and fails in the same way. *) - val publish : t -> string -> unit Deferred.t + val publish : 'a t -> 'a -> unit Deferred.t (** Unsubscribe from this topic, closing the write pipe. * * Returned deferred is resolved once the unsubscription is complete. * This can fail if already unsubscribed. *) - val unsubscribe : t -> unit Deferred.Or_error.t + val unsubscribe : _ t -> unit Deferred.Or_error.t (** The pipe of messages received about this topic. *) - val message_pipe : t -> string Envelope.Incoming.t Strict_pipe.Reader.t + val message_pipe : 'a t -> 'a Envelope.Incoming.t Strict_pipe.Reader.t end (** Publish a message to a topic. @@ -146,10 +144,29 @@ module Pubsub : sig val subscribe : net -> string - -> should_forward_message:( sender:PeerID.t - -> data:string - -> bool Deferred.t) - -> Subscription.t Deferred.Or_error.t + -> should_forward_message:(string Envelope.Incoming.t -> bool Deferred.t) + -> string Subscription.t Deferred.Or_error.t + + (** Like [subscribe], but knows how to stringify/destringify + * + * Fails if already subscribed. If it succeeds, incoming messages for that + * topic will be written to the [Subscription.message_pipe t]. Returned deferred + * is resolved with [Ok sub] as soon as the subscription is enqueued. + * + * [should_forward_message] will be called once per new message, and will + * not be called again until the deferred it returns is resolved. The helper + * process waits 5 seconds for the result of [should_forward_message] to be + * reported, otherwise it will not forward it. + *) + val subscribe_encode : + net + -> string + -> should_forward_message:('a Envelope.Incoming.t -> bool Deferred.t) + -> bin_prot:'a Bin_prot.Type_class.t + -> on_decode_failure:[ `Ignore + | `Call of + string Envelope.Incoming.t -> Error.t -> unit ] + -> 'a Subscription.t Deferred.Or_error.t end (** [create ~logger ~conf_dir] starts a new [net] storing its state in [conf_dir] @@ -165,7 +182,8 @@ val create : logger:Logger.t -> conf_dir:string -> net Deferred.Or_error.t * Listens on each address in [maddrs]. * * This will only connect to peers that share the same [network_id]. [on_new_peer], if present, - * will be called for each peer we discover. + * will be called for each peer we discover. [unsafe_no_trust_ip], if true, will not attempt to + * report trust actions for the IPs of observed connections. * * This fails if initializing libp2p fails for any reason. *) @@ -176,17 +194,20 @@ val configure : -> maddrs:Multiaddr.t list -> network_id:string -> on_new_peer:(discovered_peer -> unit) + -> unsafe_no_trust_ip:bool -> unit Deferred.Or_error.t (** The keypair the network was configured with. * - * If configuration hasn't taken place or didn't succeed, - * this will be [None]. + * Resolved once configuration succeeds. *) -val me : net -> Keypair.t option +val me : net -> Keypair.t Deferred.t (** List of all peers we know about. *) -val peers : net -> PeerID.t list Deferred.t +val peers : net -> Peer.t list Deferred.t + +(** Try to connect to a peer ID, returning a [Peer.t]. *) +val lookup_peerid : net -> Peer.Id.t -> Peer.t Deferred.Or_error.t (** An open stream. @@ -215,9 +236,7 @@ module Stream : sig *) val reset : t -> unit Deferred.Or_error.t - val remote_addr : t -> Multiaddr.t - - val remote_peerid : t -> PeerID.t + val remote_peer : t -> Peer.t end (** [Protocol_handler.t] is the rough equivalent to [Tcp.Server.t]. @@ -251,7 +270,7 @@ end protocol, and probably for other reasons. *) val open_stream : - net -> protocol:string -> PeerID.t -> Stream.t Deferred.Or_error.t + net -> protocol:string -> Peer.Id.t -> Stream.t Deferred.Or_error.t (** Handle incoming streams for a protocol. @@ -299,3 +318,18 @@ val begin_advertising : net -> unit Deferred.Or_error.t (** Stop listening, close all connections and subscription pipes, and kill the subprocess. *) val shutdown : net -> unit Deferred.t + +(** Ban an IP from connecting to the helper. + + This ban is in place until [unban_ip] is called or the helper restarts. + After the deferred resolves, no new incoming streams will involve that IP. + TODO: does this forbid explicitly dialing them? *) +val ban_ip : + net -> Unix.Inet_addr.t -> [`Ok | `Already_banned] Deferred.Or_error.t + +(** Unban an IP, allowing connections from it. *) +val unban_ip : + net -> Unix.Inet_addr.t -> [`Ok | `Not_banned] Deferred.Or_error.t + +(** List of currently banned IPs. *) +val banned_ips : net -> Unix.Inet_addr.t list Deferred.t diff --git a/src/lib/coda_net2/dune b/src/lib/coda_net2/dune index c19aa0d1fd8..1cd307ea3a9 100644 --- a/src/lib/coda_net2/dune +++ b/src/lib/coda_net2/dune @@ -1,6 +1,6 @@ (library (name coda_net2) (public_name coda_net2) - (libraries async base58 child_processes coda_digestif core envelope file_system logger network_peer pipe_lib yojson) + (libraries async base58 base64 child_processes coda_digestif core file_system logger network_peer pipe_lib yojson) (inline_tests) - (preprocess (pps ppx_coda ppx_jane ppx_let ppx_deriving_yojson))) + (preprocess (pps ppx_coda ppx_jane ppx_deriving.std ppx_let ppx_deriving_yojson))) diff --git a/src/lib/coda_networking/coda_networking.ml b/src/lib/coda_networking/coda_networking.ml index 6899d7edeb9..e4c7851b196 100644 --- a/src/lib/coda_networking/coda_networking.ml +++ b/src/lib/coda_networking/coda_networking.ml @@ -1,4 +1,4 @@ -open Core_kernel +open Core open Async open Coda_base open Coda_state @@ -505,6 +505,7 @@ module Config = struct ; consensus_local_state: Consensus.Data.Local_state.t ; genesis_ledger_hash: Ledger_hash.t ; creatable_gossip_net: Gossip_net.Any.creatable + ; is_seed: bool ; log_gossip_heard: log_gossip_heard } [@@deriving make] end @@ -514,13 +515,17 @@ type t = ; trust_system: Trust_system.t ; gossip_net: Gossip_net.Any.t ; states: - (External_transition.t Envelope.Incoming.t * Block_time.t) + ( External_transition.t Envelope.Incoming.t + * Block_time.t + * (bool -> unit) ) Strict_pipe.Reader.t ; transaction_pool_diffs: - Transaction_pool.Resource_pool.Diff.t Envelope.Incoming.t + ( Transaction_pool.Resource_pool.Diff.t Envelope.Incoming.t + * (bool -> unit) ) Linear_pipe.Reader.t ; snark_pool_diffs: - Snark_pool.Resource_pool.Diff.t Envelope.Incoming.t Linear_pipe.Reader.t + (Snark_pool.Resource_pool.Diff.t Envelope.Incoming.t * (bool -> unit)) + Linear_pipe.Reader.t ; online_status: [`Offline | `Online] Broadcast_pipe.Reader.t ; first_received_message_signal: unit Ivar.t } [@@deriving fields] @@ -548,9 +553,7 @@ let online_broadcaster time_controller received_messages = online_reader let wrap_rpc_data_in_envelope conn data = - let inet_addr = Unix.Inet_addr.of_string conn.Host_and_port.host in - let sender = Envelope.Sender.Remote inet_addr in - Envelope.Incoming.wrap ~data ~sender + Envelope.Incoming.wrap_peer ~data ~sender:conn let create (config : Config.t) ~(get_staged_ledger_aux_and_pending_coinbases_at_hash : @@ -647,7 +650,8 @@ let create (config : Config.t) in let get_ancestry_rpc conn ~version:_ query = Logger.debug config.logger ~module_:__MODULE__ ~location:__LOC__ - "Sending root proof to peer with IP %s" conn.Host_and_port.host ; + "Sending root proof to peer with IP %s" + (Unix.Inet_addr.to_string conn.Peer.host) ; let action_msg = "Get_ancestry query: $query" in let msg_args = [("query", Rpcs.Get_ancestry.query_to_yojson query)] in let%bind result, sender = @@ -657,7 +661,8 @@ let create (config : Config.t) in let get_best_tip_rpc conn ~version:_ query = Logger.debug config.logger ~module_:__MODULE__ ~location:__LOC__ - "Sending best_tip to peer with IP %s" conn.Host_and_port.host ; + "Sending best_tip to peer with IP %s" + (Unix.Inet_addr.to_string conn.Peer.host) ; let action_msg = "Get_best_tip. query: $query" in let msg_args = [("query", Rpcs.Get_best_tip.query_to_yojson query)] in let%bind result, sender = @@ -668,7 +673,7 @@ let create (config : Config.t) let get_transition_chain_proof_rpc conn ~version:_ query = Logger.info config.logger ~module_:__MODULE__ ~location:__LOC__ "Sending transition_chain_proof to peer with IP %s" - conn.Host_and_port.host ; + (Unix.Inet_addr.to_string conn.Peer.host) ; let action_msg = "Get_transition_chain_proof query: $query" in let msg_args = [("query", Rpcs.Get_transition_chain_proof.query_to_yojson query)] @@ -681,7 +686,8 @@ let create (config : Config.t) in let get_transition_chain_rpc conn ~version:_ query = Logger.info config.logger ~module_:__MODULE__ ~location:__LOC__ - "Sending transition_chain to peer with IP %s" conn.Host_and_port.host ; + "Sending transition_chain to peer with IP %s" + (Unix.Inet_addr.to_string conn.Peer.host) ; let action_msg = "Get_transition_chain query: $query" in let msg_args = [("query", Rpcs.Get_transition_chain.query_to_yojson query)] @@ -696,7 +702,7 @@ let create (config : Config.t) Logger.warn config.logger ~module_:__MODULE__ ~location:__LOC__ "Node banned by peer $peer until $ban_until" ~metadata: - [ ("peer", `String conn.Host_and_port.host) + [ ("peer", `String (Unix.Inet_addr.to_string conn.Peer.host)) ; ( "ban_until" , `String (Time.to_string_abs ~zone:Time.Zone.utc ban_until) ) ] ; (* no computation to do; we're just getting notification *) @@ -728,11 +734,13 @@ let create (config : Config.t) don't_wait_for (Gossip_net.Any.on_first_connect gossip_net ~f:(fun () -> (* After first_connect this list will only be empty if we filtered out all the peers due to mismatched chain id. *) - let initial_peers = Gossip_net.Any.peers gossip_net in - if List.is_empty initial_peers then ( - Logger.fatal config.logger "Failed to connect to any initial peers" - ~module_:__MODULE__ ~location:__LOC__ ; - raise No_initial_peers ) )) ; + don't_wait_for + (let%map initial_peers = Gossip_net.Any.peers gossip_net in + if List.is_empty initial_peers && not config.is_seed then ( + Logger.fatal config.logger + "Failed to connect to any initial peers" ~module_:__MODULE__ + ~location:__LOC__ ; + raise No_initial_peers )) )) ; (* TODO: Think about buffering: I.e., what do we do when too many messages are coming in, or going out. For example, some things you really want to not drop (like your outgoing @@ -747,7 +755,8 @@ let create (config : Config.t) in let first_received_message_signal = Ivar.create () in let states, snark_pool_diffs, transaction_pool_diffs = - Strict_pipe.Reader.partition_map3 received_gossips ~f:(fun envelope -> + Strict_pipe.Reader.partition_map3 received_gossips + ~f:(fun (envelope, valid_cb) -> Ivar.fill_if_empty first_received_message_signal () ; match Envelope.Incoming.data envelope with | New_state state -> @@ -767,7 +776,8 @@ let create (config : Config.t) ] ; `Fst ( Envelope.Incoming.map envelope ~f:(fun _ -> state) - , Block_time.now config.time_controller ) + , Block_time.now config.time_controller + , valid_cb ) | Snark_pool_diff diff -> if config.log_gossip_heard.snark_pool_diff then Logger.debug config.logger ~module_:__MODULE__ ~location:__LOC__ @@ -779,7 +789,7 @@ let create (config : Config.t) ] ; Coda_metrics.( Counter.inc_one Snark_work.completed_snark_work_received_gossip) ; - `Snd (Envelope.Incoming.map envelope ~f:(fun _ -> diff)) + `Snd (Envelope.Incoming.map envelope ~f:(fun _ -> diff), valid_cb) | Transaction_pool_diff diff -> if config.log_gossip_heard.transaction_pool_diff then Logger.debug config.logger ~module_:__MODULE__ ~location:__LOC__ @@ -804,7 +814,8 @@ let create (config : Config.t) false ) else true ) in - `Trd (Envelope.Incoming.map envelope ~f:(fun _ -> diff')) ) + `Trd (Envelope.Incoming.map envelope ~f:(fun _ -> diff'), valid_cb) + ) in { gossip_net ; logger= config.logger @@ -832,14 +843,15 @@ include struct let random_peers_except = lift random_peers_except - let peers_by_ip = lift peers_by_ip - (* these cannot be directly lifted due to the value restriction *) let query_peer t = lift query_peer t let on_first_connect t = lift on_first_connect t let on_first_high_connectivity t = lift on_first_high_connectivity t + + let ip_for_peer t peer_id = + (lift ip_for_peer) t peer_id >>| Option.map ~f:(fun peer -> peer.Peer.host) end let on_first_received_message {first_received_message_signal; _} ~f = @@ -898,14 +910,14 @@ let online_status t = t.online_status let make_rpc_request ~rpc ~label t peer input = let open Deferred.Let_syntax in - match%map query_peer t peer rpc input with - | Ok (Some response) -> + match%map query_peer t peer.Peer.peer_id rpc input with + | Connected {data= Ok (Some response); _} -> Ok response - | Ok None -> + | Connected {data= Ok None; _} -> Or_error.errorf - !"Peer %{sexp:Network_peer.Peer.t} doesn't have the requested %s" - peer label - | Error e -> + !"Peer %{sexp:Network_peer.Peer.Id.t} doesn't have the requested %s" + peer.peer_id label + | Connected {data= Error e; _} | Failed_to_connect e -> Error e let get_transition_chain_proof = @@ -918,11 +930,13 @@ let get_best_tip t peer = make_rpc_request ~rpc:Rpcs.Get_best_tip ~label:"best tip" t peer () let ban_notify t peer banned_until = - query_peer t peer Rpcs.Ban_notify banned_until + query_peer t peer.Peer.peer_id Rpcs.Ban_notify banned_until + >>| Fn.const (Ok ()) let net2 t = Gossip_net.Any.net2 t.gossip_net -let try_non_preferred_peers t input peers ~rpc = +let try_non_preferred_peers (type b) t input peers ~rpc : + b Envelope.Incoming.t Deferred.Or_error.t = let max_current_peers = 8 in let rec loop peers num_peers = if num_peers > max_current_peers then @@ -932,9 +946,11 @@ let try_non_preferred_peers t input peers ~rpc = else let current_peers, remaining_peers = List.split_n peers num_peers in find_map' current_peers ~f:(fun peer -> - let%bind response_or_error = query_peer t peer rpc input in + let%bind response_or_error = + query_peer t peer.Peer.peer_id rpc input + in match response_or_error with - | Ok (Some response) -> + | Connected ({data= Ok (Some data); _} as envelope) -> let%bind () = Trust_system.( record t.trust_system t.logger peer.host @@ -943,67 +959,86 @@ let try_non_preferred_peers t input peers ~rpc = , Some ("Nonpreferred peer returned valid response", []) )) in - return (Ok response) - | Ok None -> + return (Ok (Envelope.Incoming.map envelope ~f:(Fn.const data))) + | Connected {data= Ok None; _} -> loop remaining_peers (2 * num_peers) - | Error _ -> + | _ -> loop remaining_peers (2 * num_peers) ) in loop peers 1 -let try_preferred_peer t inet_addr input ~rpc = - let peers_at_addr = peers_by_ip t inet_addr in - (* if there's a single peer at inet_addr, call it the preferred peer *) - match peers_at_addr with - | [peer] -> ( - let get_random_peers () = - let max_peers = 15 in - let except = Peer.Hash_set.of_list [peer] in - random_peers_except t max_peers ~except - in - let%bind response = query_peer t peer rpc input in - match response with - | Ok (Some data) -> - let%bind () = +let rpc_peer_then_random (type b) t peer_id input ~rpc : + b Envelope.Incoming.t Deferred.Or_error.t = + let retry () = + let%bind peers = random_peers t 8 in + try_non_preferred_peers t input peers ~rpc + in + match%bind query_peer t peer_id rpc input with + | Connected {data= Ok (Some response); sender} -> + let%bind () = + match sender with + | Local -> + return () + | Remote (sender, _) -> Trust_system.( - record t.trust_system t.logger peer.host + record t.trust_system t.logger sender Actions. ( Fulfilled_request , Some ("Preferred peer returned valid response", []) )) - in - return (Ok data) - | Ok None -> - let%bind () = + in + return (Ok (Envelope.Incoming.wrap ~data:response ~sender)) + | Connected {data= Ok None; sender} -> + let%bind () = + match sender with + | Remote (sender, _) -> Trust_system.( - record t.trust_system t.logger peer.host + record t.trust_system t.logger sender Actions. ( Violated_protocol , Some ("When querying preferred peer, got no response", []) )) - in - let peers = get_random_peers () in - try_non_preferred_peers t input peers ~rpc - | Error _ -> - (* TODO: determine what punishments apply here *) - Logger.error t.logger ~module_:__MODULE__ ~location:__LOC__ - !"get error from %{sexp: Peer.t}" - peer ; - let peers = get_random_peers () in - try_non_preferred_peers t input peers ~rpc ) - | _ -> - (* no preferred peer *) - let max_peers = 16 in - let peers = random_peers t max_peers in - try_non_preferred_peers t input peers ~rpc + | Local -> + return () + in + retry () + | Connected {data= Error e; sender} -> + (* FIXME #4094: determine if more specific actions apply here *) + let%bind () = + match sender with + | Remote (sender, _) -> + Trust_system.( + record t.trust_system t.logger sender + Actions. + ( Outgoing_connection_error + , Some + ( "Error while doing RPC" + , [("error", `String (Error.to_string_hum e))] ) )) + | Local -> + return () + in + retry () + | Failed_to_connect _ -> + (* Since we couldn't connect, we have no IP to ban. *) + retry () let get_staged_ledger_aux_and_pending_coinbases_at_hash t inet_addr input = - try_preferred_peer t inet_addr input + rpc_peer_then_random t inet_addr input ~rpc:Rpcs.Get_staged_ledger_aux_and_pending_coinbases_at_hash + >>|? Envelope.Incoming.data let get_ancestry t inet_addr input = - try_preferred_peer t inet_addr input ~rpc:Rpcs.Get_ancestry - -let glue_sync_ledger t query_reader response_writer = + rpc_peer_then_random t inet_addr input ~rpc:Rpcs.Get_ancestry + +let glue_sync_ledger : + t + -> (Coda_base.Ledger_hash.t * Coda_base.Sync_ledger.Query.t) + Pipe_lib.Linear_pipe.Reader.t + -> ( Coda_base.Ledger_hash.t + * Coda_base.Sync_ledger.Query.t + * Coda_base.Sync_ledger.Answer.t Network_peer.Envelope.Incoming.t ) + Pipe_lib.Linear_pipe.Writer.t + -> unit = + fun t query_reader response_writer -> (* We attempt to query 3 random peers, retry_max times. We keep track of the peers that couldn't answer a particular query and won't try them again. *) @@ -1011,7 +1046,7 @@ let glue_sync_ledger t query_reader response_writer = let retry_interval = Core.Time.Span.of_ms 200. in let rec answer_query ctr peers_tried query = O1trace.trace_event "ask sync ledger query" ; - let peers = random_peers_except t 3 ~except:peers_tried in + let%bind peers = random_peers_except t 3 ~except:peers_tried in Logger.trace t.logger ~module_:__MODULE__ ~location:__LOC__ !"SL: Querying the following peers %{sexp: Peer.t list}" peers ; @@ -1021,8 +1056,10 @@ let glue_sync_ledger t query_reader response_writer = !"Asking %{sexp: Peer.t} query regarding ledger_hash %{sexp: \ Ledger_hash.t}" peer (fst query) ; - match%map query_peer t peer Rpcs.Answer_sync_ledger_query query with - | Ok (Ok answer) -> + match%map + query_peer t peer.peer_id Rpcs.Answer_sync_ledger_query query + with + | Connected {data= Ok (Ok answer); sender} -> Logger.trace t.logger ~module_:__MODULE__ ~location:__LOC__ !"Received answer from peer %{sexp: Peer.t} on ledger_hash \ %{sexp: Ledger_hash.t}" @@ -1030,18 +1067,22 @@ let glue_sync_ledger t query_reader response_writer = (* TODO : here is a place where an envelope could contain a Peer.t, and not just an IP address, if desired *) - let inet_addr = peer.host in - Some - (Envelope.Incoming.wrap ~data:answer - ~sender:(Envelope.Sender.Remote inet_addr)) - | Ok (Error e) -> + Some (Envelope.Incoming.wrap ~data:answer ~sender) + | Connected {data= Ok (Error e); _} -> Logger.info t.logger ~module_:__MODULE__ ~location:__LOC__ "Peer $peer didn't have enough information to answer \ ledger_hash query. See error for more details: $error" ~metadata:[("error", `String (Error.to_string_hum e))] ; Hash_set.add peers_tried peer ; None - | Error err -> + | Connected {data= Error e; _} -> + Logger.info t.logger ~module_:__MODULE__ ~location:__LOC__ + "RPC error during ledger_hash query See error for more \ + details: $error" + ~metadata:[("error", `String (Error.to_string_hum e))] ; + Hash_set.add peers_tried peer ; + None + | Failed_to_connect err -> Logger.warn t.logger ~module_:__MODULE__ ~location:__LOC__ "Network error: %s" (Error.to_string_mach err) ; None ) diff --git a/src/lib/coda_networking/coda_networking.mli b/src/lib/coda_networking/coda_networking.mli index a9b4ab9c18f..d629b72efac 100644 --- a/src/lib/coda_networking/coda_networking.mli +++ b/src/lib/coda_networking/coda_networking.mli @@ -4,6 +4,7 @@ open Coda_base open Coda_transition open Network_pool open Pipe_lib +open Network_peer exception No_initial_peers @@ -102,6 +103,7 @@ module Config : sig ; consensus_local_state: Consensus.Data.Local_state.t ; genesis_ledger_hash: Ledger_hash.t ; creatable_gossip_net: Gossip_net.Any.creatable + ; is_seed: bool ; log_gossip_heard: log_gossip_heard } [@@deriving make] end @@ -110,10 +112,10 @@ type t val states : t - -> (External_transition.t Envelope.Incoming.t * Block_time.t) + -> (External_transition.t Envelope.Incoming.t * Block_time.t * (bool -> unit)) Strict_pipe.Reader.t -val peers : t -> Network_peer.Peer.t list +val peers : t -> Network_peer.Peer.t list Deferred.t val on_first_received_message : t -> f:(unit -> 'a) -> 'a Deferred.t @@ -125,15 +127,16 @@ val on_first_high_connectivity : t -> f:(unit -> 'a) -> 'a Deferred.t val online_status : t -> [`Online | `Offline] Broadcast_pipe.Reader.t -val random_peers : t -> int -> Network_peer.Peer.t list +val random_peers : t -> int -> Network_peer.Peer.t list Deferred.t val get_ancestry : t - -> Unix.Inet_addr.t + -> Peer.Id.t -> Consensus.Data.Consensus_state.Value.t -> ( External_transition.t , State_body_hash.t list * External_transition.t ) Proof_carrying_data.t + Envelope.Incoming.t Deferred.Or_error.t val get_best_tip : @@ -158,7 +161,7 @@ val get_transition_chain : val get_staged_ledger_aux_and_pending_coinbases_at_hash : t - -> Unix.Inet_addr.t + -> Peer.Id.t -> State_hash.t -> (Staged_ledger.Scan_state.t * Ledger_hash.t * Pending_coinbase.t) Deferred.Or_error.t @@ -166,11 +169,14 @@ val get_staged_ledger_aux_and_pending_coinbases_at_hash : val ban_notify : t -> Network_peer.Peer.t -> Time.t -> unit Deferred.Or_error.t val snark_pool_diffs : - t -> Snark_pool.Resource_pool.Diff.t Envelope.Incoming.t Linear_pipe.Reader.t + t + -> (Snark_pool.Resource_pool.Diff.t Envelope.Incoming.t * (bool -> unit)) + Linear_pipe.Reader.t val transaction_pool_diffs : t - -> Transaction_pool.Resource_pool.Diff.t Envelope.Incoming.t + -> ( Transaction_pool.Resource_pool.Diff.t Envelope.Incoming.t + * (bool -> unit) ) Linear_pipe.Reader.t val broadcast_state : t -> External_transition.t -> unit @@ -190,11 +196,16 @@ val glue_sync_ledger : -> unit val query_peer : - t -> Network_peer.Peer.t -> ('q, 'r) Rpcs.rpc -> 'q -> 'r Deferred.Or_error.t + t + -> Network_peer.Peer.Id.t + -> ('q, 'r) Rpcs.rpc + -> 'q + -> 'r Coda_base.Rpc_intf.rpc_response Deferred.t -val initial_peers : t -> Host_and_port.t list +val ip_for_peer : + t -> Network_peer.Peer.Id.t -> Unix.Inet_addr.t option Deferred.t -val peers_by_ip : t -> Unix.Inet_addr.t -> Network_peer.Peer.t list +val initial_peers : t -> Coda_net2.Multiaddr.t list val net2 : t -> Coda_net2.net option diff --git a/src/lib/coda_networking/dune b/src/lib/coda_networking/dune index 59ca719e568..dd270bb2996 100644 --- a/src/lib/coda_networking/dune +++ b/src/lib/coda_networking/dune @@ -2,8 +2,8 @@ (name coda_networking) (public_name coda_networking) (library_flags -linkall) - (libraries core o1trace envelope async gossip_net coda_intf - async_extra coda_base unix_timestamp perf_histograms proof_carrying_data + (libraries core o1trace async coda_intf + async_extra gossip_net coda_base unix_timestamp perf_histograms proof_carrying_data consensus network_pool coda_transition transition_frontier staged_ledger) (inline_tests) (preprocess diff --git a/src/lib/coda_transition/external_transition.ml b/src/lib/coda_transition/external_transition.ml index a1d5d9766ac..3f5fe0b44e2 100644 --- a/src/lib/coda_transition/external_transition.ml +++ b/src/lib/coda_transition/external_transition.ml @@ -4,6 +4,26 @@ open Coda_base open Coda_state open Module_version +module Validate_content = struct + type t = bool -> unit + + let bin_read_t buf ~pos_ref = bin_read_unit buf ~pos_ref ; Fn.ignore + + let bin_write_t buf ~pos _ = + let pos = bin_write_unit buf ~pos () in + pos + + let bin_shape_t = bin_shape_unit + + let bin_size_t _ = bin_size_unit () + + let t_of_sexp _ = Fn.ignore + + let sexp_of_t _ = sexp_of_unit () + + let __versioned__ = () +end + [%%versioned module Stable = struct module V1 = struct @@ -12,7 +32,8 @@ module Stable = struct ; protocol_state_proof: Proof.Stable.V1.t sexp_opaque ; staged_ledger_diff: Staged_ledger_diff.Stable.V1.t ; delta_transition_chain_proof: - State_hash.Stable.V1.t * State_body_hash.Stable.V1.t list } + State_hash.Stable.V1.t * State_body_hash.Stable.V1.t list + ; mutable validation_callback: Validate_content.t } [@@deriving sexp, fields] let to_latest = Fn.id @@ -21,7 +42,8 @@ module Stable = struct { protocol_state ; protocol_state_proof= _ ; staged_ledger_diff= _ - ; delta_transition_chain_proof= _ } = + ; delta_transition_chain_proof= _ + ; validation_callback= _ } = `Assoc [ ("protocol_state", Protocol_state.value_to_yojson protocol_state) ; ("protocol_state_proof", `String "") @@ -95,11 +117,18 @@ type t = Stable.Latest.t = { protocol_state: Protocol_state.Value.Stable.V1.t ; protocol_state_proof: Proof.Stable.V1.t sexp_opaque ; staged_ledger_diff: Staged_ledger_diff.t - ; delta_transition_chain_proof: State_hash.t * State_body_hash.t list } + ; delta_transition_chain_proof: State_hash.t * State_body_hash.t list + ; mutable validation_callback: Validate_content.t } [@@deriving sexp] type external_transition = t +let broadcast {validation_callback; _} = validation_callback true + +let don't_broadcast {validation_callback; _} = validation_callback false + +let poke_validation_callback t cb = t.validation_callback <- cb + [%%define_locally Stable.Latest. ( protocol_state @@ -120,11 +149,12 @@ Stable.Latest. include Comparable.Make (Stable.Latest) let create ~protocol_state ~protocol_state_proof ~staged_ledger_diff - ~delta_transition_chain_proof = + ~delta_transition_chain_proof ~validation_callback = { protocol_state ; protocol_state_proof ; staged_ledger_diff - ; delta_transition_chain_proof } + ; delta_transition_chain_proof + ; validation_callback } let timestamp {protocol_state; _} = Protocol_state.blockchain_state protocol_state |> Blockchain_state.timestamp @@ -603,6 +633,10 @@ module With_validation = struct let payments t = lift payments t let delta_transition_chain_proof t = lift delta_transition_chain_proof t + + let broadcast t = lift broadcast t + + let don't_broadcast t = lift don't_broadcast t end module Initial_validated = struct @@ -744,6 +778,8 @@ module Validated = struct , create_unsafe , protocol_state , delta_transition_chain_proof + , broadcast + , don't_broadcast , protocol_state_proof , blockchain_state , blockchain_length @@ -784,7 +820,7 @@ let genesis ~genesis_ledger ~base_proof = Validated.create_unsafe_pre_hashed (With_hash.map genesis_protocol_state ~f:(fun protocol_state -> create ~protocol_state ~protocol_state_proof:base_proof - ~staged_ledger_diff:empty_diff + ~staged_ledger_diff:empty_diff ~validation_callback:Fn.ignore ~delta_transition_chain_proof: (Protocol_state.previous_state_hash protocol_state, []) )) in diff --git a/src/lib/coda_transition/external_transition_intf.ml b/src/lib/coda_transition/external_transition_intf.ml index 1015cfa8f9a..8c4bb011484 100644 --- a/src/lib/coda_transition/external_transition_intf.ml +++ b/src/lib/coda_transition/external_transition_intf.ml @@ -32,6 +32,10 @@ module type External_transition_common_intf = sig val payments : t -> User_command.t list val delta_transition_chain_proof : t -> State_hash.t * State_body_hash.t list + + val broadcast : t -> unit + + val don't_broadcast : t -> unit end module type External_transition_base_intf = sig @@ -53,6 +57,8 @@ end module type S = sig include External_transition_base_intf + val poke_validation_callback : t -> (bool -> unit) -> unit + type external_transition = t module Validation : sig @@ -259,6 +265,7 @@ module type S = sig -> protocol_state_proof:Proof.t -> staged_ledger_diff:Staged_ledger_diff.t -> delta_transition_chain_proof:State_hash.t * State_body_hash.t list + -> validation_callback:(bool -> unit) -> t val genesis : diff --git a/src/lib/command_line_tests/command_line_tests.ml b/src/lib/command_line_tests/command_line_tests.ml index e1c8a93a652..7bc4f6d75a5 100644 --- a/src/lib/command_line_tests/command_line_tests.ml +++ b/src/lib/command_line_tests/command_line_tests.ml @@ -48,11 +48,15 @@ let%test_module "Command line tests" = Ok () let start_daemon config_dir genesis_ledger_dir port = + let%bind working_dir = Sys.getcwd () in + Core.printf "Starting daemon inside %s\n" working_dir ; let%map _ = match%map Process.run ~prog:coda_exe ~args: [ "daemon" + ; "-working-dir" + ; working_dir ; "-background" ; "-client-port" ; sprintf "%d" port diff --git a/src/lib/consensus/intf.ml b/src/lib/consensus/intf.ml index 56650ab93bb..e52a5100e95 100644 --- a/src/lib/consensus/intf.ml +++ b/src/lib/consensus/intf.ml @@ -475,7 +475,7 @@ module type S = sig type query = { query: 'q 'r. Network_peer.Peer.t -> ('q, 'r) rpc -> 'q - -> 'r Deferred.Or_error.t } + -> 'r Coda_base.Rpc_intf.rpc_response Deferred.t } end (* Check whether we are in the genesis epoch *) @@ -563,7 +563,7 @@ module type S = sig logger:Logger.t -> trust_system:Trust_system.t -> local_state:Local_state.t - -> random_peers:(int -> Network_peer.Peer.t list) + -> random_peers:(int -> Network_peer.Peer.t list Deferred.t) -> query_peer:Rpcs.query -> local_state_sync Non_empty_list.t -> unit Deferred.Or_error.t diff --git a/src/lib/consensus/proof_of_stake.ml b/src/lib/consensus/proof_of_stake.ml index 4fb0b7094e4..1e9d2819c59 100644 --- a/src/lib/consensus/proof_of_stake.ml +++ b/src/lib/consensus/proof_of_stake.ml @@ -2383,7 +2383,7 @@ module Hooks = struct Deferred.create (fun ivar -> Logger.info logger ~module_:__MODULE__ ~location:__LOC__ ~metadata: - [ ("peer", `String (Host_and_port.to_string conn)) + [ ("peer", Network_peer.Peer.to_yojson conn) ; ("ledger_hash", Coda_base.Ledger_hash.to_yojson ledger_hash) ] "Serving epoch ledger query with hash $ledger_hash from $peer" ; @@ -2408,7 +2408,7 @@ module Hooks = struct Result.iter_error response ~f:(fun err -> Logger.info logger ~module_:__MODULE__ ~location:__LOC__ ~metadata: - [ ("peer", `String (Host_and_port.to_string conn)) + [ ("peer", Network_peer.Peer.to_yojson conn) ; ("error", `String err) ; ( "ledger_hash" , Coda_base.Ledger_hash.to_yojson ledger_hash ) ] @@ -2429,7 +2429,7 @@ module Hooks = struct type query = { query: 'q 'r. Network_peer.Peer.t -> ('q, 'r) rpc -> 'q - -> 'r Deferred.Or_error.t } + -> 'r Coda_base.Rpc_intf.rpc_response Deferred.t } let implementation_of_rpc : type q r. (q, r) rpc -> (q, r) rpc_implementation = function @@ -2589,12 +2589,13 @@ module Hooks = struct } ; return true ) else - Deferred.List.exists (random_peers 3) ~f:(fun peer -> + let%bind peers = random_peers 3 in + Deferred.List.exists peers ~f:(fun peer -> match%bind query_peer.query peer Rpcs.Get_epoch_ledger (Coda_base.Frozen_ledger_hash.to_ledger_hash target_ledger_hash) with - | Ok (Ok snapshot_ledger) -> + | Connected {data= Ok (Ok snapshot_ledger); _} -> let%bind () = Trust_system.( record trust_system logger peer.host @@ -2608,8 +2609,8 @@ module Hooks = struct set_snapshot local_state snapshot_id {ledger= snapshot_ledger; delegatee_table} ; return true - (* TODO figure out punishments here. *) - | Ok (Error err) -> + | Connected {data= Ok (Error err); _} -> + (* TODO figure out punishments here. *) Logger.faulty_peer_without_punishment logger ~module_:__MODULE__ ~location:__LOC__ ~metadata: @@ -2617,13 +2618,21 @@ module Hooks = struct ; ("error", `String err) ] "Peer $peer failed to serve requested epoch ledger: $error" ; return false - | Error err -> + | Connected {data= Error err; _} -> + Logger.faulty_peer_without_punishment logger + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [ ("peer", Network_peer.Peer.to_yojson peer) + ; ("error", `String (Error.to_string_mach err)) ] + "Peer $peer failed to serve requested epoch ledger: $error" ; + return false + | Failed_to_connect err -> Logger.faulty_peer_without_punishment logger ~module_:__MODULE__ ~location:__LOC__ ~metadata: [ ("peer", Network_peer.Peer.to_yojson peer) ; ("error", `String (Error.to_string_hum err)) ] - "Error when querying peer $peer for epoch ledger: $error" ; + "Failed to connect to $peer to retrieve epoch ledger: $error" ; return false ) in if%map Deferred.List.for_all requested_syncs ~f:sync then Ok () diff --git a/src/lib/daemon_rpcs/dune b/src/lib/daemon_rpcs/dune index 0b7fbab6ed4..6c999e65c2d 100644 --- a/src/lib/daemon_rpcs/dune +++ b/src/lib/daemon_rpcs/dune @@ -4,7 +4,7 @@ (library_flags -linkall) (inline_tests) (libraries core async coda_base ppx_deriving_yojson.runtime yojson - perf_histograms consensus sync_status transaction_status kademlia cli_lib) + perf_histograms consensus sync_status transaction_status node_addrs_and_ports cli_lib) (preprocess (pps ppx_coda -lint-version-syntax-warnings ppx_jane ppx_deriving_yojson ppx_deriving.eq ppx_deriving.make bisect_ppx -- -conditional)) diff --git a/src/lib/daemon_rpcs/types.ml b/src/lib/daemon_rpcs/types.ml index 7f93a0ba394..4116db372ba 100644 --- a/src/lib/daemon_rpcs/types.ml +++ b/src/lib/daemon_rpcs/types.ml @@ -281,20 +281,24 @@ module Status = struct let addrs_and_ports = let render conf = - let fmt_field name op field = (name, op (Field.get field conf)) in - Kademlia.Node_addrs_and_ports.Display.Stable.V1.Fields.to_list + let fmt_field name op field = [(name, op (Field.get field conf))] in + Node_addrs_and_ports.Display.Stable.V1.Fields.to_list ~external_ip:(fmt_field "External IP" Fn.id) ~bind_ip:(fmt_field "Bind IP" Fn.id) - ~discovery_port:(fmt_field "Haskell Kademlia port" string_of_int) ~client_port:(fmt_field "Client port" string_of_int) - ~libp2p_port:(fmt_field "Discovery (libp2p) port" string_of_int) - ~communication_port:(fmt_field "External port" string_of_int) + ~libp2p_port:(fmt_field "Libp2p port" string_of_int) + ~peer:(fun field -> + let peer = Field.get field conf in + match peer with + | Some peer -> + [("Libp2p PeerID", peer.peer_id)] + | None -> + [] ) + |> List.concat |> List.map ~f:(fun (s, v) -> ("\t" ^ s, v)) |> digest_entries ~title:"" in map_entry "Addresses and ports" ~f:render - - let libp2p_peer_id = string_entry "Libp2p PeerID" end type t = @@ -322,8 +326,7 @@ module Status = struct ; consensus_time_now: Consensus.Data.Consensus_time.Stable.V1.t ; consensus_mechanism: string ; consensus_configuration: Consensus.Configuration.t - ; addrs_and_ports: Kademlia.Node_addrs_and_ports.Display.Stable.V1.t - ; libp2p_peer_id: string } + ; addrs_and_ports: Node_addrs_and_ports.Display.Stable.V1.t } [@@deriving to_yojson, bin_io, fields] let entries (s : t) = @@ -338,7 +341,7 @@ module Status = struct ~state_hash ~commit_id ~conf_dir ~peers ~user_commands_sent ~snark_worker ~block_production_keys ~histograms ~consensus_time_best_tip ~consensus_time_now ~consensus_mechanism ~consensus_configuration - ~next_block_production ~snark_work_fee ~addrs_and_ports ~libp2p_peer_id + ~next_block_production ~snark_work_fee ~addrs_and_ports |> List.filter_map ~f:Fn.id let to_text (t : t) = diff --git a/src/lib/envelope/dune b/src/lib/envelope/dune deleted file mode 100644 index 676b44fffb1..00000000000 --- a/src/lib/envelope/dune +++ /dev/null @@ -1,5 +0,0 @@ -(library - (name envelope) - (public_name envelope) - (libraries core_kernel network_peer) - (preprocess (pps ppx_deriving.eq ppx_jane ppx_coda ppx_deriving_yojson))) diff --git a/src/lib/envelope/envelope.ml b/src/lib/envelope/envelope.ml deleted file mode 100644 index ee931d568ca..00000000000 --- a/src/lib/envelope/envelope.ml +++ /dev/null @@ -1,40 +0,0 @@ -open Core_kernel - -module Sender = struct - type t = Local | Remote of Core.Unix.Inet_addr.Stable.V1.t - [@@deriving sexp, compare] - - let equal sender1 sender2 = Int.equal (compare sender1 sender2) 0 - - let to_yojson t : Yojson.Safe.json = - match t with - | Local -> - `String "Local" - | Remote inet_addr -> - `Assoc [("Remote", `String (Core.Unix.Inet_addr.to_string inet_addr))] - - let of_yojson (json : Yojson.Safe.json) : (t, string) Result.t = - match json with - | `String "Local" -> - Ok Local - | `Assoc [("Remote", `String addr)] -> - Ok (Remote (Core.Unix.Inet_addr.of_string addr)) - | _ -> - Error "Expected JSON representing envelope sender" -end - -module Incoming = struct - type 'a t = {data: 'a; sender: Sender.t} [@@deriving eq, sexp, yojson] - - let sender t = t.sender - - let data t = t.data - - let wrap ~data ~sender = {data; sender} - - let map ~f t = {t with data= f t.data} - - let local data = - let sender = Sender.Local in - {data; sender} -end diff --git a/src/lib/fake_network/fake_network.ml b/src/lib/fake_network/fake_network.ml index bfe1ddc9d4c..81a9a713bda 100644 --- a/src/lib/fake_network/fake_network.ml +++ b/src/lib/fake_network/fake_network.ml @@ -3,6 +3,7 @@ open Core open Coda_base open Gadt_lib open Signature_lib +open Network_peer module Gossip_net = Coda_networking.Gossip_net (* There must be at least 2 peers to create a network *) @@ -34,14 +35,17 @@ let setup (type n) ?(logger = Logger.null ()) let _, peers = Vect.fold_map states ~init:(Constants.init_ip, Constants.init_discovery_port) - ~f:(fun (ip, discovery_port) _ -> + ~f:(fun (ip, libp2p_port) _ -> (* each peer has a distinct IP address, so we lookup frontiers by IP *) let peer = Network_peer.Peer.create (Unix.Inet_addr.inet4_addr_of_int32 ip) - ~discovery_port ~communication_port:(discovery_port + 1) + ~libp2p_port + ~peer_id: + (Peer.Id.unsafe_of_string + (sprintf "fake peer at port %d" libp2p_port)) in - ((Int32.( + ) Int32.one ip, discovery_port + 2), peer) ) + ((Int32.( + ) Int32.one ip, libp2p_port + 1), peer) ) in let fake_gossip_network = Gossip_net.Fake.create_network (Vect.to_list peers) @@ -52,6 +56,7 @@ let setup (type n) ?(logger = Logger.null ()) ; trust_system ; time_controller ; consensus_local_state + ; is_seed= Vect.is_empty peers ; genesis_ledger_hash= Ledger.merkle_root (Lazy.force Test_genesis_ledger.t) ; creatable_gossip_net= diff --git a/src/lib/gadt_lib/vect.ml b/src/lib/gadt_lib/vect.ml index a712f1d2e74..6a344bf2d9b 100644 --- a/src/lib/gadt_lib/vect.ml +++ b/src/lib/gadt_lib/vect.ml @@ -2,6 +2,12 @@ type ('el, 'n) t = | [] : ('el, Peano.zero) t | ( :: ) : 'el * ('el, 'n) t -> ('el, 'n Peano.succ) t +let is_empty : type n. ('a, n) t -> bool = function + | [] -> + true + | _ :: _ -> + false + let rec to_list : type n. ('a, n) t -> 'a list = function | [] -> [] diff --git a/src/lib/gossip_net/any.ml b/src/lib/gossip_net/any.ml index 69e8e9e3af9..3b244eac76d 100644 --- a/src/lib/gossip_net/any.ml +++ b/src/lib/gossip_net/any.ml @@ -42,8 +42,6 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : let initial_peers (Any ((module M), t)) = M.initial_peers t - let peers_by_ip (Any ((module M), t)) = M.peers_by_ip t - let random_peers (Any ((module M), t)) = M.random_peers t let random_peers_except (Any ((module M), t)) = M.random_peers_except t @@ -52,9 +50,9 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : let query_random_peers (Any ((module M), t)) = M.query_random_peers t - let broadcast (Any ((module M), t)) = M.broadcast t + let ip_for_peer (Any ((module M), t)) = M.ip_for_peer t - let broadcast_all (Any ((module M), t)) = M.broadcast_all t + let broadcast (Any ((module M), t)) = M.broadcast t let on_first_connect (Any ((module M), t)) = M.on_first_connect t diff --git a/src/lib/gossip_net/dune b/src/lib/gossip_net/dune index 672e9463773..0cb289d321d 100644 --- a/src/lib/gossip_net/dune +++ b/src/lib/gossip_net/dune @@ -3,7 +3,7 @@ (public_name gossip_net) (library_flags -linkall) (inline_tests) - (libraries perf_histograms core coda_base coda_transition coda_net2 network_pool trust_system pipe_lib logger kademlia async async_extra o1trace coda_metrics) + (libraries perf_histograms core coda_base coda_transition coda_net2 network_pool trust_system pipe_lib logger async async_extra o1trace node_addrs_and_ports coda_metrics) (preprocessor_deps ../../config.mlh) (preprocess (pps ppx_coda -lint-version-syntax-warnings ppx_inline_test ppx_deriving.eq ppx_deriving.make ppx_deriving_yojson bisect_ppx ppx_optcomp ppx_bin_prot ppx_sexp_conv ppx_fields_conv ppx_let ppx_custom_printf ppx_pipebang -- -conditional)) diff --git a/src/lib/gossip_net/fake.ml b/src/lib/gossip_net/fake.ml index 482f1b2845e..0e2ff8301aa 100644 --- a/src/lib/gossip_net/fake.ml +++ b/src/lib/gossip_net/fake.ml @@ -2,7 +2,6 @@ open Async_kernel open Core open Pipe_lib open Network_peer -open Peer (* TODO: Implement RPC version translations (documented in Async_rpc_kernel). * This code currently only supports the latest version of RPCs. *) @@ -24,11 +23,14 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : open Rpc_intf module Network = struct - type rpc_hook = {hook: 'q 'r. ('q, 'r) rpc -> 'q -> 'r Deferred.Or_error.t} + type rpc_hook = + { hook: + 'q 'r. Peer.Id.t -> ('q, 'r) rpc -> 'q + -> 'r Coda_base.Rpc_intf.rpc_response Deferred.t } type network_interface = { broadcast_message_writer: - ( Message.msg Envelope.Incoming.t + ( Message.msg Envelope.Incoming.t * (bool -> unit) , Strict_pipe.crash Strict_pipe.buffered , unit ) Strict_pipe.Writer.t @@ -36,13 +38,13 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : type node = {peer: Peer.t; mutable interface: network_interface option} - type t = {nodes: (Unix.Inet_addr.t, node list) Hashtbl.t} + type t = {nodes: (Peer.Id.t, node list) Hashtbl.t} let create peers = - let nodes = Hashtbl.create (module Unix.Inet_addr) in + let nodes = Hashtbl.create (module Peer.Id) in List.iter peers ~f:(fun peer -> - Hashtbl.add_multi nodes ~key:peer.host ~data:{peer; interface= None} - ) ; + Hashtbl.add_multi nodes ~key:peer.Peer.peer_id + ~data:{peer; interface= None} ) ; {nodes} let get_initial_peers {nodes} local_ip = @@ -53,7 +55,9 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : let lookup_node t peer = let error = Error.of_string "peer does not exist" in - let nodes = Hashtbl.find t.nodes peer.host |> Option.value_exn ~error in + let nodes = + Hashtbl.find t.nodes peer.Peer.peer_id |> Option.value_exn ~error + in List.find nodes ~f:(fun node -> Peer.equal peer node.peer) |> Option.value_exn ~error @@ -73,15 +77,27 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : let intf = get_interface node in let msg = Envelope.( - Incoming.wrap ~data:msg ~sender:(Sender.Remote sender.host)) + Incoming.wrap ~data:msg + ~sender:(Sender.Remote (sender.host, sender.peer_id))) in - Strict_pipe.Writer.write intf.broadcast_message_writer msg ) ) + Strict_pipe.Writer.write intf.broadcast_message_writer + (msg, Fn.const ()) ) ) let call_rpc : type q r. - t -> Peer.t -> (q, r) rpc -> q -> r Deferred.Or_error.t = - fun t peer rpc query -> + t + -> _ + -> Peer.Id.t + -> (q, r) rpc + -> q + -> r Coda_base.Rpc_intf.rpc_response Deferred.t = + fun t peer_table peer_id rpc query -> + let peer = + Option.value_exn + (Hashtbl.find peer_table peer_id) + ~error:(Error.createf "failed to find peer %s in peer_table" peer_id) + in let intf = get_interface (lookup_node t peer) in - intf.rpc_hook.hook rpc query + intf.rpc_hook.hook peer_id rpc query end module Instance = struct @@ -89,81 +105,95 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : { network: Network.t ; me: Peer.t ; rpc_handlers: rpc_handler list - ; peer_table: (Unix.Inet_addr.t, Peer.t list) Hashtbl.t - ; initial_peers: Host_and_port.t list + ; peer_table: (Peer.Id.t, Peer.t) Hashtbl.t + ; initial_peers: Peer.t list ; received_message_reader: - Message.msg Envelope.Incoming.t Strict_pipe.Reader.t + (Message.msg Envelope.Incoming.t * (bool -> unit)) + Strict_pipe.Reader.t ; received_message_writer: - ( Message.msg Envelope.Incoming.t + ( Message.msg Envelope.Incoming.t * (bool -> unit) , Strict_pipe.crash Strict_pipe.buffered , unit ) Strict_pipe.Writer.t ; ban_notification_reader: ban_notification Linear_pipe.Reader.t ; ban_notification_writer: ban_notification Linear_pipe.Writer.t } - let rpc_hook me rpc_handlers = - let hook : type q r. (q, r) rpc -> q -> r Deferred.Or_error.t = - fun rpc query -> + let rpc_hook t rpc_handlers = + let hook : type q r. + Peer.Id.t + -> (q, r) rpc + -> q + -> r Coda_base.Rpc_intf.rpc_response Deferred.t = + fun peer rpc query -> let (module Impl) = implementation_of_rpc rpc in let latest_version = (* this is assumed safe since there should always be at least one version *) - Int.Set.max_elt (Impl.versions ()) |> Option.value_exn + Int.Set.max_elt (Impl.versions ()) + |> Option.value_exn ~error:(Error.of_string "no versions?") + in + let sender = + Hashtbl.find t.peer_table peer + |> Option.value_exn ~error:(Error.createf "cannot find peer %s" peer) in match List.find_map rpc_handlers ~f:(fun handler -> match_handler handler rpc ~do_:(fun f -> - f - (Peer.to_communications_host_and_port me) - ~version:latest_version query ) ) + f sender ~version:latest_version query ) ) with | None -> failwith "fake gossip net error: rpc not implemented" | Some deferred -> let%map response = deferred in - Ok response + Coda_base.Rpc_intf.Connected + (Envelope.Incoming.wrap_peer ~data:(Ok response) ~sender) in Network.{hook} let create network me rpc_handlers = - let initial_peers = Network.get_initial_peers network me.host in - let initial_peer_hosts = - List.map initial_peers ~f:Peer.to_communications_host_and_port - in - let peer_table = Hashtbl.create (module Unix.Inet_addr) in + let initial_peers = Network.get_initial_peers network me.Peer.host in + let peer_table = Hashtbl.create (module Peer.Id) in List.iter initial_peers ~f:(fun peer -> - Hashtbl.add_multi peer_table ~key:peer.host ~data:peer ) ; + Hashtbl.add_exn peer_table ~key:peer.peer_id ~data:peer ) ; + Hashtbl.add_exn peer_table ~key:me.peer_id ~data:me ; let received_message_reader, received_message_writer = Strict_pipe.(create (Buffered (`Capacity 5, `Overflow Crash))) in let ban_notification_reader, ban_notification_writer = Linear_pipe.create () in + let t = + { network + ; me + ; rpc_handlers + ; peer_table + ; initial_peers + ; received_message_reader + ; received_message_writer + ; ban_notification_reader + ; ban_notification_writer } + in Network.( attach_interface network me { broadcast_message_writer= received_message_writer - ; rpc_hook= rpc_hook me rpc_handlers }) ; - { network - ; me - ; rpc_handlers - ; peer_table - ; initial_peers= initial_peer_hosts - ; received_message_reader - ; received_message_writer - ; ban_notification_reader - ; ban_notification_writer } - - let peers {peer_table; _} = List.concat (Hashtbl.data peer_table) + ; rpc_hook= rpc_hook t rpc_handlers }) ; + t - let initial_peers {initial_peers; _} = initial_peers + let peers {peer_table; _} = Hashtbl.data peer_table |> Deferred.return - let peers_by_ip {peer_table; _} ip = Hashtbl.find_multi peer_table ip + let initial_peers t = + Hashtbl.data t.peer_table + |> List.map + ~f: + (Fn.compose Coda_net2.Multiaddr.of_string Peer.to_multiaddr_string) - let random_peers t n = List.take (List.permute @@ peers t) n + let random_peers t n = + let%map peers = peers t in + List.take (List.permute @@ peers) n let random_peers_except t n ~except = + let%map peers = peers t in let peers_without_exception = - List.filter (peers t) ~f:(fun peer -> - not (Base.Hash_set.mem except peer) ) + List.filter peers ~f:(fun peer -> not (Base.Hash_set.mem except peer)) in List.take (List.permute peers_without_exception) n @@ -177,13 +207,15 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : let ban_notification_reader {ban_notification_reader; _} = ban_notification_reader - let query_peer t peer rpc query = Network.call_rpc t.network peer rpc query + let query_peer t peer rpc query = + Network.call_rpc t.network t.peer_table peer rpc query let query_random_peers _ = failwith "TODO stub" let broadcast t msg = Network.broadcast t.network ~sender:t.me msg - let broadcast_all _ = failwith "TODO stub" + let ip_for_peer t peer_id = + Deferred.return (Hashtbl.find t.peer_table peer_id) let net2 _ = None end diff --git a/src/lib/gossip_net/gossip_net.ml b/src/lib/gossip_net/gossip_net.ml index 4b51360ee06..a0f0d1e65a0 100644 --- a/src/lib/gossip_net/gossip_net.ml +++ b/src/lib/gossip_net/gossip_net.ml @@ -1,6 +1,6 @@ include Intf module Any = Any -module Real = Real +module Libp2p = Libp2p module Fake = Fake module type S = sig @@ -12,7 +12,7 @@ module type S = sig module Any : Any.S with module Rpc_intf := Rpc_intf - module Real : Real.S with module Rpc_intf := Rpc_intf + module Libp2p : Libp2p.S with module Rpc_intf := Rpc_intf module Fake : Fake.S with module Rpc_intf := Rpc_intf end @@ -23,5 +23,5 @@ module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : module Message = Message module Any = Any.Make (Rpc_intf) module Fake = Fake.Make (Rpc_intf) - module Real = Real.Make (Rpc_intf) + module Libp2p = Libp2p.Make (Rpc_intf) end diff --git a/src/lib/gossip_net/intf.ml b/src/lib/gossip_net/intf.ml index 8dba1ad7806..5692d2b0da8 100644 --- a/src/lib/gossip_net/intf.ml +++ b/src/lib/gossip_net/intf.ml @@ -14,33 +14,36 @@ module type Gossip_net_intf = sig module Rpc_intf : Rpc_interface_intf - val peers : t -> Peer.t list + val peers : t -> Peer.t list Deferred.t - val initial_peers : t -> Host_and_port.t list + val initial_peers : t -> Coda_net2.Multiaddr.t list - val peers_by_ip : t -> Unix.Inet_addr.t -> Peer.t list + val random_peers : t -> int -> Peer.t list Deferred.t - val random_peers : t -> int -> Peer.t list - - val random_peers_except : t -> int -> except:Peer.Hash_set.t -> Peer.t list + val random_peers_except : + t -> int -> except:Peer.Hash_set.t -> Peer.t list Deferred.t val query_peer : - t -> Peer.t -> ('q, 'r) Rpc_intf.rpc -> 'q -> 'r Or_error.t Deferred.t + t -> Peer.Id.t -> ('q, 'r) Rpc_intf.rpc -> 'q -> 'r rpc_response Deferred.t val query_random_peers : - t -> int -> ('q, 'r) Rpc_intf.rpc -> 'q -> 'r Or_error.t Deferred.t List.t + t + -> int + -> ('q, 'r) Rpc_intf.rpc + -> 'q + -> 'r rpc_response Deferred.t List.t Deferred.t - val broadcast : t -> Message.msg -> unit + val ip_for_peer : t -> Peer.Id.t -> Peer.t option Deferred.t - val broadcast_all : - t -> Message.msg -> (unit -> [`Done | `Continue] Deferred.t) Staged.t + val broadcast : t -> Message.msg -> unit val on_first_connect : t -> f:(unit -> 'a) -> 'a Deferred.t val on_first_high_connectivity : t -> f:(unit -> 'a) -> 'a Deferred.t val received_message_reader : - t -> Message.msg Envelope.Incoming.t Strict_pipe.Reader.t + t + -> (Message.msg Envelope.Incoming.t * (bool -> unit)) Strict_pipe.Reader.t val ban_notification_reader : t -> ban_notification Linear_pipe.Reader.t diff --git a/src/lib/gossip_net/libp2p.ml b/src/lib/gossip_net/libp2p.ml new file mode 100644 index 00000000000..bd8d7c8e5f2 --- /dev/null +++ b/src/lib/gossip_net/libp2p.ml @@ -0,0 +1,477 @@ +[%%import +"../../config.mlh"] + +open Core +open Async +open Network_peer +open O1trace +open Pipe_lib +open Coda_base.Rpc_intf + +type ('q, 'r) dispatch = + Versioned_rpc.Connection_with_menu.t -> 'q -> 'r Deferred.Or_error.t + +module Connection_with_state = struct + type t = Banned | Allowed of Rpc.Connection.t Ivar.t + + let value_map ~when_allowed ~when_banned t = + match t with Allowed c -> when_allowed c | _ -> when_banned +end + +module Config = struct + type t = + { timeout: Time.Span.t + ; initial_peers: Coda_net2.Multiaddr.t list + ; addrs_and_ports: Node_addrs_and_ports.t + ; conf_dir: string + ; chain_id: string + ; logger: Logger.t + ; unsafe_no_trust_ip: bool + ; trust_system: Trust_system.t + ; keypair: Coda_net2.Keypair.t option } + [@@deriving make] +end + +module type S = sig + include Intf.Gossip_net_intf + + val create : Config.t -> Rpc_intf.rpc_handler list -> t Deferred.t +end + +let rpc_transport_proto = "coda/rpcs/0.0.1" + +module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : + S with module Rpc_intf := Rpc_intf = struct + open Rpc_intf + + module T = struct + type t = + { config: Config.t + ; net2: Coda_net2.net + ; first_peer_ivar: unit Ivar.t + ; high_connectivity_ivar: unit Ivar.t + ; ban_reader: Intf.ban_notification Linear_pipe.Reader.t + ; message_reader: + (Message.msg Envelope.Incoming.t * (bool -> unit)) + Strict_pipe.Reader.t + ; subscription: Message.msg Coda_net2.Pubsub.Subscription.t } + + let create_rpc_implementations (Rpc_handler (rpc, handler)) = + let (module Impl) = implementation_of_rpc rpc in + Impl.implement_multi handler + + let prepare_stream_transport stream = + (* Closing the connection calls close_read on the read + pipe, which coda_net2 does not expect. To avoid this, add + an extra pipe and don't propagate the close. We still want + to close the connection because it flushes all the internal + state machines and fills the `closed` ivar. + + Pipe.transfer isn't appropriate because it will close the + real_r when read_w is closed, precisely what we don't want. + *) + let read_r, read_w = Pipe.create () in + let underlying_r, underlying_w = Coda_net2.Stream.pipes stream in + don't_wait_for + (Pipe.iter underlying_r ~f:(fun msg -> + Pipe.write_without_pushback_if_open read_w msg ; + Deferred.unit )) ; + let transport = + Async_rpc_kernel.Pipe_transport.( + create Kind.string read_r underlying_w) + in + transport + + (* Creates just the helper, making sure to register everything + BEFORE we start listening/advertise ourselves for discovery. *) + let create_libp2p (config : Config.t) rpc_handlers first_peer_ivar + high_connectivity_ivar = + let fail m = + failwithf "Failed to connect to libp2p_helper process: %s" m () + in + let conf_dir = config.conf_dir ^/ "coda_net2" in + let%bind () = Unix.mkdir ~p:() conf_dir in + match%bind + Monitor.try_with (fun () -> + trace "coda_net2" (fun () -> + Coda_net2.create ~logger:config.logger ~conf_dir ) ) + with + | Ok (Ok net2) -> ( + let open Coda_net2 in + (* Make an ephemeral keypair for this session TODO: persist in the config dir *) + let%bind me = + match config.keypair with + | Some kp -> + return kp + | None -> + Keypair.random net2 + in + let my_peer_id = Keypair.to_peer_id me |> Peer.Id.to_string in + ( match config.addrs_and_ports.peer with + | Some _ -> + () + | None -> + config.addrs_and_ports.peer + <- Some + (Peer.create config.addrs_and_ports.bind_ip + ~libp2p_port:config.addrs_and_ports.libp2p_port + ~peer_id:my_peer_id) ) ; + Logger.info config.logger "libp2p peer ID this session is $peer_id" + ~location:__LOC__ ~module_:__MODULE__ + ~metadata:[("peer_id", `String my_peer_id)] ; + let ctr = ref 0 in + let initializing_libp2p_result : _ Deferred.Or_error.t = + let open Deferred.Or_error.Let_syntax in + let%bind () = + configure net2 ~me ~maddrs:[] + ~external_maddr: + (Multiaddr.of_string + (sprintf "/ip4/%s/tcp/%d" + (Unix.Inet_addr.to_string + config.addrs_and_ports.external_ip) + (Option.value_exn config.addrs_and_ports.peer) + .libp2p_port)) + ~network_id:config.chain_id + ~unsafe_no_trust_ip:config.unsafe_no_trust_ip + ~on_new_peer:(fun _ -> + Ivar.fill_if_empty first_peer_ivar () ; + if !ctr < 4 then incr ctr + else Ivar.fill_if_empty high_connectivity_ivar () ) + in + let implementation_list = + List.bind rpc_handlers ~f:create_rpc_implementations + in + let implementations = + let handle_unknown_rpc conn_state ~rpc_tag ~version = + Deferred.don't_wait_for + Trust_system.( + record config.trust_system config.logger + conn_state.Peer.host + Actions. + ( Violated_protocol + , Some + ( "Attempt to make unknown (fixed-version) RPC \ + call \"$rpc\" with version $version" + , [ ("rpc", `String rpc_tag) + ; ("version", `Int version) ] ) )) ; + `Close_connection + in + Rpc.Implementations.create_exn + ~implementations:(Versioned_rpc.Menu.add implementation_list) + ~on_unknown_rpc:(`Call handle_unknown_rpc) + in + (* We could keep this around to close just this listener if we wanted. We don't. *) + let%bind _rpc_handler = + Coda_net2.handle_protocol net2 ~on_handler_error:`Raise + ~protocol:rpc_transport_proto (fun stream -> + let peer = Coda_net2.Stream.remote_peer stream in + let transport = prepare_stream_transport stream in + let open Deferred.Let_syntax in + match%bind + Async_rpc_kernel.Rpc.Connection.create ~implementations + ~connection_state:(Fn.const peer) + ~description: + (Info.of_thunk (fun () -> + sprintf "stream from %s" peer.peer_id )) + transport + with + | Error handshake_error -> + let%bind () = + Async_rpc_kernel.Rpc.Transport.close transport + in + don't_wait_for (Coda_net2.Stream.reset stream >>| ignore) ; + Trust_system.( + record config.trust_system config.logger peer.host + Actions. + ( Incoming_connection_error + , Some + ( "Handshake error: $exn" + , [ ( "exn" + , `String (Exn.to_string handshake_error) + ) ] ) )) + | Ok rpc_connection -> ( + let%bind () = + Async_rpc_kernel.Rpc.Connection.close_finished + rpc_connection + in + let%bind () = + Async_rpc_kernel.Rpc.Connection.close + ~reason:(Info.of_string "connection completed") + rpc_connection + in + match%map Coda_net2.Stream.reset stream with + | Error e -> + Logger.info config.logger + "failed to reset stream (this means it was \ + probably closed successfully): $error" + ~module_:__MODULE__ ~location:__LOC__ + ~metadata: + [("error", `String (Error.to_string_hum e))] + | Ok () -> + () ) ) + in + let message_reader, message_writer = + Strict_pipe.( + create + ~name:"Gossip_net.Libp2p messages with validation callbacks" + Synchronous) + in + let%bind subscription = + Coda_net2.Pubsub.subscribe_encode net2 + "coda/consensus-messages/0.0.1" + (* Fix for #4097: validation is tied into a lot of complex control flow. + Instead of refactoring it to have validation up-front and decoupled, + we pass along a validation callback with the message. This ends up + ignoring the actual subscription message pipe, so drain it separately. *) + ~should_forward_message:(fun envelope -> + (* Messages from ourselves are valid. Don't try and reingest them. *) + match Envelope.Incoming.sender envelope with + | Local -> + Deferred.return true + | Remote (_, sender_peer_id) -> + if not (Peer.Id.equal sender_peer_id my_peer_id) then + let valid_ivar = Ivar.create () in + Deferred.bind + (Strict_pipe.Writer.write message_writer + (envelope, Ivar.fill valid_ivar)) + ~f:(fun () -> Ivar.read valid_ivar) + else Deferred.return true ) + ~bin_prot:Message.V1.T.bin_msg + ~on_decode_failure: + (`Call + (fun envelope (err : Error.t) -> + let host, peer_id = + Envelope.Incoming.sender envelope + |> Envelope.Sender.remote_exn + in + let metadata = + [ ("sender_peer_id", `String peer_id) + ; ("error", `String (Error.to_string_hum err)) ] + in + Trust_system.( + record config.trust_system config.logger host + Actions. + ( Violated_protocol + , Some ("failed to decode gossip message", metadata) + )) + |> don't_wait_for ; + () )) + in + (* #4097 fix: drain the published message pipe, which we don't care about. *) + don't_wait_for + (Strict_pipe.Reader.iter + (Coda_net2.Pubsub.Subscription.message_pipe subscription) + ~f:(Fn.const Deferred.unit)) ; + let%map _ = + (* XXX: this ALWAYS needs to be AFTER handle_protocol/subscribe + or it is possible to miss connections! *) + listen_on net2 + (Multiaddr.of_string + (sprintf "/ip4/%s/tcp/%d" + ( config.addrs_and_ports.bind_ip + |> Unix.Inet_addr.to_string ) + (Option.value_exn config.addrs_and_ports.peer) + .libp2p_port)) + in + Deferred.ignore + (Deferred.bind + ~f:(fun _ -> Coda_net2.begin_advertising net2) + (* TODO: timeouts here in addition to the libp2p side? *) + (Deferred.all + (List.map ~f:(Coda_net2.add_peer net2) config.initial_peers))) + |> don't_wait_for ; + (subscription, message_reader) + in + match%map initializing_libp2p_result with + | Ok (subscription, message_reader) -> + (net2, subscription, message_reader) + | Error e -> + fail (Error.to_string_hum e) ) + | Ok (Error e) -> + fail (Error.to_string_hum e) + | Error e -> + fail (Exn.to_string e) + + let create config rpc_handlers = + let first_peer_ivar = Ivar.create () in + let high_connectivity_ivar = Ivar.create () in + let%bind net2, subscription, message_reader = + create_libp2p config rpc_handlers first_peer_ivar + high_connectivity_ivar + in + let do_ban (addr, expiration) = + don't_wait_for + ( Clock.at expiration + >>= fun () -> Coda_net2.unban_ip net2 addr |> Deferred.ignore ) ; + Coda_net2.ban_ip net2 addr |> Deferred.ignore + in + let%map () = + Deferred.List.iter (Trust_system.peer_statuses config.trust_system) + ~f:(function + | ( addr + , {banned= Trust_system.Banned_status.Banned_until expiration; _} ) + -> + do_ban (addr, expiration) + | _ -> + Deferred.unit ) + in + let ban_reader, ban_writer = Linear_pipe.create () in + don't_wait_for + (let%map () = + Strict_pipe.Reader.iter + (Trust_system.ban_pipe config.trust_system) + ~f:do_ban + in + Linear_pipe.close ban_writer) ; + { config + ; net2 + ; first_peer_ivar + ; high_connectivity_ivar + ; subscription + ; message_reader + ; ban_reader } + + let peers t = Coda_net2.peers t.net2 + + let initial_peers t = t.config.initial_peers + + (* OPTIMIZATION: use fast n choose k implementation - see python or old flow code *) + let random_sublist xs n = List.take (List.permute xs) n + + let random_peers t n = + let%map peers = peers t in + random_sublist peers n + + let random_peers_except t n ~except = + let%map peers = peers t in + random_sublist + Hash_set.(diff (Peer.Hash_set.of_list peers) except |> to_list) + n + + let try_call_rpc_with_dispatch : type r q. + t + -> Peer.t + -> Async.Rpc.Transport.t + -> (r, q) dispatch + -> r + -> q Deferred.Or_error.t = + fun t peer transport dispatch query -> + let call () = + Monitor.try_with (fun () -> + (* Async_rpc_kernel takes a transport instead of a Reader.t *) + Async_rpc_kernel.Rpc.Connection.with_close + ~connection_state:(Fn.const ()) + ~dispatch_queries:(fun conn -> + Versioned_rpc.Connection_with_menu.create conn + >>=? fun conn' -> dispatch conn' query ) + transport + ~on_handshake_error: + (`Call + (fun exn -> + let%map () = + Trust_system.( + record t.config.trust_system t.config.logger peer.host + Actions. + ( Outgoing_connection_error + , Some + ( "Handshake error: $exn" + , [("exn", `String (Exn.to_string exn))] ) )) + in + Or_error.error_string "handshake error" )) ) + >>= function + | Ok (Ok result) -> + (* call succeeded, result is valid *) + Deferred.return (Ok result) + | Ok (Error err) -> ( + (* call succeeded, result is an error *) + Logger.error t.config.logger ~module_:__MODULE__ ~location:__LOC__ + "RPC call error: $error" + ~metadata:[("error", `String (Error.to_string_hum err))] ; + match (Error.to_exn err, Error.sexp_of_t err) with + | ( _ + , Sexp.List + [ Sexp.List + [ Sexp.Atom "rpc_error" + ; Sexp.List [Sexp.Atom "Connection_closed"; _] ] + ; _connection_description + ; _rpc_tag + ; _rpc_version ] ) -> + let%map () = + Trust_system.( + record t.config.trust_system t.config.logger peer.host + Actions. + ( Outgoing_connection_error + , Some ("Closed connection", []) )) + in + Error err + | _ -> + let%map () = + Trust_system.( + record t.config.trust_system t.config.logger peer.host + Actions. + ( Outgoing_connection_error + , Some + ( "RPC call failed, reason: $exn" + , [("exn", `String (Error.to_string_hum err))] ) )) + in + Error err ) + | Error monitor_exn -> ( + (* call itself failed *) + (* TODO: learn what other exceptions are raised here *) + let exn = Monitor.extract_exn monitor_exn in + match exn with + | _ -> + Logger.error t.config.logger ~module_:__MODULE__ + ~location:__LOC__ "RPC call raised an exception: $exn" + ~metadata:[("exn", `String (Exn.to_string exn))] ; + Deferred.return (Or_error.of_exn exn) ) + in + call () + + let try_call_rpc : type q r. + t -> Peer.t -> _ -> (q, r) rpc -> q -> r Deferred.Or_error.t = + fun t peer transport rpc query -> + let (module Impl) = implementation_of_rpc rpc in + try_call_rpc_with_dispatch t peer transport Impl.dispatch_multi query + + let query_peer t (peer_id : Peer.Id.t) rpc rpc_input = + match%bind + Coda_net2.open_stream t.net2 ~protocol:rpc_transport_proto peer_id + with + | Ok stream -> + let peer = Coda_net2.Stream.remote_peer stream in + let transport = prepare_stream_transport stream in + try_call_rpc t peer transport rpc rpc_input + >>| fun data -> + Connected (Envelope.Incoming.wrap_peer ~data ~sender:peer) + | Error e -> + return (Failed_to_connect e) + + let query_random_peers t n rpc query = + let%map peers = random_peers t n in + Logger.trace t.config.logger ~module_:__MODULE__ ~location:__LOC__ + !"Querying random peers: %s" + (Peer.pretty_list peers) ; + List.map peers ~f:(fun peer -> query_peer t peer.peer_id rpc query) + + let broadcast t msg = + don't_wait_for (Coda_net2.Pubsub.Subscription.publish t.subscription msg) + + let on_first_connect t ~f = Deferred.map (Ivar.read t.first_peer_ivar) ~f + + let on_first_high_connectivity t ~f = + Deferred.map (Ivar.read t.high_connectivity_ivar) ~f + + let received_message_reader t = t.message_reader + + let ban_notification_reader t = t.ban_reader + + let ip_for_peer t peer_id = + Coda_net2.lookup_peerid t.net2 peer_id + >>| function Ok p -> Some p | Error _ -> None + + let net2 t = Some t.net2 + end + + include T +end diff --git a/src/lib/gossip_net/real.ml b/src/lib/gossip_net/real.ml deleted file mode 100644 index 279680b8ed0..00000000000 --- a/src/lib/gossip_net/real.ml +++ /dev/null @@ -1,935 +0,0 @@ -[%%import -"/src/config.mlh"] - -open Core -open Async -open Pipe_lib -open Network_peer -open Kademlia -open O1trace -open Intf -module Membership = Membership.Haskell - -type ('q, 'r) dispatch = - Versioned_rpc.Connection_with_menu.t -> 'q -> 'r Deferred.Or_error.t - -module Get_chain_id = struct - module Master = struct - let name = "get_chain_id" - - module T = struct - (* "master" types, do not change *) - type query = unit - - type response = string - end - - module Caller = T - module Callee = T - end - - include Master.T - module M = Versioned_rpc.Both_convert.Plain.Make (Master) - include M - - include Perf_histograms.Rpc.Plain.Extend (struct - include M - include Master - end) - - module V1 = struct - module T = struct - type query = unit [@@deriving bin_io, version {rpc}] - - type response = string [@@deriving bin_io, version {rpc}] - - let query_of_caller_model = Fn.id - - let callee_model_of_query = Fn.id - - let response_of_callee_model = Fn.id - - let caller_model_of_response = Fn.id - end - - module T' = - Perf_histograms.Rpc.Plain.Decorate_bin_io (struct - include M - include Master - end) - (T) - - include T' - include Register (T') - end -end - -(* Peer_set is just a wrapper around Peer.Hash_set with an ivar signal that - indicates if a node has been connected with a good amount of peers on the - network. This is to cause eager bootstrapping *) -module Peer_set = struct - type t = {set: Peer.Hash_set.t; high_connectivity_signal: unit Ivar.t} - - let is_empty {set; _} = Hash_set.is_empty set - - let add {set; high_connectivity_signal} value = - Hash_set.add set value ; - if Hash_set.length set >= 4 then - Ivar.fill_if_empty high_connectivity_signal () - - let remove {set; _} value = Hash_set.remove set value - - let length {set; _} = Hash_set.length set - - let to_list {set; _} = Hash_set.to_list set - - let create () = - let set = Peer.Hash_set.create () in - let high_connectivity_signal = Ivar.create () in - {set; high_connectivity_signal} - - let high_connectivity_signal {high_connectivity_signal; _} = - high_connectivity_signal -end - -module Connection_with_state = struct - type t = Banned | Allowed of Rpc.Connection.t Ivar.t - - let value_map ~when_allowed ~when_banned t = - match t with Allowed c -> when_allowed c | _ -> when_banned -end - -module Config = struct - type t = - { timeout: Time.Span.t - ; target_peer_count: int - ; initial_peers: Host_and_port.t list - ; addrs_and_ports: Kademlia.Node_addrs_and_ports.t - ; conf_dir: string - ; chain_id: string - ; logger: Logger.t - ; trust_system: Trust_system.t - ; max_concurrent_connections: int option - ; enable_libp2p: bool - ; disable_haskell: bool - ; libp2p_keypair: Coda_net2.Keypair.t option - ; libp2p_peers: Coda_net2.Multiaddr.t list } - [@@deriving make] -end - -module type S = sig - include Intf.Gossip_net_intf - - val create : Config.t -> Rpc_intf.rpc_handler list -> t Deferred.t -end - -module Make (Rpc_intf : Coda_base.Rpc_intf.Rpc_interface_intf) : - S with module Rpc_intf := Rpc_intf = struct - open Rpc_intf - - module T = struct - type t = - { config: Config.t - ; broadcast_writer: Message.msg Linear_pipe.Writer.t - ; received_reader: Message.msg Envelope.Incoming.t Strict_pipe.Reader.t - ; peers: Peer_set.t - ; peers_by_ip: (Unix.Inet_addr.t, Peer.t list) Hashtbl.t - ; disconnected_peers: Peer.Hash_set.t - ; ban_notification_reader: ban_notification Linear_pipe.Reader.t - ; ban_notification_writer: ban_notification Linear_pipe.Writer.t - ; mutable haskell_membership: Membership.t option - ; peer_event_writer: Peer.Event.t Linear_pipe.Writer.t - ; peer_event_reader: Peer.Event.t Linear_pipe.Reader.t - ; mutable libp2p_membership: Coda_net2.net option - ; connections: - ( Unix.Inet_addr.t - , (Uuid.t, Connection_with_state.t) Hashtbl.t ) - Hashtbl.t - ; first_connect_signal: unit Ivar.t } - - (* OPTIMIZATION: use fast n choose k implementation - see python or old flow code *) - let random_sublist xs n = List.take (List.permute xs) n - - (* clear disconnect set if peer set is at least this large *) - let disconnect_clear_threshold = 3 - - let to_where_to_connect (t : t) (peer : Peer.t) = - Tcp.Where_to_connect.of_host_and_port - ~bind_to_address:t.config.addrs_and_ports.bind_ip - @@ { Host_and_port.host= Unix.Inet_addr.to_string peer.host - ; port= peer.communication_port } - - (* remove peer from set of peers and peers_by_ip - - there are issues with this simple approach, because - Kademlia is not informed when peers are removed, so: - - - the node may not be informed when a peer reconnects, so the - peer won't be re-added to the peer set - - Kademlia may propagate information about the removed peers - other nodes - *) - let remove_peer t peer = - Logger.info t.config.logger ~module_:__MODULE__ ~location:__LOC__ - !"Removing peer from peer set: %s" - (Peer.to_string peer) - ~metadata:[("peer", Peer.to_yojson peer)] ; - Coda_metrics.(Gauge.dec_one Network.peers) ; - Peer_set.remove t.peers peer ; - Option.iter (Hashtbl.find t.peers_by_ip peer.host) ~f:(fun ip_peers -> - Hashtbl.set t.peers_by_ip ~key:peer.host - ~data: - (List.filter ip_peers ~f:(fun ip_peer -> - not (Peer.equal ip_peer peer) )) ) - - let mark_peer_disconnected t peer = - remove_peer t peer ; - Logger.info t.config.logger ~module_:__MODULE__ ~location:__LOC__ - ~metadata:[("peer", Peer.to_yojson peer)] - !"Moving peer $peer to disconnected peer set" ; - Hash_set.add t.disconnected_peers peer - - let is_unix_errno errno unix_errno = - Int.equal (Unix.Error.compare errno unix_errno) 0 - - let rec try_call_rpc_with_dispatch : type r q. - t -> Peer.t -> (r, q) dispatch -> r -> q Deferred.Or_error.t = - fun t peer dispatch query -> - let call () = - Rpc.Connection.with_client (to_where_to_connect t peer) (fun conn -> - Versioned_rpc.Connection_with_menu.create conn - >>=? fun conn' -> dispatch conn' query ) - >>= function - | Ok (Ok result) -> - (* call succeeded, result is valid *) - let%map () = - if Hash_set.mem t.disconnected_peers peer then ( - (* optimistically, mark all disconnected peers as peers *) - Logger.info t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - ~metadata:[("peer", Peer.to_yojson peer)] - !"On RPC call, reconnected to a disconnected peer: $peer" ; - unmark_all_disconnected_peers t ) - else return () - in - Ok result - | Ok (Error err) -> ( - (* call succeeded, result is an error *) - Logger.error t.config.logger ~module_:__MODULE__ ~location:__LOC__ - "RPC call error: $error, same error in machine format: \ - $machine_error" - ~metadata: - [ ("error", `String (Error.to_string_hum err)) - ; ("machine_error", `String (Error.to_string_mach err)) ] ; - match (Error.to_exn err, Error.sexp_of_t err) with - | ( _ - , Sexp.List - [ Sexp.Atom - "src/connection.ml.Handshake_error.Handshake_error" - ; _ ] ) -> - let%map () = - Trust_system.( - record t.config.trust_system t.config.logger peer.host - Actions. - ( Outgoing_connection_error - , Some ("handshake error", []) )) - in - remove_peer t peer ; Error err - | ( _ - , Sexp.List - [ Sexp.List - [ Sexp.Atom "rpc_error" - ; Sexp.List [Sexp.Atom "Connection_closed"; _] ] - ; _connection_description - ; _rpc_tag - ; _rpc_version ] ) -> - let%map () = - Trust_system.( - record t.config.trust_system t.config.logger peer.host - Actions. - ( Outgoing_connection_error - , Some ("Closed connection", []) )) - in - remove_peer t peer ; Error err - | _ -> - let%map () = - Trust_system.( - record t.config.trust_system t.config.logger peer.host - Actions. - ( Violated_protocol - , Some - ( "RPC call failed, reason: $exn" - , [("exn", `String (Error.to_string_hum err))] ) )) - in - remove_peer t peer ; Error err ) - | Error monitor_exn -> ( - (* call itself failed *) - (* TODO: learn what other exceptions are raised here *) - let exn = Monitor.extract_exn monitor_exn in - match exn with - | Unix.Unix_error (errno, _, _) - when is_unix_errno errno Unix.ECONNREFUSED -> - let%map () = - Trust_system.( - record t.config.trust_system t.config.logger peer.host - Actions. - ( Outgoing_connection_error - , Some ("Connection refused", []) )) - in - mark_peer_disconnected t peer ; - Or_error.of_exn exn - | _ -> - Logger.error t.config.logger ~module_:__MODULE__ - ~location:__LOC__ "RPC call raised an exception: $exn" - ~metadata:[("exn", `String (Exn.to_string exn))] ; - return (Or_error.of_exn exn) ) - in - match Hashtbl.find t.connections peer.host with - | None -> - call () - | Some conn_map -> - if - Option.is_some t.config.max_concurrent_connections - && Hashtbl.length conn_map - >= Option.value_exn t.config.max_concurrent_connections - then - Deferred.return - (Or_error.errorf - !"Not connecting to peer %s. Number of open connections to \ - the peer equals the limit %d.\n" - (Peer.to_string peer) - (Option.value_exn t.config.max_concurrent_connections)) - else call () - - and record_peer_events t = - trace_recurring "peer events" (fun () -> - Option.map t.haskell_membership ~f:(fun membership -> - Linear_pipe.transfer_id - (Membership.changes membership) - t.peer_event_writer ) - |> ignore ) - - and restart_kademlia t addl_peers = - match t.haskell_membership with - | Some membership -> ( - t.haskell_membership <- None ; - Logger.info t.config.logger ~module_:__MODULE__ ~location:__LOC__ - "Restarting Kademlia" ; - let%bind () = Membership.stop membership in - let%map new_membership = - let initial_peers = - List.dedup_and_sort ~compare:Host_and_port.compare - @@ t.config.initial_peers @ addl_peers - in - Membership.connect ~node_addrs_and_ports:t.config.addrs_and_ports - ~initial_peers ~conf_dir:t.config.conf_dir - ~logger:t.config.logger ~trust_system:t.config.trust_system - in - match new_membership with - | Ok membership -> - t.haskell_membership <- Some membership ; - record_peer_events t - | Error _ -> - failwith "Could not restart Kademlia" ) - | None -> - (* If we try to restart twice simultaneously, or we try to restart - before it's first launched we'll see this condition. *) - Logger.debug t.config.logger ~module_:__MODULE__ ~location:__LOC__ - "Can't restart kademlia, it's not running" ; - Deferred.unit - - and unmark_all_disconnected_peers t = - Logger.info t.config.logger ~module_:__MODULE__ ~location:__LOC__ - !"Clearing disconnected peer set : %{sexp: Peer.t list}" - (Hash_set.to_list t.disconnected_peers) ; - let disconnected_peers = - List.map - (Hash_set.to_list t.disconnected_peers) - ~f:Peer.to_communications_host_and_port - in - Hash_set.clear t.disconnected_peers ; - restart_kademlia t disconnected_peers - - and filter_peer t peer = - match%map - try_call_rpc_with_dispatch t peer Get_chain_id.dispatch_multi () - with - | Ok their_chain_id -> - if String.equal their_chain_id t.config.chain_id then true - else ( - Logger.warn t.config.logger - "Chain ID mismatch: refusing to connect to %s" ~location:__LOC__ - ~module_:__MODULE__ - ~metadata: - [ ("peer", Peer.to_yojson peer) - ; ("theirs", `String their_chain_id) - ; ("ours", `String t.config.chain_id) ] - (Peer.to_string peer) ; - false ) - | Error e -> - Logger.warn t.config.logger - "Retrieving chain ID failed: refusing to connect to %s: $error" - ~location:__LOC__ ~module_:__MODULE__ - ~metadata: - [ ("peer", Peer.to_yojson peer) - ; ("error", `String (Error.to_string_hum e)) ] - (Peer.to_string peer) ; - false - - let try_call_rpc : type q r. - t -> Peer.t -> (q, r) rpc -> q -> r Deferred.Or_error.t = - fun t peer rpc query -> - let (module Impl) = implementation_of_rpc rpc in - try_call_rpc_with_dispatch t peer Impl.dispatch_multi query - - (* see if we can connect to a disconnected peer, every so often *) - let retry_disconnected_peer t = - let rec loop () = - let%bind () = Async.after (Time.Span.of_sec 30.0) in - let%bind () = - if - Peer_set.is_empty t.peers - && not (Hash_set.is_empty t.disconnected_peers) - then - let peer = - List.random_element_exn (Hash_set.to_list t.disconnected_peers) - in - Deferred.ignore - (Rpc.Connection.with_client (to_where_to_connect t peer) - (fun conn -> - match%bind - Versioned_rpc.Connection_with_menu.create conn - with - | Ok _conn' -> - Logger.info t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - !"Reconnected to a random disconnected peer: %{sexp: \ - Peer.t}" - peer ; - unmark_all_disconnected_peers t - | Error _ -> - return () )) - else return () - in - loop () - in - loop () - - let broadcast_selected t peers msg = - let send peer = - try_call_rpc_with_dispatch t peer - (fun conn m -> return (Message.dispatch_multi conn m)) - msg - in - trace_event "broadcasting message" ; - Deferred.List.iter ~how:`Parallel peers ~f:(fun peer -> - match%map send peer with - | Ok () -> - () - | Error e -> - Logger.error t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - "Broadcasting message $message_summary to $peer failed: $error" - ~metadata: - [ ("error", `String (Error.to_string_hum e)) - ; ("message_summary", `String (Message.summary msg)) - ; ("message", Message.msg_to_yojson msg) - ; ("peer", Peer.to_yojson peer) ] ) - - let broadcast_random t n msg = - (* don't use disconnected peers here; because this function is called - repeatedly in the broadcast loop, that will quickly lead to a ban, - so we don't be able to re-connect to that peer - *) - let selected_peers = random_sublist (Peer_set.to_list t.peers) n in - broadcast_selected t selected_peers msg - - let send_ban_notification t banned_peer banned_until = - Linear_pipe.write_without_pushback t.ban_notification_writer - {banned_peer; banned_until} - - let net2 t = t.libp2p_membership - - let create_rpc_implementations (Rpc_handler (rpc, handler)) = - let (module Impl) = implementation_of_rpc rpc in - Impl.implement_multi handler - - let create config rpc_handlers = - let open Config in - let implementation_list = - List.bind rpc_handlers ~f:create_rpc_implementations - in - let t_hack = Ivar.create () in - let t_for_restarting = Ivar.read t_hack in - trace "gossip net" (fun () -> - let fail m = - failwithf "Failed to connect to Kademlia process: %s" m () - in - let restart_counter = ref 0 in - let rec handle_exn e = - incr restart_counter ; - if !restart_counter > 5 then - failwithf - "Already restarted Kademlia subprocess 5 times, dying with \ - exception %s" - (Exn.to_string e) () ; - match Monitor.extract_exn e with - | Kademlia.Membership.Child_died -> - let t = Option.value_exn (Deferred.peek t_for_restarting) in - let peers = - List.map (Peer_set.to_list t.peers) - ~f:Peer.to_communications_host_and_port - in - ( match%map - Monitor.try_with ~extract_exn:true - (fun () -> - let%bind () = after Time.Span.second in - restart_kademlia t peers ) - ~rest:(`Call handle_exn) - with - | Error Kademlia.Membership.Child_died -> - handle_exn Kademlia.Membership.Child_died - | Ok () -> - () - | Error e -> - failwithf "Unhandled Membership.connect exception: %s" - (Exn.to_string e) () ) - |> don't_wait_for - | _ -> - failwithf "Unhandled Membership.connect exception: %s" - (Exn.to_string e) () - in - let peer_event_reader, peer_event_writer = Linear_pipe.create () in - Linear_pipe.iter_unordered peer_event_reader ~max_concurrency:64 - ~f:(fun event -> - let%bind t = t_for_restarting in - match event with - | Peer.Event.Connect peers -> - let%map kept_peers = - Deferred.List.filter peers ~f:(fun peer -> - if%map filter_peer t peer then ( - Coda_metrics.(Gauge.inc_one Network.peers) ; - Peer_set.add t.peers peer ; - Hashtbl.add_multi t.peers_by_ip ~key:peer.host - ~data:peer ; - if - Int.equal (Peer_set.length t.peers) - disconnect_clear_threshold - then Hash_set.clear t.disconnected_peers - else Hash_set.remove t.disconnected_peers peer ; - true ) - else false ) - in - Logger.info t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - !"Connected to some peers [%s]" - (Peer.pretty_list kept_peers) ; - Ivar.fill_if_empty t.first_connect_signal () - | Disconnect peers -> - Logger.info t.config.logger ~module_:__MODULE__ - ~location:__LOC__ "Some peers disconnected: %s" - (Peer.pretty_list peers) ; - List.iter peers ~f:(mark_peer_disconnected t) ; - Deferred.unit ) - |> don't_wait_for ; - let%bind haskell_membership = - if not config.disable_haskell then - match%map - Monitor.try_with - (fun () -> - trace "membership" (fun () -> - Membership.connect ~initial_peers:config.initial_peers - ~node_addrs_and_ports:config.addrs_and_ports - ~conf_dir:config.conf_dir ~logger:config.logger - ~trust_system:config.trust_system ) ) - ~rest:(`Call handle_exn) - with - | Ok (Ok membership) -> - Some membership - | Ok (Error e) -> - fail (Error.to_string_hum e) - | Error e -> - fail (Exn.to_string e) - else Deferred.return None - in - let%bind libp2p_membership = - if config.enable_libp2p then - match%bind - Monitor.try_with (fun () -> - trace "coda_net2" (fun () -> - Coda_net2.create ~logger:config.logger - ~conf_dir:(config.conf_dir ^/ "coda_net2") ) ) - with - | Ok (Ok net2) -> ( - let open Coda_net2 in - (* Make an ephemeral keypair for this session TODO: persist in the config dir *) - let%bind me = - match config.libp2p_keypair with - | Some kp -> - return kp - | None -> - Keypair.random net2 - in - let peerid = Keypair.to_peerid me |> PeerID.to_string in - Logger.info config.logger - "libp2p peer ID this session is $peer_id" ~location:__LOC__ - ~module_:__MODULE__ - ~metadata:[("peer_id", `String peerid)] ; - let disc_proto = "coda/0.0.1/discovery-port" in - let on_new_peer {id= peerid; _} = - (let%bind stream = - open_stream net2 ~protocol:disc_proto peerid - >>| Or_error.ok_exn - in - let r, w = Stream.pipes stream in - let%map msg = Pipe.read_all r in - let them_as_peer = - Queue.to_list msg |> String.concat - |> Yojson.Safe.from_string |> Peer.of_yojson - |> Result.ok_or_failwith - in - Pipe.close w ; - Linear_pipe.write peer_event_writer - (Peer.Event.Connect [them_as_peer]) - |> don't_wait_for ; - ()) - |> don't_wait_for - in - let initializing_libp2p_result : unit Deferred.Or_error.t = - let open Deferred.Or_error.Let_syntax in - let%bind () = - configure net2 ~me ~maddrs:[] - ~external_maddr: - (Multiaddr.of_string - (sprintf "/ip4/%s/tcp/%d" - (Unix.Inet_addr.to_string - config.addrs_and_ports.external_ip) - config.addrs_and_ports.libp2p_port)) - ~network_id:"libp2p phase2 test network" ~on_new_peer - in - let%bind _disc_handler = - handle_protocol net2 ~on_handler_error:`Raise - ~protocol:disc_proto (fun stream -> - let _, w = Stream.pipes stream in - let pushback = - Pipe.write w - ( Node_addrs_and_ports.to_peer - config.addrs_and_ports - |> Peer.to_yojson |> Yojson.Safe.to_string ) - in - Pipe.close w ; pushback ) - in - (* TODO: chain ID as network ID. *) - let%map _ = - listen_on net2 - (Multiaddr.of_string - (sprintf "/ip4/%s/tcp/%d" - ( config.addrs_and_ports.bind_ip - |> Unix.Inet_addr.to_string ) - config.addrs_and_ports.libp2p_port)) - in - Deferred.ignore - (Deferred.bind - ~f:(fun _ -> Coda_net2.begin_advertising net2) - (* TODO: timeouts here in addition to the libp2p side? *) - (Deferred.all - (List.map ~f:(Coda_net2.add_peer net2) - config.libp2p_peers))) - |> don't_wait_for ; - () - in - match%map initializing_libp2p_result with - | Ok () -> - Some net2 - | Error e -> - fail (Error.to_string_hum e) ) - | Ok (Error e) -> - fail (Error.to_string_hum e) - | Error e -> - fail (Exn.to_string e) - else Deferred.return None - in - let first_connect_signal = Ivar.create () in - let broadcast_reader, broadcast_writer = Linear_pipe.create () in - let received_reader, received_writer = - Strict_pipe.create ~name:"received gossip messages" - (Buffered (`Capacity 64, `Overflow Crash)) - in - let ban_notification_reader, ban_notification_writer = - Linear_pipe.create () - in - let t = - { config - ; broadcast_writer - ; received_reader - ; peers= Peer_set.create () - ; peers_by_ip= Hashtbl.create (module Unix.Inet_addr) - ; disconnected_peers= Peer.Hash_set.create () - ; ban_notification_reader - ; ban_notification_writer - ; haskell_membership - ; libp2p_membership - ; connections= Hashtbl.create (module Unix.Inet_addr) - ; peer_event_writer - ; peer_event_reader - ; first_connect_signal } - in - Ivar.fill t_hack t ; - don't_wait_for - (Strict_pipe.Reader.iter - (Trust_system.ban_pipe config.trust_system) - ~f:(fun (addr, banned_until) -> - (* all peers at banned IP *) - let peers = - Option.value_map - (Hashtbl.find t.peers_by_ip addr) - ~default:[] ~f:Fn.id - in - List.iter peers ~f:(fun peer -> - send_ban_notification t peer banned_until ) ; - match Hashtbl.find t.connections addr with - | None -> - Deferred.unit - | Some conn_tbl -> - Logger.debug t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - !"Peer %s banned, disconnecting." - (Unix.Inet_addr.to_string addr) ; - let%map () = - Deferred.List.iter (Hashtbl.to_alist conn_tbl) - ~f:(fun (_, conn_state) -> - Connection_with_state.value_map conn_state - ~when_allowed:(fun conn_ivar -> - let%bind conn = Ivar.read conn_ivar in - Rpc.Connection.close conn ) - ~when_banned:Deferred.unit ) - in - Hashtbl.map_inplace conn_tbl ~f:(fun conn_state -> - Connection_with_state.value_map conn_state - ~when_allowed:(fun _ -> Connection_with_state.Banned) - ~when_banned:Banned ) )) ; - don't_wait_for (retry_disconnected_peer t) ; - trace_task "rebroadcasting messages" (fun () -> - Linear_pipe.iter_unordered ~max_concurrency:64 broadcast_reader - ~f:(fun m -> - Logger.trace t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - ~metadata:[("message", `String (Message.summary m))] - "broadcasting message: $message" ; - broadcast_random t t.config.target_peer_count m ) ) ; - let implementations = - let implementations = - Versioned_rpc.Menu.add - ( Message.implement_multi - (fun client_host_and_port ~version:_ msg -> - (* wrap received message in envelope *) - Coda_metrics.( - Counter.inc_one Network.gossip_messages_received) ; - let sender = - Envelope.Sender.Remote - (Unix.Inet_addr.of_string - client_host_and_port.Host_and_port.host) - in - Strict_pipe.Writer.write received_writer - (Envelope.Incoming.wrap ~data:msg ~sender) ) - @ Get_chain_id.implement_multi (fun _ ~version:_ () -> - return config.chain_id ) - @ implementation_list ) - in - let handle_unknown_rpc conn ~rpc_tag ~version = - let inet_addr = - Unix.Inet_addr.of_string conn.Host_and_port.host - in - Deferred.don't_wait_for - Trust_system.( - record t.config.trust_system t.config.logger inet_addr - Actions. - ( Violated_protocol - , Some - ( "Attempt to make unknown (fixed-version) RPC call \ - \"$rpc\" with version $version" - , [ ("rpc", `String rpc_tag) - ; ("version", `Int version) ] ) )) ; - `Close_connection - in - Rpc.Implementations.create_exn ~implementations - ~on_unknown_rpc:(`Call handle_unknown_rpc) - in - record_peer_events t ; - let%map _ = - Tcp.Server.create - ~on_handler_error: - (`Call - (fun addr exn -> - Logger.error t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - "Exception raised in gossip net TCP server handler when \ - connected to address $address: $exn" - ~metadata: - [ ("exn", `String (Exn.to_string_mach exn)) - ; ("address", `String (Socket.Address.to_string addr)) - ] ; - raise exn )) - Tcp.( - Where_to_listen.bind_to - (Bind_to_address.Address t.config.addrs_and_ports.bind_ip) - (Bind_to_port.On_port - t.config.addrs_and_ports.communication_port)) - (fun client reader writer -> - let client_inet_addr = Socket.Address.Inet.addr client in - let%bind () = - Trust_system.( - record t.config.trust_system t.config.logger - client_inet_addr - Actions.(Connected, None)) - in - let conn_map = - Option.value_map - ~default:(Hashtbl.create (module Uuid)) - (Hashtbl.find t.connections client_inet_addr) - ~f:Fn.id - in - let is_client_banned = - let peer_status = - Trust_system.Peer_trust.lookup t.config.trust_system - client_inet_addr - in - match peer_status.banned with - | Banned_until _ -> - true - | Unbanned -> - false - in - if is_client_banned then ( - Logger.info t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - "Rejecting connection from banned peer %s" - (Socket.Address.Inet.to_string client) ; - Deferred.unit ) - else if - Option.is_some t.config.max_concurrent_connections - && Hashtbl.length conn_map - >= Option.value_exn t.config.max_concurrent_connections - then ( - Logger.error t.config.logger ~module_:__MODULE__ - ~location:__LOC__ - "Gossip net TCP server cannot open another connection. \ - Number of open connections from client $client equals \ - the limit $max_connections" - ~metadata: - [ ( "client" - , `String (Socket.Address.Inet.to_string client) ) - ; ( "max_connections" - , `Int - (Option.value_exn - t.config.max_concurrent_connections) ) ] ; - Deferred.unit ) - else - let conn_id = Uuid_unix.create () in - Hashtbl.add_exn conn_map ~key:conn_id - ~data:(Allowed (Ivar.create ())) ; - Hashtbl.set t.connections ~key:client_inet_addr - ~data:conn_map ; - let%map () = - Rpc.Connection.server_with_close reader writer - ~implementations - ~connection_state:(fun conn -> - (* connection state is the client's IP and ephemeral port - - when connecting to the server over TCP; the ephemeral - port is distinct from the client's discovery and - communication ports *) - Connection_with_state.value_map - (Hashtbl.find_exn conn_map conn_id) - ~when_allowed:(fun ivar -> Ivar.fill ivar conn) - ~when_banned:() ; - Hashtbl.set t.connections - ~key:(Socket.Address.Inet.addr client) - ~data:conn_map ; - Socket.Address.Inet.to_host_and_port client ) - ~on_handshake_error: - (`Call - (fun exn -> - Trust_system.( - record t.config.trust_system t.config.logger - client_inet_addr - Actions. - ( Incoming_connection_error - , Some - ( "Handshake error: $exn" - , [("exn", `String (Exn.to_string exn))] - ) )) )) - in - let conn_map = - Hashtbl.find_exn t.connections client_inet_addr - in - Hashtbl.remove conn_map conn_id ; - if Hashtbl.is_empty conn_map then - Hashtbl.remove t.connections client_inet_addr - else - Hashtbl.set t.connections ~key:client_inet_addr - ~data:conn_map ) - in - t ) - - let received_message_reader {received_reader; _} = received_reader - - let broadcast t msg = - Linear_pipe.write_without_pushback t.broadcast_writer msg - - let peers t = Peer_set.to_list t.peers - - let initial_peers t = t.config.initial_peers - - let ban_notification_reader t = t.ban_notification_reader - - let peers_by_ip t inet_addr = Hashtbl.find_multi t.peers_by_ip inet_addr - - let broadcast_all t msg = - let to_broadcast = ref (List.permute (Peer_set.to_list t.peers)) in - stage (fun () -> - let selected = List.take !to_broadcast t.config.target_peer_count in - to_broadcast := List.drop !to_broadcast t.config.target_peer_count ; - let%map () = broadcast_selected t selected msg in - if List.length !to_broadcast = 0 then `Done else `Continue ) - - let random_peers t n = - (* choose disconnected peers if no other peers available *) - let peers = - if Peer_set.is_empty t.peers then t.disconnected_peers else t.peers.set - in - random_sublist (Hash_set.to_list peers) n - - let random_peers_except t n ~(except : Peer.Hash_set.t) = - (* choose disconnected peers if no other peers available *) - let new_peers = - let open Hash_set in - let diff_peers = Hash_set.diff t.peers.set except in - if is_empty diff_peers then diff t.disconnected_peers except - else diff_peers - in - random_sublist (Hash_set.to_list new_peers) n - - let query_peer t (peer : Peer.t) rpc query = - Logger.trace t.config.logger ~module_:__MODULE__ ~location:__LOC__ - !"Querying peer %s" (Peer.to_string peer) ; - try_call_rpc t peer rpc query - - let query_random_peers t n rpc query = - let peers = random_peers t n in - Logger.trace t.config.logger ~module_:__MODULE__ ~location:__LOC__ - !"Querying random peers: %s" - (Peer.pretty_list peers) ; - List.map peers ~f:(fun peer -> query_peer t peer rpc query) - - let on_first_connect {first_connect_signal; _} ~f = - let%map () = Ivar.read first_connect_signal in - f () - - let on_first_high_connectivity {peers; _} ~f = - let%map () = Ivar.read @@ Peer_set.high_connectivity_signal peers in - f () - end - - include T -end diff --git a/src/lib/kademlia/dune b/src/lib/kademlia/dune deleted file mode 100644 index 67a62dce9e5..00000000000 --- a/src/lib/kademlia/dune +++ /dev/null @@ -1,10 +0,0 @@ -(library - (name kademlia) - (public_name kademlia) - (library_flags -linkall) - (inline_tests) - (libraries core child_processes logger pipe_lib async async_extra file_system - network_peer trust_system) - (preprocess - (pps ppx_coda -lint-version-syntax-warnings ppx_jane ppx_deriving_yojson bisect_ppx -- -conditional)) - (synopsis "Kademlia DHT -- only being used for its membership")) diff --git a/src/lib/kademlia/membership.ml b/src/lib/kademlia/membership.ml deleted file mode 100644 index 7bb9e4f002a..00000000000 --- a/src/lib/kademlia/membership.ml +++ /dev/null @@ -1,629 +0,0 @@ -open Async_kernel -open Core -open Pipe_lib -open Network_peer - -exception Child_died - -module type S = sig - type t - - type trust_system - - val connect : - initial_peers:Host_and_port.t list - -> node_addrs_and_ports:Node_addrs_and_ports.t - -> logger:Logger.t - -> conf_dir:string - -> trust_system:trust_system - -> t Deferred.Or_error.t - - val peers : t -> Peer.t list - - val first_peers : t -> Peer.t list Deferred.t - - val changes : t -> Peer.Event.t Linear_pipe.Reader.t - - val stop : t -> unit Deferred.t - - module Hacky_glue : sig - val inject_event : t -> Peer.Event.t -> unit - end -end - -module type Process_intf = sig - type t - - val kill : t -> unit Deferred.t - - val create : - initial_peers:Host_and_port.t list - -> node_addrs_and_ports:Node_addrs_and_ports.t - -> logger:Logger.t - -> conf_dir:string - -> t Deferred.Or_error.t - - (* TODO this doesn't need to be a list, it's always singleton *) - val output : t -> logger:Logger.t -> string list Strict_pipe.Reader.t -end - -module Haskell_process = struct - open Async - - type t = {process: Child_processes.t; logger: Logger.t} - - let kill {process; logger; _} = - Deferred.bind (Child_processes.kill process) ~f:(function - | Ok _ -> - Deferred.unit - | Error err -> - Logger.warn logger ~module_:__MODULE__ ~location:__LOC__ - "Failed to kill kademlia helper: $err" - ~metadata:[("err", `String (Error.to_string_hum err))] ; - Deferred.unit ) - - let cli_format : Unix.Inet_addr.t -> int -> string = - fun host discovery_port -> - Printf.sprintf "(\"%s\", %d)" - (Unix.Inet_addr.to_string host) - discovery_port - - let cli_format_initial_peer (addr : Host_and_port.t) : string = - Printf.sprintf "(\"%s\", %d)" (Host_and_port.host addr) - (Host_and_port.port addr) - - let filter_initial_peers (initial_peers : Host_and_port.t list) - (me : Node_addrs_and_ports.t) = - let external_host_and_port = - Host_and_port.create - ~host:(Unix.Inet_addr.to_string me.external_ip) - ~port:me.discovery_port - in - List.filter initial_peers ~f:(fun peer -> - not (Host_and_port.equal peer external_host_and_port) ) - - let%test "filter_initial_peers_test" = - let ip1 = Unix.Inet_addr.of_string "1.1.1.1" in - let me = - Node_addrs_and_ports. - { external_ip= ip1 - ; bind_ip= ip1 - ; discovery_port= 8000 - ; communication_port= 8001 - ; client_port= 3000 - ; libp2p_port= 8002 } - in - let me_discovery = Host_and_port.create ~host:"1.1.1.1" ~port:8000 in - let other = Host_and_port.create ~host:"1.1.1.2" ~port:8000 in - filter_initial_peers [me_discovery; other] me = [other] - - let create : - initial_peers:Host_and_port.t list - -> node_addrs_and_ports:Node_addrs_and_ports.t - -> logger:Logger.t - -> conf_dir:string - -> t Deferred.Or_error.t = - fun ~initial_peers - ~node_addrs_and_ports:( {discovery_port; bind_ip; external_ip; _} as - node_addrs_and_ports ) ~logger ~conf_dir -> - let filtered_initial_peers = - filter_initial_peers initial_peers node_addrs_and_ports - in - let args = - [ "test" - ; Unix.Inet_addr.to_string bind_ip - ; cli_format external_ip discovery_port ] - @ List.map filtered_initial_peers ~f:cli_format_initial_peer - in - Logger.debug logger ~module_:__MODULE__ ~location:__LOC__ - "Kademlia command-line arguments: $argv" - ~metadata:[("argv", `List (List.map args ~f:(fun arg -> `String arg)))] ; - match%map - Child_processes.start_custom - ~logger:(Logger.extend logger [("helper-process", `String "kademlia")]) - ~name:"kademlia" - ~git_root_relative_path:"src/app/kademlia-haskell/result/bin/kademlia" - ~conf_dir ~args - ~stdout:(`Log Logger.Level.Trace, `Pipe) - ~stderr:(`Log Logger.Level.Error, `No_pipe) - ~termination:`Always_raise - with - | Ok process -> - Or_error.return {process; logger} - | Error e -> - Or_error.error_string - ( "If you are a dev, did you forget to `make kademlia` and set \ - CODA_KADEMLIA_PATH? Try \ - CODA_KADEMLIA_PATH=$PWD/src/app/kademlia-haskell/result/bin/kademlia " - ^ Error.to_string_hum e ) - - let output {process; _} ~logger = - Strict_pipe.Reader.filter_map (Child_processes.stdout_lines process) - ~f:(fun line -> - let prefix_name_size = 4 in - let prefix_size = prefix_name_size + 2 in - (* a colon and a space *) - let prefix = String.prefix line prefix_name_size in - let pass_through () = - Logger.warn logger ~module_:__MODULE__ ~location:__LOC__ - "Unexpected Kademlia output: %s" line ; - None - in - if String.length line < prefix_size then pass_through () - else - let line_no_prefix = - String.slice line prefix_size (String.length line) - in - match prefix with - (* These will be logged by the process library so we can ignore them - here. *) - | "DBUG" | "EROR" | "TRAC" -> - None - | "DATA" -> - Some [line_no_prefix] - | _ -> - pass_through () ) -end - -module Make - (P : Process_intf) (Trust_system : sig - type t - - val lookup : - t -> Unix.Inet_addr.Blocking_sexp.t -> Trust_system.Peer_status.t - end) : sig - include S with type trust_system := Trust_system.t - - module For_tests : sig - val node : - Node_addrs_and_ports.t - -> Host_and_port.t list - -> string - -> Trust_system.t - -> t Deferred.t - end -end = struct - open Async - - type t = - { p: P.t - ; peers: string Peer.Table.t - ; changes_reader: Peer.Event.t Linear_pipe.Reader.t - ; changes_writer: Peer.Event.t Linear_pipe.Writer.t - ; first_peers: Peer.t list Deferred.t - ; trust_system: Trust_system.t } - - let host_and_port_to_addr ({host; _} : Host_and_port.t) = - Unix.Inet_addr.of_string host - - let is_banned trust_system (peer : Host_and_port.t) = - match Trust_system.lookup trust_system (host_and_port_to_addr peer) with - | {banned= Banned_until _; _} -> - true - | _ -> - false - - let live t (lives : (Peer.t * string) list) = - let unbanned_lives = - List.filter lives ~f:(fun (peer, _) -> - not (is_banned t.trust_system (Peer.to_discovery_host_and_port peer)) - ) - in - List.iter unbanned_lives ~f:(fun (peer, kkey) -> - Peer.Table.set ~key:peer ~data:kkey t.peers ) ; - if List.length unbanned_lives > 0 then - Linear_pipe.write t.changes_writer - (Peer.Event.Connect (List.map unbanned_lives ~f:fst)) - else Deferred.unit - - let dead t (deads : Peer.t list) = - List.iter deads ~f:(fun peer -> Peer.Table.remove t.peers peer) ; - if List.length deads > 0 then - Linear_pipe.write t.changes_writer (Peer.Event.Disconnect deads) - else Deferred.unit - - let connect ~(initial_peers : Host_and_port.t list) - ~(node_addrs_and_ports : Node_addrs_and_ports.t) ~logger ~conf_dir - ~trust_system = - let open Deferred.Or_error.Let_syntax in - let filtered_peers = - List.filter initial_peers ~f:(Fn.compose not (is_banned trust_system)) - in - let%map p = - P.create ~initial_peers:filtered_peers ~node_addrs_and_ports ~logger - ~conf_dir - in - let peers = Peer.Table.create () in - let changes_reader, changes_writer = Linear_pipe.create () in - let first_peers_ivar = ref None in - let first_peers = - Deferred.create (fun ivar -> first_peers_ivar := Some ivar) - in - let t = - {p; peers; changes_reader; changes_writer; first_peers; trust_system} - in - don't_wait_for - (Strict_pipe.Reader.iter (P.output p ~logger) ~f:(fun lines -> - let lives, deads = - List.partition_map lines ~f:(fun line -> - match String.split ~on:' ' line with - | [addr; kademliaKey; "on"] -> - let addr = Host_and_port.of_string addr in - let discovery_port = Host_and_port.port addr in - let peer = - Peer.create - (Host_and_port.host addr |> Unix.Inet_addr.of_string) - ~discovery_port - ~communication_port:(discovery_port - 1) - in - `Fst (peer, kademliaKey) - | [addr; _; "off"] -> - let addr = Host_and_port.of_string addr in - let discovery_port = Host_and_port.port addr in - let peer = - Peer.create - (Host_and_port.host addr |> Unix.Inet_addr.of_string) - ~discovery_port - ~communication_port:(discovery_port - 1) - in - `Snd peer - | _ -> - failwith (Printf.sprintf "Unexpected line %s\n" line) ) - in - let open Deferred.Let_syntax in - let () = - if List.length lives <> 0 then - (* Update the peers *) - Ivar.fill_if_empty - (Option.value_exn !first_peers_ivar) - (List.map ~f:fst lives) - else () - in - let%map () = live t lives and () = dead t deads in - () )) ; - t - - let peers t = - let rec split ~f = function - | [] -> - ([], []) - | x :: xs -> - let true_subresult, false_subresult = split ~f xs in - if f x then (x :: true_subresult, false_subresult) - else (true_subresult, x :: false_subresult) - in - let peers = Peer.Table.keys t.peers in - let banned_peers, normal_peers = - split peers - ~f: - (Fn.compose (is_banned t.trust_system) - Peer.to_discovery_host_and_port) - in - don't_wait_for (dead t banned_peers) ; - normal_peers - - let first_peers t = t.first_peers - - let changes t = t.changes_reader - - let stop t = P.kill t.p - - module Hacky_glue = struct - let inject_event t e = - Linear_pipe.write t.changes_writer e |> don't_wait_for - end - - module For_tests = struct - let node node_addrs_and_ports (peers : Host_and_port.t list) conf_dir - trust_system = - connect ~initial_peers:peers ~node_addrs_and_ports - ~logger:(Logger.null ()) ~conf_dir ~trust_system - >>| Or_error.ok_exn - end -end - -module Haskell = Make (Haskell_process) (Trust_system) - -let%test_module "Tests" = - ( module struct - open Core - - module Mocked_trust = struct - type t = unit - - let lookup (_ : t) (_ : Unix.Inet_addr.t) = - Trust_system.Peer_status.{trust= 0.0; banned= Unbanned} - end - - module type S_test = sig - include S with type trust_system := unit - - val connect : - initial_peers:Host_and_port.t list - -> node_addrs_and_ports:Node_addrs_and_ports.t - -> logger:Logger.t - -> conf_dir:string - -> t Deferred.Or_error.t - end - - module Make_test (P : Process_intf) = struct - include Make (P) (Mocked_trust) - - let connect = connect ~trust_system:() - end - - let conf_dir = Filename.temp_dir_name ^/ ".kademlia-test-" - - let fold_membership (module M : S_test) : - init:'b -> f:('b -> 'a -> 'b) -> 'b = - fun ~init ~f -> - Async.Thread_safe.block_on_async_exn (fun () -> - File_system.with_temp_dir conf_dir ~f:(fun temp_conf_dir -> - match%bind - M.connect ~initial_peers:[] - ~node_addrs_and_ports: - { external_ip= Unix.Inet_addr.localhost - ; bind_ip= Unix.Inet_addr.localhost - ; discovery_port= 3001 - ; communication_port= 3000 - ; client_port= 2000 - ; libp2p_port= 3002 } - ~logger:(Logger.null ()) ~conf_dir:temp_conf_dir - with - | Ok t -> - let acc = ref init in - don't_wait_for - (Linear_pipe.iter (M.changes t) ~f:(fun e -> - return (acc := f !acc e) )) ; - let%bind () = Async.after (Time.Span.of_sec 3.) in - let%map () = M.stop t in - !acc - | Error e -> - failwith (Printf.sprintf "%s" (Error.to_string_hum e)) ) ) - - module Scripted_process (Script : sig - val s : [`On of int | `Off of int] list - end) = - struct - type t = string list - - let kill _ = return () - - let create ~initial_peers:_ ~node_addrs_and_ports:_ ~logger:_ ~conf_dir:_ - = - let on p = Printf.sprintf "127.0.0.1:%d key on" p in - let off p = Printf.sprintf "127.0.0.1:%d key off" p in - let render cmds = - List.map cmds ~f:(function `On p -> on p | `Off p -> off p) - in - Deferred.Or_error.return (render Script.s) - - let output t ~logger:_logger = - let r, w = - Strict_pipe.create - (Strict_pipe.Buffered (`Capacity 100, `Overflow Crash)) - in - List.iter t ~f:(fun line -> Strict_pipe.Writer.write w [line]) ; - r - end - - module Dummy_process = struct - open Async - - type t = Child_processes.t - - let kill t = - Child_processes.kill t - |> Deferred.map ~f:Or_error.ok_exn - |> Deferred.ignore - - let create ~initial_peers:_ ~node_addrs_and_ports:_ ~logger ~conf_dir = - Child_processes.start_custom ~logger ~name:"dummy.sh" - ~git_root_relative_path:"src/dummy.sh" ~conf_dir ~args:[] - ~stdout:(`Don't_log, `Pipe) - ~stderr:(`Don't_log, `No_pipe) - ~termination:`Always_raise - - let output t ~logger:_ = - Child_processes.stdout_lines t |> Strict_pipe.Reader.map ~f:List.return - end - - let%test_module "Mock Events" = - ( module struct - module Script = struct - let s = - [ `On 3000 - ; `Off 3001 - ; `On 3001 - ; `On 3002 - ; `On 3003 - ; `On 3003 - ; `Off 3000 - ; `Off 3001 - ; `On 3000 ] - end - - module M = Make_test (Scripted_process (Script)) - - let%test "Membership" = - let result = - fold_membership - (module M) - ~init:Script.s - ~f:(fun acc e -> - match (acc, e) with - | `On p :: rest, Peer.Event.Connect [peer] - when Int.equal peer.discovery_port p -> - rest - | `Off p :: rest, Peer.Event.Disconnect [peer] - when Int.equal peer.discovery_port p -> - rest - | _ -> - failwith - (Printf.sprintf "Unexpected event %s" - (Peer.Event.sexp_of_t e |> Sexp.to_string_hum)) ) - in - List.length result = 0 - end ) - - module M = Make_test (Dummy_process) - - let%test "Dummy Script" = - (* Just make sure the dummy is outputting things *) - fold_membership (module M) ~init:false ~f:(fun b _e -> b || true) - - let node_addrs_and_ports_of_int i = - let base = 3005 + (i * 3) in - Node_addrs_and_ports. - { external_ip= Unix.Inet_addr.localhost - ; bind_ip= Unix.Inet_addr.localhost - ; communication_port= base - ; discovery_port= base + 1 - ; libp2p_port= base + 2 - ; client_port= 1000 + i } - - let retry n f = - let rec go i = - try f () with e -> if i = 0 then raise e else go (i - 1) - in - go n - - let wait_sec s = - let open Core in - Async.(after (Time.Span.of_sec s)) - - let run_connection_test ~f = - retry 3 (fun () -> - Async.Thread_safe.block_on_async_exn (fun () -> - File_system.with_temp_dir (conf_dir ^ "1") ~f:(fun conf_dir_1 -> - File_system.with_temp_dir (conf_dir ^ "2") - ~f:(fun conf_dir_2 -> f conf_dir_1 conf_dir_2) ) ) ) - - let get_temp_dir () = - let tmpdir = Filename.temp_dir "test_trust_db" "" in - at_exit (fun () -> Sys.command_exn @@ "rm -rf '" ^ tmpdir ^ "'") ; - tmpdir - - let create_trust_system () = Trust_system.create (get_temp_dir ()) - - let%test_unit "connect" = - (* This flakes 1 in 20 times, so try a couple times if it fails *) - run_connection_test ~f:(fun conf_dir_1 conf_dir_2 -> - let open Deferred.Let_syntax in - let%bind n0 = - Haskell.For_tests.node - (node_addrs_and_ports_of_int 0) - [] conf_dir_1 (create_trust_system ()) - and n1 = - Haskell.For_tests.node - (node_addrs_and_ports_of_int 1) - [ node_addrs_and_ports_of_int 0 - |> Node_addrs_and_ports.to_discovery_host_and_port ] - conf_dir_2 (create_trust_system ()) - in - let%bind n0_peers = - Deferred.any - [ Haskell.first_peers n0 - ; Deferred.map (wait_sec 10.) ~f:(fun () -> []) ] - in - assert (List.length n0_peers <> 0) ; - let%bind n1_peers = - Deferred.any - [ Haskell.first_peers n1 - ; Deferred.map (wait_sec 5.) ~f:(fun () -> []) ] - in - assert (List.length n1_peers <> 0) ; - assert ( - List.hd_exn n0_peers - = (node_addrs_and_ports_of_int 1 |> Node_addrs_and_ports.to_peer) - && List.hd_exn n1_peers - = (node_addrs_and_ports_of_int 0 |> Node_addrs_and_ports.to_peer) - ) ; - let%bind () = Haskell.stop n0 and () = Haskell.stop n1 in - Deferred.unit ) - - let%test_module "Trust" = - ( module struct - (* TODO: Re-enable #1725 - let poll wait_time ~f = - let rec should_continue () = - let%bind condition = f () in - if condition then Deferred.unit else wait_sec 0.5 >>= should_continue - in - Deferred.any - [ (should_continue () >>| fun () -> true) - ; (wait_sec wait_time >>| fun () -> false) ] - - - (* Mock trust system *) - module Trust_system = struct - type t = Unix.Inet_addr.Set.t ref - - let lookup t addr = - if Unix.Inet_addr.Set.mem !t addr then - Peer_trust.Peer_status. - { trust= -1. - ; banned= Peer_trust.Banned_status.Banned_until Time.epoch } - else - Peer_trust.Peer_status. - {trust= 0.; banned= Peer_trust.Banned_status.Unbanned} - - let create () = ref Unix.Inet_addr.Set.empty - end - - module Haskell_trust = Make (Haskell_process) (Trust_system) - - let reset node ~addr ~conf_dir ~trust_system ~peers = - let%bind () = Haskell_trust.stop node in - Haskell_trust.For_tests.node addr peers conf_dir trust_system - - let%test_unit "connect with ban logic" = - (* This flakes 1 in 20 times, so try a couple times if it fails *) - run_connection_test ~f:(fun banner_conf_dir normal_conf_dir -> - let banner_addr = node_addrs_and_ports_of_int 0 in - let normal_addr = node_addrs_and_ports_of_int 1 in - let normal_peer = Peer.to_discovery_host_and_port normal_addr in - let trust_system = Trust_system.create () in - let%bind banner_node = - Haskell_trust.For_tests.node banner_addr [normal_peer] - banner_conf_dir trust_system - and normal_node = - Haskell.For_tests.node normal_addr [] normal_conf_dir - (create_trust_system ()) - in - let%bind initial_discovered_peers = - Deferred.any - [ Haskell_trust.first_peers banner_node - ; Deferred.map (wait_sec 10.) ~f:(fun () -> []) ] - in - assert (List.length initial_discovered_peers <> 0) ; - trust_system := - Unix.Inet_addr.Set.add !trust_system normal_addr.host ; - let%bind is_not_connected_to_banned_peer = - poll 5. ~f:(fun () -> - let peers_after_ban = Haskell_trust.peers banner_node in - return (List.length peers_after_ban = 0) ) - in - assert is_not_connected_to_banned_peer ; - trust_system := Unix.Inet_addr.Set.empty ; - let%bind new_banner_node = - reset banner_node ~addr:banner_addr ~conf_dir:banner_conf_dir - ~trust_system ~peers:[normal_peer] - in - let%bind is_reconnecting_to_banned_peer = - poll 10. ~f:(fun () -> - let peers_after_reconnect = - Haskell_trust.peers new_banner_node - in - Deferred.return - @@ Option.is_some - (List.find peers_after_reconnect ~f:(fun p -> - p = node_addrs_and_ports_of_int 1 )) ) - in - assert is_reconnecting_to_banned_peer ; - let%bind () = Haskell_trust.stop new_banner_node - and () = Haskell.stop normal_node in - Deferred.unit ) *) - - end ) - end ) diff --git a/src/lib/kademlia/membership.mli b/src/lib/kademlia/membership.mli deleted file mode 100644 index 2a27a6c6a74..00000000000 --- a/src/lib/kademlia/membership.mli +++ /dev/null @@ -1,30 +0,0 @@ -open Async_kernel -open Core -open Pipe_lib -open Network_peer - -exception Child_died - -module Haskell : sig - type t - - val connect : - initial_peers:Host_and_port.t list - -> node_addrs_and_ports:Node_addrs_and_ports.t - -> logger:Logger.t - -> conf_dir:string - -> trust_system:Trust_system.t - -> t Deferred.Or_error.t - - val peers : t -> Peer.t list - - val first_peers : t -> Peer.t list Deferred.t - - val changes : t -> Peer.Event.t Linear_pipe.Reader.t - - val stop : t -> unit Deferred.t - - module Hacky_glue : sig - val inject_event : t -> Peer.Event.t -> unit - end -end diff --git a/src/lib/kademlia/node_addrs_and_ports.ml b/src/lib/kademlia/node_addrs_and_ports.ml deleted file mode 100644 index cf8a7ad9aeb..00000000000 --- a/src/lib/kademlia/node_addrs_and_ports.ml +++ /dev/null @@ -1,47 +0,0 @@ -open Core -open Network_peer - -type t = - { external_ip: Unix.Inet_addr.t - ; bind_ip: Unix.Inet_addr.t - ; discovery_port: int - ; client_port: int - ; libp2p_port: int - ; communication_port: int } -[@@deriving bin_io, fields] - -module Display = struct - module Stable = struct - module V1 = struct - type t = - { external_ip: string - ; bind_ip: string - ; discovery_port: int - ; client_port: int - ; libp2p_port: int - ; communication_port: int } - [@@deriving fields, yojson, bin_io] - end - end -end - -let to_display (t : t) = - Display.Stable.V1. - { external_ip= Unix.Inet_addr.to_string t.external_ip - ; bind_ip= Unix.Inet_addr.to_string t.bind_ip - ; discovery_port= t.discovery_port - ; client_port= t.client_port - ; libp2p_port= t.libp2p_port - ; communication_port= t.communication_port } - -let to_yojson = Fn.compose Display.Stable.V1.to_yojson to_display - -let to_peer : t -> Peer.t = function - | {external_ip; discovery_port; communication_port; _} -> - Peer.create external_ip ~discovery_port ~communication_port - -let to_discovery_host_and_port : t -> Host_and_port.t = function - | {external_ip; discovery_port; _} -> - Host_and_port.create - ~host:(Unix.Inet_addr.to_string external_ip) - ~port:discovery_port diff --git a/src/lib/ledger_catchup/dune b/src/lib/ledger_catchup/dune index c6ef7175e2d..001bf18fee6 100644 --- a/src/lib/ledger_catchup/dune +++ b/src/lib/ledger_catchup/dune @@ -16,7 +16,6 @@ merkle_address coda_base coda_metrics - kademlia transition_chain_verifier coda_networking fake_network)) diff --git a/src/lib/ledger_catchup/ledger_catchup.ml b/src/lib/ledger_catchup/ledger_catchup.ml index f4568a713c3..bbeea04f0f2 100644 --- a/src/lib/ledger_catchup/ledger_catchup.ml +++ b/src/lib/ledger_catchup/ledger_catchup.ml @@ -4,6 +4,7 @@ open Cache_lib open Pipe_lib open Coda_base open Coda_transition +open Network_peer (** [Ledger_catchup] is a procedure that connects a foreign external transition into a transition frontier by requesting a path of external_transitions @@ -152,7 +153,7 @@ let rec fold_until ~(init : 'accum) (* returns a list of state-hashes with the older ones at the front *) let download_state_hashes ~logger ~trust_system ~network ~frontier ~num_peers ~target_hash = - let peers = Coda_networking.random_peers network num_peers in + let%bind peers = Coda_networking.random_peers network num_peers in Logger.debug logger ~module_:__MODULE__ ~location:__LOC__ ~metadata:[("target_hash", State_hash.to_yojson target_hash)] "Doing a catchup job with target $target_hash" ; @@ -210,7 +211,7 @@ let rec partition size = function (* returns a list of transitions with old ones comes first *) let download_transitions ~logger ~trust_system ~network ~num_peers ~preferred_peer ~maximum_download_size ~hashes_of_missing_transitions = - let random_peers = Coda_networking.random_peers network num_peers in + let%bind random_peers = Coda_networking.random_peers network num_peers in Deferred.Or_error.List.concat_map (partition maximum_download_size hashes_of_missing_transitions) ~how:`Parallel ~f:(fun hashes -> @@ -244,7 +245,8 @@ let download_transitions ~logger ~trust_system ~network ~num_peers With_hash.of_data transition ~hash_data:(Fn.const hash) in Envelope.Incoming.wrap ~data:transition_with_hash - ~sender:(Envelope.Sender.Remote peer.host) ) ) ) + ~sender:(Envelope.Sender.Remote (peer.host, peer.peer_id)) + ) ) ) let verify_transitions_and_build_breadcrumbs ~logger ~trust_system ~verifier ~frontier ~unprocessed_transition_cache ~transitions ~target_hash ~subtrees diff --git a/src/lib/ledger_catchup/ledger_catchup.mli b/src/lib/ledger_catchup/ledger_catchup.mli index 5454952cdf8..6c03aa329b0 100644 --- a/src/lib/ledger_catchup/ledger_catchup.mli +++ b/src/lib/ledger_catchup/ledger_catchup.mli @@ -3,6 +3,7 @@ open Pipe_lib open Cache_lib open Coda_base open Coda_transition +open Network_peer module Catchup_jobs : sig val reader : int Broadcast_pipe.Reader.t diff --git a/src/lib/logger/impl.ml b/src/lib/logger/impl.ml index e2f093a970d..49a2e9252e0 100644 --- a/src/lib/logger/impl.ml +++ b/src/lib/logger/impl.ml @@ -2,7 +2,7 @@ open Core open Async module Level = struct - type t = Trace | Debug | Info | Warn | Error | Faulty_peer | Fatal + type t = Spam | Trace | Debug | Info | Warn | Error | Faulty_peer | Fatal [@@deriving sexp, compare, show {with_path= false}, enumerate] let of_string str = @@ -83,17 +83,33 @@ module Message = struct type t = { timestamp: Time.t ; level: Level.t - ; source: Source.t + ; source: Source.t option ; message: string ; metadata: Metadata.t } [@@deriving yojson] + type without_source = + {timestamp: Time.t; level: Level.t; message: string; metadata: Metadata.t} + [@@deriving yojson] + let escape_string str = String.to_list str |> List.bind ~f:(function '"' -> ['\\'; '"'] | c -> [c]) |> String.of_char_list - let to_yojson m = to_yojson {m with message= escape_string m.message} + let of_yojson json = + match without_source_of_yojson json with + | Ok {timestamp; level; message; metadata} -> + Ok {timestamp; level; message; metadata; source= None} + | Error _ -> + of_yojson json + + let to_yojson ({timestamp; level; source; message; metadata} as m) = + match source with + | Some _ -> + to_yojson {m with message= escape_string m.message} + | None -> + without_source_to_yojson {timestamp; level; message; metadata} let metadata_interpolation_regex = Re2.create_exn {|\$(\[a-zA-Z_]+)|} @@ -104,7 +120,7 @@ module Message = struct | Error _ -> [] - let check_invariants t = + let check_invariants (t : t) = let refs = metadata_references t.message in List.for_all refs ~f:(Metadata.mem t.metadata) end @@ -123,7 +139,16 @@ module Processor = struct let create () = () - let process () msg = Some (Yojson.Safe.to_string (Message.to_yojson msg)) + let process () msg = + let msg_json_fields = + Message.to_yojson msg |> Yojson.Safe.Util.to_assoc + in + let json = + if Level.compare msg.level Spam = 0 then + `Assoc (List.filter msg_json_fields ~f:(fun (k, _) -> k <> "source")) + else `Assoc msg_json_fields + in + Some (Yojson.Safe.to_string json) end module Pretty = struct @@ -131,7 +156,7 @@ module Processor = struct let create ~log_level ~config = {log_level; config} - let process {log_level; config} msg = + let process {log_level; config} (msg : Message.t) = let open Message in if msg.level < log_level then None else @@ -139,8 +164,9 @@ module Processor = struct Logproc_lib.Interpolator.interpolate config msg.message msg.metadata with | Error err -> - Core.printf "logproc interpolation error in %s: %s\n" - msg.source.location err ; + Option.iter msg.source ~f:(fun source -> + Core.printf "logproc interpolation error in %s: %s\n" + source.location err ) ; None | Ok (str, extra) -> let formatted_extra = @@ -308,7 +334,7 @@ let change_id {null; metadata; id= _} ~id = {null; metadata; id} let make_message (t : t) ~level ~module_ ~location ~metadata ~message = { Message.timestamp= Time.now () ; level - ; source= Source.create ~module_ ~location + ; source= Some (Source.create ~module_ ~location) ; message ; metadata= Metadata.extend t.metadata metadata } @@ -346,5 +372,7 @@ let fatal = log ~level:Fatal let faulty_peer_without_punishment = log ~level:Faulty_peer +let spam = log ~level:Spam ~module_:"" ~location:"" + (* deprecated, use Trust_system.record instead *) let faulty_peer = faulty_peer_without_punishment diff --git a/src/lib/logger/impl.mli b/src/lib/logger/impl.mli index a86a45a51b7..7111181f2c0 100644 --- a/src/lib/logger/impl.mli +++ b/src/lib/logger/impl.mli @@ -11,7 +11,7 @@ end type t = Stable.V1.t module Level : sig - type t = Trace | Debug | Info | Warn | Error | Faulty_peer | Fatal + type t = Spam | Trace | Debug | Info | Warn | Error | Faulty_peer | Fatal [@@deriving sexp, compare, yojson, show {with_path= false}, enumerate] val of_string : string -> (t, string) result @@ -52,7 +52,7 @@ module Message : sig type t = { timestamp: Time.t ; level: Level.t - ; source: Source.t + ; source: Source.t option ; message: string ; metadata: Metadata.t } [@@deriving yojson] @@ -81,7 +81,7 @@ module Transport : sig (** Dumb_logrotate is a Transport which persists logs * to the file system by using 2 log files. This * Transport will rotate the 2 logs, ensuring that - * each log file is less than some maximum size + * each log file is less than some maximum size * before writing to it. When the logs reach max * size, the old log is deleted and a new log is * started. *) @@ -132,6 +132,13 @@ val warn : _ log_function val error : _ log_function +(** spam is a special log level that omits location information *) +val spam : + t + -> ?metadata:(string, Yojson.Safe.json) List.Assoc.t + -> ('a, unit, string, unit) format4 + -> 'a + val faulty_peer : _ log_function [@@deprecated "use Trust_system.record"] val faulty_peer_without_punishment : _ log_function diff --git a/src/lib/logproc_lib/interpolator.ml b/src/lib/logproc_lib/interpolator.ml index b8a0ef5a593..00f014e74ac 100644 --- a/src/lib/logproc_lib/interpolator.ml +++ b/src/lib/logproc_lib/interpolator.ml @@ -53,7 +53,8 @@ let render ~max_interpolation_length ~format_json metadata items = | `Interpolate id -> let%map json = String.Map.find metadata id - |> Result.of_option ~error:"bad interpolation" + |> Result.of_option + ~error:(sprintf "bad interpolation for %s" id) in let str = format_json json in if String.length str > max_interpolation_length then diff --git a/src/lib/network_peer/envelope.ml b/src/lib/network_peer/envelope.ml new file mode 100644 index 00000000000..d9c40eee5b8 --- /dev/null +++ b/src/lib/network_peer/envelope.ml @@ -0,0 +1,66 @@ +open Core + +module Sender = struct + type t = Local | Remote of (Unix.Inet_addr.Blocking_sexp.t * Peer.Id.t) + [@@deriving sexp, compare] + + let of_peer (p : Peer.t) = Remote (p.host, p.peer_id) + + let equal sender1 sender2 = Int.equal (compare sender1 sender2) 0 + + let to_yojson t : Yojson.Safe.json = + match t with + | Local -> + `String "Local" + | Remote (inet_addr, peer_id) -> + `Assoc + [ ( "Remote" + , `Assoc + [ ("host", `String (Unix.Inet_addr.to_string inet_addr)) + ; ("peer_id", `String (Peer.Id.to_string peer_id)) ] ) ] + + let of_yojson (json : Yojson.Safe.json) : (t, string) Result.t = + match json with + | `String "Local" -> + Ok Local + | `Assoc + [ ( "Remote" + , `Assoc [("host", `String addr); ("peer_id", `String peer_id)] ) ] + -> + Ok + (Remote + (Unix.Inet_addr.of_string addr, Peer.Id.unsafe_of_string peer_id)) + | _ -> + Error "Expected JSON representing envelope sender" + + let remote_exn = function + | Local -> + failwith "Sender.remote_exn of Local sender" + | Remote x -> + x +end + +module Incoming = struct + type 'a t = {data: 'a; sender: Sender.t} [@@deriving eq, sexp, yojson] + + let sender t = t.sender + + let data t = t.data + + let wrap ~data ~sender = {data; sender} + + let wrap_peer ~data ~sender = {data; sender= Sender.of_peer sender} + + let map ~f t = {t with data= f t.data} + + let local data = + let sender = Sender.Local in + {data; sender} + + let remote_sender_exn t = + match t.sender with + | Local -> + failwith "Incoming.sender_sender_exn of Local envelope" + | Remote x -> + x +end diff --git a/src/lib/envelope/envelope.mli b/src/lib/network_peer/envelope.mli similarity index 56% rename from src/lib/envelope/envelope.mli rename to src/lib/network_peer/envelope.mli index 7f7cbf3bd2d..06dd726e47a 100644 --- a/src/lib/envelope/envelope.mli +++ b/src/lib/network_peer/envelope.mli @@ -1,8 +1,10 @@ open Core module Sender : sig - type t = Local | Remote of Unix.Inet_addr.Stable.V1.t + type t = Local | Remote of (Unix.Inet_addr.Stable.V1.t * Peer.Id.t) [@@deriving sexp, eq, yojson] + + val remote_exn : t -> Unix.Inet_addr.Stable.V1.t * Peer.Id.t end module Incoming : sig @@ -14,7 +16,11 @@ module Incoming : sig val wrap : data:'a -> sender:Sender.t -> 'a t + val wrap_peer : data:'a -> sender:Peer.t -> 'a t + val map : f:('a -> 'b) -> 'a t -> 'b t val local : 'a -> 'a t + + val remote_sender_exn : 'a t -> Unix.Inet_addr.Stable.V1.t * Peer.Id.t end diff --git a/src/lib/network_peer/network_peer.ml b/src/lib/network_peer/network_peer.ml index 3e3b5c29c0a..c92ba02e91e 100644 --- a/src/lib/network_peer/network_peer.ml +++ b/src/lib/network_peer/network_peer.ml @@ -1,4 +1,5 @@ module Peer = Peer +module Envelope = Envelope type query_peer = { query: diff --git a/src/lib/network_peer/peer.ml b/src/lib/network_peer/peer.ml index afc590db6b6..1d1bce5ae9a 100644 --- a/src/lib/network_peer/peer.ml +++ b/src/lib/network_peer/peer.ml @@ -1,30 +1,50 @@ -(* peer.ml -- peer with discovery port and communications port *) +(* peer.ml -- peer with libp2p port and peer id *) open Core open Module_version +(** A libp2p PeerID is more or less a hash of a public key. *) +module Id = struct + [%%versioned + module Stable = struct + module V1 = struct + type t = string [@@deriving bin_io, compare, hash, equal, sexp, version] + + let to_latest = Fn.id + end + end] + + type t = Stable.Latest.t [@@deriving compare, hash, equal, sexp] + + (** Convert to the libp2p-defined base58 string *) + let to_string (x : t) = x + + (** Create a Peer ID from a string, without checking if it is well-formed. *) + let unsafe_of_string (s : string) : t = s +end + module Stable = struct module V1 = struct module T = struct type t = { host: Core.Unix.Inet_addr.Stable.V1.t (* IPv4 or IPv6 address *) - ; discovery_port: int (* UDP *) - ; communication_port: int (* TCP *) } + ; libp2p_port: int (* TCP *) + ; peer_id: Id.Stable.V1.t } [@@deriving bin_io, compare, sexp, version] let equal t t' = compare t t' = 0 - (* these hash functions come from the implementation of Inet_addr, + (* these hash functions come from the implementation of Inet_addr, though they're not exposed *) let hash_fold_t hash t = hash_fold_int hash (Hashtbl.hash t) let hash : t -> int = Ppx_hash_lib.Std.Hash.of_fold hash_fold_t - let to_yojson {host; discovery_port; communication_port} = + let to_yojson {host; peer_id; libp2p_port} = `Assoc [ ("host", `String (Unix.Inet_addr.to_string host)) - ; ("discovery_port", `Int discovery_port) - ; ("communication_port", `Int communication_port) ] + ; ("peer_id", `String peer_id) + ; ("libp2p_port", `Int libp2p_port) ] let of_yojson = let lift_string = function `String s -> Some s | _ -> None in @@ -36,16 +56,16 @@ module Stable = struct (let%bind host_str = List.Assoc.find ls "host" ~equal:String.equal >>= lift_string in - let%bind discovery_port = - List.Assoc.find ls "discovery_port" ~equal:String.equal - >>= lift_int + let%bind peer_id = + List.Assoc.find ls "peer_id" ~equal:String.equal + >>= lift_string in - let%map communication_port = - List.Assoc.find ls "communication_port" ~equal:String.equal + let%map libp2p_port = + List.Assoc.find ls "libp2p_port" ~equal:String.equal >>= lift_int in let host = Unix.Inet_addr.of_string host_str in - {host; discovery_port; communication_port}) + {host; peer_id; libp2p_port}) | _ -> Error "expected object" end @@ -68,9 +88,7 @@ end (* bin_io omitted *) type t = Stable.Latest.t = - { host: Core.Unix.Inet_addr.Stable.V1.t - ; discovery_port: int - ; communication_port: int } + {host: Core.Unix.Inet_addr.Stable.V1.t; libp2p_port: int; peer_id: string} [@@deriving compare, sexp] [%%define_locally @@ -79,29 +97,24 @@ Stable.Latest.(of_yojson, to_yojson)] include Hashable.Make (Stable.Latest) include Comparable.Make_binable (Stable.Latest) -let create host ~discovery_port ~communication_port = - {host; discovery_port; communication_port} - -(** localhost with dummy ports *) -let local = - create Unix.Inet_addr.localhost ~discovery_port:0 ~communication_port:0 +let create host ~libp2p_port ~peer_id = {host; libp2p_port; peer_id} let to_discovery_host_and_port t = Host_and_port.create ~host:(Unix.Inet_addr.to_string t.host) - ~port:t.discovery_port + ~port:t.libp2p_port -let to_communications_host_and_port t = - Host_and_port.create - ~host:(Unix.Inet_addr.to_string t.host) - ~port:t.communication_port - -let to_string {host; discovery_port; communication_port} = +let to_string {host; libp2p_port; peer_id} = sprintf - !"[host : %s, discovery_port : %s, communication_port : %s]" + !"[host : %s, libp2p_port : %s, peer_id : %s]" + (Unix.Inet_addr.to_string host) + (Int.to_string libp2p_port) + peer_id + +let to_multiaddr_string {host; libp2p_port; peer_id} = + sprintf "/ip4/%s/tcp/%d/ipfs/%s" (Unix.Inet_addr.to_string host) - (Int.to_string discovery_port) - (Int.to_string communication_port) + libp2p_port peer_id let pretty_list peers = String.concat ~sep:"," @@ List.map peers ~f:to_string @@ -111,3 +124,28 @@ module Event = struct | Disconnect of Stable.Latest.t list [@@deriving sexp] end + +module Display = struct + [%%versioned + module Stable = struct + module V1 = struct + type t = {host: string; libp2p_port: int; peer_id: string} + [@@deriving yojson, version, sexp, fields] + + let to_latest = Fn.id + end + end] + + type t = Stable.Latest.t = {host: string; libp2p_port: int; peer_id: string} +end + +let to_display {host; libp2p_port; peer_id} = + Display. + { host= Unix.Inet_addr.to_string host + ; libp2p_port + ; peer_id= Id.to_string peer_id } + +let of_display {Display.host; libp2p_port; peer_id} = + { host= Unix.Inet_addr.of_string host + ; libp2p_port + ; peer_id= Id.unsafe_of_string peer_id } diff --git a/src/lib/network_pool/intf.ml b/src/lib/network_pool/intf.ml index ec18dfcc147..df68583ee58 100644 --- a/src/lib/network_pool/intf.ml +++ b/src/lib/network_pool/intf.ml @@ -3,6 +3,7 @@ open Core_kernel open Coda_base open Pipe_lib open Signature_lib +open Network_peer (** A [Resource_pool_base_intf] is a mutable pool of resources that supports * mutation via some [Resource_pool_diff_intf]. A [Resource_pool_base_intf] @@ -36,7 +37,10 @@ module type Resource_pool_diff_intf = sig val summary : t -> string - val apply : pool -> t Envelope.Incoming.t -> t Deferred.Or_error.t + val apply : + pool + -> t Envelope.Incoming.t + -> (t, [`Locally_generated of t | `Other of Error.t]) Result.t Deferred.t end (** A [Resource_pool_intf] ties together an associated pair of @@ -79,7 +83,7 @@ module type Network_pool_base_intf = sig val create : config:config - -> incoming_diffs:resource_pool_diff Envelope.Incoming.t + -> incoming_diffs:(resource_pool_diff Envelope.Incoming.t * (bool -> unit)) Linear_pipe.Reader.t -> frontier_broadcast_pipe:transition_frontier Option.t Broadcast_pipe.Reader.t @@ -89,7 +93,7 @@ module type Network_pool_base_intf = sig val of_resource_pool_and_diffs : resource_pool -> logger:Logger.t - -> incoming_diffs:resource_pool_diff Envelope.Incoming.t + -> incoming_diffs:(resource_pool_diff Envelope.Incoming.t * (bool -> unit)) Linear_pipe.Reader.t -> t @@ -98,7 +102,9 @@ module type Network_pool_base_intf = sig val broadcasts : t -> resource_pool_diff Linear_pipe.Reader.t val apply_and_broadcast : - t -> resource_pool_diff Envelope.Incoming.t -> unit Deferred.t + t + -> resource_pool_diff Envelope.Incoming.t * (bool -> unit) + -> unit Deferred.t end (** A [Snark_resource_pool_intf] is a superset of a @@ -173,7 +179,10 @@ module type Snark_pool_diff_intf = sig val compact_json : t -> Yojson.Safe.json - val apply : resource_pool -> t Envelope.Incoming.t -> t Deferred.Or_error.t + val apply : + resource_pool + -> t Envelope.Incoming.t + -> (t, [`Locally_generated of t | `Other of Error.t]) Result.t Deferred.t end module type Transaction_pool_diff_intf = sig diff --git a/src/lib/network_pool/network_pool_base.ml b/src/lib/network_pool/network_pool_base.ml index 9de5d6dc8b6..51a46c32f7d 100644 --- a/src/lib/network_pool/network_pool_base.ml +++ b/src/lib/network_pool/network_pool_base.ml @@ -22,16 +22,24 @@ end) let broadcasts {read_broadcasts; _} = read_broadcasts - let apply_and_broadcast t pool_diff = + let apply_and_broadcast t (pool_diff, valid_cb) = + let rebroadcast diff' = + valid_cb true ; + Logger.trace t.logger ~module_:__MODULE__ ~location:__LOC__ + "Broadcasting %s" + (Resource_pool.Diff.summary diff') ; + Linear_pipe.write t.write_broadcasts diff' + in match%bind Resource_pool.Diff.apply t.resource_pool pool_diff with | Ok diff' -> - Logger.trace t.logger ~module_:__MODULE__ ~location:__LOC__ - "Broadcasting %s" - (Resource_pool.Diff.summary diff') ; - Linear_pipe.write t.write_broadcasts diff' - | Error e -> + rebroadcast diff' + | Error (`Locally_generated diff') -> + rebroadcast diff' + | Error (`Other e) -> + valid_cb false ; Logger.debug t.logger ~module_:__MODULE__ ~location:__LOC__ - "Pool diff apply feedback: %s" (Error.to_string_hum e) ; + "Refusing to rebroadcast: pool diff apply feedback: %s" + (Error.to_string_hum e) ; Deferred.unit let of_resource_pool_and_diffs resource_pool ~logger ~incoming_diffs = @@ -39,8 +47,8 @@ end) let network_pool = {resource_pool; logger; read_broadcasts; write_broadcasts} in - Linear_pipe.iter incoming_diffs ~f:(fun diff -> - apply_and_broadcast network_pool diff ) + Linear_pipe.iter incoming_diffs ~f:(fun diff_and_cb -> + apply_and_broadcast network_pool diff_and_cb ) |> ignore ; network_pool diff --git a/src/lib/network_pool/snark_pool.ml b/src/lib/network_pool/snark_pool.ml index a5119fd7e59..bb46996d0d4 100644 --- a/src/lib/network_pool/snark_pool.ml +++ b/src/lib/network_pool/snark_pool.ml @@ -1,6 +1,7 @@ open Core_kernel open Async open Pipe_lib +open Network_peer module type S = sig type transition_frontier @@ -45,7 +46,8 @@ module type S = sig config:Resource_pool.Config.t -> logger:Logger.t -> disk_location:string - -> incoming_diffs:Resource_pool.Diff.t Envelope.Incoming.t + -> incoming_diffs:( Resource_pool.Diff.t Envelope.Incoming.t + * (bool -> unit) ) Linear_pipe.Reader.t -> frontier_broadcast_pipe:transition_frontier option Broadcast_pipe.Reader.t @@ -375,13 +377,14 @@ module Make (Transition_frontier : Transition_frontier_intf) : let add_completed_work t (res : (('a, 'b, 'c) Single.Spec.t Spec.t, Ledger_proof.t) Result.t) = apply_and_broadcast t - (Envelope.Incoming.wrap - ~data: - (Resource_pool.Diff.Stable.V1.Add_solved_work - ( One_or_two.map res.spec.instances ~f:Single.Spec.statement - , { proof= res.proofs - ; fee= {fee= res.spec.fee; prover= res.prover} } )) - ~sender:Envelope.Sender.Local) + ( Envelope.Incoming.wrap + ~data: + (Resource_pool.Diff.Stable.V1.Add_solved_work + ( One_or_two.map res.spec.instances ~f:Single.Spec.statement + , { proof= res.proofs + ; fee= {fee= res.spec.fee; prover= res.prover} } )) + ~sender:Envelope.Sender.Local + , Fn.const () ) end (* TODO: defunctor or remove monkey patching (#3731) *) @@ -445,7 +448,7 @@ let%test_module "random set test" = let open Deferred.Let_syntax in Deferred.List.iter sample_solved_work ~f:(fun (work, fee) -> let%map res = apply_diff resource_pool work fee in - assert (Or_error.is_ok res) ; + assert (Result.is_ok res) ; () ) in resource_pool @@ -505,7 +508,7 @@ let%test_module "random set test" = let%map res = apply_diff t statements ~proof:(fun _ -> proofs) fee in - assert (Or_error.is_error res) ; + assert (Result.is_error res) ; () ) in [%test_eq: Transaction_snark_work.Info.t list] completed_works @@ -555,7 +558,7 @@ let%test_module "random set test" = and cheap_fee = min fee_1 fee_2 in let%bind _ = apply_diff t work cheap_fee in let%map res = apply_diff t work expensive_fee in - assert (Or_error.is_error res) ; + assert (Result.is_error res) ; assert ( cheap_fee.fee = (Option.value_exn @@ -613,7 +616,7 @@ let%test_module "random set test" = failwith "There should have been a proof here" ) ; Deferred.unit ) ; Mock_snark_pool.apply_and_broadcast network_pool - (Envelope.Incoming.local command) ) + (Envelope.Incoming.local command, Fn.const ()) ) let%test_unit "when creating a network, the incoming diffs in reader pipe \ will automatically get process" = @@ -628,17 +631,18 @@ let%test_module "random set test" = let verify_unsolved_work () = let work_diffs = List.map works ~f:(fun work -> - Envelope.Incoming.local - (Mock_snark_pool.Resource_pool.Diff.Stable.V1 - .Add_solved_work - ( work - , Priced_proof. - { proof= One_or_two.map ~f:mk_dummy_proof work - ; fee= - { fee= Currency.Fee.of_int 0 - ; prover= - Signature_lib.Public_key.Compressed.empty } - } )) ) + ( Envelope.Incoming.local + (Mock_snark_pool.Resource_pool.Diff.Stable.V1 + .Add_solved_work + ( work + , Priced_proof. + { proof= One_or_two.map ~f:mk_dummy_proof work + ; fee= + { fee= Currency.Fee.of_int 0 + ; prover= + Signature_lib.Public_key.Compressed.empty + } } )) + , Fn.const () ) ) |> Linear_pipe.of_list in let frontier_broadcast_pipe_r, _ = @@ -687,7 +691,9 @@ let%test_module "random set test" = (Quickcheck.Generator.tuple2 Fee_with_prover.gen Fee_with_prover.gen) in let fake_sender = - Envelope.Sender.Remote (Unix.Inet_addr.of_string "1.2.4.8") + Envelope.Sender.Remote + ( Unix.Inet_addr.of_string "1.2.4.8" + , Peer.Id.unsafe_of_string "contents should be irrelevant" ) in Async.Thread_safe.block_on_async_exn (fun () -> let open Deferred.Let_syntax in @@ -706,7 +712,15 @@ let%test_module "random set test" = let%bind res1 = apply_diff ~sender:fake_sender resource_pool stmt1 fee1 in - Or_error.ok_exn res1 |> ignore ; + let ok_exn = function + | Ok e -> + e + | Error (`Other e) -> + Or_error.ok_exn (Error e) + | Error (`Locally_generated _) -> + failwith "rejected because locally generated" + in + ok_exn res1 |> ignore ; let rebroadcastable1 = Mock_snark_pool.For_tests.get_rebroadcastable resource_pool ~is_expired:(Fn.const `Ok) @@ -715,7 +729,7 @@ let%test_module "random set test" = rebroadcastable1 [] ; let%bind res2 = apply_diff resource_pool stmt2 fee2 in let proof2 = One_or_two.map ~f:mk_dummy_proof stmt2 in - Or_error.ok_exn res2 |> ignore ; + ok_exn res2 |> ignore ; let rebroadcastable2 = Mock_snark_pool.For_tests.get_rebroadcastable resource_pool ~is_expired:(Fn.const `Ok) diff --git a/src/lib/network_pool/snark_pool.mli b/src/lib/network_pool/snark_pool.mli index 8f7d9723bea..c7034e88249 100644 --- a/src/lib/network_pool/snark_pool.mli +++ b/src/lib/network_pool/snark_pool.mli @@ -1,5 +1,6 @@ open Async_kernel open Pipe_lib +open Network_peer module type S = sig type transition_frontier @@ -44,7 +45,8 @@ module type S = sig config:Resource_pool.Config.t -> logger:Logger.t -> disk_location:string - -> incoming_diffs:Resource_pool.Diff.t Envelope.Incoming.t + -> incoming_diffs:( Resource_pool.Diff.t Envelope.Incoming.t + * (bool -> unit) ) Linear_pipe.Reader.t -> frontier_broadcast_pipe:transition_frontier option Broadcast_pipe.Reader.t diff --git a/src/lib/network_pool/snark_pool_diff.ml b/src/lib/network_pool/snark_pool_diff.ml index f751b81ddfd..2aae91931cf 100644 --- a/src/lib/network_pool/snark_pool_diff.ml +++ b/src/lib/network_pool/snark_pool_diff.ml @@ -1,6 +1,7 @@ open Core_kernel open Async_kernel open Module_version +open Network_peer module Make (Ledger_proof : sig type t [@@deriving bin_io, compare, sexp, to_yojson, version] @@ -77,34 +78,35 @@ end) (Yojson.Safe.to_string @@ Work.compact_json work) (Yojson.Safe.to_string @@ Coda_base.Fee_with_prover.to_yojson fee) - let apply (pool : Pool.t) (t : t Envelope.Incoming.t) : - t Or_error.t Deferred.t = - let open Deferred.Or_error.Let_syntax in + let apply (pool : Pool.t) (t : t Envelope.Incoming.t) = let {Envelope.Incoming.data= diff; sender} = t in let is_local = match sender with Local -> true | _ -> false in let to_or_error = function | `Statement_not_referenced -> - Or_error.error_string "statement not referenced" + Error (`Other (Error.of_string "statement not referenced")) | `Added -> Ok diff in match diff with | Stable.V1.Add_solved_work (work, ({Priced_proof.proof; fee} as p)) -> ( let reject_and_log_if_local reason = - if is_local then - Logger.warn (Pool.get_logger pool) ~module_:__MODULE__ + if is_local then ( + Logger.trace (Pool.get_logger pool) ~module_:__MODULE__ ~location:__LOC__ "Rejecting locally generated snark work $work, %s" reason ~metadata:[("work", Work.compact_json work)] ; - Deferred.return (Or_error.error_string reason) + Deferred.return (Error (`Locally_generated diff)) ) + else Deferred.return (Error (`Other (Error.of_string reason))) in let check_and_add () = - let%bind () = + match%map Pool.verify_and_act pool ~work:(work, p) ~sender:(Envelope.Incoming.sender t) - in - Pool.add_snark ~is_local pool ~work ~proof ~fee - |> to_or_error |> Deferred.return + with + | Ok () -> + Pool.add_snark ~is_local pool ~work ~proof ~fee |> to_or_error + | Error e -> + Error (`Other e) in match Pool.request_proof pool work with | None -> diff --git a/src/lib/network_pool/test.ml b/src/lib/network_pool/test.ml index 157765ff2e6..4b4b913cc1d 100644 --- a/src/lib/network_pool/test.ml +++ b/src/lib/network_pool/test.ml @@ -1,6 +1,7 @@ open Async_kernel open Core_kernel open Pipe_lib +open Network_peer let%test_module "network pool test" = ( module struct @@ -46,7 +47,7 @@ let%test_module "network pool test" = in don't_wait_for (Mock_snark_pool.apply_and_broadcast network_pool - (Envelope.Incoming.local command)) ; + (Envelope.Incoming.local command, Fn.const ())) ; let%map _ = Linear_pipe.read (Mock_snark_pool.broadcasts network_pool) in @@ -69,17 +70,19 @@ let%test_module "network pool test" = let verify_unsolved_work () = let work_diffs = List.map works ~f:(fun work -> - Envelope.Incoming.local - (Mock_snark_pool.Resource_pool.Diff.Stable.V1.Add_solved_work - ( work - , Priced_proof. - { proof= - One_or_two.map - ~f:Ledger_proof.For_tests.mk_dummy_proof work - ; fee= - { fee= Currency.Fee.of_int 0 - ; prover= Signature_lib.Public_key.Compressed.empty - } } )) ) + ( Envelope.Incoming.local + (Mock_snark_pool.Resource_pool.Diff.Stable.V1.Add_solved_work + ( work + , Priced_proof. + { proof= + One_or_two.map + ~f:Ledger_proof.For_tests.mk_dummy_proof work + ; fee= + { fee= Currency.Fee.of_int 0 + ; prover= + Signature_lib.Public_key.Compressed.empty } } + )) + , Fn.const () ) ) |> Linear_pipe.of_list in let frontier_broadcast_pipe_r, _ = diff --git a/src/lib/network_pool/transaction_pool.ml b/src/lib/network_pool/transaction_pool.ml index 037b1b9e7a3..620e65b53a9 100644 --- a/src/lib/network_pool/transaction_pool.ml +++ b/src/lib/network_pool/transaction_pool.ml @@ -9,6 +9,7 @@ open Coda_base open Module_version open Pipe_lib open Signature_lib +open Network_peer (* TEMP HACK UNTIL DEFUNCTORING: transition frontier interface is simplified *) module type Transition_frontier_intf = sig @@ -656,6 +657,9 @@ struct go txs'' pool accepted ) ) in go txs t.pool [] + + let apply t env = + match%map apply t env with Ok e -> Ok e | Error e -> Error (`Other e) end let get_rebroadcastable (t : t) ~is_expired = @@ -703,7 +707,8 @@ struct (* TODO: This causes the signature to get checked twice as it is checked below before feeding it to add *) - let add t txns = apply_and_broadcast t (Envelope.Incoming.local txns) + let add t txns = + apply_and_broadcast t (Envelope.Incoming.local txns, Fn.const ()) end (* Use this one in downstream consumers *) @@ -885,6 +890,19 @@ let%test_module _ = in Quickcheck.random_value ~seed:(`Deterministic "constant") (go 0 []) + module Result = struct + include Result + + (*let equal ok_eq err_eq a b = + match a, b with + | Ok a, Ok b -> ok_eq a b + | Error a, Error b -> err_eq a b + | _ -> false*) + end + + type pool_apply = (User_command.t list, [`Other of Error.t]) Result.t + [@@deriving sexp, compare] + let%test_unit "transactions are removed in linear case" = Thread_safe.block_on_async_exn (fun () -> let%bind assert_pool_txs, pool, best_tip_diff_w, _frontier = @@ -895,8 +913,7 @@ let%test_module _ = Test.Resource_pool.Diff.apply pool (Envelope.Incoming.local independent_cmds) in - [%test_eq: User_command.t list Or_error.t] apply_res - (Ok independent_cmds) ; + [%test_eq: pool_apply] apply_res (Ok independent_cmds) ; assert_pool_txs independent_cmds ; let%bind () = Broadcast_pipe.Writer.write best_tip_diff_w @@ -950,7 +967,7 @@ let%test_module _ = @@ (List.hd_exn independent_cmds :: List.drop independent_cmds 2) ) in - [%test_eq: User_command.t list Or_error.t] apply_res + [%test_eq: pool_apply] apply_res (Ok (List.hd_exn independent_cmds :: List.drop independent_cmds 2)) ; best_tip_ref := map_set_multi !best_tip_ref [mk_account 1 1_000 1] ; let%bind () = @@ -981,9 +998,7 @@ let%test_module _ = Test.Resource_pool.Diff.apply pool @@ Envelope.Incoming.local independent_cmds in - [%test_eq: User_command.t list Or_error.t] - (Ok (List.drop independent_cmds 2)) - apply_res ; + [%test_eq: pool_apply] (Ok (List.drop independent_cmds 2)) apply_res ; assert_pool_txs (List.drop independent_cmds 2) ; Deferred.unit ) @@ -1027,7 +1042,7 @@ let%test_module _ = let%bind apply_res = Test.Resource_pool.Diff.apply pool @@ Envelope.Incoming.local [cmd1] in - [%test_eq: User_command.t list Or_error.t] apply_res (Ok [cmd1]) ; + [%test_eq: pool_apply] apply_res (Ok [cmd1]) ; assert_pool_txs [cmd1] ; let cmd2 = mk_payment 0 1 0 5 999 in best_tip_ref := map_set_multi !best_tip_ref [mk_account 0 0 1] ; @@ -1109,7 +1124,7 @@ let%test_module _ = let%bind apply_res = Test.Resource_pool.Diff.apply pool (Envelope.Incoming.local txs_all) in - [%test_eq: User_command.t list Or_error.t] (Ok txs_all) apply_res ; + [%test_eq: pool_apply] (Ok txs_all) apply_res ; assert_pool_txs @@ txs_all ; let replace_txs = [ (* sufficient fee *) @@ -1125,7 +1140,7 @@ let%test_module _ = Test.Resource_pool.Diff.apply pool (Envelope.Incoming.local replace_txs) in - [%test_eq: User_command.t list Or_error.t] + [%test_eq: pool_apply] (Ok [List.nth_exn replace_txs 0; List.nth_exn replace_txs 2]) apply_res_2 ; Deferred.unit @@ -1144,7 +1159,7 @@ let%test_module _ = let%bind apply_res = Test.Resource_pool.Diff.apply pool @@ Envelope.Incoming.local txs in - [%test_eq: User_command.t list Or_error.t] (Ok txs) apply_res ; + [%test_eq: pool_apply] (Ok txs) apply_res ; assert_pool_txs @@ txs ; best_tip_ref := map_set_multi !best_tip_ref [mk_account 0 970 1] ; let%bind () = @@ -1233,7 +1248,9 @@ let%test_module _ = expected let mock_sender = - Envelope.Sender.Remote (Unix.Inet_addr.of_string "1.2.3.4") + Envelope.Sender.Remote + ( Unix.Inet_addr.of_string "1.2.3.4" + , Peer.Id.unsafe_of_string "contents should be irrelevant" ) let%test_unit "rebroadcastable transaction behavior" = Thread_safe.block_on_async_exn (fun () -> @@ -1248,8 +1265,7 @@ let%test_module _ = Test.Resource_pool.Diff.apply pool (Envelope.Incoming.local local_cmds) in - [%test_eq: User_command.t list Or_error.t] apply_res_1 - (Ok local_cmds) ; + [%test_eq: pool_apply] apply_res_1 (Ok local_cmds) ; assert_pool_txs local_cmds ; assert_rebroadcastable pool local_cmds ; (* Adding non-locally-generated transactions doesn't affect @@ -1258,8 +1274,7 @@ let%test_module _ = Test.Resource_pool.Diff.apply pool (Envelope.Incoming.wrap ~data:remote_cmds ~sender:mock_sender) in - [%test_eq: User_command.t list Or_error.t] apply_res_2 - (Ok remote_cmds) ; + [%test_eq: pool_apply] apply_res_2 (Ok remote_cmds) ; assert_pool_txs (local_cmds @ remote_cmds) ; assert_rebroadcastable pool local_cmds ; (* When locally generated transactions are committed they are no diff --git a/src/lib/node_addrs_and_ports/dune b/src/lib/node_addrs_and_ports/dune new file mode 100644 index 00000000000..14ba2f59ccc --- /dev/null +++ b/src/lib/node_addrs_and_ports/dune @@ -0,0 +1,6 @@ +(library + (name node_addrs_and_ports) + (public_name node_addrs_and_ports) + (libraries core async network_peer yojson) + (inline_tests) + (preprocess (pps ppx_coda ppx_jane ppx_let ppx_deriving_yojson))) diff --git a/src/lib/node_addrs_and_ports/node_addrs_and_ports.ml b/src/lib/node_addrs_and_ports/node_addrs_and_ports.ml new file mode 100644 index 00000000000..0f134a06709 --- /dev/null +++ b/src/lib/node_addrs_and_ports/node_addrs_and_ports.ml @@ -0,0 +1,76 @@ +open Core +open Network_peer + +(** Network information for speaking to this daemon. *) +type t = + { external_ip: Unix.Inet_addr.Blocking_sexp.t + ; bind_ip: Unix.Inet_addr.Blocking_sexp.t + (** When peer is [None], the peer_id will be auto-generated and this field + replaced with [Some] after libp2p initialization. *) + ; mutable peer: Peer.Stable.Latest.t option + ; libp2p_port: int + ; client_port: int } +[@@deriving fields, sexp] + +module Display = struct + [%%versioned + module Stable = struct + module V1 = struct + type t = + { external_ip: string + ; bind_ip: string + ; peer: Peer.Display.Stable.V1.t option + ; libp2p_port: int + ; client_port: int } + [@@deriving fields, yojson, bin_io, version, sexp] + + let to_latest = Fn.id + end + end] + + type t = Stable.Latest.t = + { external_ip: string + ; bind_ip: string + ; peer: Peer.Display.Stable.Latest.t option + ; libp2p_port: int + ; client_port: int } + [@@deriving fields, yojson, sexp] +end + +let to_display (t : t) = + Display. + { external_ip= Unix.Inet_addr.to_string t.external_ip + ; bind_ip= Unix.Inet_addr.to_string t.bind_ip + ; peer= Option.map ~f:Peer.to_display t.peer + ; libp2p_port= t.libp2p_port + ; client_port= t.client_port } + +let of_display (d : Display.t) : t = + { external_ip= Unix.Inet_addr.of_string d.external_ip + ; bind_ip= Unix.Inet_addr.of_string d.bind_ip + ; peer= Option.map ~f:Peer.of_display d.peer + ; libp2p_port= d.libp2p_port + ; client_port= d.client_port } + +let to_multiaddr (t : t) = + match t.peer with + | Some peer -> + Some + (sprintf "/ip4/%s/tcp/%d/ipfs/%s" + (Unix.Inet_addr.to_string t.external_ip) + t.libp2p_port peer.peer_id) + | None -> + None + +let to_multiaddr_exn t = + Option.value_exn + ~message:"cannot format peer as multiaddr before libp2p key generated" + (to_multiaddr t) + +let to_yojson = Fn.compose Display.Stable.V1.to_yojson to_display + +let to_peer_exn : t -> Peer.t = function + | {peer= Some peer; _} -> + peer + | _ -> + failwith "to_peer_exn: no peer yet" diff --git a/src/lib/secrets/dune b/src/lib/secrets/dune index 96e693b19e9..0162e1aa52d 100644 --- a/src/lib/secrets/dune +++ b/src/lib/secrets/dune @@ -4,7 +4,7 @@ (library_flags -linkall) (inline_tests) (libraries core async_unix sodium ppx_deriving_yojson.runtime yojson - coda_base) + coda_base coda_net2) (preprocess (pps ppx_coda ppx_jane ppx_deriving_yojson ppx_deriving.make bisect_ppx -- -conditional)) diff --git a/src/lib/secrets/keypair.ml b/src/lib/secrets/keypair.ml index 291c2c78713..3430fbf5026 100644 --- a/src/lib/secrets/keypair.ml +++ b/src/lib/secrets/keypair.ml @@ -2,112 +2,79 @@ open Signature_lib open Core open Async open Async.Deferred.Let_syntax +open Keypair_common -let rec prompt_password prompt = - let open Deferred.Let_syntax in - let%bind pw1 = Password.read prompt in - let%bind pw2 = Password.read "Again to confirm: " in - if not (Bytes.equal pw1 pw2) then ( - eprintf "Error: passwords don't match, try again\n" ; - prompt_password prompt ) - else return pw2 +module T = struct + type t = Keypair.t -let error_raise e ~error_ctx = - raise - Error.( - to_exn (of_string (sprintf !"%s\n%s" error_ctx (Error.to_string_hum e)))) + let env = "CODA_PRIVKEY_PASS" -(** Writes a keypair to [privkey_path] and [privkey_path ^ ".pub"] using [Secret_file] *) -let write_exn {Keypair.private_key; public_key} ~(privkey_path : string) - ~(password : Secret_file.password) : unit Deferred.t = - let privkey_bytes = - Private_key.to_bigstring private_key |> Bigstring.to_bytes - in - let pubkey_string = - Public_key.Compressed.to_base58_check (Public_key.compress public_key) - in - match%bind - Secret_file.write ~path:privkey_path ~mkdir:true ~plaintext:privkey_bytes - ~password - with - | Ok () -> - (* The hope is that if [Secret_file.write] succeeded then this ought to + let which = "coda keypair" + + (** Writes a keypair to [privkey_path] and [privkey_path ^ ".pub"] using [Secret_file] *) + let write_exn {Keypair.private_key; public_key} ~(privkey_path : string) + ~(password : Secret_file.password) : unit Deferred.t = + let privkey_bytes = + Private_key.to_bigstring private_key |> Bigstring.to_bytes + in + let pubkey_string = + Public_key.Compressed.to_base58_check (Public_key.compress public_key) + in + match%bind + Secret_file.write ~path:privkey_path ~mkdir:true ~plaintext:privkey_bytes + ~password ~which + with + | Ok () -> + (* The hope is that if [Secret_file.write] succeeded then this ought to as well, letting [handle_open] stay inside [Secret_file]. It might not if the environment changes underneath us, and we won't have nice errors in that case. *) - let%bind pubkey_f = Writer.open_file (privkey_path ^ ".pub") in - Writer.write_line pubkey_f pubkey_string ; - Writer.close pubkey_f - | Error e -> - Privkey_error.raise e + let%bind pubkey_f = Writer.open_file (privkey_path ^ ".pub") in + Writer.write_line pubkey_f pubkey_string ; + Writer.close pubkey_f + | Error e -> + Privkey_error.raise e -(** Reads a private key from [privkey_path] using [Secret_file] *) -let read ~(privkey_path : string) ~(password : Secret_file.password) : - (Keypair.t, Privkey_error.t) Deferred.Result.t = - let open Deferred.Result.Let_syntax in - let%bind pk_bytes = Secret_file.read ~path:privkey_path ~password in - let open Result.Let_syntax in - Deferred.return - @@ let%bind sk = - try - return (pk_bytes |> Bigstring.of_bytes |> Private_key.of_bigstring_exn) + (** Reads a private key from [privkey_path] using [Secret_file] *) + let read ~(privkey_path : string) ~(password : Secret_file.password) : + (Keypair.t, Privkey_error.t) Deferred.Result.t = + let open Deferred.Result.Let_syntax in + let%bind pk_bytes = Secret_file.read ~path:privkey_path ~password ~which in + let open Result.Let_syntax in + Deferred.return + @@ let%bind sk = + try + return + (pk_bytes |> Bigstring.of_bytes |> Private_key.of_bigstring_exn) + with exn -> + Privkey_error.corrupted_privkey + (Error.createf "Error parsing decrypted private key file: %s" + (Exn.to_string exn)) + which + in + try return (Keypair.of_private_key_exn sk) with exn -> Privkey_error.corrupted_privkey - (Error.createf "Error parsing decrypted private key file: %s" + (Error.createf + "Error computing public key from private, is your keyfile \ + corrupt? %s" (Exn.to_string exn)) - in - try return (Keypair.of_private_key_exn sk) - with exn -> - Privkey_error.corrupted_privkey - (Error.createf - "Error computing public key from private, is your keyfile \ - corrupt? %s" - (Exn.to_string exn)) - -(** Reads a private key from [privkey_path] using [Secret_file], throws on failure *) -let read_exn ~(privkey_path : string) ~(password : Secret_file.password) : - Keypair.t Deferred.t = - match%map read ~privkey_path ~password with - | Ok keypair -> - keypair - | Error priv_key_error -> - Privkey_error.raise priv_key_error + which -let read_exn' path = - read_exn ~privkey_path:path - ~password:(lazy (Password.read "Secret key password: ")) + (** Reads a private key from [privkey_path] using [Secret_file], throws on failure *) + let read_exn ~(privkey_path : string) ~(password : Secret_file.password) : + Keypair.t Deferred.t = + match%map read ~privkey_path ~password with + | Ok keypair -> + keypair + | Error priv_key_error -> + Privkey_error.raise priv_key_error -module Terminal_stdin = struct - let read_exn ?(should_reask = true) path = - let read_privkey password = read ~privkey_path:path ~password in - let%bind result = - match Sys.getenv Password.default_password_env with - | Some password -> - read_privkey (lazy (Deferred.return @@ Bytes.of_string password)) - | None -> - let read_file () = - read_privkey - (lazy (Password.read_hidden_line "Secret key password: ")) - in - let rec read_until_correct () = - match%bind read_file () with - | Ok result -> - Deferred.Result.return result - | Error `Incorrect_password_or_corrupted_privkey -> - eprintf "Wrong password! Please try again\n" ; - read_until_correct () - | Error exn -> - Privkey_error.raise exn - in - if should_reask then read_until_correct () else read_file () - in - match result with - | Ok result -> - return result - | Error e -> - Privkey_error.raise e - - let write_exn kp ~privkey_path = - write_exn kp ~privkey_path - ~password:(lazy (prompt_password "Password for new private key file: ")) + let read_exn' path = + read_exn ~privkey_path:path + ~password: + (lazy (Password.hidden_line_or_env "Secret key password: " ~env)) end + +include T +module Terminal_stdin = Make_terminal_stdin (T) diff --git a/src/lib/secrets/keypair_common.ml b/src/lib/secrets/keypair_common.ml new file mode 100644 index 00000000000..c13bc95eabb --- /dev/null +++ b/src/lib/secrets/keypair_common.ml @@ -0,0 +1,70 @@ +open Core +open Async +open Async.Deferred.Let_syntax + +let error_raise e ~error_ctx = + raise + Error.( + to_exn (of_string (sprintf !"%s\n%s" error_ctx (Error.to_string_hum e)))) + +module Make_terminal_stdin (KP : sig + type t + + val env : string + + val read : + privkey_path:string + -> password:Secret_file.password + -> (t, Privkey_error.t) Deferred.Result.t + + val write_exn : + t + -> privkey_path:string + -> password:Secret_file.password + -> unit Deferred.t +end) = +struct + open KP + + let rec prompt_password prompt = + let open Deferred.Let_syntax in + let%bind pw1 = Password.hidden_line_or_env prompt ~env in + let%bind pw2 = Password.hidden_line_or_env "Again to confirm: " ~env in + if not (Bytes.equal pw1 pw2) then ( + eprintf "Error: passwords don't match, try again\n" ; + prompt_password prompt ) + else return pw2 + + let read_exn ?(should_reask = true) path = + let read_privkey password = read ~privkey_path:path ~password in + let%bind result = + match Sys.getenv env with + | Some password -> + read_privkey (lazy (Deferred.return @@ Bytes.of_string password)) + | None -> + let read_file () = + read_privkey + (lazy (Password.read_hidden_line "Secret key password: ")) + in + let rec read_until_correct () = + match%bind read_file () with + | Ok result -> + Deferred.Result.return result + | Error `Incorrect_password_or_corrupted_privkey -> + eprintf "Wrong password! Please try again\n" ; + read_until_correct () + | Error exn -> + Privkey_error.raise exn + in + if should_reask then read_until_correct () else read_file () + in + match result with + | Ok result -> + return result + | Error e -> + Privkey_error.raise e + + let write_exn kp ~privkey_path = + write_exn kp ~privkey_path + ~password:(lazy (prompt_password "Password for new private key file: ")) +end diff --git a/src/lib/secrets/libp2p_keypair.ml b/src/lib/secrets/libp2p_keypair.ml new file mode 100644 index 00000000000..b1cbd057b4a --- /dev/null +++ b/src/lib/secrets/libp2p_keypair.ml @@ -0,0 +1,61 @@ +open Core +open Async +open Async.Deferred.Let_syntax +open Keypair_common + +module T = struct + type t = Coda_net2.Keypair.t + + let env = "CODA_LIBP2P_PASS" + + let which = "libp2p keypair" + + (** Writes a keypair to [privkey_path] and [privkey_path ^ ".pub"] using [Secret_file] *) + let write_exn kp ~(privkey_path : string) ~(password : Secret_file.password) + : unit Deferred.t = + let str = Coda_net2.Keypair.to_string kp in + match%bind + Secret_file.write ~path:privkey_path ~mkdir:true + ~plaintext:(Bytes.of_string str) ~password ~which + with + | Ok () -> + (* The hope is that if [Secret_file.write] succeeded then this ought to + as well, letting [handle_open] stay inside [Secret_file]. It might not + if the environment changes underneath us, and we won't have nice errors + in that case. *) + let%bind pubkey_f = Writer.open_file (privkey_path ^ ".peerid") in + Writer.write_line pubkey_f (Coda_net2.Keypair.to_peer_id kp) ; + Writer.close pubkey_f + | Error e -> + Privkey_error.raise e + + (** Reads a private key from [privkey_path] using [Secret_file] *) + let read ~(privkey_path : string) ~(password : Secret_file.password) : + (t, Privkey_error.t) Deferred.Result.t = + let open Deferred.Result.Let_syntax in + let%bind bytes = Secret_file.read ~path:privkey_path ~password ~which in + Deferred.return + @@ + match Coda_net2.Keypair.of_string (Bytes.to_string bytes) with + | Ok kp -> + Ok kp + | Error e -> + Privkey_error.corrupted_privkey e which + + (** Reads a private key from [privkey_path] using [Secret_file], throws on failure *) + let read_exn ~(privkey_path : string) ~(password : Secret_file.password) : + t Deferred.t = + match%map read ~privkey_path ~password with + | Ok keypair -> + keypair + | Error priv_key_error -> + Privkey_error.raise priv_key_error + + let read_exn' path = + read_exn ~privkey_path:path + ~password: + (lazy (Password.hidden_line_or_env "Libp2p secret key password: " ~env)) +end + +include T +module Terminal_stdin = Make_terminal_stdin (T) diff --git a/src/lib/secrets/password.ml b/src/lib/secrets/password.ml index d1c59466f17..4fbf5a236ab 100644 --- a/src/lib/secrets/password.ml +++ b/src/lib/secrets/password.ml @@ -1,7 +1,5 @@ open Core -let default_password_env = "CODA_PRIVKEY_PASS" - let read_hidden_line prompt : Bytes.t Async.Deferred.t = let open Unix in let open Async_unix in @@ -35,5 +33,3 @@ let hidden_line_or_env prompt ~env : Bytes.t Async.Deferred.t = return (Bytes.of_string p) | _ -> read_hidden_line prompt - -let read prompt = hidden_line_or_env prompt ~env:default_password_env diff --git a/src/lib/secrets/password.mli b/src/lib/secrets/password.mli index 52778cab015..978acfac060 100644 --- a/src/lib/secrets/password.mli +++ b/src/lib/secrets/password.mli @@ -1,9 +1,5 @@ open Async -val default_password_env : string - val read_hidden_line : string -> Bytes.t Deferred.t -val read : string -> bytes Deferred.t - val hidden_line_or_env : string -> env:string -> Bytes.t Deferred.t diff --git a/src/lib/secrets/privkey_error.ml b/src/lib/secrets/privkey_error.ml index 537c60f47f0..0f355aca9e8 100644 --- a/src/lib/secrets/privkey_error.ml +++ b/src/lib/secrets/privkey_error.ml @@ -1,7 +1,7 @@ open Core type t = - [ `Corrupted_privkey of Error.t + [ `Corrupted_privkey of Error.t * string | `Incorrect_password_or_corrupted_privkey | `Cannot_open_file of string | `Parent_directory_does_not_exist of string ] @@ -9,8 +9,8 @@ type t = exception Privkey_exn of t let to_string : t -> string = function - | `Corrupted_privkey e -> - sprintf !"Corrupted_privkey: %s" (Error.to_string_hum e) + | `Corrupted_privkey (e, which) -> + sprintf !"Corrupted %s: %s" which (Error.to_string_hum e) | `Incorrect_password_or_corrupted_privkey -> "Incorrect_password_or_corrupted_privkey" | `Cannot_open_file path -> @@ -22,4 +22,4 @@ let to_string : t -> string = function let raise t = Error.raise (Error.of_string (to_string t)) -let corrupted_privkey error = Error (`Corrupted_privkey error) +let corrupted_privkey error which = Error (`Corrupted_privkey (error, which)) diff --git a/src/lib/secrets/secret_box.ml b/src/lib/secrets/secret_box.ml index 65ea989b29c..0a1a41dbe32 100644 --- a/src/lib/secrets/secret_box.ml +++ b/src/lib/secrets/secret_box.ml @@ -98,7 +98,7 @@ let encrypt ~(password : Bytes.t) ~(plaintext : Bytes.t) = ; ciphertext } (** warning: this will zero [password] *) -let decrypt ~(password : Bytes.t) +let decrypt ~(password : Bytes.t) ~which { box_primitive ; pw_primitive ; nonce @@ -108,15 +108,17 @@ let decrypt ~(password : Bytes.t) if box_primitive <> Secret_box.primitive then Error (`Corrupted_privkey - (Error.createf - !"don't know how to handle a %s secret_box" - box_primitive)) + ( Error.createf + !"don't know how to handle a %s secret_box" + box_primitive + , which )) else if pw_primitive <> Password_hash.primitive then Error (`Corrupted_privkey - (Error.createf - !"don't know how to handle a %s password_hash" - pw_primitive)) + ( Error.createf + !"don't know how to handle a %s password_hash" + pw_primitive + , which )) else let nonce = Secret_box.Bytes.to_nonce nonce in let salt = Password_hash.Bytes.to_salt pwsalt in @@ -135,7 +137,9 @@ let%test_unit "successful roundtrip" = ~trials:4 ~f:(fun (password, plaintext) -> let enc = encrypt ~password:(Bytes.copy password) ~plaintext in - let dec = Option.value_exn (decrypt enc ~password |> Result.ok) in + let dec = + Option.value_exn (decrypt enc ~password ~which:"test" |> Result.ok) + in [%test_eq: Bytes.t] dec plaintext ) let%test "bad password fails" = @@ -143,4 +147,5 @@ let%test "bad password fails" = encrypt ~password:(Bytes.of_string "foobar") ~plaintext:(Bytes.of_string "yo") in - Result.is_error (decrypt ~password:(Bytes.of_string "barfoo") enc) + Result.is_error + (decrypt ~password:(Bytes.of_string "barfoo") ~which:"test" enc) diff --git a/src/lib/secrets/secret_box.mli b/src/lib/secrets/secret_box.mli index 1aeec36a4e8..97e59246c3d 100644 --- a/src/lib/secrets/secret_box.mli +++ b/src/lib/secrets/secret_box.mli @@ -28,8 +28,9 @@ val encrypt : password:Bytes.t -> plaintext:Bytes.t -> t (** Decrypt some bytes with a password *) val decrypt : password:Bytes.t + -> which:string -> t -> ( Bytes.t - , [> `Corrupted_privkey of Error.t + , [> `Corrupted_privkey of Error.t * string | `Incorrect_password_or_corrupted_privkey ] ) Result.t diff --git a/src/lib/secrets/secret_file.ml b/src/lib/secrets/secret_file.ml index 13797a480d6..720ca09040a 100644 --- a/src/lib/secrets/secret_file.ml +++ b/src/lib/secrets/secret_file.ml @@ -3,7 +3,8 @@ open Async type password = Bytes.t Async.Deferred.t Lazy.t -let handle_open ~mkdir ~(f : string -> 'a Deferred.t) path = +let handle_open ~mkdir ~(f : string -> 'a Deferred.t) ~which path = + let corrupted_privkey e = Privkey_error.corrupted_privkey e which in let open Unix.Error in let open Deferred.Result.Let_syntax in let dn = Filename.dirname path in @@ -15,7 +16,7 @@ let handle_open ~mkdir ~(f : string -> 'a Deferred.t) path = Deferred.return @@ if stat.kind <> `Directory then - Privkey_error.corrupted_privkey + corrupted_privkey (Error.createf "%s exists and it is not a directory, can't store files there" dn) @@ -26,12 +27,12 @@ let handle_open ~mkdir ~(f : string -> 'a Deferred.t) path = | Error (Unix.Unix_error (ENOENT, _, _)) -> Deferred.Result.return false | Error (Unix.Unix_error (e, _, _)) -> - Deferred.return @@ Privkey_error.corrupted_privkey + Deferred.return @@ corrupted_privkey @@ Error.createf !"could not stat %s: %s, not making keys\n" dn (message e) | Error e -> - Deferred.return @@ Privkey_error.corrupted_privkey (Error.of_exn e) + Deferred.return @@ corrupted_privkey (Error.of_exn e) in let%bind () = let open Deferred.Let_syntax in @@ -48,7 +49,7 @@ let handle_open ~mkdir ~(f : string -> 'a Deferred.t) path = | Ok x -> Deferred.return x | Error (Unix.Unix_error ((EACCES as e), _, _)) -> - Deferred.return @@ Privkey_error.corrupted_privkey + Deferred.return @@ corrupted_privkey @@ Error.createf "could not mkdir -p %s: %s\n" dn (message e) | Error e -> raise e @@ -64,14 +65,15 @@ let handle_open ~mkdir ~(f : string -> 'a Deferred.t) path = | Unix.Unix_error (_, _, _) -> Deferred.return (Error (`Cannot_open_file path)) | e -> - Deferred.return @@ Privkey_error.corrupted_privkey (Error.of_exn e) ) + Deferred.return @@ corrupted_privkey (Error.of_exn e) ) let lift (t : 'a Deferred.t) : ('a, 'b) Deferred.Result.t = t >>| fun x -> Ok x -let write ~path ~mkdir ~(password : Bytes.t Deferred.t Lazy.t) ~plaintext = +let write ~path ~mkdir ~(password : Bytes.t Deferred.t Lazy.t) ~plaintext + ~which = let open Deferred.Result.Let_syntax in let%bind privkey_f = - handle_open ~mkdir ~f:(fun path -> Writer.open_file path) path + handle_open ~mkdir ~f:(fun path -> Writer.open_file path) path ~which in let%bind password = lift @@ Lazy.force password in let sb = Secret_box.encrypt ~plaintext ~password in @@ -82,10 +84,11 @@ let write ~path ~mkdir ~(password : Bytes.t Deferred.t Lazy.t) ~plaintext = let%bind () = lift (Unix.chmod path ~perm:0o600) in lift (Writer.close privkey_f) -let to_corrupt_privkey = - Deferred.Result.map_error ~f:(fun e -> `Corrupted_privkey e) - -let read ~path ~(password : Bytes.t Deferred.t Lazy.t) = +let read ~path ~(password : Bytes.t Deferred.t Lazy.t) ~which = + let to_corrupt_privkey = + Deferred.Result.map_error ~f:(fun e -> `Corrupted_privkey (e, which)) + in + let handle_open ~mkdir ~f p = handle_open ~mkdir ~f ~which p in let open Deferred.Result.Let_syntax in let read_all r = lift (Pipe.to_list (Reader.lines r)) @@ -130,7 +133,8 @@ let read ~path ~(password : Bytes.t Deferred.t Lazy.t) = | Error e -> Deferred.return (Privkey_error.corrupted_privkey - (Error.createf "couldn't parse %s: %s" path e)) + (Error.createf "couldn't parse %s: %s" path e) + which) in let%bind password = lift (Lazy.force password) in - Deferred.return (Secret_box.decrypt ~password sb) + Deferred.return (Secret_box.decrypt ~password ~which sb) diff --git a/src/lib/secrets/secret_file.mli b/src/lib/secrets/secret_file.mli index 6838c7570ed..e6e3a4f9dfd 100644 --- a/src/lib/secrets/secret_file.mli +++ b/src/lib/secrets/secret_file.mli @@ -17,6 +17,7 @@ type password = Bytes.t Deferred.t Lazy.t val read : path:string -> password:password + -> which:string -> (Bytes.t, Privkey_error.t) Deferred.Result.t (** Write [contents] to [path], after wrapping it in a [Secret_box] with [password]. @@ -32,4 +33,5 @@ val write : -> mkdir:bool -> password:password -> plaintext:Bytes.t + -> which:string -> (unit, Privkey_error.t) Deferred.Result.t diff --git a/src/lib/snark_worker/debug.ml b/src/lib/snark_worker/debug.ml index ec03f5fc246..9d15aa59e6e 100644 --- a/src/lib/snark_worker/debug.ml +++ b/src/lib/snark_worker/debug.ml @@ -9,7 +9,7 @@ module Inputs = struct let create () = Deferred.unit - let worker_wait_time = 0.1 + let worker_wait_time = 0.5 end let perform_single () ~message s = diff --git a/src/lib/sync_handler/sync_handler.ml b/src/lib/sync_handler/sync_handler.ml index 0e5702d4d4d..3746f4a37db 100644 --- a/src/lib/sync_handler/sync_handler.ml +++ b/src/lib/sync_handler/sync_handler.ml @@ -2,6 +2,7 @@ open Core_kernel open Async open Coda_base open Coda_transition +open Network_peer module type Inputs_intf = sig module Transition_frontier : module type of Transition_frontier diff --git a/src/lib/syncable_ledger/dune b/src/lib/syncable_ledger/dune index 8d6e8b22728..649a45f38ee 100644 --- a/src/lib/syncable_ledger/dune +++ b/src/lib/syncable_ledger/dune @@ -5,7 +5,7 @@ (library_flags -linkall) (flags :standard -short-paths) (libraries core async async_extra pipe_lib merkle_ledger logger trust_system - interruptible envelope) + interruptible ) (preprocess (pps ppx_coda ppx_jane ppx_deriving.eq ppx_deriving_yojson bisect_ppx -- -conditional)) (synopsis "Synchronization of Merkle-tree backed ledgers")) diff --git a/src/lib/syncable_ledger/syncable_ledger.ml b/src/lib/syncable_ledger/syncable_ledger.ml index 858295b0522..bda92119e2a 100644 --- a/src/lib/syncable_ledger/syncable_ledger.ml +++ b/src/lib/syncable_ledger/syncable_ledger.ml @@ -1,6 +1,7 @@ open Core open Async_kernel open Pipe_lib +open Network_peer (** Run f recursively n times, starting with value r. e.g. funpow 3 f r = f (f (f r)) *) diff --git a/src/lib/syncable_ledger/test.ml b/src/lib/syncable_ledger/test.ml index 851f89c1287..13cc01c6afe 100644 --- a/src/lib/syncable_ledger/test.ml +++ b/src/lib/syncable_ledger/test.ml @@ -1,6 +1,7 @@ open Core open Async_kernel open Pipe_lib +open Network_peer module type Ledger_intf = sig include Merkle_ledger.Syncable_intf.S diff --git a/src/lib/transition_frontier/frontier_base/breadcrumb.ml b/src/lib/transition_frontier/frontier_base/breadcrumb.ml index cfe504e9ba9..b733f8cef37 100644 --- a/src/lib/transition_frontier/frontier_base/breadcrumb.ml +++ b/src/lib/transition_frontier/frontier_base/breadcrumb.ml @@ -3,6 +3,7 @@ open Core_kernel open Coda_base open Coda_state open Coda_transition +open Network_peer type t = { validated_transition: External_transition.Validated.t @@ -57,7 +58,7 @@ let build ~logger ~verifier ~trust_system ~parent match sender with | None | Some Envelope.Sender.Local -> return () - | Some (Envelope.Sender.Remote inet_addr) -> + | Some (Envelope.Sender.Remote (inet_addr, _peer_id)) -> Trust_system.( record trust_system logger inet_addr Actions.(Gossiped_invalid_transition, Some (message, []))) @@ -72,7 +73,7 @@ let build ~logger ~verifier ~trust_system ~parent match sender with | None | Some Envelope.Sender.Local -> return () - | Some (Envelope.Sender.Remote inet_addr) -> + | Some (Envelope.Sender.Remote (inet_addr, _peer_id)) -> let error_string = Staged_ledger.Staged_ledger_error.to_string staged_ledger_error @@ -309,6 +310,7 @@ module For_tests = struct External_transition.create ~protocol_state ~protocol_state_proof:Proof.dummy ~staged_ledger_diff:(Staged_ledger_diff.forget staged_ledger_diff) + ~validation_callback:Fn.ignore ~delta_transition_chain_proof:(previous_state_hash, []) in (* We manually created a verified an external_transition *) diff --git a/src/lib/transition_frontier/frontier_base/breadcrumb.mli b/src/lib/transition_frontier/frontier_base/breadcrumb.mli index 8ab9c97801d..ed55ef6ff43 100644 --- a/src/lib/transition_frontier/frontier_base/breadcrumb.mli +++ b/src/lib/transition_frontier/frontier_base/breadcrumb.mli @@ -9,6 +9,7 @@ open Signature_lib open Coda_base open Coda_state open Coda_transition +open Network_peer type t [@@deriving sexp, eq, compare, to_yojson] diff --git a/src/lib/transition_frontier_controller/dune b/src/lib/transition_frontier_controller/dune index f6d7f070d65..13a01b96bed 100644 --- a/src/lib/transition_frontier_controller/dune +++ b/src/lib/transition_frontier_controller/dune @@ -2,4 +2,4 @@ (name transition_frontier_controller) (public_name transition_frontier_controller) (preprocess (pps ppx_coda)) - (libraries core_kernel consensus coda_intf coda_base syncable_ledger merkle_address merkle_mask sync_handler transition_handler test_genesis_ledger kademlia coda_networking ledger_catchup)) + (libraries core_kernel consensus coda_intf coda_base syncable_ledger merkle_address merkle_mask sync_handler transition_handler test_genesis_ledger coda_networking ledger_catchup)) diff --git a/src/lib/transition_frontier_controller/transition_frontier_controller.ml b/src/lib/transition_frontier_controller/transition_frontier_controller.ml index 320d927005b..bed1290bb32 100644 --- a/src/lib/transition_frontier_controller/transition_frontier_controller.ml +++ b/src/lib/transition_frontier_controller/transition_frontier_controller.ml @@ -34,7 +34,11 @@ let run ~logger ~trust_system ~verifier ~network ~time_controller Strict_pipe.create ~name:"block producer transition copy" Synchronous in Strict_pipe.transfer_while_writer_alive producer_transition_reader - producer_transition_writer_copy ~f:Fn.id + producer_transition_writer_copy ~f:(fun new_breadcrumb -> + Coda_networking.broadcast_state network + ( Transition_frontier.Breadcrumb.validated_transition new_breadcrumb + |> Coda_transition.External_transition.Validation.forget_validation ) ; + new_breadcrumb ) |> don't_wait_for ; let unprocessed_transition_cache = Transition_handler.Unprocessed_transition_cache.create ~logger diff --git a/src/lib/transition_handler/breadcrumb_builder.ml b/src/lib/transition_handler/breadcrumb_builder.ml index 60884f75450..f42626ee4b4 100644 --- a/src/lib/transition_handler/breadcrumb_builder.ml +++ b/src/lib/transition_handler/breadcrumb_builder.ml @@ -3,6 +3,7 @@ open Core open Async open Cache_lib open Coda_transition +open Network_peer let build_subtrees_of_breadcrumbs ~logger ~verifier ~trust_system ~frontier ~initial_hash subtrees_of_enveloped_transitions = @@ -126,7 +127,7 @@ let build_subtrees_of_breadcrumbs ~logger ~verifier ~trust_system ~frontier failwith "build_subtrees_of_breadcrumbs: sender of \ external transition should not be Local" - | Remote inet_addr -> + | Remote (inet_addr, _peer_id) -> Set.add inet_addrs inet_addr ) in let ip_addresses = Set.to_list ip_address_set in diff --git a/src/lib/transition_handler/catchup_scheduler.ml b/src/lib/transition_handler/catchup_scheduler.ml index 20abbd90cc0..87f6aea0ce5 100644 --- a/src/lib/transition_handler/catchup_scheduler.ml +++ b/src/lib/transition_handler/catchup_scheduler.ml @@ -16,6 +16,7 @@ open Cache_lib open Otp_lib open Coda_base open Coda_transition +open Network_peer type t = { logger: Logger.t diff --git a/src/lib/transition_handler/processor.ml b/src/lib/transition_handler/processor.ml index 93fb9bd2a4c..e8483934605 100644 --- a/src/lib/transition_handler/processor.ml +++ b/src/lib/transition_handler/processor.ml @@ -14,6 +14,7 @@ open Coda_state open Cache_lib open O1trace open Coda_transition +open Network_peer module Transition_frontier_validation = External_transition.Transition_frontier_validation (Transition_frontier) diff --git a/src/lib/transition_handler/unprocessed_transition_cache.ml b/src/lib/transition_handler/unprocessed_transition_cache.ml index 05ff48820b8..5903d61fc61 100644 --- a/src/lib/transition_handler/unprocessed_transition_cache.ml +++ b/src/lib/transition_handler/unprocessed_transition_cache.ml @@ -6,6 +6,7 @@ open Core_kernel open Coda_base open Coda_transition +open Network_peer module Name = struct let t = __MODULE__ diff --git a/src/lib/transition_handler/validator.ml b/src/lib/transition_handler/validator.ml index 7a72c4d5de3..264cea6f0a9 100644 --- a/src/lib/transition_handler/validator.ml +++ b/src/lib/transition_handler/validator.ml @@ -5,6 +5,7 @@ open Coda_base open Coda_state open Cache_lib open Coda_transition +open Network_peer let validate_transition ~logger ~frontier ~unprocessed_transition_cache (enveloped_transition : diff --git a/src/lib/transition_router/initial_validator.ml b/src/lib/transition_router/initial_validator.ml index fa4074d6a21..5d876dcf6cb 100644 --- a/src/lib/transition_router/initial_validator.ml +++ b/src/lib/transition_router/initial_validator.ml @@ -5,6 +5,7 @@ open Coda_base open Coda_state open Signature_lib open Coda_transition +open Network_peer let max_blocklength_observed = ref 0 @@ -144,7 +145,9 @@ let run ~logger ~trust_system ~verifier ~transition_reader don't_wait_for (Reader.iter transition_reader ~f:(fun network_transition -> if Ivar.is_full initialization_finish_signal then ( - let `Transition transition_env, `Time_received time_received = + let ( `Transition transition_env + , `Time_received time_received + , `Valid_cb is_valid_cb ) = network_transition in let transition_with_hash = @@ -168,10 +171,14 @@ let run ~logger ~trust_system ~verifier ~transition_reader >>= defer validate_delta_transition_chain) with | Ok verified_transition -> + External_transition.poke_validation_callback + (Envelope.Incoming.data transition_env) + is_valid_cb ; Envelope.Incoming.wrap ~data:verified_transition ~sender |> Writer.write valid_transition_writer ; return () | Error error -> + is_valid_cb false ; handle_validation_error ~logger ~trust_system ~sender ~state_hash:(With_hash.hash transition_with_hash) error ) diff --git a/src/lib/transition_router/transition_router.ml b/src/lib/transition_router/transition_router.ml index 8f515f42ea4..23a0711c5a7 100644 --- a/src/lib/transition_router/transition_router.ml +++ b/src/lib/transition_router/transition_router.ml @@ -4,6 +4,7 @@ open Coda_state open Pipe_lib open Coda_transition open O1trace +open Network_peer let create_bufferred_pipe ?name () = Strict_pipe.create ?name (Buffered (`Capacity 50, `Overflow Crash)) @@ -80,7 +81,7 @@ let start_bootstrap_controller ~logger ~trust_system ~verifier ~network let download_best_tip ~logger ~network ~verifier ~trust_system ~most_recent_valid_block_writer = let num_peers = 8 in - let peers = Coda_networking.random_peers network num_peers in + let%bind peers = Coda_networking.random_peers network num_peers in Logger.info logger ~module_:__MODULE__ ~location:__LOC__ "Requesting peers for their best tip to do initialization" ; let open Deferred.Option.Let_syntax in @@ -115,7 +116,7 @@ let download_best_tip ~logger ~network ~verifier ~trust_system | Ok (`Root _, `Best_tip candidate_best_tip) -> let enveloped_candidate_best_tip = Envelope.Incoming.wrap ~data:candidate_best_tip - ~sender:(Envelope.Sender.Remote peer.host) + ~sender:(Envelope.Sender.Remote (peer.host, peer.peer_id)) in return @@ Option.merge acc @@ -175,11 +176,13 @@ let wait_for_high_connectivity ~logger ~network = Logger.info logger ~module_:__MODULE__ ~location:__LOC__ "Already connected to enough peers, start initialization" ) ; ( after (Time_ns.Span.of_sec connectivity_time_upperbound) - >>| fun () -> + >>= fun () -> + Coda_networking.peers network + >>| fun peers -> if not @@ Deferred.is_determined high_connectivity then Logger.info logger ~module_:__MODULE__ ~location:__LOC__ ~metadata: - [ ("num peers", `Int (List.length @@ Coda_networking.peers network)) + [ ("num peers", `Int (List.length peers)) ; ( "max seconds to wait for high connectivity" , `Float connectivity_time_upperbound ) ] "Will start initialization without connecting with too many peers" ) @@ -251,8 +254,8 @@ let initialize ~logger ~network ~verifier ~trust_system ~time_controller { Consensus.Hooks.Rpcs.query= (fun peer rpc query -> Coda_networking.( - query_peer network peer (Rpcs.Consensus_rpc rpc) - query) ) } + query_peer network peer.peer_id + (Rpcs.Consensus_rpc rpc) query) ) } sync_jobs with | Error e -> diff --git a/src/lib/trust_system/dune b/src/lib/trust_system/dune index 4d08aa9edf7..bdb0cb58840 100644 --- a/src/lib/trust_system/dune +++ b/src/lib/trust_system/dune @@ -2,7 +2,7 @@ (name trust_system) (public_name trust_system) (library_flags (-linkall)) - (libraries core async envelope key_value_database logger pipe_lib rocksdb coda_metrics module_version) + (libraries core async network_peer key_value_database logger pipe_lib rocksdb coda_metrics module_version) (inline_tests) (preprocessor_deps ../../config.mlh) (preprocess (pps ppx_base ppx_coda ppx_let ppx_assert ppx_deriving.std ppx_deriving_yojson ppx_sexp_conv ppx_bin_prot ppx_custom_printf ppx_inline_test ppx_optcomp ppx_snarky ppx_deriving_yojson ppx_fields_conv bisect_ppx -conditional)) diff --git a/src/lib/trust_system/trust_system.ml b/src/lib/trust_system/trust_system.ml index 8bc4bdc8b1e..a6da376c35d 100644 --- a/src/lib/trust_system/trust_system.ml +++ b/src/lib/trust_system/trust_system.ml @@ -162,7 +162,11 @@ module Peer_trust = Peer_trust.Make (Actions) include Peer_trust let record_envelope_sender : - t -> Logger.t -> Envelope.Sender.t -> Actions.t -> unit Deferred.t = + t + -> Logger.t + -> Network_peer.Envelope.Sender.t + -> Actions.t + -> unit Deferred.t = fun t logger sender action -> match sender with | Local -> @@ -171,5 +175,5 @@ let record_envelope_sender : ~metadata:action_metadata "Attempted to record trust action of ourselves: %s" action_fmt ; Deferred.unit - | Remote inet_addr -> + | Remote (inet_addr, _peer_id) -> record t logger inet_addr action diff --git a/src/kademlia.opam b/src/node_addrs_and_ports.opam similarity index 100% rename from src/kademlia.opam rename to src/node_addrs_and_ports.opam