Subject: Re: bug#16826: Packages with same dependencies (name and version) fails to install

From: Johan Andersson <[email-masked]>
Date: Mon, 24 Mar 2014 09:06:05 +0100

Can confirm that it works now, thanks for fixing it!

On Fri, Mar 21, 2014 at 7:12 AM, Dmitry Gutov <[email-masked]> wrote:

> Version: 24.4
>
> Johan Andersson <[email-masked]> writes:
>
> > Let's say I have three packages: foo, bar and baz.
> >
> > Package foo depends on bar-0.0.1 and baz-0.0.1.
> > Package bar depends on baz-0.0.1.
> >
> > It's important that foo and bar depends on the same baz version.
> >
> > If I install package foo, I will get the following error:
> >
> >   "Need package `baz-0.0.1', but only 0.0.1 is available"
>
> Thanks for the report, should be fixed in 116817, branch emacs-24.
>
> Seems to have been a regression from revision 113174. Provided I didn't
> break anything else, the fix was pretty simple.
>
> > I have looked at the code of package.el and the code that throws the
> error
> > makes no sense to me. It works like this:
> >
> > We want to install a list of packages and a list of requirements. If we
> try
> > to install a requirement that is part of the list of packages, we set a
> > variable called already. If already is true, we check if the requirement
> > version is smaller than the already package version. If it is, we move
> that
> > package to the beginning of the packages list. If it is not smaller, the
> > error above is thrown. What? Why? I have no idea...
>
> Now it checks if the requirement version is smaller or equal. The
> package is moved to make the order of installation better (see the bug
> referenced in the comment), and if the requirement version is higher
> than the one scheduled to be installed, we're out of luck (but I've
> tweaked the error message a bit).
>