Peter Stuge <pe...@stuge.se> wrote:
> Martin Vaeth wrote:
>> > The user's vardb could then automatically receive the last state of
>> > the ebuild, before it was removed.
>>
>> It doesn't help reliably, either, since the last state of the ebuild,
>> before it was removed, will be outdated at some point, too.
>
> Sorry, I don't see how. Can you give an example? Thanks!

1. foo depends on bar
2. user installs foo
3. foo is treecleaned
4. bar ebuild is replaced by the pair bar-base and bar-gui to
   allow for finer dependency. All ebuilds in the tree take
   care about this new structure (possibly with revbumps).
   Of course, the dependency for an already removed package
   is not fixed.
5. bar{-base,gui} gets several upgrades.
6. foo on user's system still blocks bar from being removed
   and thus blocks the installation of bar-base and bar-gui
   forever.
   Alternatively (if no conflict arises), foo depends forever on an
   ancient (hence possibly full of security bugs) version of bar
   which should have been upgraded ages ago.

In both cases of 6., the user is not even aware that he uses
long obsolete packages unless portage prints a big fat warning
for orphaned packages (which currently is not the case.
Well, at least eix -t will be print a message.)

Note that 4. cannot be replaced by any "pushing" mechanism,
since only the maintainer of the ebuild can know which is
the "right" dependency for the new tree structure. Such a
maintainer does not exist for treecleaned packages (which
is the purpose of treecleaning, after all...)


Reply via email to