Merge pull request #83963 from NixOS/haskell-updates

Update Haskell package set to LTS 15.6 (plus other fixes)
This commit is contained in:
Peter Simons 2020-04-03 22:03:18 +02:00 committed by GitHub
commit 9242acfbbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1447 additions and 1661 deletions

View File

@ -1,6 +1,6 @@
{ fetchurl }:
fetchurl {
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/e0bc864e0b6edb5e5ce1ec4bfa763a442b343bf5.tar.gz";
sha256 = "1lmjxam58srrv9cjqajqz4bishx8hy99db3cx83i95qb3qiiiz6m";
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/90b24a91103dca4f0df6cb28cecb205a7d7ab650.tar.gz";
sha256 = "1zfj8c6s9icqg83ycfvd150s4jd07ccbjg2w2mn10rx5ng76mn53";
}

View File

@ -37,9 +37,6 @@ self: super: {
# compiled on Linux. We provide the name to avoid evaluation errors.
unbuildable = throw "package depends on meta package 'unbuildable'";
# The test suite depends on old versions of tasty and QuickCheck.
hackage-security = dontCheck super.hackage-security;
# enable using a local hoogle with extra packagages in the database
# nix-shell -p "haskellPackages.hoogleLocal { packages = with haskellPackages; [ mtl lens ]; }"
# $ hoogle server
@ -86,7 +83,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 = "0y2qcjahi705c6nnypqpa5w3bzyzk4kqvbwfnpiaxzk5vna589gg";
sha256 = "1jjw6ar8ddcncwzksyx2xky50sm2jg1zjr7iiqk0vn8qq0fn2gwy";
};
}).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@ -326,6 +323,7 @@ self: super: {
hs2048 = dontCheck super.hs2048;
hsbencher = dontCheck super.hsbencher;
hsexif = dontCheck super.hsexif;
hspec-core = if pkgs.stdenv.isi686 then dontCheck super.hspec-core else super.hspec-core; # tests rely on `Int` being 64-bit; https://github.com/hspec/hspec/issues/431
hspec-server = dontCheck super.hspec-server;
HTF = dontCheck super.HTF;
htsn = dontCheck super.htsn;
@ -359,7 +357,6 @@ self: super: {
optional = dontCheck super.optional;
orgmode-parse = dontCheck super.orgmode-parse;
os-release = dontCheck super.os-release;
pandoc-crossref = dontCheck super.pandoc-crossref; # (most likely change when no longer 0.3.2.1) https://github.com/lierdakil/pandoc-crossref/issues/199
persistent-redis = dontCheck super.persistent-redis;
pipes-extra = dontCheck super.pipes-extra;
pipes-websockets = dontCheck super.pipes-websockets;
@ -1192,10 +1189,10 @@ self: super: {
});
# Remove unecessary constraint:
# https://github.com/agrafix/superbuffer/pull/2
superbuffer = overrideCabal super.superbuffer (drv: {
# https://github.com/haskell-infra/hackage-trustees/issues/258
data-accessor-template = overrideCabal super.data-accessor-template (drv: {
postPatch = ''
sed -i 's#QuickCheck < 2.10#QuickCheck < 2.13#' superbuffer.cabal
sed -i 's#template-haskell >=2.11 && <2.15#template-haskell#' data-accessor-template.cabal
'';
});
@ -1344,7 +1341,7 @@ self: super: {
});
# cabal-fmt requires Cabal3
cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_0_0_0; };
cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_0_0; };
# Several gtk2hs-provided packages at v0.13.8.0 fail to build on Darwin
# until we pick up https://github.com/gtk2hs/gtk2hs/pull/293 so apply that
@ -1463,6 +1460,11 @@ self: super: {
# haskell-ci-0.8 needs cabal-install-parsers ==0.1, but we have 0.2.
haskell-ci = doJailbreak super.haskell-ci;
# Needs the latest version of vty.
matterhorn = super.matterhorn.overrideScope (self: super: {
vty = self.vty_5_28_2;
});
persistent-mysql = dontCheck super.persistent-mysql;
# Fix EdisonAPI and EdisonCore for GHC 8.8:
@ -1488,4 +1490,16 @@ self: super: {
# Needs a version that's newer than LTS-15.x provides.
weeder = super.weeder.override { generic-lens = self.generic-lens_2_0_0_0; };
polysemy-plugin = super.polysemy-plugin.override {
# polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
# This upstream issue is relevant:
# https://github.com/polysemy-research/polysemy/issues/322
ghc-tcplugins-extra = self.ghc-tcplugins-extra_0_3_2;
# version of Polysemy the plugin goes with
polysemy = self.polysemy_1_3_0_0;
};
# Fixed at head, but hasn't cut a release in awhile.
darcs = doJailbreak super.darcs;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View File

@ -44,7 +44,7 @@ self: super: {
text = self.text_1_2_4_0;
# Needs Cabal 3.0.x.
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_0_0_0; };
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_0_0; };
# https://github.com/bmillwood/applicative-quoters/issues/6
applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch {

View File

@ -40,9 +40,9 @@ self: super: {
unix = null;
xhtml = null;
# Needs Cabal 3.0.x.
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_0_0_0; });
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_0_0_0; };
# Needs Cabal 3.2.x.
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_0_0; };
# Restricts aeson to <1.4
# https://github.com/purescript/purescript/pull/3537

View File

@ -42,8 +42,8 @@ self: super: {
xhtml = null;
# Needs Cabal 3.0.x.
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_0_0_0; });
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_0_0_0; };
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_0_0; };
# https://github.com/tibbe/unordered-containers/issues/214
unordered-containers = dontCheck super.unordered-containers;
@ -76,12 +76,10 @@ self: super: {
# cabal2nix needs the latest version of Cabal, and the one
# hackage-db uses must match, so take the latest
cabal2nix = super.cabal2nix.overrideScope (self: super: {
Cabal = self.Cabal_3_0_0_0;
});
cabal2nix = super.cabal2nix.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
# cabal2spec needs a recent version of Cabal
cabal2spec = super.cabal2spec.overrideScope (self: super: { Cabal = self.Cabal_3_0_0_0; });
cabal2spec = super.cabal2spec.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
# Builds only with ghc-8.8.x and beyond.
policeman = markBroken super.policeman;

View File

@ -41,10 +41,13 @@ self: super: {
unix = null;
xhtml = null;
# These builds need Cabal 3.2.x.
cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_0_0; };
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
# Ignore overly restrictive upper version bounds.
aeson-diff = doJailbreak super.aeson-diff;
async = doJailbreak super.async;
cabal-install = doJailbreak super.cabal-install;
ChasingBottoms = doJailbreak super.ChasingBottoms;
chell = doJailbreak super.chell;
cryptohash-sha256 = doJailbreak super.cryptohash-sha256;
@ -72,12 +75,6 @@ self: super: {
time-compat = doJailbreak super.time-compat;
http-media = doJailbreak super.http-media;
servant-server = doJailbreak super.servant-server;
# These packages don't work and need patching and/or an update.
hackage-security = appendPatch (doJailbreak super.hackage-security) (pkgs.fetchpatch {
url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/hackage-security-0.5.3.0.patch";
sha256 = "0l8x0pbsn18fj5ak5q0g5rva4xw1s9yc4d86a1pfyaz467b9i5a4";
});
foundation = dontCheck super.foundation;
vault = dontHaddock super.vault;

View File

@ -572,17 +572,34 @@ self: super: builtins.intersectAttrs super {
# The test-suite requires a running PostgreSQL server.
Frames-beam = dontCheck super.Frames-beam;
futhark = if pkgs.stdenv.isDarwin then super.futhark else with pkgs;
let path = stdenv.lib.makeBinPath [ gcc ];
in overrideCabal (addBuildTool super.futhark makeWrapper) (_drv: {
postInstall = ''
wrapProgram $out/bin/futhark \
--prefix PATH : "${path}" \
--set NIX_CC_WRAPPER_x86_64_unknown_linux_gnu_TARGET_HOST 1 \
--set NIX_CFLAGS_COMPILE "-I${opencl-headers}/include" \
--set NIX_CFLAGS_LINK "-L${ocl-icd}/lib"
'';
});
# * Compile manpages (which are in RST and are compiled with Sphinx).
#
# * Wrap so that binary can find GCC and OpenCL headers (dubious if
# a good idea).
futhark = with pkgs;
let maybeWrap =
if pkgs.stdenv.isDarwin then ""
else
let path = stdenv.lib.makeBinPath [ gcc ];
in ''
wrapProgram $out/bin/futhark \
--prefix PATH : "${path}" \
--set NIX_CC_WRAPPER_x86_64_unknown_linux_gnu_TARGET_HOST 1 \
--set NIX_CFLAGS_COMPILE "-I${opencl-headers}/include" \
--set NIX_CFLAGS_LINK "-L${ocl-icd}/lib"
'';
in overrideCabal (addBuildTools super.futhark [makeWrapper python37Packages.sphinx])
(_drv: {
postBuild = (_drv.postBuild or "") + ''
make -C docs man
'';
postInstall = (_drv.postInstall or "") + ''
mkdir -p $out/share/man/man1
mv docs/_build/man/*.1 $out/share/man/man1/
''
+ maybeWrap;
});
git-annex = with pkgs;
if (!stdenv.isLinux) then

File diff suppressed because it is too large Load Diff

View File

@ -18883,7 +18883,7 @@ in
dablin = callPackage ../applications/radio/dablin { };
darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.darcs) (drv: {
darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskell.packages.ghc865.darcs) (drv: {
configureFlags = (stdenv.lib.remove "-flibrary" drv.configureFlags or []) ++ ["-f-library"];
});