Skip to content

Commit

Permalink
Merge pull request #115256 from NixOS/haskell-updates
Browse files Browse the repository at this point in the history
Update Haskell package set to Stackage Nightly 2021-03-06 (plus other fixes)
  • Loading branch information
peti committed Mar 12, 2021
2 parents 7ba904b + 5966fa1 commit 795ef4f
Show file tree
Hide file tree
Showing 12 changed files with 1,665 additions and 1,340 deletions.
85 changes: 72 additions & 13 deletions pkgs/development/haskell-modules/configuration-common.nix
Expand Up @@ -64,7 +64,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "1lvl6i3ym7dyg215fkmslf3rnk29hz7f21jn91y1mghrhch7hvhl";
sha256 = "1y9js3n8ml2g492nivy7gk371rdmibwydb4fwzzwbviya280akaq";
};
}).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
Expand Down Expand Up @@ -727,8 +727,19 @@ self: super: {
# The tests spuriously fail
libmpd = dontCheck super.libmpd;

# 2021-03-12: All of this libraries have to restrictive upper bounds
# https://github.com/diagrams/diagrams-core/issues/112
active = doJailbreak super.active;
statestack = doJailbreak super.statestack;
force-layout = doJailbreak super.force-layout;
size-based = doJailbreak super.size-based;
dual-tree = doJailbreak super.dual-tree;
diagrams-core = doJailbreak super.diagrams-core;
diagrams-postscript = doJailbreak super.diagrams-postscript;
diagrams-svg = doJailbreak super.diagrams-svg;
diagrams-contrib = doJailbreak super.diagrams-contrib;
# https://github.com/diagrams/diagrams-lib/issues/288
diagrams-lib = overrideCabal super.diagrams-lib (drv: { doCheck = !pkgs.stdenv.isi686; });
diagrams-lib = doJailbreak (overrideCabal super.diagrams-lib (drv: { doCheck = !pkgs.stdenv.isi686; }));

# https://github.com/danidiaz/streaming-eversion/issues/1
streaming-eversion = dontCheck super.streaming-eversion;
Expand Down Expand Up @@ -1413,17 +1424,21 @@ self: super: {
# https://github.com/haskell/haskell-language-server/issues/611
haskell-language-server = dontCheck super.haskell-language-server;

# 2021-02-11: Jailbreaking because of syntax error on bound revision
hls-explicit-imports-plugin = doJailbreak super.hls-explicit-imports-plugin;
# 2021-03-09: Overrides because nightly is to old for hls 1.0.0
lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0);

# 2021-02-08: Overrides because nightly is to old for hls 0.9.0
lsp-test = doDistribute (dontCheck self.lsp-test_0_11_0_7);
haskell-lsp = doDistribute self.haskell-lsp_0_23_0_0;
haskell-lsp-types = doDistribute self.haskell-lsp-types_0_23_0_0;
# 2021-03-09: Golden tests seem to be missing in hackage release:
# https://github.com/haskell/haskell-language-server/issues/1536
hls-tactics-plugin = dontCheck super.hls-tactics-plugin;

# 1. test requires internet
# 2. dependency shake-bench hasn't been published yet so we also need unmarkBroken and doDistribute
ghcide = doDistribute (unmarkBroken (dontCheck super.ghcide));
# 2021-03-21 Test hangs
# https://github.com/haskell/haskell-language-server/issues/1562
ghcide = dontCheck super.ghcide;

# 2020-03-09: Tests broken in hackage release
# fixed on upstream, but not released in hiedb 0.3.0.1
# https://github.com/wz1000/HieDb/issues/30
hiedb = dontCheck super.hiedb;

data-tree-print = doJailbreak super.data-tree-print;

Expand Down Expand Up @@ -1515,8 +1530,25 @@ self: super: {
# Upstream issue: https://github.com/haskell-servant/servant-swagger/issues/129
servant-swagger = dontCheck super.servant-swagger;

# 2020-11-27: cxx-options is broken in Cabal 3.2.0.0
hercules-ci-agent = addSetupDepend super.hercules-ci-agent self.Cabal_3_2_1_0;
hercules-ci-agent = super.hercules-ci-agent.override {
cachix =
# https://github.com/cachix/cachix/pull/361
(appendPatch
(addBuildDepend super.cachix super.hercules-ci-cnix-store)
(pkgs.fetchpatch {
name = "cachix-361.patch";
url = "https://patch-diff.githubusercontent.com/raw/cachix/cachix/pull/361.patch";
sha256 = "0wwlcpmnqmvk1css5f723dzgjvg4jr7i58ifhni5zg9h5iwycdfr";
stripLen = 1;
includes = ["*.cabal" "*.hs"];
})
);
};

hercules-ci-cli = generateOptparseApplicativeCompletion "hci" (
# See hercules-ci-optparse-applicative in non-hackage-packages.nix.
addBuildDepend (unmarkBroken super.hercules-ci-cli) super.hercules-ci-optparse-applicative
);

# 2020-12-05: http-client is fixed on too old version
essence-of-live-coding-warp = super.essence-of-live-coding-warp.override {
Expand Down Expand Up @@ -1602,4 +1634,31 @@ self: super: {
];
});

# cabal-install switched to build type simple in 3.2.0.0
# as a result, the cabal(1) man page is no longer installed
# automatically. Instead we need to use the `cabal man`
# command which generates the man page on the fly and
# install it to $out/share/man/man1 ourselves in this
# override.
# The commit that introduced this change:
# https://github.com/haskell/cabal/commit/91ac075930c87712eeada4305727a4fa651726e7
cabal-install = overrideCabal super.cabal-install (old: {
postInstall = old.postInstall + ''
mkdir -p "$out/share/man/man1"
"$out/bin/cabal" man --raw > "$out/share/man/man1/cabal.1"
'';
});

# while waiting for a new release: https://github.com/brendanhay/amazonka/pull/572
amazonka = appendPatches (doJailbreak super.amazonka) [
(pkgs.fetchpatch {
stripLen = 1;
url = "https://github.com/brendanhay/amazonka/commit/43ddd87b1ebd6af755b166e16336259ec025b337.patch";
sha256 = "1x9l5xgvrh908di6whpavyp08cys11v3yn6rc21zw87xiyigdbi3";
})
];

# Test suite does not compile.
feed = dontCheck super.feed;

} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
6 changes: 6 additions & 0 deletions pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
Expand Up @@ -50,6 +50,12 @@ self: super: {
random = super.random_1_2_0;
};

# cabal-install-parsers is written for Cabal 3.4
cabal-install-parsers = super.cabal-install-parsers.override {
Cabal = super.Cabal_3_4_0_0;
base16-bytestring = super.base16-bytestring_1_0_1_0;
};

# Jailbreak to fix the build.
base-noprelude = doJailbreak super.base-noprelude;
system-fileio = doJailbreak super.system-fileio;
Expand Down
10 changes: 8 additions & 2 deletions pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
Expand Up @@ -52,9 +52,15 @@ self: super: {
haddock = self.haddock_2_23_1;
haddock-api = self.haddock-api_2_23_1;

# These builds need Cabal 3.2.x.
# These builds need newer versions of Cabal.
cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; };
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; });
cabal-install = super.cabal-install.override {
Cabal = super.Cabal_3_4_0_0;
hackage-security = super.hackage-security.override { Cabal = super.Cabal_3_4_0_0; };
# Using dontCheck to break test dependency cycles
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
random = super.random_1_2_0;
};

# Ignore overly restrictive upper version bounds.
aeson-diff = doJailbreak super.aeson-diff;
Expand Down
3 changes: 3 additions & 0 deletions pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
Expand Up @@ -93,4 +93,7 @@ self: super: {
# The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
unordered-containers = dontCheck super.unordered-containers;

# The test suite seems pretty broken.
base64-bytestring = dontCheck super.base64-bytestring;

}

0 comments on commit 795ef4f

Please sign in to comment.