Hi,
On Sun, 2018-10-07 at 14:18 +0000, Gianluca Sforna wrote:
I am trying to fix the Arduino package[1] that won't start in F28
and
beyond, unless one installs manually the java-1.8.0-openjdk package.
Apparently, requiring in the spec file java >= 1:1.8.0 makes it
satisfied by java-11-openjdk which provides java 1:11 (newer version)
which in turn pulls in only the headless variant.
Could you clarify this point? From where I'm standing no OpenJDK
package provides "java" by only installing the headless variant. Could
it be that any java >= 1:1.8.0 gets installed, say JDK 11, but arduino
attempts to use JDK 8 at start-up? In F28 javapackages-tools drags in
java-1.8.0-openjdk-headless, and JDK packages depend on javapackages-
tools for directory ownership. That's different in F29+ where they only
depend on javapackages-filesystem. Anyhow, that appears to be what is
happening:
# rpm -qa | grep -E 'java-1.8.0-openjdk|java-11-openjdk'
java-11-openjdk-headless-11.0.ea.28-2.fc28.x86_64
java-1.8.0-openjdk-headless-1.8.0.181.b15-0.fc28.x86_64
# rpm -q --provides java-11-openjdk-headless | grep java
config(java-11-openjdk-headless) = 1:11.0.ea.28-2.fc28
java-11-headless = 1:11.0.ea.28-2.fc28
java-11-openjdk-headless = 1:11.0.ea.28-2.fc28
java-11-openjdk-headless(x86-64) = 1:11.0.ea.28-2.fc28
java-headless = 1:11
java-openjdk-headless = 1:11.0.ea.28-2.fc28
libjava.so()(64bit)
# rpm -q --provides java-1.8.0-openjdk-headless | grep java
config(java-1.8.0-openjdk-headless) = 1:1.8.0.181.b15-0.fc28
java-1.8.0-headless = 1:1.8.0.181.b15-0.fc28
java-1.8.0-openjdk-headless = 1:1.8.0.181.b15-0.fc28
java-1.8.0-openjdk-headless(x86-64) = 1:1.8.0.181.b15-0.fc28
java-headless = 1:1.8.0
java-openjdk-headless = 1:1.8.0.181.b15-0.fc28
libjava.so()(64bit)
libjava.so(SUNWprivate_1.1)(64bit)
Note that java-11-openjdk in updates-testing no longer provides java-
headless. That's been done deliberately.
Also note that JDK 8 (java-1.8.0-openjdk) has higher alternatives
priority than java-11-openjdk. That's also been done deliberately.
# alternatives --display java
java - status is auto.
link currently points to
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/java - family
java-1.8.0-openjdk.x86_64 priority 1800181
slave jjs: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/jjs
slave keytool:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/keytool
slave orbd: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/orbd
slave pack200:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/pack200
slave policytool:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/policytool
slave rmid: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/rmid
slave rmiregistry:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/rmiregistry
slave servertool:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/servertool
slave tnameserv:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/tnameserv
slave unpack200:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/unpack200
slave jre: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre
slave java.1.gz:
/usr/share/man/man1/java-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave jjs.1.gz:
/usr/share/man/man1/jjs-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave keytool.1.gz:
/usr/share/man/man1/keytool-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave orbd.1.gz:
/usr/share/man/man1/orbd-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave pack200.1.gz:
/usr/share/man/man1/pack200-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave policytool.1.gz:
/usr/share/man/man1/policytool-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave rmid.1.gz:
/usr/share/man/man1/rmid-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave rmiregistry.1.gz:
/usr/share/man/man1/rmiregistry-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave servertool.1.gz:
/usr/share/man/man1/servertool-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave tnameserv.1.gz:
/usr/share/man/man1/tnameserv-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
slave unpack200.1.gz:
/usr/share/man/man1/unpack200-java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64.1.gz
/usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/java - family
java-11-openjdk.x86_64 priority 1
slave jjs: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/jjs
slave keytool: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/keytool
slave orbd: (null)
slave pack200: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/pack200
slave policytool: (null)
slave rmid: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/rmid
slave rmiregistry: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/rmiregistry
slave servertool: (null)
slave tnameserv: (null)
slave unpack200: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64/bin/unpack200
slave jre: /usr/lib/jvm/java-11-openjdk-11.0.ea.28-2.fc28.x86_64
slave java.1.gz: /usr/share/man/man1/java-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
slave jjs.1.gz: /usr/share/man/man1/jjs-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
slave keytool.1.gz:
/usr/share/man/man1/keytool-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
slave orbd.1.gz: (null)
slave pack200.1.gz:
/usr/share/man/man1/pack200-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
slave policytool.1.gz: (null)
slave rmid.1.gz: /usr/share/man/man1/rmid-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
slave rmiregistry.1.gz:
/usr/share/man/man1/rmiregistry-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
slave servertool.1.gz: (null)
slave tnameserv.1.gz: (null)
slave unpack200.1.gz:
/usr/share/man/man1/unpack200-java-11-openjdk-11.0.ea.28-2.fc28.x86_64.1.gz
Current `best' version is
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.x86_64/jre/bin/java.
The reason we've done this JDK 8 trumping JDK 11, is that we cannnot be
sure that the entire Java stack in Fedora is modular-JDK-ready.
So, while I can fix the Arduino package by requiring java = 1:1.8.0,
I'd like to know whether there is a better fix.
If you know that Arduino works with a modular JDK (JDK 9+), then you'd
probably have to do some gymnastics so as to figure the JDK
installation which dnf dragged in in non-headless variant.
Going with the specific requirement of "java = 1:1.8.0" will work.
Thanks,
Severin
Thanks in advance
Gianluca
[1]
https://bugzilla.redhat.com/show_bug.cgi?id=1518055
_______________________________________________
java-devel mailing list -- java-devel(a)lists.fedoraproject.org
To unsubscribe send an email to java-devel-leave(a)lists.fedoraproject.org
Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/java-devel@lists.fedoraproj...