Description
Thanks to nix-local-build & @ezyang's per-component feature we could now finally fix one awkward and hard to explain wart of cabal: if you want the cabal
executable, you have to install a weirdly named package:
cabal install cabal-install
instead, we'd want to have
cabal install cabal
UPDATE See the new strategy described at #3965 (comment)
the part below has been obsoleted
So instead, if we could fold the executable into the Cabal
package, and then we could simply say
cabal install Cabal
Moreover, thanks to build-depends
only requesting the Cabal
library component, one can safely
build-depends: Cabal == 2.0.*
without having the executable build.
This would be more symmetric with the Stack package, http://hackage.haskell.org/package/stack
which also combines executable and library in one package, and provides users with a better story, since you can say
cabal install stack`
and you get the executable, while if you say build-depends: stack == 1.2.*
you only get the library.