Alan McKinnon <alan.mckin...@gmail.com> wrote:
> You know what? I'm not convinced.
>
> What I'm seeing is a rather large towering edifice of complexity to deal
> with a problem that is not the general case.

I find it funny that perhaps you did not realize that you repeated
the main argument *in favour of subslots* on the dev mailing list:

Alan McKinnon <alan.mckin...@gmail.com> wrote:

[ about emerge -e @world ]

> I've used this once or twice over the years to take care of inexplicable
> instability [...]

In fact, I bet that many gentoo users had the experience several times
over the years that reemerging the same(!) version of some package
mysteriously solves some problem.

> I strongly suspect the actual cause was inconsistencies around plug-in
> modules - the only thing I know of that portage and tools like
> revdep-rebuild can't really detect.

As I have just tried to explain, the cause was more likely the change
of some ABI without a change of the library version: revdep-rebuild can
only detect version changes, and there are some libraries like poppler
or neon (but probably many more I do not know) where upstream regularly
does such "tacit" ABI changes as a policy.

This was the main reason for introducing subslots!

(That it avoids using revdep-rebuild in many cases or calling things
like @x11-module-rebuild, python-updater, perl-updater, ... is only
a convenient side effect.
Subslots solve the plug-in modules problem, too, of course.)

With subslots emerge -e @world will in the long run never be necessary
anymore to get stability (it might of course still be necessary due to
a major toolchain change; also it does not catch cases where a
"tacit" ABI change happened by mistake and the developers failed to
see it.)

Note, however, "in the long run": The process of transforming all
packages to subslot dependencies is not yet complete.
I guess it will take many years until it is: Up to some corner cases
you can check whether the process is complete for your system when
(
        cd -- "$(portageq portdir)/metadata/md5-cache"
        grep -L '^EAPI=\([5-9]\|[1-9][0-9]\)' $(qlist -ICv)
)
does not output anything.

Reply via email to