Re: Java provides/requires for one of my packages (Arduino)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Red Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux