The new version of hackage2nix adds an automatic jailbreak=true attribute to
all builds that are known to fail because of unsatisfied dependency version
constraints. Of course, hackage2nix is only able to detect these problems for
the default package set -- "haskellngPackages" -- that's built with GHC 7.8.4.
It cannot know problems that might arise if you build a package with a
different version of GHC, which comes with different versions of the core
libraries. This change "fixed" 806 builds: http://hydra.cryp.to/eval/85620.
Please pay attention to possible jailbreaks when reporting build errors
upstream! If a build was run with jailbreaking enabled, the build log says
| Running jailbreak-cabal to lift version restrictions on build inputs.
at the very top. Upstream bug reports about build errors should contain that
information, i.e. the package author should know that you're building with
different (newer!) library versions than they're specifying.
Furthermore, build expressions no longer contain an explicit list of every
Cabal flag setting. Instead, we trust that Cabal figures out an appropriate
configuration at build time. This makes the build expressions more space to
adapt to different configuration at the cost of being slightly less
deterministic.
Originally, I thought that I can commit a "clean" patch -- even if it
triggers re-builds -- because those re-builds were triggered by the
ncurses patch to GHC anyway . That patch had to be reverted, though, so
now I'm rewriting this patch to avoid re-builds on Linux.
What a mess. :-(
I thought that [1] could be fixed by ensuring that ncurses is available in the
environment (because ghc exports it as a propagateBuildInput), and indeed that
change fixed *some* build failures we've had before. However, the same error
still occurs with other packages, like hledger [2] and Agda [3]. Frankly, I
have no idea why those packages fail and others don't. But clearly the fix was
inadequate, so I'm reverting commit a8076c76.
[1] https://github.com/NixOS/nixpkgs/issues/5616
[2] http://hydra.cryp.to/build/372451/nixlog/1/raw
[2] http://hydra.cryp.to/build/373161/nixlog/1/raw
Now that dbus reload has been moved before restarting units,
the reload may fail if dbus has been stopped before.
The reload-or-restart will reload dbus if it's active,
otherwise start it.
That package set is broken because GHC 7.10.1-rc1 no longer supports old-style
database files as used by the pkgs/build-support/cabal/default.nix builder.
A working packages set is in "haskell-ng.packages.ghcHEAD".