Hi list, I have a problem with cleaning/removing 32bit libraries on my x86_64 system (amd64 multilib). At one point I needed skype for something, and it needs a lot of 32bit libs (abi_x86_32) everything was fine, little fight with freetype+harfbuz (circular dep). And after some time I'm happy again without need for proprietary closed source software, so I wanted to remove it, first thing I did was: # emerge -C skype It was fine, next I wanted to remove unneeded dependencies # emerge --depclean and after that I removed package.use file which contained all dependencies with USE="abi_x86_32", and did world update # emerge -uND world everything was "fine" except it left 'preserved-libs', and told me to run # emerge @preserved-rebuild which did nothing, so currently I don't need those libs, and don't know what is a proper way to get rid of them.
Here is the list: app-arch/bzip2-1.0.6-r6 /usr/lib32/libbz2.so.1.0.6 /usr/lib32/libbz2.so.1 dev-libs/glib-2.44.1 /usr/lib32/libglib-2.0.so.0.4400.1 /usr/lib32/libglib-2.0.so.0 media-gfx/graphite2-1.2.4-r1 /usr/lib32/libgraphite2.so.3.0.1 /usr/lib32/libgraphite2.so.3 media-libs/freetype-2.5.5 /usr/lib32/libfreetype.so.6.11.4 /usr/lib32/libfreetype.so.6 media-libs/harfbuzz-0.9.41 /usr/lib32/libharfbuzz.so.0.941.0 /usr/lib32/libharfbuzz.so.0 media-libs/libpng-1.6.18 /usr/lib32/libpng16.so.16.18.0 /usr/lib32/libpng16.so.16 sys-libs/zlib-1.2.8-r1 /lib32/libz.so.1.2.8 /lib32/libz.so.1 and this is how they relate to each other: !!! existing preserved libs: >>> package: media-libs/harfbuzz-0.9.41 * - /usr/lib32/libharfbuzz.so.0 * - /usr/lib32/libharfbuzz.so.0.941.0 * used by /usr/lib32/libfreetype.so.6 (preserved) * used by /usr/lib32/libfreetype.so.6.11.4 (preserved) >>> package: dev-libs/glib-2.44.1 * - /usr/lib32/libglib-2.0.so.0 * - /usr/lib32/libglib-2.0.so.0.4400.1 * used by /usr/lib32/libharfbuzz.so.0 (preserved) * used by /usr/lib32/libharfbuzz.so.0.941.0 (preserved) >>> package: media-libs/freetype-2.5.5 * - /usr/lib32/libfreetype.so.6 * - /usr/lib32/libfreetype.so.6.11.4 * used by /usr/lib32/libharfbuzz.so.0 (preserved) * used by /usr/lib32/libharfbuzz.so.0.941.0 (preserved) >>> package: sys-libs/zlib-1.2.8-r1 * - /lib32/libz.so.1 * - /lib32/libz.so.1.2.8 * used by /usr/lib32/libfreetype.so.6 (preserved) * used by /usr/lib32/libfreetype.so.6.11.4 (preserved) * used by /usr/lib32/libpng16.so.16 (preserved) * used by /usr/lib32/libpng16.so.16.18.0 (preserved) >>> package: app-arch/bzip2-1.0.6-r6 * - /usr/lib32/libbz2.so.1 * - /usr/lib32/libbz2.so.1.0.6 * used by /usr/lib32/libfreetype.so.6 (preserved) * used by /usr/lib32/libfreetype.so.6.11.4 (preserved) >>> package: media-libs/libpng-1.6.18 * - /usr/lib32/libpng16.so.16 * - /usr/lib32/libpng16.so.16.18.0 * used by /usr/lib32/libfreetype.so.6 (preserved) * used by /usr/lib32/libfreetype.so.6.11.4 (preserved) >>> package: media-gfx/graphite2-1.2.4-r1 * - /usr/lib32/libgraphite2.so.3 * - /usr/lib32/libgraphite2.so.3.0.1 * used by /usr/lib32/libharfbuzz.so.0 (preserved) * used by /usr/lib32/libharfbuzz.so.0.941.0 (preserved) Use emerge @preserved-rebuild to rebuild packages using these libraries So I think this is because of that harfbuzz<->freetype circular dependency, which some people/devs on IRC confirm. "<floppym> bitlord: Yes, it seems to be related to that circular dependency. libfreetype is being preserved due to libharfbuzz and vice-versa." So don't know if this is a portage bug (considering circular dependencies I guess it is really hard to manage them, so maybe not a bug really?). In the end I don't need those libs in /usr/lib32 (probably just those listed, others are there intentionally (multilib)), if I remove them I won't break anything (except maybe package manager being confused?). Does anyone know how to manage this? :-)

