Merge pull request #209112 from NixOS/haskell-updates

haskellPackages: update stackage and hackage
This commit is contained in:
maralorn 2023-01-08 00:59:23 +01:00 committed by GitHub
commit be313a93bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1069 additions and 384 deletions

View File

@ -1,6 +1,6 @@
{
"commit": "78541d36393ac3dd0ffa32b4a9af15fecdefb5d1",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/78541d36393ac3dd0ffa32b4a9af15fecdefb5d1.tar.gz",
"sha256": "1qwjkjlz9sw1jnsarin6803vj68bfm3iyysfwxaifga5w4dsrqcs",
"msg": "Update from Hackage at 2022-12-30T22:03:31Z"
"commit": "9f677e1d2267621375d22e3f6c1a25246678be4c",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/9f677e1d2267621375d22e3f6c1a25246678be4c.tar.gz",
"sha256": "0y2mbj8dwfgdz5pzdq682clab10xgnqlrfv1najx53yy5jf63pcv",
"msg": "Update from Hackage at 2023-01-06T18:29:38Z"
}

View File

@ -353,6 +353,8 @@ stdenv.mkDerivation ({
'';
${if targetPlatform.isGhcjs then "configureScript" else null} = "emconfigure ./configure";
# GHC currently ships an edited config.sub so ghcjs is accepted which we can not rollback
${if targetPlatform.isGhcjs then "dontUpdateAutotoolsGnuConfigScripts" else null} = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ]

View File

@ -8,10 +8,10 @@
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2022-12-08";
version = "unstable-2023-01-06";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/021a48f4b4942462154b06fd81429a248638f87f.tar.gz";
sha256 = "1is1q5mqi86vzy3ni2959hr95gs9hwd5wiz92hanfli3infg00xc";
url = "https://github.com/NixOS/cabal2nix/archive/d24f4eab2352468510fb81e276aab9d62e94b561.tar.gz";
sha256 = "16d3mf4d622gns1myx9mwx39sx0l9wndybxn5ik00x0pxnmh7f36";
};
postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
isLibrary = true;

View File

@ -66,10 +66,6 @@ self: super: {
# > https://github.com/roelvandijk/numerals
numerals = doJailbreak (dontCheck super.numerals);
# Too stricut upper bound on time
# https://github.com/acw/rate-limit/issues/9
rate-limit = doJailbreak super.rate-limit;
# This test keeps being aborted because it runs too quietly for too long
Lazy-Pbkdf2 = if pkgs.stdenv.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2;
@ -478,12 +474,6 @@ self: super: {
# https://github.com/kkardzis/curlhs/issues/6
curlhs = dontCheck super.curlhs;
# Too strict upper bounds on bytestring & time
# https://github.com/barrucadu/irc-conduit/issues/35
irc-conduit = doJailbreak super.irc-conduit;
# https://github.com/barrucadu/irc-client/issues/77
irc-client = doJailbreak super.irc-client;
# https://github.com/hvr/token-bucket/issues/3
token-bucket = dontCheck super.token-bucket;
@ -654,12 +644,15 @@ self: super: {
}) newer;
# * The standard libraries are compiled separately.
# * We need multiple patches from master to fix compilation with
# * We need a patch from master to fix compilation with
# updated dependencies (haskeline and megaparsec) which can be
# removed when the next idris release (1.3.4 probably) comes
# around.
# removed when the next idris release comes around.
idris = self.generateOptparseApplicativeCompletions [ "idris" ]
(doJailbreak (dontCheck super.idris));
(appendPatch (fetchpatch {
name = "idris-libffi-0.2.patch";
url = "https://github.com/idris-lang/Idris-dev/commit/6d6017f906c5aa95594dba0fd75e7a512f87883a.patch";
hash = "sha256-wyLjqCyLh5quHMOwLM5/XjlhylVC7UuahAM79D8+uls=";
}) (doJailbreak (dontCheck super.idris)));
# Too strict bound on hspec
# https://github.com/lspitzner/multistate/issues/9#issuecomment-1367853016
@ -1357,9 +1350,7 @@ self: super: {
haskell-language-server = (lib.pipe super.haskell-language-server [
dontCheck
(disableCabalFlag "stan") # Sorry stan is totally unmaintained and terrible to get to run. It only works on ghc 8.8 or 8.10 anyways …
(assert super.hls-call-hierarchy-plugin.version == "1.1.0.0"; disableCabalFlag "callHierarchy") # Disabled temporarily: https://github.com/haskell/haskell-language-server/pull/3431
]).overrideScope (lself: lsuper: {
hls-call-hierarchy-plugin = null;
# For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
# because some packages, like ormolu, need a newer Cabal version.
# ghc-paths is special because it depends on Cabal for building
@ -1977,12 +1968,6 @@ self: super: {
"--skip" "/toJsonSerializer/should generate valid JSON/"
] ++ drv.testFlags or [];
}) super.hschema-aeson;
# https://github.com/ssadler/aeson-quick/issues/3
aeson-quick = overrideCabal (drv: {
testFlags = [
"-p" "!/asLens.set/&&!/complex.set/&&!/multipleKeys.set/"
] ++ drv.testFlags or [];
}) super.aeson-quick;
# https://github.com/minio/minio-hs/issues/165
minio-hs = overrideCabal (drv: {
testFlags = [
@ -2110,12 +2095,9 @@ self: super: {
# https://github.com/zellige/hs-geojson/issues/29
geojson = dontCheck super.geojson;
# Support network >= 3.1.2
# https://github.com/erebe/wstunnel/pull/107
wstunnel = appendPatch (fetchpatch {
url = "https://github.com/erebe/wstunnel/pull/107/commits/47c1f62bdec1dbe77088d9e3ceb6d872f922ce34.patch";
sha256 = "sha256-fW5bVbAGQxU/gd9zqgVNclwKraBtUjkKDek7L0c4+O0=";
}) super.wstunnel;
# Test suite doesn't compile
# https://github.com/erebe/wstunnel/issues/145
wstunnel = dontCheck super.wstunnel;
# Test data missing from sdist
# https://github.com/ngless-toolkit/ngless/issues/152

View File

@ -560,6 +560,7 @@ broken-packages:
- cabal-meta
- cabal-mon
- cabal-nirvana
- cabal-plan-bounds
- cabal-progdeps
- cabalQuery
- CabalSearch
@ -853,6 +854,7 @@ broken-packages:
- Conscript
- consistent
- console-program
- constable
- const-math-ghc-plugin
- constrained
- constrained-categories
@ -2323,7 +2325,6 @@ broken-packages:
- HLogger
- hlongurl
- hls-brittany-plugin
- hls-call-hierarchy-plugin
- hls-haddock-comments-plugin
- hls-selection-range-plugin
- hls-stan-plugin
@ -2661,7 +2662,6 @@ broken-packages:
- identifiers
- idiii
- idna2008
- idris
- IDynamic
- ieee-utils
- iexcloud
@ -4327,6 +4327,7 @@ broken-packages:
- rattle
- rattletrap
- raven-haskell-scotty
- raylib-imgui
- raz
- rbst
- rclient

View File

@ -192,6 +192,7 @@ dont-distribute-packages:
- HROOT-hist
- HROOT-io
- HROOT-math
- HROOT-net
- HROOT-tree
- HRay
- HSGEP
@ -672,7 +673,10 @@ dont-distribute-packages:
- array-forth
- arraylist
- ascii-cows
- ascii-superset_1_2_4_0
- ascii-table
- ascii-th_1_1_1_0
- ascii_1_4_2_0
- asic
- asil
- assert4hs-hspec
@ -1027,6 +1031,7 @@ dont-distribute-packages:
- comfort-array
- comfort-array-shape
- comfort-fftw
- comfort-glpk
- commsec
- commsec-keyexchange
- comonad-random
@ -1395,6 +1400,7 @@ dont-distribute-packages:
- ewe
- exference
- exinst-aeson
- exinst-base
- exinst-bytes
- exinst-cereal
- exinst-deepseq

View File

@ -359,6 +359,17 @@ self: super: builtins.intersectAttrs super {
preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"'';
}) super.ghcide;
# At least on 1.3.4 version on 32-bit architectures tasty requires
# unbounded-delays via .cabal file conditions.
tasty = overrideCabal (drv: {
libraryHaskellDepends =
(drv.libraryHaskellDepends or [])
++ lib.optionals (!(pkgs.stdenv.hostPlatform.isAarch64
|| pkgs.stdenv.hostPlatform.isx86_64)) [
self.unbounded-delays
];
}) super.tasty;
tasty-discover = overrideCabal (drv: {
# Depends on itself for testing
preBuild = ''
@ -800,6 +811,14 @@ self: super: builtins.intersectAttrs super {
# time
random = dontCheck super.random;
# https://github.com/Gabriella439/nix-diff/pull/74
nix-diff = overrideCabal (drv: {
postPatch = ''
substituteInPlace src/Nix/Diff/Types.hs \
--replace "{-# OPTIONS_GHC -Wno-orphans #-}" "{-# OPTIONS_GHC -Wno-orphans -fconstraint-solver-iterations=0 #-}"
'';
}) (doJailbreak (dontCheck super.nix-diff));
# mockery's tests depend on hspec-discover which dependso on mockery for its tests
mockery = dontCheck super.mockery;
# same for logging-facade
@ -840,7 +859,11 @@ self: super: builtins.intersectAttrs super {
buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ];
postInstall = drv.postInstall or "" + ''
wrapProgram "$out/bin/nvfetcher" --prefix 'PATH' ':' "${
pkgs.lib.makeBinPath [ pkgs.nvchecker pkgs.nix-prefetch ]
pkgs.lib.makeBinPath [
pkgs.nvchecker
pkgs.nix-prefetch
pkgs.nix-prefetch-docker
]
}"
'';
}) super.nvfetcher);
@ -851,7 +874,11 @@ self: super: builtins.intersectAttrs super {
(overrideCabal { doCheck = pkgs.postgresql.doCheck; })
];
cachix = super.cachix.override { nix = pkgs.nixVersions.nix_2_10; };
cachix = super.cachix.override {
nix = pkgs.nixVersions.nix_2_10;
fsnotify = super.fsnotify_0_4_1_0;
hnix-store-core = super.hnix-store-core_0_6_1_0;
};
hercules-ci-agent = super.hercules-ci-agent.override { nix = pkgs.nixVersions.nix_2_10; };
hercules-ci-cnix-expr =

View File

@ -11,7 +11,12 @@ let
in
{ pname
, dontStrip ? (ghc.isGhcjs or false)
# Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs.
# ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC.
# (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript
# backend. The latter is a normal cross compilation backend and needs little
# special accomodation.
, dontStrip ? (ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs)
, version, revision ? null
, sha256 ? null
, src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; }
@ -171,7 +176,7 @@ let
# Pass the "wrong" C compiler rather than none at all so packages that just
# use the C preproccessor still work, see
# https://github.com/haskell/cabal/issues/6466 for details.
"--with-gcc=${(if stdenv.hasCC then stdenv else buildPackages.stdenv).cc.targetPrefix}cc"
"--with-gcc=${if stdenv.hasCC then "$CC" else "$CC_FOR_BUILD"}"
] ++ optionals stdenv.hasCC [
"--with-ld=${stdenv.cc.bintools.targetPrefix}ld"
"--with-ar=${stdenv.cc.bintools.targetPrefix}ar"
@ -246,7 +251,10 @@ let
allPkgconfigDepends = pkg-configDepends ++ libraryPkgconfigDepends ++ executablePkgconfigDepends ++
optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends;
depsBuildBuild = [ nativeGhc ];
depsBuildBuild = [ nativeGhc ]
# CC_FOR_BUILD may be necessary if we have no C preprocessor for the host
# platform. See crossCabalFlags above for more details.
++ lib.optionals (!stdenv.hasCC) [ buildPackages.stdenv.cc ];
collectedToolDepends =
buildTools ++ libraryToolDepends ++ executableToolDepends ++
optionals doCheck testToolDepends ++
@ -316,7 +324,9 @@ stdenv.mkDerivation ({
inherit src;
inherit depsBuildBuild nativeBuildInputs;
buildInputs = otherBuildInputs ++ optionals (!isLibrary) propagatedBuildInputs;
buildInputs = otherBuildInputs ++ optionals (!isLibrary) propagatedBuildInputs
# For patchShebangsAuto in fixupPhase
++ optionals stdenv.hostPlatform.isGhcjs [ nodejs ];
propagatedBuildInputs = optionals isLibrary propagatedBuildInputs;
LANG = "en_US.UTF-8"; # GHC needs the locale configured during the Haddock phase.

File diff suppressed because it is too large Load Diff

View File

@ -14558,10 +14558,13 @@ with pkgs;
haskell = callPackage ./haskell-packages.nix { };
haskellPackages = dontRecurseIntoAttrs
# Prefer native-bignum to avoid linking issues with gmp
(if stdenv.hostPlatform.isStatic
then haskell.packages.native-bignum.ghc92
else haskell.packages.ghc92);
# JS backend is only available for GHC >= 9.6
(if stdenv.hostPlatform.isGhcjs
then haskell.packages.native-bignum.ghcHEAD
# Prefer native-bignum to avoid linking issues with gmp
else if stdenv.hostPlatform.isStatic
then haskell.packages.native-bignum.ghc92
else haskell.packages.ghc92);
# haskellPackages.ghc is build->host (it exposes the compiler used to build the
# set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more

View File

@ -159,6 +159,8 @@ in
/* Javacript */
ghcjs = mapTestOnCross lib.systems.examples.ghcjs {
haskell.packages.ghcjs.hello = nativePlatforms;
haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms;
haskellPackages.hello = nativePlatforms;
};
/* Linux on Raspberrypi */

View File

@ -345,6 +345,13 @@ let
;
};
};
pkgsCross.ghcjs.haskellPackages = {
inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskellPackages)
ghc
hello
;
};
})
(versionedCompilerJobs {
# Packages which should be checked on more than the