Upstream XMonad was using our xmonad patch file for their flake build to
support our nixos module. This would of course break the build upstream
if the version we patched and their master branch diverged. We
[discussed] that it'd make sense to upstream the environment var code.
In the process it seemed sensible to rename the NIX_GHC variable as
well, since it isn't really Nix-specific – it's just a way to set the
GHC binary to execute. This change has been [implemented] upstream in an
unreleased version of xmonad now – meaning we'll be able to drop the
xmonad patch soon!
This also clarifies the situation in nixpkgs a bit: NIX_GHC is easy to
confuse with the environment variable used in the ghcWithPackages
wrapper where it is used to set an alternative prefix for a GHC-wrapper
for applications trying to discover it via e.g. ghc-paths. It is an
implementation detail in this context, as it is in the case of the
xmonad module. Since they are different implementations doing different
things, different names also make sense.
[discussed]: 36d5761b3e
[implemented]: 23f36d7e23
Patch sent to upstream via email, but the package hasn't been updated in
ten years.
Changes:
- IO.seek should now return the new offset so I used modifyMVar instead
of modifyMVar_
- mkFileHandle now requires a RawIO instance for Device. Since this was
not the case before and I don't think we need to actually support raw
IO, I used DeriveAnyClass.
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.
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.
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
The mystery build failure was caused by having the same instance as an
orphan and imported from ref-tf 0.5 (why ever that doesn't warrant a
logged error message…). The solution for this is
https://github.com/haskell-nix/hnix/pull/918, which sadly doesn't apply
cleanly on the hnix 0.12.0.1 tarball. Therefore I've backported the
patch until hnix hopefully gets a new hackage release soon.
The patch I proposed yesterday and vendored in here as a precautionary
measure in case I'd have to amend it in order for it to got merged, has
been accepted without changes.
Thus we can remove the patch file from the tree and just use fetchpatch.
pandoc 2.12 changed and removed a few exports gitit used. I procured a
patch which fixes those without any refactoring by vendoring in the
removed function from pandoc which is no problem as they are both
available under the GPL 2.0.
Updating to the current HEAD of the Tensorflow-Haskell bindings allows
us to also update the dependencies, specifically proto-lens, and avoid
having to retain their outdated versions.
Unfortunately, we cannot compile git-annex with S3 support in an
LTS-15.x environment, because the 'aws' library hasn't updated to
version 3.x of the 'network' library [1]. I tried whether it's
possible to build git-annex with an older version of network, but
the amount of overrides we'd have to configure to accomplish that
got out of hand quickly. So I disabled aws support [2]. If you
need S3 support in git-annex, please help upstream to update
'aws' so that it builds with recent versions of 'network'.
[1] https://github.com/aristidb/aws/issues/264
[2] 1d0459f40e
This patch is used in pkgs/development/haskell-modules/configuration-ghcjs.nix
to fix the ghc-path package for use with ghcjs.
The ghc-paths package has been updated in a way that the existing patch can no longer
be applied.