package ghc depends on Cabal-1.5.5, which fails to load (ghc
duncan.coutts at worc.ox.ac.uk
Fri Dec 19 17:24:35 EST 2008
On Sat, 2008-12-06 at 02:03 +0000, Ian Lynagh wrote:
> On Fri, Dec 05, 2008 at 05:53:52PM +0000, Duncan Coutts wrote:
> > The way the solver works is that it does not commit to using the
> > installed version until the last possible minute. It does this because
> > the installed versions have much tighter constraints on dependencies. It
> > does a pass at the end to improve the solution by replacing available
> > packages by already installed ones wherever possible.
> > Currently it does that by checking if all the deps are exactly the same.
> > If they are not then it decides it's not suitable. We could relax that
> > slightly by instead checking if all the constraints that picking the
> > installed instance are consistent with the existing constraints. If they
> > are consistent then we can pick the installed one (and add the
> > constraints to the constraint set). If the conflict then we have to pick
> > the available version and do a re-install.
I just pushed this change to the development version of cabal-install.
It seems to do the right thing in a few simple scenarios. Wider testing
would be much appreciated.
> If I understand correctly what happens, I think the current
> cabal-install behaviour is a bug (and the above change will make it less
> likely to happen, but not fix it):
> If cabal-install reinstalls foo-0.1 with different deps, and you have
> bar-0.1 installed which depends on foo-0.1, then cabal-install also
> needs to reinstall bar-0.1.
> And it should check that it will be able to
> do so before it reinstalls foo-0.1 (so in particular, it would fail when
> trying to replace a dependency of the ghc package).
Right. We do not do that yet. See
> It would also be nice if it told you what it was going to do in advance,
> and gave you the opportunity to abort, similar to:
We could make it print the install list when it is non-trivial. That
lets someone hit ^C if they're quick.
> $ sudo apt-get install libc6
> The following extra packages will be installed:
> libc6-dbg libc6-dev libc6-i386
> The following packages will be upgraded:
> libc6 libc6-dbg libc6-dev libc6-i386
> Do you want to continue [Y/n]?
We'd need a wider discussion with existing users if we want to make
More information about the Cvs-ghc