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", "commit": "9f677e1d2267621375d22e3f6c1a25246678be4c",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/78541d36393ac3dd0ffa32b4a9af15fecdefb5d1.tar.gz", "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/9f677e1d2267621375d22e3f6c1a25246678be4c.tar.gz",
"sha256": "1qwjkjlz9sw1jnsarin6803vj68bfm3iyysfwxaifga5w4dsrqcs", "sha256": "0y2mbj8dwfgdz5pzdq682clab10xgnqlrfv1najx53yy5jf63pcv",
"msg": "Update from Hackage at 2022-12-30T22:03:31Z" "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"; ${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. # TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ] configurePlatforms = [ "build" "host" ]

View File

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

View File

@ -66,10 +66,6 @@ self: super: {
# > https://github.com/roelvandijk/numerals # > https://github.com/roelvandijk/numerals
numerals = doJailbreak (dontCheck super.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 # 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; 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 # https://github.com/kkardzis/curlhs/issues/6
curlhs = dontCheck super.curlhs; 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 # https://github.com/hvr/token-bucket/issues/3
token-bucket = dontCheck super.token-bucket; token-bucket = dontCheck super.token-bucket;
@ -654,12 +644,15 @@ self: super: {
}) newer; }) newer;
# * The standard libraries are compiled separately. # * 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 # updated dependencies (haskeline and megaparsec) which can be
# removed when the next idris release (1.3.4 probably) comes # removed when the next idris release comes around.
# around.
idris = self.generateOptparseApplicativeCompletions [ "idris" ] 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 # Too strict bound on hspec
# https://github.com/lspitzner/multistate/issues/9#issuecomment-1367853016 # https://github.com/lspitzner/multistate/issues/9#issuecomment-1367853016
@ -1357,9 +1350,7 @@ self: super: {
haskell-language-server = (lib.pipe super.haskell-language-server [ haskell-language-server = (lib.pipe super.haskell-language-server [
dontCheck 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 … (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: { ]).overrideScope (lself: lsuper: {
hls-call-hierarchy-plugin = null;
# For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix, # For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
# because some packages, like ormolu, need a newer Cabal version. # because some packages, like ormolu, need a newer Cabal version.
# ghc-paths is special because it depends on Cabal for building # ghc-paths is special because it depends on Cabal for building
@ -1977,12 +1968,6 @@ self: super: {
"--skip" "/toJsonSerializer/should generate valid JSON/" "--skip" "/toJsonSerializer/should generate valid JSON/"
] ++ drv.testFlags or []; ] ++ drv.testFlags or [];
}) super.hschema-aeson; }) 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 # https://github.com/minio/minio-hs/issues/165
minio-hs = overrideCabal (drv: { minio-hs = overrideCabal (drv: {
testFlags = [ testFlags = [
@ -2110,12 +2095,9 @@ self: super: {
# https://github.com/zellige/hs-geojson/issues/29 # https://github.com/zellige/hs-geojson/issues/29
geojson = dontCheck super.geojson; geojson = dontCheck super.geojson;
# Support network >= 3.1.2 # Test suite doesn't compile
# https://github.com/erebe/wstunnel/pull/107 # https://github.com/erebe/wstunnel/issues/145
wstunnel = appendPatch (fetchpatch { wstunnel = dontCheck super.wstunnel;
url = "https://github.com/erebe/wstunnel/pull/107/commits/47c1f62bdec1dbe77088d9e3ceb6d872f922ce34.patch";
sha256 = "sha256-fW5bVbAGQxU/gd9zqgVNclwKraBtUjkKDek7L0c4+O0=";
}) super.wstunnel;
# Test data missing from sdist # Test data missing from sdist
# https://github.com/ngless-toolkit/ngless/issues/152 # https://github.com/ngless-toolkit/ngless/issues/152

View File

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

View File

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

View File

@ -359,6 +359,17 @@ self: super: builtins.intersectAttrs super {
preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"''; preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"'';
}) super.ghcide; }) 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: { tasty-discover = overrideCabal (drv: {
# Depends on itself for testing # Depends on itself for testing
preBuild = '' preBuild = ''
@ -800,6 +811,14 @@ self: super: builtins.intersectAttrs super {
# time # time
random = dontCheck super.random; 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's tests depend on hspec-discover which dependso on mockery for its tests
mockery = dontCheck super.mockery; mockery = dontCheck super.mockery;
# same for logging-facade # same for logging-facade
@ -840,7 +859,11 @@ self: super: builtins.intersectAttrs super {
buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ]; buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ];
postInstall = drv.postInstall or "" + '' postInstall = drv.postInstall or "" + ''
wrapProgram "$out/bin/nvfetcher" --prefix 'PATH' ':' "${ 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); }) super.nvfetcher);
@ -851,7 +874,11 @@ self: super: builtins.intersectAttrs super {
(overrideCabal { doCheck = pkgs.postgresql.doCheck; }) (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-agent = super.hercules-ci-agent.override { nix = pkgs.nixVersions.nix_2_10; };
hercules-ci-cnix-expr = hercules-ci-cnix-expr =

View File

@ -11,7 +11,12 @@ let
in in
{ pname { 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 , version, revision ? null
, sha256 ? null , sha256 ? null
, src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; } , 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 # Pass the "wrong" C compiler rather than none at all so packages that just
# use the C preproccessor still work, see # use the C preproccessor still work, see
# https://github.com/haskell/cabal/issues/6466 for details. # 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 [ ] ++ optionals stdenv.hasCC [
"--with-ld=${stdenv.cc.bintools.targetPrefix}ld" "--with-ld=${stdenv.cc.bintools.targetPrefix}ld"
"--with-ar=${stdenv.cc.bintools.targetPrefix}ar" "--with-ar=${stdenv.cc.bintools.targetPrefix}ar"
@ -246,7 +251,10 @@ let
allPkgconfigDepends = pkg-configDepends ++ libraryPkgconfigDepends ++ executablePkgconfigDepends ++ allPkgconfigDepends = pkg-configDepends ++ libraryPkgconfigDepends ++ executablePkgconfigDepends ++
optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends; 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 = collectedToolDepends =
buildTools ++ libraryToolDepends ++ executableToolDepends ++ buildTools ++ libraryToolDepends ++ executableToolDepends ++
optionals doCheck testToolDepends ++ optionals doCheck testToolDepends ++
@ -316,7 +324,9 @@ stdenv.mkDerivation ({
inherit src; inherit src;
inherit depsBuildBuild nativeBuildInputs; 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; propagatedBuildInputs = optionals isLibrary propagatedBuildInputs;
LANG = "en_US.UTF-8"; # GHC needs the locale configured during the Haddock phase. 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 { }; haskell = callPackage ./haskell-packages.nix { };
haskellPackages = dontRecurseIntoAttrs haskellPackages = dontRecurseIntoAttrs
# Prefer native-bignum to avoid linking issues with gmp # JS backend is only available for GHC >= 9.6
(if stdenv.hostPlatform.isStatic (if stdenv.hostPlatform.isGhcjs
then haskell.packages.native-bignum.ghc92 then haskell.packages.native-bignum.ghcHEAD
else haskell.packages.ghc92); # 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 # 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 # set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more

View File

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

View File

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