I've tried to be conservative and only clean up things that broke eval
which in most cases had to do with uses of versioned packages that have
become the default in Stackage Nightly now. There's probably still
potential for cleaning up some additional workarounds and likely there
are still a lot of new workarounds to be found once we know about the
build failures.
Also note that clean eval only means that nix-env doesn't fail.
Notes:
* HLS now lacks the stylish-haskell and britanny plugins by default,
since they don't support GHC 9.0.2. We'll need to re-enable them
for GHC < 9.0.2
* A lot of uses of hspec 2.9.* can probably be removed, as 2.8.* which
is used in Stackage Nightly is new enough for most packages.
Expose from haskell.packages.ghc921 (which is the only GHC version that
can build it easily atm) and additionally install man page, language
guide and code examples.
retrie 1.2.0.0 adds support for 9.2, but drops it for all prior
versions. haskell.packages.ghc921.retrie stays at 1.2.0.0.
haskell.packages.ghc921.ghc-exactprint: 0.6.4 -> 1.3.0
Move everything into a single overrideCabal and express conditionality
using optionalAttrs. This should make it easier to add
more (un)conditional overrides in the future.
PR was merged after the switch to haskell.lib.compose by default, but
originally created before that day, so the argument order used was
completely wrong, but CI didn't show it, because its state was stale.
The compile time check for close_range support is broken fundamentally
at the moment (linux-headers is always 5.14, so it'll always assume
close_range is available, upstream is aware of this issue). As a
workaround, we disable the test suite if the kernel on the builder is
too old, allowing the package to still be built.
The aliases, like haskell-language-server-8.10 do not get discovered by the hls-wrapper.
Only `haskell-language-server` and e.g. `haskell-languag-server-8.10.7` work.
I got that wrong when introducing those aliases.
Some hash implementations in hashes are platform-specific (32 vs 64
bit), but only implemented in terms of “is i686 or x86_64?”. This it'll
always fail on other platforms (like aarch64). Consequently it makes no
sense to build and execute the test suite there, even if some hash
implementations are platform independent and could be tested.
webkitgtk24x-gtk2 has been removed, but webkit doesn't compile anymore
these days, so we can save us maintaining this override. The “correct”
override would be webkitgtk (webkit is an alias form webkitgtk atm,
maybe we should introduce a libNixName thing in cabal2nix for this?)
if webkit compiled with modern dependencies…
websnap actually depends on the haskell webkit package (which is
broken), so this override introducing a dependency on a removed package
is actually incorrect and can be removed.
Monomer's tests want a display, which currently isn't provided in the Nix sandbox.
I also reordered the other packages that are in the same boat so they're
all in one place.