Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 704736

Summary: dev-java/openjdk-11.0.5_p10: libgstreamer-lite.so dependency not resolvable via DT_RUNPATH
Product: Gentoo Linux Reporter: Zac Medico <zmedico>
Component: Current packagesAssignee: Java team <java>
Status: RESOLVED DUPLICATE    
Severity: QA    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: All   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=704738
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 704320    

Description Zac Medico gentoo-dev 2020-01-04 00:35:03 UTC
As shown in /var/db/pkg/dev-java/openjdk-11.0.5_p10/NEEDED.ELF.2, the libfxplugins.so and libavplugin.so files lack an $ORIGIN setting in their DT_RUNPATH field:

> X86_64;/usr/lib64/openjdk-11/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,libm.so.6,libpthread.so.0,libc.so.6;x86_64
> X86_64;/usr/lib64/openjdk-11/lib/libfxplugins.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libc.so.6;x86_64
> X86_64;/usr/lib64/openjdk-11/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,libpthread.so.0,libc.so.6,ld-linux-x86-64.so.2;x86_64
> X86_64;/usr/lib64/openjdk-11/lib/libavplugin.so;;;libgstreamer-lite.so,libgobject-2.0.so.0,libglib-2.0.so.0,libavcodec.so.58,libavformat.so.58,libc.so.6;x86_64

The problem can be corrected by running patchelf --set-rpath '$ORIGIN' on libfxplugins.so and libavplugin.so, so that the libgstreamer-lite.so dependency is resolvable by normal means.

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 Georgy Yakovlev archtester gentoo-dev 2020-01-21 22:25:48 UTC
it only happens if openjdk-11 is built with openjfx

what happens is openjfx installs a zip file which openjdk bootstrap can import.

if use javafx; then
  local zip="${EROOT%/}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
  if [[ -r ${zip} ]]; then
    myconf+=( --with-import-modules="${zip}" )
  else
    die "${zip} not found or not readable"
  fi
fi

those libraries come from zip file.

I'll check openjfx build and see what I can do.
gradle build is fragile and it produces a zip itself.
Comment 2 Georgy Yakovlev archtester gentoo-dev 2020-01-22 00:55:04 UTC
closing, will tracking work in #704738 as it's openjfx's fault.

*** This bug has been marked as a duplicate of bug 704738 ***