Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 461908 - sys-apps/portage-2.2.0_alpha166 should mark preserved users in preserved-libs
Summary: sys-apps/portage-2.2.0_alpha166 should mark preserved users in preserved-libs
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: preserve-libs 462382
  Show dependency tree
 
Reported: 2013-03-16 08:50 UTC by Dennis Schridde
Modified: 2013-03-19 22:42 UTC (History)
1 user (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 Dennis Schridde 2013-03-16 08:50:05 UTC
After a @world update, emerge outputs:
!!! existing preserved libs:
>>> package: sci-physics/bullet-2.81
 *  - /usr/lib64/libLinearMath.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libBulletCollision.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libBulletSoftBody.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libBulletDynamics.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
>>> package: media-libs/openexr-2.0.0
 *  - /usr/lib64/libIlmImf.so.6
 *  - /usr/lib64/libIlmImf.so.6.0.0
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
>>> package: media-libs/ilmbase-2.0.0
 *  - /usr/lib64/libHalf.so.6
 *  - /usr/lib64/libHalf.so.6.0.0
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *      used by /usr/lib64/libIlmImf.so.6 (media-libs/openexr-2.0.0)
 *      used by /usr/lib64/libIlmImf.so.6.0.0 (media-libs/openexr-2.0.0)
 *  - /usr/lib64/libIex.so.6
 *  - /usr/lib64/libIex.so.6.0.0
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *      used by /usr/lib64/libIlmImf.so.6 (media-libs/openexr-2.0.0)
 *      used by /usr/lib64/libIlmImf.so.6.0.0 (media-libs/openexr-2.0.0)
 *  - /usr/lib64/libIlmThread.so.6
 *  - /usr/lib64/libIlmThread.so.6.0.0
 *      used by /usr/lib64/libIlmImf.so.6 (media-libs/openexr-2.0.0)
 *      used by /usr/lib64/libIlmImf.so.6.0.0 (media-libs/openexr-2.0.0)
Use emerge @preserved-rebuild to rebuild packages using these libraries
 * After world updates, it is important to remove obsolete packages with
 * emerge --depclean. Refer to `man emerge` for more information.

But openexr does not actually depend on the preserved ilmbase libraries anymore, so it will not actually be rebuild:
ernie ~ # emerge -a @preserved-rebuild                                                                                                                                                                                                         

These are the packages that would be merged, in order:

Calculating dependencies  ... done!
[ebuild   R   #] media-gfx/blender-2.64a

What happens seems to be that blender depends on preserved-libs from openexr, which depends on preserved-libs of ilmbase. Hence it would be nice if the openexr libs could be marked in the list as being preserved themselves, so that it becomes immediately clear that the only *actual* user is blender.

Reproducible: Always
Comment 1 Zac Medico gentoo-dev 2013-03-16 16:58:13 UTC
The PreservedLibraryConsumerSet that implements @preserved-rebuild is smart enough to exclude preserved libraries when searching for packages to rebuild. We can use similar logic to enhance the display_preserved_libs function.
Comment 2 Dennis Schridde 2013-03-16 18:58:58 UTC
(In reply to comment #1)
> The PreservedLibraryConsumerSet that implements @preserved-rebuild is smart
> enough to exclude preserved libraries when searching for packages to
> rebuild. We can use similar logic to enhance the display_preserved_libs
> function.

If it is simple, maybe you can skip the display of indirectly preserved libs by default and display something like "There are more. To see them use --verbose" at the end. That might reduce the noise a bit.
Comment 3 Zac Medico gentoo-dev 2013-03-18 23:38:49 UTC
This is fixed in git:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=523618c10f92e78221cb1a5b26dfc51e945ad323

With this patch, the output that you posted would look like this instead:

>>> package: sci-physics/bullet-2.81
 *  - /usr/lib64/libLinearMath.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libBulletCollision.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libBulletSoftBody.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libBulletDynamics.so.2.80
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
>>> package: media-libs/openexr-2.0.0
 *  - /usr/lib64/libIlmImf.so.6
 *  - /usr/lib64/libIlmImf.so.6.0.0
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
>>> package: media-libs/ilmbase-2.0.0
 *  - /usr/lib64/libHalf.so.6
 *  - /usr/lib64/libHalf.so.6.0.0
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libIex.so.6
 *  - /usr/lib64/libIex.so.6.0.0
 *      used by /usr/bin/blender (media-gfx/blender-2.64a)
 *  - /usr/lib64/libIlmThread.so.6
 *  - /usr/lib64/libIlmThread.so.6.0.0
 *      used by /usr/lib64/libIlmImf.so.6 (preserved)
 *      used by /usr/lib64/libIlmImf.so.6.0.0 (preserved)
Comment 5 Zac Medico gentoo-dev 2013-03-19 22:42:20 UTC
This is fixed in 2.1.11.56 and 2.2.0_alpha167.