On Saturday, November 07, 2015 7:19:22 PM bitlord wrote: > 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? :-)
Delete them. I think they're also recorded on /var/lib/portage so delete them from there too or they may just get removed from there next time you emerge something. I think revdep-rebuild/preserved-libs could do better at detecting false positives like this and a few other cases but I wouldn't call it a bug. You could file one as an improvement request against portage though. Another case where it messes up is when two packages have the same libraries outside the search directories and preload them manually, like firefox and thunderbird. -- Fernando Rodriguez