On Thu, 23 Nov 2023 16:51:37 -0500 Matt Connell <m...@connell.tech> wrote:
> First time I've seen this happen! > > Any time I emerge anything, I get portage telling me I have the > following preserved libs: > > --- > > !!! existing preserved libs: > >>> package: app-arch/bzip2-1.0.8-r4 > * - /usr/lib/libbz2.so.1 > * - /usr/lib/libbz2.so.1.0.8 > * used by /usr/lib/libfreetype.so.6 (preserved) > * used by /usr/lib/libfreetype.so.6.20.1 (preserved) > >>> package: dev-libs/glib-2.76.4 > * - /usr/lib/libglib-2.0.so.0 > * - /usr/lib/libglib-2.0.so.0.7600.4 > * used by /usr/lib/libharfbuzz.so.0 (preserved) > * used by /usr/lib/libharfbuzz.so.0.60801.0 (preserved) > <snip> > > But when I run emerge @preserved-rebuild as one should, all I get is: > "Nothing to merge; quitting." > > Anyone else experienced this? How do I figure out what I need to do? Assuming you're on amd64... These are 32-bit libraries. You probably had abi_x86_32 set on these packages before, and it's not any more. Normally Portage will remove these if no other (32-bit) package requires them, but nowadays there is the freetype[harfbuzz] -> harfbuzz -> freetype dependency cycle, so you need to explicitly break the cycle *while temporarily reenabling 32-bit* to get Portage to remove the libs cleanly. Something like, temporarily put this in package.use: app-arch/bzip2 abi_x86_32 dev-libs/glib abi_x86_32 dev-libs/libpcre2 abi_x86_32 media-gfx/graphite2 abi_x86_32 media-libs/freetype abi_x86_32 -harfbuzz # Break the cycle. media-libs/harfbuzz abi_x86_32 media-libs/libpng abi_x86_32 sys-libs/zlib abi_x86_32 and reemerge these packages. Then when you remove these USE flags and emerge again, the 32-bit libraries will disappear. Cheers, Bryan