Ian Stakenvicius <a...@gentoo.org> wrote:
>
> Keeping every single dependency around and valid just so that pkg_*rm
> can completely cleanly seems like so much overkill, though..

It is not only overkill, it would require a merging strategy which
AFAIK portage currently does not use and which would lead to blockers:

If you really want to guarantee that all := dependencies are
satisfied in the moment of unmerging, you need to do the following.

Assume foo depends on bar:=. Now if bar gets an upgrade, first
foo must be unmerged, then bar must be upgraded, and then
foo must be reemerged.

If you have a circular dependency of := chains, an upgrade
is impossible forever: You would manually have to break this
chain by setting some useflags exactly in the same way as
you did when you manages to install the chain for the first time.
Otherwise, you will just miss the possibly avilable updates
forever.

The problems if you really want to guarantee that all
dependencies are still installed when unmerging a package
are hardly reasonably solvable.

One should better make a rule that if an ebuild has such a
special requirement that it needs a certain version for
being unmerged, it must block all other versions
(one could make a syntax for the := case or even disallow
this case for such ebuilds) instead of letting the PM jump
through hoops for the "normal" cases.


Reply via email to