Hi,

I have an issue with package.el in Emacs snapshot. Works fine in Emacs 24.3.1 and lower.

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"

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...

Is this a bug or did I miss something?