Merge pull request #107593 from NixOS/haskell-updates

Update Haskell package set to Stackage Nightly 2021-01-01 (plus other fixes)
This commit is contained in:
Peter Simons 2021-01-02 20:17:23 +01:00 committed by GitHub
commit 4856e0d285
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 1479 additions and 2063 deletions

View file

@ -6,6 +6,7 @@
, bash
, libiconv ? null, ncurses
, glibcLocales ? null
, # GHC can be built with system libffi or a bundled one.
libffi ? null
@ -95,12 +96,12 @@ let
in
stdenv.mkDerivation (rec {
version = "9.0.0.20200925";
version = "9.0.0.20201227";
name = "${targetPrefix}ghc-${version}";
src = fetchurl {
url = "https://downloads.haskell.org/ghc/9.0.1-alpha1/ghc-${version}-src.tar.xz";
sha256 = "1c6vgic0bx0c4c6gszq7znvc5gxf0lgh630283mivbs1lyiqj88l";
url = "https://downloads.haskell.org/ghc/9.0.1-rc1/ghc-${version}-src.tar.xz";
sha256 = "1kg227fzg9qq2p7r8xqr99vvnx7ind4clxkydikyzf3vqvaacjfy";
};
enableParallelBuilding = true;
@ -109,6 +110,9 @@ stdenv.mkDerivation (rec {
postPatch = "patchShebangs .";
# GHC needs the locale configured during the Haddock phase.
LANG = "en_US.UTF-8";
# GHC is a bit confused on its cross terminology.
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
@ -129,6 +133,8 @@ stdenv.mkDerivation (rec {
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (stdenv.isLinux) ''
export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
@ -185,7 +191,7 @@ stdenv.mkDerivation (rec {
strictDeps = true;
# Dont add -liconv to LDFLAGS automatically so that GHC will add it itself.
dontAddExtraLibs = true;
dontAddExtraLibs = true;
nativeBuildInputs = [
perl autoconf automake m4 python3 sphinx

View file

@ -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 = "1l2syrslba4mrxjzj0iblflz72siw3ibqri6p5hf59fk7rmm30a8";
sha256 = "0w71kbz127fcli24sxsvd48l5xamwamjwhr18x9alam5cldqkkz1";
};
}).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@ -130,7 +130,8 @@ self: super: {
ABList = dontCheck super.ABList;
# sse2 flag due to https://github.com/haskell/vector/issues/47.
vector = if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector;
# Jailbreak is necessary for QuickCheck dependency.
vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector);
conduit-extra = if pkgs.stdenv.isDarwin
then super.conduit-extra.overrideAttrs (drv: { __darwinAllowLocalNetworking = true; })
@ -216,11 +217,7 @@ self: super: {
# building of the executable has been disabled for ghc < 8.10 in hnix.
# Generating the completions should be activated again, once we default to
# ghc 8.10.
hnix = dontCheck (super.hnix.override {
# 2020-09-18: Those packages are all needed by hnix at versions newer than on stackage
prettyprinter = self.prettyprinter_1_7_0; # at least 1.7
});
hnix = dontCheck super.hnix;
# Fails for non-obvious reasons while attempting to use doctest.
search = dontCheck super.search;
@ -363,9 +360,6 @@ self: super: {
punycode = dontCheck super.punycode;
pwstore-cli = dontCheck super.pwstore-cli;
quantities = dontCheck super.quantities;
QuickCheck_2_14_2 = super.QuickCheck_2_14_2.override( {
splitmix = self.splitmix_0_1_0_3;
});
redis-io = dontCheck super.redis-io;
rethinkdb = dontCheck super.rethinkdb;
Rlang-QQ = dontCheck super.Rlang-QQ;
@ -399,7 +393,6 @@ self: super: {
xsd = dontCheck super.xsd;
zip-archive = dontCheck super.zip-archive; # https://github.com/jgm/zip-archive/issues/57
random_1_2_0 = super.random_1_2_0.override ({ splitmix = self.splitmix_0_1_0_3; });
# These test suites run for ages, even on a fast machine. This is nuts.
Random123 = dontCheck super.Random123;
systemd = dontCheck super.systemd;
@ -863,8 +856,7 @@ self: super: {
swagger2 = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontHaddock (dontCheck super.swagger2) else super.swagger2;
# hledger-lib requires the latest version of pretty-simple
hledger-lib = super.hledger-lib.override { pretty-simple = self.pretty-simple_4_0_0_0; };
pretty-simple_4_0_0_0 = super.pretty-simple_4_0_0_0.overrideScope (self: super: { prettyprinter = self.prettyprinter_1_7_0; });
hledger-lib = super.hledger-lib.override { pretty-simple = self.pretty-simple; };
# Copy hledger man pages from data directory into the proper place. This code
# should be moved into the cabal2nix generator.
@ -1532,20 +1524,27 @@ self: super: {
# 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27)
pandoc-include-code = doJailbreak super.pandoc-include-code;
# https://github.com/jgm/pandoc/issues/6961
pandoc = dontCheck super.pandoc;
# Update pandoc dependencies to fix the build.
doctemplates = self.doctemplates_0_9;
skylighting = self.skylighting_0_10_2;
skylighting-core = self.skylighting-core_0_10_2;
# https://github.com/yesodweb/yesod/issues/1714
yesod-core = dontCheck super.yesod-core;
# Add ApplicationServices on darwin
# use 0.4.5 instead of 0.4.4 to fix build with glibc >= 2.32
apecs-physics = addPkgconfigDepends super.apecs-physics_0_4_5
apecs-physics = addPkgconfigDepends super.apecs-physics
(pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.ApplicationServices);
# Break out of overspecified constraint on QuickCheck.
algebraic-graphs = dontCheck super.algebraic-graphs;
attoparsec = doJailbreak super.attoparsec; # https://github.com/haskell/attoparsec/pull/168
cassava = doJailbreak super.cassava;
filepath-bytestring = doJailbreak super.filepath-bytestring;
ghc-source-gen = doJailbreak super.ghc-source-gen;
haddock-library = doJailbreak super.haddock-library;
HsYAML = doJailbreak super.HsYAML;
http-api-data = doJailbreak super.http-api-data;
lzma = doJailbreak super.lzma;
psqueues = doJailbreak super.psqueues;
# Break out of overspecified constraint on QuickCheck.
# https://github.com/Gabriel439/Haskell-Nix-Derivation-Library/pull/10
nix-derivation = doJailbreak super.nix-derivation;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View file

@ -83,12 +83,6 @@ self: super: {
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
});
# Version 4.7.2 is broken by the bytestring library shipped by ghc-8.10.3.
ListLike = appendPatch super.ListLike (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/ListLike-4.7.2.patch";
sha256 = "1v392a74w0sxyn6x0bqixpmjbgla0i2b5hxzkcn1vaa3gaya7ag4";
});
# hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
hnix = generateOptparseApplicativeCompletion "hnix"
(overrideCabal super.hnix (drv: {
@ -98,4 +92,11 @@ self: super: {
# Break out of "Cabal < 3.2" constraint.
stylish-haskell = doJailbreak super.stylish-haskell;
# Agda 2.6.1.2 only declares a transformers dependency for ghc < 8.10.3.
# https://github.com/agda/agda/issues/5109
Agda = appendPatch super.Agda (pkgs.fetchpatch {
url = "https://github.com/agda/agda/commit/76278c23d447b49f59fac581ca4ac605792aabbc.patch";
sha256 = "1g34g8a09j73h89pk4cdmri0nb0qg664hkff45amcr9kyz14a9f3";
});
}

View file

@ -59,6 +59,7 @@ self: super: {
# Jailbreaks & Version Updates
async = doJailbreak super.async;
ChasingBottoms = markBrokenVersion "1.3.1.9" super.ChasingBottoms;
data-fix = doJailbreak super.data-fix;
dec = doJailbreak super.dec;
ed25519 = doJailbreak super.ed25519;
hashable = overrideCabal (doJailbreak (dontCheck super.hashable)) (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; });
@ -66,14 +67,16 @@ self: super: {
integer-logarithms = overrideCabal (doJailbreak super.integer-logarithms) (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; });
lukko = doJailbreak super.lukko;
parallel = doJailbreak super.parallel;
primitive = doJailbreak (dontCheck super.primitive);
regex-posix = doJailbreak super.regex-posix;
resolv = doJailbreak super.resolv;
singleton-bool = doJailbreak super.singleton-bool;
split = doJailbreak super.split;
splitmix = self.splitmix_0_1_0_3;
tar = doJailbreak super.tar;
time-compat = doJailbreak super.time-compat;
vector = doJailbreak (dontCheck super.vector);
vector-binary-instances = doJailbreak super.vector-binary-instances;
vector-th-unbox = doJailbreak super.vector-th-unbox;
zlib = doJailbreak super.zlib;
# Apply patches from head.hackage.
@ -93,7 +96,6 @@ self: super: {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/language-haskell-extract-0.2.4.patch";
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
});
QuickCheck = super.QuickCheck_2_14_2;
regex-base = appendPatch (doJailbreak super.regex-base) (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/regex-base-0.94.0.0.patch";
sha256 = "0k5fglbl7nnhn8400c4cpnflxcbj9p3xi5prl9jfmszr31jwdy5d";

View file

@ -550,7 +550,6 @@ self: super: builtins.intersectAttrs super {
# Break infinite recursion cycle between QuickCheck and splitmix.
splitmix = dontCheck super.splitmix;
splitmix_0_1_0_3 = dontCheck super.splitmix_0_1_0_3;
# Break infinite recursion cycle between tasty and clock.
clock = dontCheck super.clock;

File diff suppressed because it is too large Load diff