
On Friday 20 August 2010 15:20:41, Johannes Waldmann wrote:
Here's another instance of the machine (*) telling me what to do, instead of doing it (or am I missing something):
I have a large set of cabal packages installed with ghc. Then suddenly I need some package Foo with profiling. So I switch to library-profiling: True in my .cabal/config, and then "cabal install Foo" - failing with the message:
Perhaps you haven't installed the profiling libraries for package `Bar'
for some package Bar that Foo depends upon. - Dear Cabal: Yes! I know that I haven't installed them! I want you to install them for me! But it isn't listening ...
The problem is that otherpackages may depend on them too, so when cabal automatically reinstalls, those can break. I don't think GHC can register a profiling version of the package and leave the vanilla package in peace, so then cabal can't just build the profiling lib and keep the old vanilla either.
(*) "machine" = everything in that metal box that was so expensive and has a lot of cables coming out, and ventilators running.
Of course you know that I have the highest respect for the work of the cabal authors. I'm just suggesting that the above feature (auto-re-install dependencies) would be helpful. Perhaps it's already there? If not - would it be hard to specify? To build? Or would it have bad consequences?
Is it "cabal upgrade --reinstall"? But that was deprecated?
cabal install --reinstall
Here I really want "reinstall with exactly the same versions". Is it the problem that their sources may have vanished, meanwhile? Could it be solved by having "cabal install" storing a copy of the source package that it used?
cabal keeps the tarballs of the packages, so that's not a problem.