On Sat, 12 Dec 2009, Allan McRae wrote:
Dimitrios Apostolou wrote:
On Fri, 11 Dec 2009, Nagy Gabor wrote:
> depends files are read in order to ensure that the upgraded package
> won't break any "old" dependencies.
>
> Example: local foo requires bar=2.0 (which is installed)
> Then "pacman -S bar" is not allowed (if bar in sync has different
> version).
I just noticed that local depends are read even when installing a new
package (not upgrading an old one). Why is this for?
How about this example:
pacman -S foo, foo replaces=bar and provides=bar, installed package baz
depends on foo>=2.0.
If already installed package baz depends on foo, then foo is already
installed. Perhaps you mean it depends on bar>=2?
This should fail as bar only provides foo and so it is unknown whether the
foo>=2.0 dependency for baz is solved.
And here you probably mean that "foo" only provides "bar" without version.
So doing a pacman -S foo should remove "bar" because of /replaces/, but
should also keep it because of "baz" requiring the specific version
already installed.
Anyway I think I get it, it always needs to read local depends. It is
getting far more complex than I initially thought...
But even for this complex case, an RDEPENDS field for local packages would
help significantly. Perhaps you remember when it was discussed again, date
or pacman version?
Dimitris