We already had a xmonad-nix.patch for XMonad 0.17, so it's just a matter
of using it. The old patch for 0.16 can be dropped as well, since we no
longer ship that version.
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.
ats-format has a custom Setup.hs which does the following using cli-setup:
* Add ~/.local/share/man to $MANPATH by editing shell configurations in $HOME.
* Install a man page into ~/.local/share
* Install a shell completion by editing shell configurations in $HOME.
We had a workaround to keep this from failing the build in the nix sandbox, but
this seemingly broke on darwin. To fix this once and forall, we force the use
of only `defaultMain` in Setup.hs and install the man page manually.
Additionally we generate completions and remove unnecessary extra references
from the closure.
Fix instances of tool dependencies coming from `self` or `pkgs`
instead of `self.buildHaskellPackages` or `pkgs.buildPackages`
respectively. This makes sure cross-evaluation and -compilation will
work although their may still be more kinks to work out (or cases I
missed). This change was mostly created by searching for `[tTool]` and
`\${` in the respective files.
Note that this has intentionally not been for test tool dependencies:
Like in `stdenv.mkDerivation` we need to view tests as being executed
on the *host platform* which is why we can't run tests while cross
compiling anyways. In practice this is not an important distinction,
though: `pkgs.buildPackages` and `pkgs` are almost identical in the
native case.
Resolves#127232.
These attribute names were converted into aliases in the following
changes:
* 62733b37b4
* https://github.com/NixOS/nixpkgs/pull/104776
cabal2nix-unstable has been updated to be aware of these changes in
7a9080d774, so these aliases should no
longer cause issues when evaluating with `allowAliases = false`.
random 1.2.0 has a new test suite with a lot of dependencies. Among
other packages it depends on doctest which depends on syb which depends
on tasty which depends on optparse-applicative which depends on
QuickCheck which depends on -- you guessed it -- random!
The cycle could be broken at any point of course, I've disabled the
tests on random here because it has seen the change that causes all
of this. However, we may also want to consider doing this for
optparse-applicative instead, since random seems like a more critical
package to run the tests for possibly? Not sure, looking for feedback.
All of these packages use x86 intrinsics-related headers and don't
compile on non x86 platforms as a result.
These overrides should be refactored into the yaml configuration at some
point.
Resolves#122014.
Move necessary overrides into configuration-nix.nix, so there's no
discrepancy between stutter and haskellPackages.stutter.
However the build of stutter is still broken its dependency snipcheck
doesn't build with the pandoc version we have.
Requires a jailbreak currently because the hackage version bounds are
somewhat outdated. Also regenerate the package set, so the next hydra
evaluation picks up on this.
continuation of #109595
pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.
python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
While we are at it I:
* Disable tests, because I can‘t keep up with the speed hls introduces
more tests that cause trouble in nixpkgs.
* Fix builds of fourmolu and retrie
* Remove the wrapper for hls which is obsolete because of improved
package detection in hie-bios. And added a note that this can be removed
for ghcide soon, too.
gi-gtk-declarative requires an X11 display in its test suite.
X11 display is not available inside nix build sandbox, which makes tests fail.
Solution: disable tests for gi-gtk-declarative.