Bug 1590796

Summary: [java-1.8.0-openjdk] Unqualified provides/requires for (private) JDK libs
Product: [Fedora] Fedora Reporter: Severin Gehwolf <sgehwolf>
Component: java-1.8.0-openjdkAssignee: jiri vanek <jvanek>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: ahughes, dbhole, jerboaa, jvanek, kevin, msrb, mvala, omajid
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: java-1.8.0-openjdk-1.8.0.172-12.b11.fc27 java-1.8.0-openjdk-1.8.0.172-12.b11.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-07-20 16:58:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Severin Gehwolf 2018-06-13 12:18:24 UTC
Description of problem:
When installing java-1.8.0-openjdk-devel this brings in java-1.8.0-openjdk-headless and java-1.8.0-openjdk. Some of those packages have provides/requires which are version-less. This won't work for a dependency to get resolved to say a provider like java-openjdk-headless.

Version-Release number of selected component (if applicable):
java-1.8.0-openjdk-1.8.0.171-4.b10.fc28.x86_64

How reproducible:
100%

Steps to Reproduce:
1. rpm -q --provides java-1.8.0-openjdk-headless | grep SUNWprivate

Actual results:
lib.so(SUNWprivate_1.1)(64bit)
libattach.so(SUNWprivate_1.1)(64bit)
libawt_headless.so(SUNWprivate_1.1)(64bit)
libdt_socket.so(SUNWprivate_1.1)(64bit)
libfontmanager.so(SUNWprivate_1.1)(64bit)
libhprof.so(SUNWprivate_1.1)(64bit)
libinstrument.so(SUNWprivate_1.1)(64bit)
libj2gss.so(SUNWprivate_1.1)(64bit)
libj2pcsc.so(SUNWprivate_1.1)(64bit)
libj2pkcs11.so(SUNWprivate_1.1)(64bit)
libjava.so(SUNWprivate_1.1)(64bit)
libjava_crw_demo.so(SUNWprivate_1.1)(64bit)
libjavajpeg.so(SUNWprivate_1.1)(64bit)
libjdwp.so(SUNWprivate_1.1)(64bit)
libjli.so(SUNWprivate_1.1)(64bit)
libjsdt.so(SUNWprivate_1.1)(64bit)
libjsound.so(SUNWprivate_1.1)(64bit)
libjvm.so(SUNWprivate_1.1)(64bit)
liblcms.so(SUNWprivate_1.1)(64bit)
libmanagement.so(SUNWprivate_1.1)(64bit)
libmlib_image.so(SUNWprivate_1.1)(64bit)
libnet.so(SUNWprivate_1.1)(64bit)
libnio.so(SUNWprivate_1.1)(64bit)
libnpt.so(SUNWprivate_1.1)(64bit)
libsaproc.so(SUNWprivate_1.1)(64bit)
libsctp.so(SUNWprivate_1.1)(64bit)
libsunec.so(SUNWprivate_1.1)(64bit)
libunpack.so(SUNWprivate_1.1)(64bit)
libverify.so(SUNWprivate_1.1)(64bit)
libzip.so(SUNWprivate_1.1)(64bit)

Expected results:
Nothing is being provided for private libs.

Additional info:
If there are users who rely on those provides they better switch to a relevant JDK version than to a version of the file which might break.

Comment 2 jiri vanek 2018-06-13 12:28:21 UTC
rpm -q --provides java-openjdk-headless | grep SUNWprivate | wc -l
31

Comment 5 Severin Gehwolf 2018-06-13 12:39:46 UTC
This should fix it. Yes, the regular expression is wrong.

https://src.fedoraproject.org/rpms/java-1.8.0-openjdk/pull-request/8

Comment 6 Severin Gehwolf 2018-06-13 12:53:15 UTC
Same for JDK-10:

https://src.fedoraproject.org/rpms/java-openjdk/pull-request/14

Comment 7 jiri vanek 2018-06-13 13:23:05 UTC
  # fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349

	

- %global _privatelibs libmawt[.]so.* libattach[.]so.* libawt[.]so.* libextnet[.]so.* libjsig[.]so.* libawt_headless[.]so.* libdt_socket[.]so.* ...	

+ %global _privatelibs libawt_xawt[.]so|libjawt[.]so|libjsoundalsa[.]so|libsplashscreen[.]so|libjli[.]so ...

x

- %global _privatelibs libmawt[.]so.* libattach[.]so.* libawt[.]so.* libextnet[.]so.* libjsig[.]so.* libawt_headless[.]so.* libdt_socket[.]so.* ...
 + %global _privatelibs libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libjsig[.]so.*|libaw..

You removed .* from one, and added in second.  Is it intentional?

Comment 8 Severin Gehwolf 2018-06-13 13:33:45 UTC
(In reply to jiri vanek from comment #7)
>   # fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349
> 
> 	
> 
> - %global _privatelibs libmawt[.]so.* libattach[.]so.* libawt[.]so.*
> libextnet[.]so.* libjsig[.]so.* libawt_headless[.]so.* libdt_socket[.]so.*
> ...	
> 
> + %global _privatelibs
> libawt_xawt[.]so|libjawt[.]so|libjsoundalsa[.]so|libsplashscreen[.
> ]so|libjli[.]so ...
> 
> x
> 
> - %global _privatelibs libmawt[.]so.* libattach[.]so.* libawt[.]so.*
> libextnet[.]so.* libjsig[.]so.* libawt_headless[.]so.* libdt_socket[.]so.*
> ...
>  + %global _privatelibs
> libjsoundalsa[.]so.*|libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjawt[.]so.
> *|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libjsig[.]so.
> *|libaw..
> 
> You removed .* from one, and added in second.  Is it intentional?

No, not intentional. JDK 8 is wrong. '.*' needs to be in there. Nice catch!

Comment 9 Severin Gehwolf 2018-06-13 13:41:19 UTC
Should be fixed now.

Comment 10 jiri vanek 2018-06-13 14:24:04 UTC
Thanx. merged.

Comment 11 jiri vanek 2018-06-14 18:16:30 UTC
There remained one unexcluded provide:
It have really stupid name: lib.so(SUNWprivate_1.1)(64bit) Should it be excluded too?

Comment 12 Severin Gehwolf 2018-06-15 07:18:40 UTC
(In reply to jiri vanek from comment #11)
> There remained one unexcluded provide:
> It have really stupid name: lib.so(SUNWprivate_1.1)(64bit) Should it be
> excluded too?

Yes, it should be excluded. I have to admit a great name: "lib" :)

Comment 13 Severin Gehwolf 2018-06-18 11:20:22 UTC
(In reply to jiri vanek from comment #11)
> There remained one unexcluded provide:
> It have really stupid name: lib.so(SUNWprivate_1.1)(64bit) Should it be
> excluded too?

This should fix it:
https://src.fedoraproject.org/rpms/java-1.8.0-openjdk/pull-request/10

Comment 14 Severin Gehwolf 2018-07-02 12:23:22 UTC
Reopening since some packages in Fedora depend on certain private libraries provided by OpenJDK:

libjawt.so()(64bit)
libjava.so()(64bit)
libjvm.so()(64bit)
libverify.so()(64bit)

The provides for libjsig.so needs to be kept since it's mentioned as API for JNI libs which use custom signal handlers:
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/signal-chaining.html

Packages currently in rawhide requiring some OpenJDK-internal libs are:

libjawt.so()(64bit)
-------------------
bolzplatz2006-0:1.0.3-38.fc28.x86_64
eclipse-swt-1:4.8.0-3.fc29.x86_64
jogl2-0:2.3.2-7.fc29.x86_64
libcephfs_jni1-1:12.2.4-1.fc29.x86_64
libreoffice-officebean-1:6.0.3.2-10.fc29.x86_64
mp-0:3.1.0-17.20161124git1f3980.fc29.x86_64
vtk-devel-0:7.1.1-11.fc29.x86_64
vtk-mpich-devel-0:7.1.1-11.fc29.x86_64
vtk-openmpi-devel-0:7.1.1-11.fc29.x86_64

libjava.so()(64bit)
-------------------
pl-jpl-0:7.6.4-3.fc28.x86_64
scilab-0:6.0.0-6.fc29.x86_64
tonto-0:1.44-10.20150312gitbe1657a.fc28.x86_64

libjvm.so()(64bit)
-------------------
collectd-java-0:5.8.0-12.fc29.x86_64
kross-java-0:4.14.3-11.fc28.x86_64
libcephfs_jni1-1:12.2.4-1.fc29.x86_64
libreoffice-ure-1:6.0.3.2-10.fc29.x86_64
mp-0:3.1.0-17.20161124git1f3980.fc29.x86_64
openhft-affinity-0:3.0.6-10.fc29.x86_64
pl-jpl-0:7.6.4-3.fc28.x86_64
portmidi-tools-0:217-22.fc28.x86_64
python3-jep-0:3.7.0-3.fc28.x86_64
scilab-0:6.0.0-6.fc29.x86_64
syslog-ng-java-0:3.16.1-2.fc29.x86_64
tonto-0:1.44-10.20150312gitbe1657a.fc28.x86_64
uwsgi-plugin-jvm-0:2.0.16-2.fc29.x86_64
vrpn-java-0:07.33-12.fc28.x86_64

libverify.so()(64bit)
---------------------
pl-jpl-0:7.6.4-3.fc28.x86_64
scilab-0:6.0.0-6.fc29.x86_64

Comment 15 Severin Gehwolf 2018-07-02 14:02:13 UTC
https://src.fedoraproject.org/rpms/java-1.8.0-openjdk/pull-request/13

Fix for JDK 8.

Comment 16 Severin Gehwolf 2018-07-02 16:59:02 UTC
https://src.fedoraproject.org/rpms/java-openjdk/pull-request/16

Fix for JDK 10.

Comment 17 Kevin Kofler 2018-07-09 22:25:05 UTC
When is this going to be pushed in Bodhi for F27? This update:
https://bodhi.fedoraproject.org/updates/FEDORA-2018-4b0791855d
wants to drag in java-9-openjdk. I don't see a fix in Bodhi yet even for F28.

Comment 18 Fedora Update System 2018-07-10 07:40:00 UTC
java-1.8.0-openjdk-1.8.0.172-12.b11.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-e3483fc1b6

Comment 19 Severin Gehwolf 2018-07-10 07:41:02 UTC
(In reply to Kevin Kofler from comment #17)
> When is this going to be pushed in Bodhi for F27? This update:
> https://bodhi.fedoraproject.org/updates/FEDORA-2018-4b0791855d
> wants to drag in java-9-openjdk. I don't see a fix in Bodhi yet even for F28.

Sorry about this. I had to wait until the NSS 3.38 update is in testing since openjdk builds against NSS and an update earlier would have resulted in a dependency issue when installing the update. It's now in testing, so I'm filing the updates this minute.

Comment 20 Fedora Update System 2018-07-10 07:43:35 UTC
java-1.8.0-openjdk-1.8.0.172-12.b11.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-d90ffdf984

Comment 21 Fedora Update System 2018-07-11 19:17:22 UTC
java-1.8.0-openjdk-1.8.0.172-12.b11.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-e3483fc1b6

Comment 22 Fedora Update System 2018-07-11 23:41:56 UTC
java-1.8.0-openjdk-1.8.0.172-12.b11.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-d90ffdf984

Comment 23 Fedora Update System 2018-07-20 16:58:11 UTC
java-1.8.0-openjdk-1.8.0.172-12.b11.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.

Comment 24 Fedora Update System 2018-07-20 17:41:58 UTC
java-1.8.0-openjdk-1.8.0.172-12.b11.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.