Skip to content

haskellPackages: update stackage and hackage#132647

Merged
sternenseemann merged 39 commits intomasterfrom
haskell-updates
Aug 7, 2021
Merged

haskellPackages: update stackage and hackage#132647
sternenseemann merged 39 commits intomasterfrom
haskell-updates

Conversation

@sternenseemann
Copy link
Copy Markdown
Member

This Merge

This PR is the regular merge of the haskell-updates branch into master.

This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.

I will aim to merge this PR by 2021-08-08. If I can merge it earlier, there might be successor PRs in that time window. As part of our rotation @maralorn will continue these merges from 2021-08-09 to 2021-08-15.

haskellPackages Workflow Summary

Our workflow is currently described in
pkgs/development/haskell-modules/HACKING.md.

The short version is this:

  • We regularly update the Stackage and Hackage pins on haskell-updates (normally at the beginning of a merge window).
  • The community fixes builds of Haskell packages on that branch.
  • We aim at at least one merge of haskell-updates into master every two weeks.
  • We only do the merge if the mergeable job is succeeding on hydra.
  • If a maintained package is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!)

This is the follow-up to #132048.

sternenseemann and others added 4 commits August 4, 2021 12:33
This commit has been generated by maintainers/scripts/haskell/update-hackage.sh
This commit has been generated by maintainers/scripts/haskell/update-stackage.sh
This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
@github-actions github-actions bot added the 6.topic: haskell General-purpose, statically typed, purely functional programming language label Aug 4, 2021
@sternenseemann sternenseemann changed the title Haskell updates haskellPackages: update stackage and hackage Aug 4, 2021
haskeline_0_8_1_2 was removed as the hackage version updated.
@ofborg ofborg bot added 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 2501-5000 This PR causes many rebuilds on Darwin and should target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches. labels Aug 4, 2021
sternenseemann and others added 4 commits August 4, 2021 20:29
Test suite depends on an old version of base16-bytestring (but has not
set up constraints for it). Can't be bothered to add an old version of
it, let's just disable the test suite for now. This should fix itself
sooner or later.
@sternenseemann
Copy link
Copy Markdown
Member Author

sternenseemann commented Aug 4, 2021

haskell-updates build report from hydra

evaluation 1693095 of nixpkgs commit b42cded as of 2021-08-06 22:02 UTC

Build summary

Platform Failed ❌ DependencyFailed ❗ TimedOut ⌛🚫 Success ✔️
aarch64-linux 📱 23 10 6670
x86_64-darwin 🍎 57 38 3 6557
x86_64-linux 🐧 7 9 6736

Maintained packages with failed dependency

Unmaintained packages with build failure

74 job(s)

Unmaintained packages with failed dependency

59 job(s)

Report generated with maintainers/scripts/haskell/hydra-report.hs

sternenseemann and others added 5 commits August 4, 2021 22:36
We employ a workaround for a GHC bug [1] which has been adopted by both
Debian and Fedora for a eerily similar problem on ppc64le. Hopefully
this fixes our aarch64 issue as well (untested so far). -O0 is not
ideal, but compilation with -fllvm fails when linking (due to an
invalid relocation and passing -fPIC wasn't enough to fix it), so
we're stuck with this for now.

[1]: https://gitlab.haskell.org/ghc/ghc/-/issues/17203
Another one for the no doctests list.
Disable doctests as workaround for RTS bug.
@ofborg ofborg bot added the 8.has: clean-up This PR removes packages or removes other cruft label Aug 5, 2021
sternenseemann and others added 19 commits August 6, 2021 03:24
This was marked as broken by mistake: It builds fine, but just on darwin
which is to be expected as it is binding to an API not available on
Linux.
kqueue is a conditional dependency which is added via a cabal conditional
which we need to emulate manually.
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.
SDL_main.h which is included from SDL_ttf.h contains a #define which redefines
main to SDL_main. This has to do with the way SDL binaries are linked and
executed on darwin which is explained here [1]. However this is bad news for
hsc2hs intermediate C sources which in this case only to gather version
information from the headers and not to run a full SDL application.

Thus compilation would fail due to this issue which we can avoid by redefining
main to main again after including the header.

[1]: http://www.ariis.it/link/repos/sdl-bindings/hssdl-image/MACOSX
SDL-mixer's configure script makes some darwin specific assumptions about
the layout of the SDL libraries which don't hold up with the way they are
packaged in nixpkgs. Since the way we are doing this on other platforms
works with the configure script and doesn't significantly differ from the
situation on darwin, we can just replace a string in a string comparison
to ensure the non-darwin code path is taken.
Interestingly SDL-image exhibits both the problems of SDL-mixer and SDL-ttf
have. How the respective fixes we apply here as well work is explained in
1a68ebf98573291fc4a8d8e7b35ea2e74a0d6665 and
2a8105fc58644307007f326de25b357d216d3ad7.
A few libraries published by https://github.com/typeclasses/ have the issue
that they have a test suite with its Main module in hegehog.hs. On darwin
GHC can't distinguish between Hedgehog.hs and hedgehog.hs due to the case
insensitive file system and will raise an issue about this.
Won't build on e. g. aarch64 due to its use of x86 architecture specific
features.
It has a constraint on an old version of gtk, so doesn't build and seems
abandoned (no release since 2017, copyright notice year range ends with
2010).
Let upstream deal with the resource exhaustion issue, probably the stress
test is a bit too optimistic for darwin's fd limits or whatever.
Fails to build due to case insensitive file system.
Since enableLibraryProfiling is false on aarch64, we can't expect tests
to work, but the library can still be built.
This commit has been generated by maintainers/scripts/haskell/mark-broken.sh
Tests succeed after a restart, maybe just flaky, we'll have to keep an
eye on this one.
@sternenseemann
Copy link
Copy Markdown
Member Author

sternenseemann commented Aug 7, 2021

A note on related PRs:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: haskell General-purpose, statically typed, purely functional programming language 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 2501-5000 This PR causes many rebuilds on Darwin and should target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 2501-5000 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants