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.