all-cabal-hashes: 2025-07-28T06:22:26Z -> 2025-08-06T11:20:02Z
(generated by maintainers/scripts/haskell/update-package-set.sh)
haskellPackages.nix-derivation: drop override addressed by revision
These packages are new core packages starting with GHC 9.10, but there
is no (simple) way to make them available for older GHCs. We just need
to make sure the attributes exist, so we can evaluate packages that
depend on them with all GHC versions (even if the build may fail).
See 1b5377100b. This is required to
evaluate some packages since it is an argument to their package
expression. We can't actually provide a version that works with these
GHC versions, so we set it to null and hope the packages themselves only
have a conditional dependency on them.
Upstream doesn't seem to intend to maintain chell going forward, so this
will probably not get fixed. chell-quickcheck is only used by two
packages on Hackage, so we don't need to care too much.
haskellPackages.gnuidn: disable test suite due to chell-quickcheck
The ghc-lib-parser expression is now created by running cabal2nix via
GHC 9.10. This means that the conditional dependency ghc-internal is now
added, but this is only available from GHC 9.10 onwards. Since this is
not required when building with older compilers, we just set it to null.
- Patch few build errors related to pointers
- Add override for botan, so the package finds botan3
- Remove botan-bindings from broken.yaml and regenerate the hackage
packages list
Signed-off-by: Mika Tammi <mikatammi@gmail.com>
This is the most conservative update to include the containers >= 0.7
change which we need. From the commit messages in between, changes
seemed harmless:
f3a7fca02f...7645bd335f
Without the change the eval fails as:
$ nix build --no-link -f. haskell.packages.ghc865Binary.exceptions
error: attribute 'exceptions_0_10_9' missing
at pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix:94:16:
93| # This became a core library in ghc 8.10., so we don’t have an "exception" attribute anymore.
94| exceptions = self.exceptions_0_10_9;
| ^
95|
Did you mean exceptions_0_10_10?
This matches what Stackage LTS 23 and thus we were using with GHC < 9.10
before: https://www.stackage.org/lts-23/package/os-string
This is actually not ideal since these GHC versions also ship versions
of filepath that may have module collisions with os-string, so using
os-string-1.0.0 (like for GHC < 9.2) would be better in some situations.
Unfortunately, it looks like the OsPath/os-string transition wasn't
completely thought through and e.g. hashable-1.4.7.0 (which we were also
using with Stackage LTS 23) has a hard dependency on os-string for
GHC >= 9.2, so we don't have much of a choice here.
The combination of a dependency on filepath and os-string doesn't seem
to be super common thus far, but down the line we may have trouble
getting such packages to work with GHC < 9.10 && >= 9.2.
It is pretty much impossible to get os-string to work with GHC < 9.2
since it has a hard dependency on bytestring >= 0.11 which only GHC 9.2
started to ship.
cabal2nix-unstable is mostly used for regenerating the Haskell package
set. Thus we should aim to make it quick to rebuild in case its hash
changes because of Haskell related changes.
- cabal2nix is not fussy about the Nix version it uses for nix-env(1)
and we can just assume it is already in PATH like we do for
maintainers/scripts/haskell/*.
- nix-prefetch-scripts causes the most trouble since its python
dependencies depend on pandoc, so many Haskell changes require
an additional Python rebuild when building cabal2nix-unstable.
nix-prefetch-scripts is most likely installed and not necessary in
many cases, e.g. hackage2nix doesn't need them which is the main use
we have for cabal2nix-unstable. For the update scripts that do need
them, we add them to the used nix-shell explicitly.