Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 220953 - FEATURES="preserve-libs": @preserved-rebuild set sometimes needlessly contains packages whose libraries were preserved + Unneeded preserved libraries should be deleted immediately
Summary: FEATURES="preserve-libs": @preserved-rebuild set sometimes needlessly contain...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All All
: High normal with 1 vote (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 232672 (view as bug list)
Depends on:
Blocks: preserve-libs
  Show dependency tree
 
Reported: 2008-05-08 15:31 UTC by Arfrever Frehtes Taifersar Arahesis (RETIRED)
Modified: 2011-05-18 16:40 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2008-05-08 15:31:00 UTC
FEATURES="preserve-libs": @preserved-rebuild set sometimes needlessly contains packages whose libraries were preserved + Unneeded preserved libraries should be deleted immediately.

Steps to reproduce:
1. USE="-sdl" LDFLAGS="-Wl,--as-needed" emerge -1 =dev-libs/DirectFB-1.0*
2. USE="-directfb -sdl" LDFLAGS="-Wl,--as-needed" emerge -1 @preserved-rebuild
3. USE="directfb -sdl" LDFLAGS="-Wl,--as-needed" emerge -1 www-client/links
4. USE="-sdl" LDFLAGS="-Wl,--as-needed" emerge -1 =dev-libs/DirectFB-1.1*

Now @preserved-rebuild set contains www-client/links and =dev-libs/DirectFB-1.1*.
# portageq list_preserved_libs /
dev-libs/DirectFB-1.1.1 /usr/lib/libdirect-1.0.so.0 /usr/lib/libdirectfb-1.0.so.0 /usr/lib/libfusion-1.0.so.0 /usr/lib/libdirect-1.0.so.0.0.0 /usr/lib/libdirectfb-1.0.so.0.0.0 /usr/lib/libfusion-1.0.so.0.0.0
# 

5. USE="directfb -sdl" LDFLAGS="-Wl,--as-needed" emerge -1 www-client/links

# portageq list_preserved_libs /
dev-libs/DirectFB-1.1.1 /usr/lib/libdirect-1.0.so.0 /usr/lib/libdirectfb-1.0.so.0 /usr/lib/libfusion-1.0.so.0 /usr/lib/libdirect-1.0.so.0.0.0 /usr/lib/libdirectfb-1.0.so.0.0.0 /usr/lib/libfusion-1.0.so.0.0.0
# 

6. emerge -1 virtual/opengl

Between EBUILD_PHASE="postrm" and EBUILD_PHASE="cleanrm" there is:
<<< !needed   sym /usr/lib/libdirectfb-1.0.so.0
<<< !needed   obj /usr/lib/libdirectfb-1.0.so.0.0.0

# portageq list_preserved_libs /
dev-libs/DirectFB-1.1.1 /usr/lib/libdirect-1.0.so.0 /usr/lib/libfusion-1.0.so.0 /usr/lib/libdirect-1.0.so.0.0.0 /usr/lib/libfusion-1.0.so.0.0.0
# 

7. emerge -1 virtual/opengl

Between EBUILD_PHASE="postrm" and EBUILD_PHASE="cleanrm" there is:
<<< !needed   sym /usr/lib/libfusion-1.0.so.0
<<< !needed   obj /usr/lib/libfusion-1.0.so.0.0.0

# portageq list_preserved_libs /
dev-libs/DirectFB-1.1.1 /usr/lib/libdirect-1.0.so.0 /usr/lib/libdirect-1.0.so.0.0.0
# 

8. emerge -1 virtual/opengl

Between EBUILD_PHASE="postrm" and EBUILD_PHASE="cleanrm" there is:
<<< !needed   sym /usr/lib/libdirect-1.0.so.0
<<< !needed   obj /usr/lib/libdirect-1.0.so.0.0.0

# portageq list_preserved_libs /
# emerge @preserved-rebuild
emerge: 'preserved-rebuild' is an empty set
emerge: no targets left after set expansion
#
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2008-07-23 03:09:34 UTC
*** Bug 232672 has been marked as a duplicate of this bug. ***
Comment 2 Matthias Liebig 2008-10-05 19:17:11 UTC
I think I just observed the same issue with gcc. I updated from sys-devel/gcc-4.3.1-r1 to 4.3.2 (I have only sys-devel/gcc:4.3 installed).

1. emerge -uaDvN1 @world @system

...
!!! existing preserved libs:
>>> package: sys-devel/gcc-4.3.2
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgomp.so.1
 *      used by /usr/bin/animate (media-gfx/imagemagick-6.4.3.5)
 *      used by /usr/bin/compare (media-gfx/imagemagick-6.4.3.5)
 *      used by /usr/bin/composite (media-gfx/imagemagick-6.4.3.5)
 *      used by 119 other files
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libstdc++.so.6
 *      used by /lib/libusbpp-0.1.so.4.4.4 (dev-libs/libusb-0.1.12-r4)
 *      used by /opt/Adobe/HelpViewer/1.0/intellinux/bin/ahv-binary (app-text/acroread-8.1.2-r3)
 *      used by /opt/Adobe/Reader8/Browser/intellinux/nppdf.so (app-text/acroread-8.1.2-r3)
 *      used by 1788 other files
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgcc_s.so.1
 *      used by /lib/libusbpp-0.1.so.4.4.4 (dev-libs/libusb-0.1.12-r4)
 *      used by /opt/Adobe/HelpViewer/1.0/intellinux/bin/ahv-binary (app-text/acroread-8.1.2-r3)
 *      used by /opt/Adobe/Reader8/Browser/intellinux/nppdf.so (app-text/acroread-8.1.2-r3)
 *      used by 1777 other files
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgomp.so.1.0.0
 *      used by /usr/bin/animate (media-gfx/imagemagick-6.4.3.5)
 *      used by /usr/bin/compare (media-gfx/imagemagick-6.4.3.5)
 *      used by /usr/bin/composite (media-gfx/imagemagick-6.4.3.5)
 *      used by 119 other files
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libstdc++.so.6.0.10
 *      used by /lib/libusbpp-0.1.so.4.4.4 (dev-libs/libusb-0.1.12-r4)
 *      used by /opt/Adobe/HelpViewer/1.0/intellinux/bin/ahv-binary (app-text/acroread-8.1.2-r3)
 *      used by /opt/Adobe/Reader8/Browser/intellinux/nppdf.so (app-text/acroread-8.1.2-r3)
 *      used by 1788 other files
Use emerge @preserved-rebuild to rebuild packages using these libraries

2. emerge -av1 @preserved-rebuild

emerge: 'preserved-rebuild' is an empty set
emerge: no targets left after set expansion

3. emerge -uaDvN1 @world @system

Nothing to merge; would you like to auto-clean packages? [Yes/No] y
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * Regenerating GNU info directory index...

!!! existing preserved libs:
>>> package: sys-devel/gcc-4.3.2
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgomp.so.1
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libstdc++.so.6
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgcc_s.so.1
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libgomp.so.1.0.0
 *  - /usr/lib/gcc/i686-pc-linux-gnu/4.3.1/libstdc++.so.6.0.10
Use emerge @preserved-rebuild to rebuild packages using these libraries

4. emerge @preserved-rebuild

emerge: 'preserved-rebuild' is an empty set
emerge: no targets left after set expansion
Comment 3 Zac Medico gentoo-dev 2008-10-05 19:28:14 UTC
(In reply to comment #2)
> I think I just observed the same issue with gcc. I updated from
> sys-devel/gcc-4.3.1-r1 to 4.3.2 (I have only sys-devel/gcc:4.3 installed).

This sort of problem is triggered whenever a library moves from one directory to another. I'm planning to fix this particular problem by searching the directories of the new package for equivalent libraries and eliminating duplicates when appropriate.
Comment 4 Zac Medico gentoo-dev 2011-05-18 16:40:28 UTC
This should be fixed in 2.2.0_alpha34 (among many other preserve-libs fixes, including bug 286714). Please re-open if you can still reproduce it.