Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 704620 - dev-util/idea-community-2019.3.193.5233.102: useless libraries installed with unsatisfied soname dependencies
Summary: dev-util/idea-community-2019.3.193.5233.102: useless libraries installed with...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal QA (vote)
Assignee: Alice Ferrazzi
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 704320
  Show dependency tree
 
Reported: 2020-01-03 02:02 UTC by Zac Medico
Modified: 2020-01-30 21:00 UTC (History)
1 user (show)

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


Attachments
idea-community soname fixes (idea-community-2019.3.193.5233.102-r2.ebuild,4.39 KB, text/plain)
2020-01-25 20:12 UTC, Mike Pagano
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zac Medico gentoo-dev 2020-01-03 02:02:42 UTC
The ebuild installs useless files with unsatisfied soname dependencies, as shown in /var/db/pkg/dev-util/idea-community-2019.3.193.5233.102/NEEDED.ELF.2:

> 386;/opt/idea-community-2019.3/plugins/maven/lib/maven3/lib/jansi-native/freebsd32/libjansi.so;libjansi-1.8.so;;libutil.so.9,libc.so.7;x86_32
> PPC64;/opt/idea-community-2019.3/lib/pty4j-native/linux/ppc64le/libpty.so;libpty.so;;libc.so.6;ppc_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-53.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.53,libavformat.so.53,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-54.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.54,libavformat.so.54,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-55.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.55,libavformat.so.55,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-56.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.56,libavformat.so.56,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-57.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.57,libavformat.so.57,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-ffmpeg-56.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec-ffmpeg.so.56,libavformat-ffmpeg.so.56,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libavplugin-ffmpeg-57.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.57,libavformat.so.57,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libfxplugins.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libgstreamer-lite.so;;;libasound.so.2,libgobject-2.0.so.0,libgmodule-2.0.so.0,libgthread-2.0.so.0,libglib-2.0.so.0,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libpthread.so.0,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/jre64/lib/libjfxmedia.so;;$ORIGIN;libgstreamer-lite.so,libgobject-2.0.so.0,libgmodule-2.0.so.0,libgthread-2.0.so.0,libglib-2.0.so.0,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libpthread.so.0,libc.so.6;x86_64
> X86_64;/opt/idea-community-2019.3/plugins/Kotlin/bin/linux/LLDBFrontend;;$ORIGIN/../lib;liblldb.so,libpthread.so.0,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6,ld-linux-x86-64.so.2;x86_64
> X86_64;/opt/idea-community-2019.3/plugins/maven/lib/maven3/lib/jansi-native/freebsd64/libjansi.so;libjansi-1.8.so;;libutil.so.9,libc.so.7;x86_64

The broken soname dependencies are:

> ppc_64: libc.so.6
> x86_32: libc.so.7
> x86_32: libutil.so.9
> x86_64: libavcodec-ffmpeg.so.56
> x86_64: libavcodec.so.53
> x86_64: libavcodec.so.54
> x86_64: libavcodec.so.55
> x86_64: libavcodec.so.56
> x86_64: libavcodec.so.57
> x86_64: libavformat-ffmpeg.so.56
> x86_64: libavformat.so.53
> x86_64: libavformat.so.54
> x86_64: libavformat.so.55
> x86_64: libavformat.so.56
> x86_64: libavformat.so.57
> x86_64: libc.so.7
> x86_64: libgstreamer-lite.so
> x86_64: liblldb.so
> x86_64: libutil.so.9

I'd like to get things like this fixed, since eventually I'd like to enable soname dependency resolution by default (bug 687956), and unsatisfied soname dependencies break the dependency graph for emerge --ignore-soname-deps=n --usepkgonly commands.
Comment 1 Zac Medico gentoo-dev 2020-01-03 09:44:02 UTC
The QA check that I'm working on now produces this output for dev-util/idea-community-2019.3.193.5233.102:

> * QA Notice: Unsatisfied soname dependencies:
> * 
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-53.so: libavcodec.so.53 libavformat.so.53 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-54.so: libavcodec.so.54 libavformat.so.54 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-55.so: libavcodec.so.55 libavformat.so.55 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-56.so: libavcodec.so.56 libavformat.so.56 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-57.so: libavcodec.so.57 libavformat.so.57 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-ffmpeg-56.so: libavcodec-ffmpeg.so.56 libavformat-ffmpeg.so.56 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libavplugin-ffmpeg-57.so: libavcodec.so.57 libavformat.so.57 libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libfxplugins.so: libgstreamer-lite.so
> *      /opt/idea-community-2019.3/jre64/lib/libjfxmedia.so: libgstreamer-lite.so
> *      /opt/idea-community-2019.3/lib/pty4j-native/linux/ppc64le/libpty.so: libc.so.6
> *      /opt/idea-community-2019.3/plugins/Kotlin/bin/linux/LLDBFrontend: liblldb.so
> *      /opt/idea-community-2019.3/plugins/maven/lib/maven3/lib/jansi-native/freebsd32/libjansi.so: libc.so.7 libutil.so.9
> *      /opt/idea-community-2019.3/plugins/maven/lib/maven3/lib/jansi-native/freebsd64/libjansi.so: libc.so.7 libutil.so.9
> *

The "missing" libgstreamer-lite.so soname is different from the others, since the package actually provides the soname as /opt/idea-community-2019.3/jre64/lib/libgstreamer-lite.so. Running patchelf --set-rpath '$ORIGIN' on each of the consumers would allow portage to see that this soname dependency is indeed satisfied.
Comment 2 Zac Medico gentoo-dev 2020-01-04 00:20:57 UTC
(In reply to Zac Medico from comment #1)
> > *      /opt/idea-community-2019.3/jre64/lib/libjfxmedia.so: libgstreamer-lite.so

Consider this particular libjfxmedia.so warning as a "false positive" since libjfxmedia.so already has $ORIGIN in its DT_RUNPATH field, as the NEEDED.ELF.2 entry posted in comment #0 shows.
Comment 3 Mike Pagano gentoo-dev 2020-01-25 20:12:01 UTC
Created attachment 604384 [details]
idea-community soname fixes

Here's my first attempt to address this. I still have one library reported as an issue but it a bit strange

emerge -p --depclean --ignore-soname-deps=n 

*   x86_64: liblldb.so required by:
*     dev-util/idea-community-2019.3.193.5233.102-r2

I included dev-util/lldb in RDEPEND

Consumers:
X86_64;/opt/idea-community-2019.3/plugins/Kotlin/bin/linux/LLDBFrontend;;$ORIGIN/../lib;liblldb.so,libpthread.so.0,libstdc++.so.6,libm.so.6,libgcc_s.so.1,libc.so.6,ld-linux-x86-64.so.2;x86_64



ldd /opt/idea-community-2019.3/plugins/Kotlin/bin/linux/LLDBFrontend

<snip>
liblldb.so => /usr/lib64/liblldb.so (0x00007fda3359d000)

ll /usr/lib64/liblldb.so
lrwxrwxrwx 1 root root 12 Jan 25 11:47 /usr/lib64/liblldb.so -> liblldb.so.9
Comment 4 Zac Medico gentoo-dev 2020-01-30 20:20:57 UTC
(In reply to Mike Pagano from comment #3)
> Created attachment 604384 [details]
> idea-community soname fixes

LGTM.

> Here's my first attempt to address this. I still have one library reported
> as an issue but it a bit strange
> 
> emerge -p --depclean --ignore-soname-deps=n 
> 
> *   x86_64: liblldb.so required by:
> *     dev-util/idea-community-2019.3.193.5233.102-r2
> 
> I included dev-util/lldb in RDEPEND
> 
> Consumers:
> X86_64;/opt/idea-community-2019.3/plugins/Kotlin/bin/linux/LLDBFrontend;;
> $ORIGIN/../lib;liblldb.so,libpthread.so.0,libstdc++.so.6,libm.so.6,libgcc_s.
> so.1,libc.so.6,ld-linux-x86-64.so.2;x86_64
> 
> 
> 
> ldd /opt/idea-community-2019.3/plugins/Kotlin/bin/linux/LLDBFrontend
> 
> <snip>
> liblldb.so => /usr/lib64/liblldb.so (0x00007fda3359d000)
> 
> ll /usr/lib64/liblldb.so
> lrwxrwxrwx 1 root root 12 Jan 25 11:47 /usr/lib64/liblldb.so -> liblldb.so.9

Including dev-util/lldb in RDEPEND seems reasonable.
Comment 5 Larry the Git Cow gentoo-dev 2020-01-30 21:00:50 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c88e58d97f2053c1469d92ada83d1cc30f423646

commit c88e58d97f2053c1469d92ada83d1cc30f423646
Author:     Mike Pagano <mpagano@gentoo.org>
AuthorDate: 2020-01-30 21:00:35 +0000
Commit:     Mike Pagano <mpagano@gentoo.org>
CommitDate: 2020-01-30 21:00:35 +0000

    dev-util/idea-community: Fix all unsatisfied soname dependencies.
    
    Remove old.
    
    Closes: https://bugs.gentoo.org/704620
    Package-Manager: Portage-2.3.84, Repoman-2.3.20
    Signed-off-by: Mike Pagano <mpagano@gentoo.org>

 ...d => idea-community-2019.3.193.5233.102-r2.ebuild} | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)