On 2/8/26 6:42 PM, Alan Mackenzie wrote: > Thanks for being so helpful. "It" may not be confusing, but I am > confused. > > What I want to know, what I asked for in my opening post, was how to > find what is causing that stale version of php to be merged in the first > place. Then I could fix that cause and not have to worry about php:8.2 > ever again. > > The unhelpful half error message from emerge -a @preserved-rebuilds > doesn't tell me this. > > I've spent around 2 hours trying to find documentation about this, and > trying to find the pertinent file which ought to be called > preserved-rebuilds or @preserved-rebuilds, or something like that. If I > could find this file, I might be able to see what is mis-triggering the > build of php:8.2. But this file's name and location are not documented > in emerge's man page, and I can't find them anywhere on the Gentoo wiki.
preserved-rebuild is not a file, it is a function that dynamically parses an internal portage cache. The same list that "continually being pestered to do emerge @preserved-rebuild" prints, which looks something like: >>> Completed (1 of 1) virtual/package-manager-2::gentoo * GNU info directory index is up-to-date. !!! existing preserved libs: >>> package: dev-libs/apache-arrow-22.0.0 * - /usr/lib/libarrow.so.2000 * - /usr/lib/libarrow.so.2000.0.0 * used by /usr/lib/python3.13/site-packages/pyarrow/_acero.cpython-313-i386-linux-gnu.so (dev-python/pyarrow-20.0.0) * used by /usr/lib/python3.13/site-packages/pyarrow/_compute.cpython-313-i386-linux-gnu.so (dev-python/pyarrow-20.0.0) * used by /usr/lib/python3.13/site-packages/pyarrow/_csv.cpython-313-i386-linux-gnu.so (dev-python/pyarrow-20.0.0) * used by 15 other files [...] Use emerge @preserved-rebuild to rebuild packages using these libraries ... meaning the package dev-libs/apache-arrow-22.0.0: - has been **uninstalled** or **upgraded, - provides two files which portage left behind, since another package uses it The package dev-python/pyarrow-20.0.0: - is installed, but might be in world, might not be - has 3 named files + 15 others, which ELF-link to the other package's "left-behind files" preserved-rebuild says "package dev-libs/arrow cannot be fully uninstalled due to pyarrow, which has not been depcleaned. Maybe if pyarrow is rebuilt, dev-libs/arrow can clean up?" I do not know where you are looking instead, but portage already did tell you what is "mis-triggering" the rebuild. In my example, dev-python/pyarrow is equivalent to php:8.2, and dev-libs/arrow is equivalent to whatever package is causing php:8.2 to rebuild. > I've cleaned up my orphan packages (most of them), but don't trust > --depclean to do so. It still wants to remove some packages I need and > want to keep. It will, by definition, remove packages not in world (emerge foobar without --oneshot). So, one must conclude you, for whatever reason, wished to oneshot these packages and not add them to world. This is your choice and your right, but it renders depclean ineffective. You may run: emerge --depclean php:8.2 --verbose and due to verbose, it will tell you what package, if any, prevents php:8.2 from being explicitly uninstalled. Otherwise, seek out the rest of your orphaned packages. -- Eli Schwartz
OpenPGP_signature.asc
Description: OpenPGP digital signature

