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@xxxxxxxxxxxxxxxxxxxxxxx > To unsubscribe send an email to java-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx > 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@xxxxxxxxxxxxxxxxxxxxxxx _______________________________________________ java-devel mailing list -- java-devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to java-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxxxxxxxxxx