From 7d83f19746e1f5c3ea113cbf0f134fdf99227cc7 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 23 Apr 2019 11:53:04 +1200 Subject: [PATCH 01/13] Use setup-depends from nix-tools output --- builder/hspkg-builder.nix | 29 +++-------- builder/setup-builder.nix | 107 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 21 deletions(-) create mode 100644 builder/setup-builder.nix diff --git a/builder/hspkg-builder.nix b/builder/hspkg-builder.nix index b1b74dbf04..80f969b447 100644 --- a/builder/hspkg-builder.nix +++ b/builder/hspkg-builder.nix @@ -1,4 +1,4 @@ -{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, buildGHC, fetchurl, runCommand, pkgconfig, comp-builder }: +{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, buildGHC, fetchurl, runCommand, pkgconfig, comp-builder, nonReinstallablePkgs, hsPkgs }: { flags @@ -38,26 +38,13 @@ let setup = if package.buildType == "Simple" then defaultSetup - else stdenv.mkDerivation { - name = "${name}-setup"; - nativeBuildInputs = [buildGHC]; - inherit src; - phases = ["unpackPhase" "buildPhase" "installPhase"]; - buildPhase = '' - for f in Setup.hs Setup.lhs; do - if [ -f $f ]; then - echo Compiling package $f - ghc $f --make -o ./Setup - setup=$(pwd)/Setup - fi - done - [ -f ./Setup ] || (echo Failed to build Setup && exit 1) - ''; - - installPhase = '' - mkdir -p $out/bin - install ./Setup $out/bin/Setup - ''; + else haskellLib.weakCallPackage pkgs ./setup-builder.nix { + ghc = buildGHC; + setup-depends = package.setup-depends; + hsPkgs = hsPkgs.buildPackages; + inherit haskellLib nonReinstallablePkgs + package name src flags pkgconfig + ; }; buildComp = componentId: component: comp-builder { diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix new file mode 100644 index 0000000000..1f662c8440 --- /dev/null +++ b/builder/setup-builder.nix @@ -0,0 +1,107 @@ +{ stdenv, buildPackages, ghc, lib, pkgconfig, writeText, runCommand +, haskellLib, nonReinstallablePkgs, hsPkgs, setup-depends +, package, name, src, flags }: + +let + fullName = "${name}-setup"; + + flagsAndConfig = field: xs: lib.optionalString (xs != []) '' + echo ${lib.concatStringsSep " " (map (x: "--${field}=${x}") xs)} >> $out/configure-flags + echo "${field}: ${lib.concatStringsSep " " xs}" >> $out/cabal.config + ''; + + flatDepends = + let + makePairs = map (p: rec { key="${val}"; val=(p.components.library or p); }); + closure = builtins.genericClosure { + startSet = makePairs setup-depends; + operator = {val,...}: makePairs val.config.depends; + }; + in map ({val,...}: val) closure; + + configFiles = runCommand "${fullName}-config" { nativeBuildInputs = [ghc]; } ('' + mkdir -p $out + + # Calls ghc-pkg for the target platform + target-pkg() { + ${ghc.targetPrefix}ghc-pkg "$@" + } + + target-pkg init $out/package.conf.d + + # Copy over the nonReinstallablePkgs from the global package db. + # Note: we need to use --global-package-db with ghc-pkg to prevent it + # from looking into the implicit global package db when registering the package. + ${lib.concatMapStringsSep "\n" (p: '' + target-pkg describe ${p} | target-pkg --force --global-package-db $out/package.conf.d register - || true + '') nonReinstallablePkgs} + + ${lib.concatMapStringsSep "\n" (p: '' + target-pkg --package-db ${p}/package.conf.d dump | target-pkg --force --package-db $out/package.conf.d register - + '') flatDepends} + + # Note: we pass `clear` first to ensure that we never consult the implicit global package db. + ${flagsAndConfig "package-db" ["clear" "$out/package.conf.d"]} + + echo ${lib.concatStringsSep " " (lib.mapAttrsToList (fname: val: "--flags=${lib.optionalString (!val) "-" + fname}") flags)} >> $out/configure-flags + + '' + # This code originates in the `generic-builder.nix` from nixpkgs. However GHC has been fixed + # to drop unused libraries referneced from libraries; and this patch is usually included in the + # nixpkgs's GHC builds. This doesn't sadly make this stupid hack unnecessary. It resurfes in + # the form of Cabal trying to be smart. Cabal when linking a library figures out that you likely + # need those `rpath` entries, and passes `-optl-Wl,-rpath,...` for each dynamic library path to + # GHC, thus subverting the linker and forcing it to insert all those RPATHs weather or not they + # are needed. We therfore reuse the linker hack here to move all al dynamic lirbaries into a + # common folder (as links) and thus prevent Cabal from going nuts. + # + # TODO: Fix Cabal. + # TODO: this is only needed if we do dynamic libraries. + + lib.optionalString stdenv.isDarwin '' + # Work around a limit in the macOS Sierra linker on the number of paths + # referenced by any one dynamic library: + # + # Create a local directory with symlinks of the *.dylib (macOS shared + # libraries) from all the dependencies. + local dynamicLinksDir="$out/lib/links" + mkdir -p $dynamicLinksDir + for d in $(grep dynamic-library-dirs "$out/package.conf.d/"*|awk '{print $2}'|sort -u); do + ln -s "$d/"*.dylib $dynamicLinksDir + done + # Edit the local package DB to reference the links directory. + for f in "$out/package.conf.d/"*.conf; do + sed -i "s,dynamic-library-dirs: .*,dynamic-library-dirs: $dynamicLinksDir," $f + done + '' + '' + target-pkg --package-db $out/package.conf.d recache + '' + '' + target-pkg --package-db $out/package.conf.d check + ''); + +in stdenv.lib.fix (drv: + +stdenv.mkDerivation { + name = "${fullName}"; + inherit src; + nativeBuildInputs = [ghc]; + + CABAL_CONFIG = configFiles + /cabal.config; + phases = ["unpackPhase" "buildPhase" "installPhase"]; + buildPhase = '' + for f in Setup.hs Setup.lhs; do + if [ -f $f ]; then + echo Compiling package $f + ghc $f --make -o ./Setup + setup=$(pwd)/Setup + fi + done + [ -f ./Setup ] || (echo Failed to build Setup && exit 1) + ''; + + installPhase = '' + mkdir -p $out/bin + install ./Setup $out/bin/Setup + ''; +}) + + From 591cdfe8f68dfd761000d0762a48add3fb33ff03 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 23 Apr 2019 17:53:52 +1200 Subject: [PATCH 02/13] Use `-package ghc` when building Setup.hs --- builder/setup-builder.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix index 1f662c8440..84fea44e42 100644 --- a/builder/setup-builder.nix +++ b/builder/setup-builder.nix @@ -19,6 +19,8 @@ let }; in map ({val,...}: val) closure; + includeGhcPackage = lib.any (p: p.identifier.name == "ghc") setup-depends; + configFiles = runCommand "${fullName}-config" { nativeBuildInputs = [ghc]; } ('' mkdir -p $out @@ -91,7 +93,8 @@ stdenv.mkDerivation { for f in Setup.hs Setup.lhs; do if [ -f $f ]; then echo Compiling package $f - ghc $f --make -o ./Setup + ghc $f '' + (if includeGhcPackage then "-package ghc " else "") + + ''--make -o ./Setup setup=$(pwd)/Setup fi done From fea049293ca1a746ef8f7cbe65881ef380787a2e Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 30 Apr 2019 17:56:30 +1200 Subject: [PATCH 03/13] Include --package-db when building Setup --- builder/setup-builder.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix index 84fea44e42..668f6b07b5 100644 --- a/builder/setup-builder.nix +++ b/builder/setup-builder.nix @@ -94,7 +94,7 @@ stdenv.mkDerivation { if [ -f $f ]; then echo Compiling package $f ghc $f '' + (if includeGhcPackage then "-package ghc " else "") - + ''--make -o ./Setup + + ''-package-db ${configFiles}/package.conf.d --make -o ./Setup setup=$(pwd)/Setup fi done From 0031f3031e2ab7ffd025274f704ec0e2c1718287 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 29 May 2019 17:46:39 +1200 Subject: [PATCH 04/13] Fix missing args resulting from rebase error --- builder/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/default.nix b/builder/default.nix index d8f532cd9f..90cd68b2c1 100644 --- a/builder/default.nix +++ b/builder/default.nix @@ -45,7 +45,7 @@ in { # Build a Haskell package from its config. # TODO: this pkgs is the adjusted pkgs, but pkgs.pkgs is unadjusted build-package = haskellLib.weakCallPackage pkgs ./hspkg-builder.nix { - inherit haskellLib ghc buildGHC comp-builder; + inherit haskellLib ghc buildGHC comp-builder nonReinstallablePkgs hsPkgs; }; inherit shellFor; From 7f89e65b573b6e2b5f07c08a06d8954a349efeaf Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Mon, 17 Jun 2019 16:10:10 +1200 Subject: [PATCH 05/13] Use makeConfigFiles --- builder/setup-builder.nix | 86 +++++++-------------------------------- 1 file changed, 14 insertions(+), 72 deletions(-) diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix index 668f6b07b5..f6d5895541 100644 --- a/builder/setup-builder.nix +++ b/builder/setup-builder.nix @@ -5,80 +5,22 @@ let fullName = "${name}-setup"; - flagsAndConfig = field: xs: lib.optionalString (xs != []) '' - echo ${lib.concatStringsSep " " (map (x: "--${field}=${x}") xs)} >> $out/configure-flags - echo "${field}: ${lib.concatStringsSep " " xs}" >> $out/cabal.config - ''; - - flatDepends = - let - makePairs = map (p: rec { key="${val}"; val=(p.components.library or p); }); - closure = builtins.genericClosure { - startSet = makePairs setup-depends; - operator = {val,...}: makePairs val.config.depends; - }; - in map ({val,...}: val) closure; - includeGhcPackage = lib.any (p: p.identifier.name == "ghc") setup-depends; - configFiles = runCommand "${fullName}-config" { nativeBuildInputs = [ghc]; } ('' - mkdir -p $out - - # Calls ghc-pkg for the target platform - target-pkg() { - ${ghc.targetPrefix}ghc-pkg "$@" - } - - target-pkg init $out/package.conf.d - - # Copy over the nonReinstallablePkgs from the global package db. - # Note: we need to use --global-package-db with ghc-pkg to prevent it - # from looking into the implicit global package db when registering the package. - ${lib.concatMapStringsSep "\n" (p: '' - target-pkg describe ${p} | target-pkg --force --global-package-db $out/package.conf.d register - || true - '') nonReinstallablePkgs} - - ${lib.concatMapStringsSep "\n" (p: '' - target-pkg --package-db ${p}/package.conf.d dump | target-pkg --force --package-db $out/package.conf.d register - - '') flatDepends} - - # Note: we pass `clear` first to ensure that we never consult the implicit global package db. - ${flagsAndConfig "package-db" ["clear" "$out/package.conf.d"]} - - echo ${lib.concatStringsSep " " (lib.mapAttrsToList (fname: val: "--flags=${lib.optionalString (!val) "-" + fname}") flags)} >> $out/configure-flags - - '' - # This code originates in the `generic-builder.nix` from nixpkgs. However GHC has been fixed - # to drop unused libraries referneced from libraries; and this patch is usually included in the - # nixpkgs's GHC builds. This doesn't sadly make this stupid hack unnecessary. It resurfes in - # the form of Cabal trying to be smart. Cabal when linking a library figures out that you likely - # need those `rpath` entries, and passes `-optl-Wl,-rpath,...` for each dynamic library path to - # GHC, thus subverting the linker and forcing it to insert all those RPATHs weather or not they - # are needed. We therfore reuse the linker hack here to move all al dynamic lirbaries into a - # common folder (as links) and thus prevent Cabal from going nuts. - # - # TODO: Fix Cabal. - # TODO: this is only needed if we do dynamic libraries. - + lib.optionalString stdenv.isDarwin '' - # Work around a limit in the macOS Sierra linker on the number of paths - # referenced by any one dynamic library: - # - # Create a local directory with symlinks of the *.dylib (macOS shared - # libraries) from all the dependencies. - local dynamicLinksDir="$out/lib/links" - mkdir -p $dynamicLinksDir - for d in $(grep dynamic-library-dirs "$out/package.conf.d/"*|awk '{print $2}'|sort -u); do - ln -s "$d/"*.dylib $dynamicLinksDir - done - # Edit the local package DB to reference the links directory. - for f in "$out/package.conf.d/"*.conf; do - sed -i "s,dynamic-library-dirs: .*,dynamic-library-dirs: $dynamicLinksDir," $f - done - '' + '' - target-pkg --package-db $out/package.conf.d recache - '' + '' - target-pkg --package-db $out/package.conf.d check - ''); + makeConfigFiles = haskellLib.weakCallPackage buildPackages ./make-config-files.nix { + inherit ghc haskellLib nonReinstallablePkgs; + }; + + configFiles = makeConfigFiles { + inherit (package) identifier; + inherit fullName flags; + component = { + depends = setup-depends; + libs = []; + frameworks = []; + doExactConfig = false; + }; + }; in stdenv.lib.fix (drv: From 87d70745a8ed4758b077dbaa7ba60e591857cc2b Mon Sep 17 00:00:00 2001 From: Rodney Lorrimar Date: Tue, 18 Jun 2019 22:18:25 +1000 Subject: [PATCH 06/13] Suggestion: wire parts of the builder together in the same place --- builder/default.nix | 8 ++++- builder/hspkg-builder.nix | 10 ++---- builder/setup-builder.nix | 64 ++++++++++++++++++--------------------- 3 files changed, 39 insertions(+), 43 deletions(-) diff --git a/builder/default.nix b/builder/default.nix index 90cd68b2c1..0876a7210b 100644 --- a/builder/default.nix +++ b/builder/default.nix @@ -6,6 +6,12 @@ let inherit ghc haskellLib makeConfigFiles ghcForComponent hsPkgs; }; + setup-builder = haskellLib.weakCallPackage pkgs ./setup-builder.nix { + ghc = buildGHC; + hsPkgs = hsPkgs.buildPackages; + inherit haskellLib nonReinstallablePkgs makeConfigFiles; + }; + # Wraps GHC to provide dependencies in a way that works for both the # component builder and for nix-shells. ghcForComponent = import ./ghc-for-component-wrapper.nix { @@ -45,7 +51,7 @@ in { # Build a Haskell package from its config. # TODO: this pkgs is the adjusted pkgs, but pkgs.pkgs is unadjusted build-package = haskellLib.weakCallPackage pkgs ./hspkg-builder.nix { - inherit haskellLib ghc buildGHC comp-builder nonReinstallablePkgs hsPkgs; + inherit haskellLib ghc buildGHC comp-builder setup-builder; }; inherit shellFor; diff --git a/builder/hspkg-builder.nix b/builder/hspkg-builder.nix index 80f969b447..922902ed0b 100644 --- a/builder/hspkg-builder.nix +++ b/builder/hspkg-builder.nix @@ -1,4 +1,4 @@ -{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, buildGHC, fetchurl, runCommand, pkgconfig, comp-builder, nonReinstallablePkgs, hsPkgs }: +{ pkgs, buildPackages, stdenv, lib, haskellLib, ghc, buildGHC, fetchurl, runCommand, comp-builder, setup-builder }: { flags @@ -38,13 +38,9 @@ let setup = if package.buildType == "Simple" then defaultSetup - else haskellLib.weakCallPackage pkgs ./setup-builder.nix { - ghc = buildGHC; + else setup-builder { setup-depends = package.setup-depends; - hsPkgs = hsPkgs.buildPackages; - inherit haskellLib nonReinstallablePkgs - package name src flags pkgconfig - ; + inherit package name src flags; }; buildComp = componentId: component: comp-builder { diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix index f6d5895541..231367cba1 100644 --- a/builder/setup-builder.nix +++ b/builder/setup-builder.nix @@ -1,16 +1,12 @@ -{ stdenv, buildPackages, ghc, lib, pkgconfig, writeText, runCommand -, haskellLib, nonReinstallablePkgs, hsPkgs, setup-depends -, package, name, src, flags }: +{ stdenv, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeConfigFiles }: + +{ setup-depends, package, name, src, flags }: let fullName = "${name}-setup"; includeGhcPackage = lib.any (p: p.identifier.name == "ghc") setup-depends; - makeConfigFiles = haskellLib.weakCallPackage buildPackages ./make-config-files.nix { - inherit ghc haskellLib nonReinstallablePkgs; - }; - configFiles = makeConfigFiles { inherit (package) identifier; inherit fullName flags; @@ -22,31 +18,29 @@ let }; }; -in stdenv.lib.fix (drv: - -stdenv.mkDerivation { - name = "${fullName}"; - inherit src; - nativeBuildInputs = [ghc]; - - CABAL_CONFIG = configFiles + /cabal.config; - phases = ["unpackPhase" "buildPhase" "installPhase"]; - buildPhase = '' - for f in Setup.hs Setup.lhs; do - if [ -f $f ]; then - echo Compiling package $f - ghc $f '' + (if includeGhcPackage then "-package ghc " else "") - + ''-package-db ${configFiles}/package.conf.d --make -o ./Setup - setup=$(pwd)/Setup - fi - done - [ -f ./Setup ] || (echo Failed to build Setup && exit 1) - ''; - - installPhase = '' - mkdir -p $out/bin - install ./Setup $out/bin/Setup - ''; -}) - - +in + stdenv.lib.fix (drv: + stdenv.mkDerivation { + name = "${fullName}"; + inherit src; + nativeBuildInputs = [ghc]; + + CABAL_CONFIG = configFiles + /cabal.config; + phases = ["unpackPhase" "buildPhase" "installPhase"]; + buildPhase = '' + for f in Setup.hs Setup.lhs; do + if [ -f $f ]; then + echo Compiling package $f + ghc $f '' + (if includeGhcPackage then "-package ghc " else "") + + ''-package-db ${configFiles}/package.conf.d --make -o ./Setup + setup=$(pwd)/Setup + fi + done + [ -f ./Setup ] || (echo Failed to build Setup && exit 1) + ''; + + installPhase = '' + mkdir -p $out/bin + install ./Setup $out/bin/Setup + ''; + }) From 95f1ae7eec3fad2c548be748c9f0c7a7d4b37e6a Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 2 Jul 2019 15:06:30 +1200 Subject: [PATCH 07/13] Add missing lib arg --- builder/setup-builder.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix index 231367cba1..4a95170c8e 100644 --- a/builder/setup-builder.nix +++ b/builder/setup-builder.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeConfigFiles }: +{ stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeConfigFiles }: { setup-depends, package, name, src, flags }: From 387270885af8f8413f8bff4eaa01ff0b797e5f6d Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Tue, 2 Jul 2019 21:21:40 +1200 Subject: [PATCH 08/13] Use build GHC and packages for building setup --- builder/default.nix | 8 +++++++- builder/setup-builder.nix | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/builder/default.nix b/builder/default.nix index 0876a7210b..e231cab14e 100644 --- a/builder/default.nix +++ b/builder/default.nix @@ -9,7 +9,7 @@ let setup-builder = haskellLib.weakCallPackage pkgs ./setup-builder.nix { ghc = buildGHC; hsPkgs = hsPkgs.buildPackages; - inherit haskellLib nonReinstallablePkgs makeConfigFiles; + inherit haskellLib nonReinstallablePkgs makeSetupConfigFiles; }; # Wraps GHC to provide dependencies in a way that works for both the @@ -25,6 +25,12 @@ let makeConfigFiles = haskellLib.weakCallPackage pkgs ./make-config-files.nix { inherit ghc haskellLib nonReinstallablePkgs; }; + # When building setup depends we need to use the build systems GHC and Packages + makeSetupConfigFiles = haskellLib.weakCallPackage buildPackages ./make-config-files.nix { + inherit haskellLib nonReinstallablePkgs; + ghc = buildGHC; + }; + hoogleLocal = let nixpkgsHoogleLocal = import (pkgs.path + /pkgs/development/haskell-modules/hoogle.nix); diff --git a/builder/setup-builder.nix b/builder/setup-builder.nix index 4a95170c8e..200695190b 100644 --- a/builder/setup-builder.nix +++ b/builder/setup-builder.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeConfigFiles }: +{ stdenv, lib, buildPackages, haskellLib, ghc, nonReinstallablePkgs, hsPkgs, makeSetupConfigFiles }: { setup-depends, package, name, src, flags }: @@ -7,7 +7,7 @@ let includeGhcPackage = lib.any (p: p.identifier.name == "ghc") setup-depends; - configFiles = makeConfigFiles { + configFiles = makeSetupConfigFiles { inherit (package) identifier; inherit fullName flags; component = { From 021e65a55e5ff8a3d3c721f0035f202102ef7640 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 3 Jul 2019 13:30:20 +1200 Subject: [PATCH 09/13] Manual fix for nix-tools/pkgs.nix --- nix-tools/pkgs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nix-tools/pkgs.nix b/nix-tools/pkgs.nix index ac335b879c..15cb789ba5 100644 --- a/nix-tools/pkgs.nix +++ b/nix-tools/pkgs.nix @@ -2,6 +2,7 @@ pkgs = hackage: { packages = { + "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.6").revisions).default; "criterion-measurement".revision = (((hackage."criterion-measurement")."0.1.1.0").revisions).default; "test-framework-hunit".revision = (((hackage."test-framework-hunit")."0.3.0.2").revisions).default; "test-framework-hunit".flags.base4 = true; From a1fd9dedd1d0227765b13cd6d83eb6d1e74c5fa0 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 4 Jul 2019 12:35:49 +1200 Subject: [PATCH 10/13] Regenerate nix-tools --- nix-tools/.plan.nix/nix-tools.nix | 1 + nix-tools/pkgs.nix | 349 ++++++++++++++---------------- 2 files changed, 167 insertions(+), 183 deletions(-) diff --git a/nix-tools/.plan.nix/nix-tools.nix b/nix-tools/.plan.nix/nix-tools.nix index 834fd31f07..383f868327 100644 --- a/nix-tools/.plan.nix/nix-tools.nix +++ b/nix-tools/.plan.nix/nix-tools.nix @@ -142,6 +142,7 @@ (hsPkgs.http-client-tls) (hsPkgs.http-client) (hsPkgs.http-types) + (hsPkgs.unordered-containers) ]; }; "truncate-index" = { diff --git a/nix-tools/pkgs.nix b/nix-tools/pkgs.nix index 15cb789ba5..481d36753a 100644 --- a/nix-tools/pkgs.nix +++ b/nix-tools/pkgs.nix @@ -2,33 +2,47 @@ pkgs = hackage: { packages = { - "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.6").revisions).default; "criterion-measurement".revision = (((hackage."criterion-measurement")."0.1.1.0").revisions).default; + "criterion-measurement".flags.fast = false; "test-framework-hunit".revision = (((hackage."test-framework-hunit")."0.3.0.2").revisions).default; "test-framework-hunit".flags.base4 = true; "test-framework-hunit".flags.base3 = false; "http-client".revision = (((hackage."http-client")."0.5.14").revisions).default; + "http-client".flags.network-uri = true; "cookie".revision = (((hackage."cookie")."0.4.4").revisions).default; - "void".revision = (((hackage."void")."0.7.2").revisions).default; + "void".revision = (((hackage."void")."0.7.3").revisions).default; + "void".flags.safe = false; "semigroupoids".revision = (((hackage."semigroupoids")."5.3.2").revisions).default; + "semigroupoids".flags.comonad = true; + "semigroupoids".flags.doctests = true; + "semigroupoids".flags.unordered-containers = true; + "semigroupoids".flags.distributive = true; + "semigroupoids".flags.tagged = true; + "semigroupoids".flags.containers = true; + "semigroupoids".flags.contravariant = true; "free".revision = (((hackage."free")."5.1.1").revisions).default; "tf-random".revision = (((hackage."tf-random")."0.5").revisions).default; "Only".revision = (((hackage."Only")."0.1").revisions).default; "cereal".revision = (((hackage."cereal")."0.5.8.0").revisions).default; + "cereal".flags.bytestring-builder = false; "exceptions".revision = (((hackage."exceptions")."0.10.2").revisions).default; "cryptohash-sha256".revision = (((hackage."cryptohash-sha256")."0.11.101.0").revisions).default; + "cryptohash-sha256".flags.exe = false; "binary".revision = (((hackage."binary")."0.8.6.0").revisions).default; "interpolate".revision = (((hackage."interpolate")."0.2.0").revisions).default; "generic-random".revision = (((hackage."generic-random")."1.2.0.0").revisions).default; "tar".revision = (((hackage."tar")."0.5.1.0").revisions).default; "tar".flags.old-time = false; "tar".flags.old-bytestring = false; - "regex-tdfa".revision = (((hackage."regex-tdfa")."1.2.3.1").revisions).default; + "regex-tdfa".revision = (((hackage."regex-tdfa")."1.2.3.2").revisions).default; + "regex-tdfa".flags.devel = false; "ghc-prim".revision = (((hackage."ghc-prim")."0.5.3").revisions).default; "text-metrics".revision = (((hackage."text-metrics")."0.3.0").revisions).default; "text-metrics".flags.dev = false; "utf8-string".revision = (((hackage."utf8-string")."1.0.1.1").revisions).default; "bifunctors".revision = (((hackage."bifunctors")."5.5.4").revisions).default; + "bifunctors".flags.semigroups = true; + "bifunctors".flags.tagged = true; "hashing".revision = (((hackage."hashing")."0.1.0.1").revisions).default; "extra".revision = (((hackage."extra")."1.6.15").revisions).default; "haskeline".revision = (((hackage."haskeline")."0.7.4.3").revisions).default; @@ -41,10 +55,11 @@ "stm".revision = (((hackage."stm")."2.5.0.0").revisions).default; "tasty-th".revision = (((hackage."tasty-th")."0.1.7").revisions).default; "text-short".revision = (((hackage."text-short")."0.1.2").revisions).default; + "text-short".flags.asserts = false; "microstache".revision = (((hackage."microstache")."1.0.1.1").revisions).default; "base-compat-batteries".revision = (((hackage."base-compat-batteries")."0.10.5").revisions).default; "hourglass".revision = (((hackage."hourglass")."0.2.12").revisions).default; - "case-insensitive".revision = (((hackage."case-insensitive")."1.2.0.11").revisions).default; + "case-insensitive".revision = (((hackage."case-insensitive")."1.2.1.0").revisions).default; "extensible-exceptions".revision = (((hackage."extensible-exceptions")."0.1.1.4").revisions).default; "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default; "tasty-quickcheck".revision = (((hackage."tasty-quickcheck")."0.10.1").revisions).default; @@ -53,50 +68,84 @@ "network-uri".revision = (((hackage."network-uri")."2.6.1.0").revisions).default; "asn1-parse".revision = (((hackage."asn1-parse")."0.9.4").revisions).default; "regex-base".revision = (((hackage."regex-base")."0.93.2").revisions).default; + "regex-base".flags.splitbase = true; + "regex-base".flags.newbase = true; "zlib".revision = (((hackage."zlib")."0.6.2").revisions).default; + "zlib".flags.non-blocking-ffi = false; + "zlib".flags.pkg-config = false; "rts".revision = (((hackage."rts")."1.0").revisions).default; "mmorph".revision = (((hackage."mmorph")."1.1.3").revisions).default; "js-flot".revision = (((hackage."js-flot")."0.8.3").revisions).default; "statistics".revision = (((hackage."statistics")."0.15.0.0").revisions).default; "th-expand-syns".revision = (((hackage."th-expand-syns")."0.4.4.0").revisions).default; "regex-posix".revision = (((hackage."regex-posix")."0.95.2").revisions).default; + "regex-posix".flags.splitbase = true; + "regex-posix".flags.newbase = true; "cryptonite".revision = (((hackage."cryptonite")."0.25").revisions).default; + "cryptonite".flags.support_sse = false; + "cryptonite".flags.integer-gmp = true; + "cryptonite".flags.support_rdrand = true; + "cryptonite".flags.support_aesni = true; + "cryptonite".flags.support_deepseq = true; + "cryptonite".flags.support_pclmuldq = false; + "cryptonite".flags.check_alignment = false; + "cryptonite".flags.old_toolchain_inliner = false; "microlens-aeson".revision = (((hackage."microlens-aeson")."2.3.0.4").revisions).default; - "clock".revision = (((hackage."clock")."0.7.2").revisions).default; + "clock".revision = (((hackage."clock")."0.8").revisions).default; + "clock".flags.llvm = false; "adjunctions".revision = (((hackage."adjunctions")."4.4").revisions).default; "cryptohash-md5".revision = (((hackage."cryptohash-md5")."0.11.100.1").revisions).default; "invariant".revision = (((hackage."invariant")."0.5.3").revisions).default; "th-orphans".revision = (((hackage."th-orphans")."0.13.7").revisions).default; "pem".revision = (((hackage."pem")."0.2.4").revisions).default; "megaparsec".revision = (((hackage."megaparsec")."7.0.5").revisions).default; + "megaparsec".flags.dev = false; "syb".revision = (((hackage."syb")."0.7").revisions).default; "distributive".revision = (((hackage."distributive")."0.6").revisions).default; + "distributive".flags.semigroups = true; + "distributive".flags.tagged = true; "asn1-encoding".revision = (((hackage."asn1-encoding")."0.9.5").revisions).default; "vector-th-unbox".revision = (((hackage."vector-th-unbox")."0.2.1.6").revisions).default; "QuickCheck".revision = (((hackage."QuickCheck")."2.12.6.1").revisions).default; + "QuickCheck".flags.templatehaskell = true; "scientific".revision = (((hackage."scientific")."0.3.6.2").revisions).default; - "tasty".revision = (((hackage."tasty")."1.2").revisions).default; + "scientific".flags.integer-simple = false; + "scientific".flags.bytestring-builder = false; + "tasty".revision = (((hackage."tasty")."1.2.2").revisions).default; "tasty".flags.clock = true; - "hspec-discover".revision = (((hackage."hspec-discover")."2.7.1").revisions).default; "monadlist".revision = (((hackage."monadlist")."0.0.2").revisions).default; "half".revision = (((hackage."half")."0.3").revisions).default; "parallel".revision = (((hackage."parallel")."3.2.2.0").revisions).default; "deepseq".revision = (((hackage."deepseq")."1.4.4.0").revisions).default; + "hnix-store-core".revision = (((hackage."hnix-store-core")."0.1.0.0").revisions).default; + "hnix-store-core".flags.bounded_memory = false; "random".revision = (((hackage."random")."1.1").revisions).default; "uuid-types".revision = (((hackage."uuid-types")."1.0.3").revisions).default; "optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default; - "network".revision = (((hackage."network")."2.8.0.1").revisions).default; - "connection".revision = (((hackage."connection")."0.2.8").revisions).default; + "network".revision = (((hackage."network")."3.1.0.0").revisions).default; + "connection".revision = (((hackage."connection")."0.3.0").revisions).default; "async".revision = (((hackage."async")."2.2.1").revisions).default; + "async".flags.bench = false; "dlist".revision = (((hackage."dlist")."0.8.0.6").revisions).default; "conduit".revision = (((hackage."conduit")."1.3.1.1").revisions).default; "ref-tf".revision = (((hackage."ref-tf")."0.4.0.1").revisions).default; "x509-store".revision = (((hackage."x509-store")."1.6.7").revisions).default; - "constraints".revision = (((hackage."constraints")."0.10.1").revisions).default; + "constraints".revision = (((hackage."constraints")."0.11").revisions).default; "lens-family-th".revision = (((hackage."lens-family-th")."0.5.0.2").revisions).default; "semigroups".revision = (((hackage."semigroups")."0.18.5").revisions).default; + "semigroups".flags.bytestring = true; + "semigroups".flags.unordered-containers = true; + "semigroups".flags.text = true; + "semigroups".flags.tagged = true; + "semigroups".flags.containers = true; + "semigroups".flags.binary = true; + "semigroups".flags.hashable = true; + "semigroups".flags.transformers = true; + "semigroups".flags.deepseq = true; + "semigroups".flags.bytestring-builder = false; "HUnit".revision = (((hackage."HUnit")."1.6.0.0").revisions).default; "vector-instances".revision = (((hackage."vector-instances")."3.4").revisions).default; + "vector-instances".flags.hashable = true; "lifted-base".revision = (((hackage."lifted-base")."0.2.3.12").revisions).default; "parsec".revision = (((hackage."parsec")."3.1.13.0").revisions).default; "th-reify-many".revision = (((hackage."th-reify-many")."0.1.9").revisions).default; @@ -104,50 +153,89 @@ "hsc2hs".flags.in-ghc-tree = false; "directory".revision = (((hackage."directory")."1.3.3.0").revisions).default; "yaml".revision = (((hackage."yaml")."0.11.0.0").revisions).default; - "transformers-compat".revision = (((hackage."transformers-compat")."0.6.4").revisions).default; + "yaml".flags.no-exe = true; + "yaml".flags.no-examples = true; + "transformers-compat".revision = (((hackage."transformers-compat")."0.6.5").revisions).default; + "transformers-compat".flags.five = false; + "transformers-compat".flags.generic-deriving = true; + "transformers-compat".flags.two = false; + "transformers-compat".flags.five-three = true; + "transformers-compat".flags.mtl = true; + "transformers-compat".flags.four = false; + "transformers-compat".flags.three = false; "hpack".revision = (((hackage."hpack")."0.31.2").revisions).default; "template-haskell".revision = (((hackage."template-haskell")."2.14.0.0").revisions).default; "mono-traversable".revision = (((hackage."mono-traversable")."1.0.11.0").revisions).default; "vector".revision = (((hackage."vector")."0.12.0.3").revisions).default; + "vector".flags.unsafechecks = false; + "vector".flags.internalchecks = false; + "vector".flags.wall = false; + "vector".flags.boundschecks = true; "call-stack".revision = (((hackage."call-stack")."0.1.0").revisions).default; "primitive".revision = (((hackage."primitive")."0.6.4.0").revisions).default; - "profunctors".revision = (((hackage."profunctors")."5.3").revisions).default; + "profunctors".revision = (((hackage."profunctors")."5.4").revisions).default; "time-locale-compat".revision = (((hackage."time-locale-compat")."0.1.1.5").revisions).default; + "time-locale-compat".flags.old-locale = false; "safe".revision = (((hackage."safe")."0.3.17").revisions).default; "blaze-builder".revision = (((hackage."blaze-builder")."0.4.1.0").revisions).default; "base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default; "js-jquery".revision = (((hackage."js-jquery")."3.3.1").revisions).default; "terminal-size".revision = (((hackage."terminal-size")."0.3.2.1").revisions).default; "math-functions".revision = (((hackage."math-functions")."0.3.1.0").revisions).default; + "math-functions".flags.system-expm1 = false; "x509-system".revision = (((hackage."x509-system")."1.6.6").revisions).default; "keys".revision = (((hackage."keys")."3.12.2").revisions).default; - "ansi-terminal".revision = (((hackage."ansi-terminal")."0.8.2").revisions).default; + "ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default; + "ansi-terminal".flags.example = false; "vector-binary-instances".revision = (((hackage."vector-binary-instances")."0.2.5.1").revisions).default; "tagged".revision = (((hackage."tagged")."0.8.6").revisions).default; + "tagged".flags.transformers = true; + "tagged".flags.deepseq = true; "x509".revision = (((hackage."x509")."1.7.5").revisions).default; "cassava".revision = (((hackage."cassava")."0.5.1.0").revisions).default; + "cassava".flags.bytestring--lt-0_10_4 = false; "haskell-src-exts".revision = (((hackage."haskell-src-exts")."1.20.3").revisions).default; "lens".revision = (((hackage."lens")."4.17.1").revisions).default; + "lens".flags.j = false; + "lens".flags.test-properties = true; + "lens".flags.old-inline-pragmas = false; + "lens".flags.test-templates = true; + "lens".flags.trustworthy = true; + "lens".flags.test-doctests = true; + "lens".flags.benchmark-uniplate = false; + "lens".flags.inlining = true; + "lens".flags.dump-splices = false; + "lens".flags.test-hunit = true; + "lens".flags.safe = false; "unliftio-core".revision = (((hackage."unliftio-core")."0.1.2.0").revisions).default; "containers".revision = (((hackage."containers")."0.6.0.1").revisions).default; "wl-pprint-annotated".revision = (((hackage."wl-pprint-annotated")."0.1.0.1").revisions).default; "integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3").revisions).default; + "integer-logarithms".flags.check-bounds = false; + "integer-logarithms".flags.integer-gmp = true; "reflection".revision = (((hackage."reflection")."2.1.4").revisions).default; + "reflection".flags.slow = false; + "reflection".flags.template-haskell = true; "these".revision = (((hackage."these")."0.7.6").revisions).default; "regex-tdfa-text".revision = (((hackage."regex-tdfa-text")."1.0.0.3").revisions).default; "dependent-sum".revision = (((hackage."dependent-sum")."0.4").revisions).default; - "socks".revision = (((hackage."socks")."0.5.6").revisions).default; + "socks".revision = (((hackage."socks")."0.6.0").revisions).default; "streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.0").revisions).default; + "streaming-commons".flags.use-bytestring-builder = false; "haskell-lexer".revision = (((hackage."haskell-lexer")."1.0.2").revisions).default; "monad-par".revision = (((hackage."monad-par")."0.3.4.8").revisions).default; + "monad-par".flags.newgeneric = false; + "monad-par".flags.chaselev = false; "lens-family".revision = (((hackage."lens-family")."1.2.3").revisions).default; "bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default; - "ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.8.2").revisions).default; + "ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default; + "ansi-wl-pprint".flags.example = false; "mwc-random".revision = (((hackage."mwc-random")."0.14.0.0").revisions).default; "basement".revision = (((hackage."basement")."0.0.10").revisions).default; "test-framework".revision = (((hackage."test-framework")."0.8.2.0").revisions).default; "cryptohash-sha1".revision = (((hackage."cryptohash-sha1")."0.11.100.1").revisions).default; "serialise".revision = (((hackage."serialise")."0.2.1.0").revisions).default; + "serialise".flags.newtime15 = true; "hostname".revision = (((hackage."hostname")."1.0").revisions).default; "old-locale".revision = (((hackage."old-locale")."1.0.0.7").revisions).default; "wcwidth".revision = (((hackage."wcwidth")."0.0.2").revisions).default; @@ -157,36 +245,71 @@ "mime-types".revision = (((hackage."mime-types")."0.1.0.9").revisions).default; "http-client-tls".revision = (((hackage."http-client-tls")."0.3.5.3").revisions).default; "contravariant".revision = (((hackage."contravariant")."1.5.1").revisions).default; + "contravariant".flags.semigroups = true; + "contravariant".flags.tagged = true; + "contravariant".flags.statevar = true; "pointed".revision = (((hackage."pointed")."5.0.1").revisions).default; - "parser-combinators".revision = (((hackage."parser-combinators")."1.0.2").revisions).default; + "pointed".flags.semigroupoids = true; + "pointed".flags.stm = true; + "pointed".flags.comonad = true; + "pointed".flags.unordered-containers = true; + "pointed".flags.kan-extensions = true; + "pointed".flags.semigroups = true; + "pointed".flags.tagged = true; + "pointed".flags.containers = true; + "pointed".flags.transformers = true; + "parser-combinators".revision = (((hackage."parser-combinators")."1.0.3").revisions).default; + "parser-combinators".flags.dev = false; "deriving-compat".revision = (((hackage."deriving-compat")."0.5.6").revisions).default; + "deriving-compat".flags.base-4-9 = true; + "deriving-compat".flags.template-haskell-2-11 = true; + "deriving-compat".flags.new-functor-classes = true; "text".revision = (((hackage."text")."1.2.3.1").revisions).default; "Cabal".revision = (((hackage."Cabal")."2.4.0.1").revisions).default; "Diff".revision = (((hackage."Diff")."0.3.4").revisions).default; - "unordered-containers".revision = (((hackage."unordered-containers")."0.2.9.0").revisions).default; + "unordered-containers".revision = (((hackage."unordered-containers")."0.2.10.0").revisions).default; + "unordered-containers".flags.debug = false; "base".revision = (((hackage."base")."4.12.0.0").revisions).default; "abstract-deque".revision = (((hackage."abstract-deque")."0.3").revisions).default; - "tasty-hedgehog".revision = (((hackage."tasty-hedgehog")."1.0.0.1").revisions).default; + "abstract-deque".flags.usecas = false; + "tasty-hedgehog".revision = (((hackage."tasty-hedgehog")."1.0.0.0").revisions).default; "comonad".revision = (((hackage."comonad")."5.0.5").revisions).default; + "comonad".flags.distributive = true; + "comonad".flags.test-doctests = true; + "comonad".flags.containers = true; "time".revision = (((hackage."time")."1.8.0.2").revisions).default; "data-default-class".revision = (((hackage."data-default-class")."0.1.2.0").revisions).default; "terminfo".revision = (((hackage."terminfo")."0.4.1.2").revisions).default; "base16-bytestring".revision = (((hackage."base16-bytestring")."0.1.1.6").revisions).default; "vector-algorithms".revision = (((hackage."vector-algorithms")."0.8.0.1").revisions).default; + "vector-algorithms".flags.unsafechecks = false; + "vector-algorithms".flags.internalchecks = false; + "vector-algorithms".flags.llvm = false; + "vector-algorithms".flags.boundschecks = true; + "vector-algorithms".flags.bench = true; + "vector-algorithms".flags.properties = true; "prettyprinter".revision = (((hackage."prettyprinter")."1.2.1").revisions).default; + "prettyprinter".flags.buildreadme = false; "cryptohash-sha512".revision = (((hackage."cryptohash-sha512")."0.11.100.1").revisions).default; - "tasty-hunit".revision = (((hackage."tasty-hunit")."0.10.0.1").revisions).default; - "pretty-show".revision = (((hackage."pretty-show")."1.8.2").revisions).default; + "tasty-hunit".revision = (((hackage."tasty-hunit")."0.10.0.2").revisions).default; + "pretty-show".revision = (((hackage."pretty-show")."1.9.5").revisions).default; "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default; "hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default; + "hashable".flags.sse2 = true; + "hashable".flags.integer-gmp = true; + "hashable".flags.sse41 = false; + "hashable".flags.examples = false; "attoparsec".revision = (((hackage."attoparsec")."0.13.2.2").revisions).default; + "attoparsec".flags.developer = false; "infer-license".revision = (((hackage."infer-license")."0.2.0").revisions).default; "colour".revision = (((hackage."colour")."2.3.5").revisions).default; "transformers-base".revision = (((hackage."transformers-base")."0.4.5.2").revisions).default; - "happy".revision = (((hackage."happy")."1.19.11").revisions).default; + "transformers-base".flags.orphaninstances = true; + "happy".revision = (((hackage."happy")."1.19.10").revisions).default; "happy".flags.small_base = true; - "byteable".revision = (((hackage."byteable")."0.1.1").revisions).default; "criterion".revision = (((hackage."criterion")."1.5.5.0").revisions).default; + "criterion".flags.embed-data-files = false; + "criterion".flags.fast = false; "monad-par-extras".revision = (((hackage."monad-par-extras")."0.3.3").revisions).default; "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default; "code-page".revision = (((hackage."code-page")."0.2").revisions).default; @@ -194,25 +317,40 @@ "unbounded-delays".revision = (((hackage."unbounded-delays")."0.1.1.0").revisions).default; "hedgehog".revision = (((hackage."hedgehog")."1.0").revisions).default; "cborg".revision = (((hackage."cborg")."0.2.1.0").revisions).default; + "cborg".flags.optimize-gmp = true; "monad-control".revision = (((hackage."monad-control")."1.0.2.3").revisions).default; "process".revision = (((hackage."process")."1.6.5.0").revisions).default; "tls".revision = (((hackage."tls")."1.4.1").revisions).default; + "tls".flags.compat = true; + "tls".flags.network = true; + "tls".flags.hans = false; "kan-extensions".revision = (((hackage."kan-extensions")."5.2").revisions).default; - "th-lift".revision = (((hackage."th-lift")."0.7.11").revisions).default; + "th-lift".revision = (((hackage."th-lift")."0.8.0.1").revisions).default; "libyaml".revision = (((hackage."libyaml")."0.1.1.0").revisions).default; + "libyaml".flags.system-libyaml = false; + "libyaml".flags.no-unicode = false; "resourcet".revision = (((hackage."resourcet")."1.2.2").revisions).default; "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; - "Glob".revision = (((hackage."Glob")."0.9.3").revisions).default; + "cabal-doctest".revision = (((hackage."cabal-doctest")."1.0.6").revisions).default; + "Glob".revision = (((hackage."Glob")."0.10.0").revisions).default; "microlens".revision = (((hackage."microlens")."0.4.10").revisions).default; - "aeson".revision = (((hackage."aeson")."1.4.2.0").revisions).default; + "aeson".revision = (((hackage."aeson")."1.4.3.0").revisions).default; + "aeson".flags.cffi = false; + "aeson".flags.fast = false; + "aeson".flags.bytestring-builder = false; + "aeson".flags.developer = false; "abstract-par".revision = (((hackage."abstract-par")."0.3.3").revisions).default; "http-types".revision = (((hackage."http-types")."0.12.3").revisions).default; "ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.6.5").revisions).default; - "th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.12").revisions).default; + "th-lift-instances".revision = (((hackage."th-lift-instances")."0.1.13").revisions).default; "base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default; - "th-abstraction".revision = (((hackage."th-abstraction")."0.2.11.0").revisions).default; + "th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default; "memory".revision = (((hackage."memory")."0.14.18").revisions).default; - "concurrent-output".revision = (((hackage."concurrent-output")."1.10.9").revisions).default; + "memory".flags.support_bytestring = true; + "memory".flags.support_basement = true; + "memory".flags.support_foundation = true; + "memory".flags.support_deepseq = true; + "concurrent-output".revision = (((hackage."concurrent-output")."1.10.10").revisions).default; "array".revision = (((hackage."array")."0.5.3.0").revisions).default; "repline".revision = (((hackage."repline")."0.2.1.0").revisions).default; "xml".revision = (((hackage."xml")."1.3.14").revisions).default; @@ -224,185 +362,30 @@ version = "8.6.5"; nix-name = "ghc865"; packages = { - "criterion-measurement" = "0.1.1.0"; - "http-client" = "0.5.14"; - "cookie" = "0.4.4"; - "void" = "0.7.2"; - "semigroupoids" = "5.3.2"; - "free" = "5.1.1"; - "tf-random" = "0.5"; - "Only" = "0.1"; - "cereal" = "0.5.8.0"; - "exceptions" = "0.10.2"; - "cryptohash-sha256" = "0.11.101.0"; "binary" = "0.8.6.0"; - "regex-tdfa" = "1.2.3.1"; "ghc-prim" = "0.5.3"; - "utf8-string" = "1.0.1.1"; - "bifunctors" = "5.5.4"; - "hashing" = "0.1.0.1"; - "extra" = "1.6.15"; "haskeline" = "0.7.4.3"; - "logict" = "0.6.0.3"; - "x509-validation" = "1.6.11"; - "fail" = "4.9.0.0"; - "dense-linear-algebra" = "0.1.0.0"; - "split" = "0.2.3.3"; - "data-fix" = "0.2.0"; "stm" = "2.5.0.0"; - "text-short" = "0.1.2"; - "microstache" = "1.0.1.1"; - "base-compat-batteries" = "0.10.5"; - "hourglass" = "0.2.12"; - "case-insensitive" = "1.2.0.11"; "unix" = "2.7.2.2"; "mtl" = "2.2.2"; - "lifted-async" = "0.10.0.4"; - "network-uri" = "2.6.1.0"; - "asn1-parse" = "0.9.4"; - "regex-base" = "0.93.2"; - "zlib" = "0.6.2"; "rts" = "1.0"; - "mmorph" = "1.1.3"; - "js-flot" = "0.8.3"; - "statistics" = "0.15.0.0"; - "th-expand-syns" = "0.4.4.0"; - "regex-posix" = "0.95.2"; - "cryptonite" = "0.25"; - "clock" = "0.7.2"; - "adjunctions" = "4.4"; - "cryptohash-md5" = "0.11.100.1"; - "invariant" = "0.5.3"; - "th-orphans" = "0.13.7"; - "pem" = "0.2.4"; - "megaparsec" = "7.0.5"; - "syb" = "0.7"; - "distributive" = "0.6"; - "asn1-encoding" = "0.9.5"; - "vector-th-unbox" = "0.2.1.6"; - "QuickCheck" = "2.12.6.1"; - "scientific" = "0.3.6.2"; - "monadlist" = "0.0.2"; - "half" = "0.3"; - "parallel" = "3.2.2.0"; "deepseq" = "1.4.4.0"; - "random" = "1.1"; - "uuid-types" = "1.0.3"; - "optparse-applicative" = "0.14.3.0"; - "network" = "2.8.0.1"; - "connection" = "0.2.8"; - "async" = "2.2.1"; - "dlist" = "0.8.0.6"; - "conduit" = "1.3.1.1"; - "ref-tf" = "0.4.0.1"; - "x509-store" = "1.6.7"; - "constraints" = "0.10.1"; - "lens-family-th" = "0.5.0.2"; - "semigroups" = "0.18.5"; - "HUnit" = "1.6.0.0"; - "vector-instances" = "3.4"; - "lifted-base" = "0.2.3.12"; "parsec" = "3.1.13.0"; - "th-reify-many" = "0.1.9"; "directory" = "1.3.3.0"; - "yaml" = "0.11.0.0"; - "transformers-compat" = "0.6.4"; "template-haskell" = "2.14.0.0"; - "mono-traversable" = "1.0.11.0"; - "vector" = "0.12.0.3"; - "call-stack" = "0.1.0"; - "primitive" = "0.6.4.0"; - "profunctors" = "5.3"; - "time-locale-compat" = "0.1.1.5"; - "safe" = "0.3.17"; - "blaze-builder" = "0.4.1.0"; - "base-compat" = "0.10.5"; - "js-jquery" = "3.3.1"; - "math-functions" = "0.3.1.0"; - "x509-system" = "1.6.6"; - "keys" = "3.12.2"; - "ansi-terminal" = "0.8.2"; - "vector-binary-instances" = "0.2.5.1"; - "tagged" = "0.8.6"; - "x509" = "1.7.5"; - "cassava" = "0.5.1.0"; - "haskell-src-exts" = "1.20.3"; - "lens" = "4.17.1"; - "unliftio-core" = "0.1.2.0"; "containers" = "0.6.0.1"; - "integer-logarithms" = "1.0.3"; - "reflection" = "2.1.4"; - "these" = "0.7.6"; - "regex-tdfa-text" = "1.0.0.3"; - "dependent-sum" = "0.4"; - "socks" = "0.5.6"; - "streaming-commons" = "0.2.1.0"; - "haskell-lexer" = "1.0.2"; - "monad-par" = "0.3.4.8"; - "lens-family" = "1.2.3"; "bytestring" = "0.10.8.2"; - "ansi-wl-pprint" = "0.6.8.2"; - "mwc-random" = "0.14.0.0"; - "basement" = "0.0.10"; - "cryptohash-sha1" = "0.11.100.1"; - "serialise" = "0.2.1.0"; - "hostname" = "1.0"; - "old-locale" = "1.0.0.7"; - "StateVar" = "1.1.1.1"; - "mime-types" = "0.1.0.9"; - "http-client-tls" = "0.3.5.3"; - "contravariant" = "1.5.1"; - "pointed" = "5.0.1"; - "parser-combinators" = "1.0.2"; - "deriving-compat" = "0.5.6"; "text" = "1.2.3.1"; "Cabal" = "2.4.0.1"; - "unordered-containers" = "0.2.9.0"; "base" = "4.12.0.0"; - "abstract-deque" = "0.3"; - "comonad" = "5.0.5"; "time" = "1.8.0.2"; - "data-default-class" = "0.1.2.0"; "terminfo" = "0.4.1.2"; - "base16-bytestring" = "0.1.1.6"; - "vector-algorithms" = "0.8.0.1"; - "prettyprinter" = "1.2.1"; - "cryptohash-sha512" = "0.11.100.1"; "transformers" = "0.5.6.2"; - "hashable" = "1.2.7.0"; - "attoparsec" = "0.13.2.2"; - "colour" = "2.3.5"; - "transformers-base" = "0.4.5.2"; - "byteable" = "0.1.1"; - "criterion" = "1.5.5.0"; - "monad-par-extras" = "0.3.3"; "filepath" = "1.4.2.1"; - "code-page" = "0.2"; - "asn1-types" = "0.3.2"; - "cborg" = "0.2.1.0"; - "monad-control" = "1.0.2.3"; "process" = "1.6.5.0"; - "tls" = "1.4.1"; - "kan-extensions" = "5.2"; - "th-lift" = "0.7.11"; - "libyaml" = "0.1.1.0"; - "resourcet" = "1.2.2"; "pretty" = "1.1.3.6"; - "Glob" = "0.9.3"; - "microlens" = "0.4.10"; - "aeson" = "1.4.2.0"; - "abstract-par" = "0.3.3"; - "http-types" = "0.12.3"; "ghc-boot-th" = "8.6.5"; - "th-lift-instances" = "0.1.12"; - "base-orphans" = "0.8.1"; - "th-abstraction" = "0.2.11.0"; - "memory" = "0.14.18"; "array" = "0.5.3.0"; - "repline" = "0.2.1.0"; - "xml" = "1.3.14"; - "erf" = "2.0.0.0"; - "lens-family-core" = "1.2.3"; "integer-gmp" = "1.0.2.0"; }; }; From b2248504fae4131c5ba03caa0d070a1ab3771471 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Fri, 5 Jul 2019 11:56:53 +1200 Subject: [PATCH 11/13] Fix for tests on case insensitive FS (macOS) The file `conduit.hs` looks like `Conduit.hs` to ghc and it uses it by mistake for `import Conduit`. --- test/shell-for/default.nix | 2 +- test/shell-for/pkgb/src/{conduit.hs => conduit-test.hs} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename test/shell-for/pkgb/src/{conduit.hs => conduit-test.hs} (100%) diff --git a/test/shell-for/default.nix b/test/shell-for/default.nix index 12cf79891f..d8a63c83e4 100644 --- a/test/shell-for/default.nix +++ b/test/shell-for/default.nix @@ -44,7 +44,7 @@ in cp ${./pkgb/src}/*.hs . printf "checking that the shell env has the dependencies...\n" >& 2 - ${env.ghc}/bin/runghc conduit.hs + ${env.ghc}/bin/runghc conduit-test.hs touch $out ''; diff --git a/test/shell-for/pkgb/src/conduit.hs b/test/shell-for/pkgb/src/conduit-test.hs similarity index 100% rename from test/shell-for/pkgb/src/conduit.hs rename to test/shell-for/pkgb/src/conduit-test.hs From 2d2b4f9ccfc5356a5b1fe0bfbb123ca8449f5497 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Wed, 10 Jul 2019 03:33:58 +1200 Subject: [PATCH 12/13] Use patched version of Cabal to build nix-tools --- nix-tools/default.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/nix-tools/default.nix b/nix-tools/default.nix index 650aad7d4f..ba9ee29b05 100644 --- a/nix-tools/default.nix +++ b/nix-tools/default.nix @@ -1,4 +1,4 @@ -{ lib, symlinkJoin, makeWrapper +{ pkgs, lib, symlinkJoin, makeWrapper , hpack, git, nix, nix-prefetch-git , fetchExternal, cleanSourceHaskell, mkCabalProjectPkgSet }: @@ -8,6 +8,11 @@ let specJSON = ./nix-tools-src.json; override = "nix-tools-src"; }); + cabalPatch = pkgs.fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/haskell/cabal/pull/6055.diff"; + sha256 = "145g7s3z9q8d18pxgyngvixgsm6gmwh1rgkzkhacy4krqiq0qyvx"; + stripLen = 1; + }; pkgSet = mkCabalProjectPkgSet { plan-pkgs = import ./pkgs.nix; @@ -22,6 +27,12 @@ let { packages.nix-tools.src = src; } + + ({ config, ...}: { + packages = { + Cabal.patches = [ cabalPatch ]; + }; + }) ]; }; From d4d57b424d066110451010d478d2fcb5aa792ade Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Sat, 13 Jul 2019 01:36:01 +1200 Subject: [PATCH 13/13] Update nix-tools/default.nix Co-Authored-By: Moritz Angermann --- nix-tools/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nix-tools/default.nix b/nix-tools/default.nix index ba9ee29b05..aaea44192a 100644 --- a/nix-tools/default.nix +++ b/nix-tools/default.nix @@ -8,6 +8,9 @@ let specJSON = ./nix-tools-src.json; override = "nix-tools-src"; }); + # we need to patch Cabal, as its data directory logic is broken for component builds, which haskell.nix + # uses excessively. See issue https://github.com/haskell/cabal/issues/5862, and the fix for Cabal 3.0 + # in https://github.com/haskell/cabal/pull/6055. We apply the haskell/cabal#6055 here. cabalPatch = pkgs.fetchpatch { url = "https://patch-diff.githubusercontent.com/raw/haskell/cabal/pull/6055.diff"; sha256 = "145g7s3z9q8d18pxgyngvixgsm6gmwh1rgkzkhacy4krqiq0qyvx";