I realize that the libjvm.so is included in the Oracle RPM package. It is when I have this installed, the installation of syslog-ng-java will install another java onto my system. % rpm -q jdk1.8 jdk1.8-1.8.0_162-fcs.x86_64 % find /usr/java/ -name "*jvm.so" /usr/java/jdk1.8.0_162/jre/lib/amd64/server/libjvm.so % sudo yum install syslog-ng-java ... --> Running transaction check ---> Package syslog-ng-java.x86_64 0:3.14.1-4.el7.centos will be installed --> Processing Dependency: libjvm.so(SUNWprivate_1.1)(64bit) for package: syslog-ng-java-3.14.1-4.el7.centos.x86_64 --> Processing Dependency: libjvm.so()(64bit) for package: syslog-ng-java-3.14.1-4.el7.centos.x86_64 --> Running transaction check ---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.161-0.b14.el7_4 will be installed --> Processing Dependency: tzdata-java >= 2015d for package: 1:java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64 --> Processing Dependency: copy-jdk-configs >= 2.2 for package: 1:java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64 --> Processing Dependency: lksctp-tools(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64 --> Running transaction check ---> Package copy-jdk-configs.noarch 0:2.2-5.el7_4 will be installed ---> Package lksctp-tools.x86_64 0:1.0.17-2.el7 will be installed ---> Package tzdata-java.noarch 0:2018c-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================================ Installing: syslog-ng-java x86_64 3.14.1-4.el7.centos uvic-syslog-ng-314 4.9 M Installing for dependencies: copy-jdk-configs noarch 2.2-5.el7_4 rhel-7-server-rpms 19 k java-1.8.0-openjdk-headless x86_64 1:1.8.0.161-0.b14.el7_4 rhel-7-server-rpms 32 M lksctp-tools x86_64 1.0.17-2.el7 rhel-7-server-rpms 88 k tzdata-java noarch 2018c-1.el7 rhel-7-server-rpms 183 k Transaction Summary ================================================================================================================================================ Install 1 Package (+4 Dependent packages) If I have Oracle java installed, I would expect to install syslog-ng-java without any additional dependencies (other than syslog-ng) Evan. On 03/22/2018 10:07 AM, Robin Blanchard wrote:
$ find /usr/java/jre1.8.0_162/* -name "*jvm.so" /usr/java/jre1.8.0_162/lib/amd64/server/libjvm.so
-----Original Message----- From: syslog-ng [mailto:syslog-ng-bounces@lists.balabit.hu] On Behalf Of Evan Rempel Sent: Thursday, March 22, 2018 12:02 PM To: Syslog-ng users' and developers' mailing list <syslog-ng@lists.balabit.hu> Subject: [syslog-ng] syslog-ng-java RPM requirements will not use Oracle Java
Using the copr builds of syslog-ng 3.14
The package syslog-ng-java has RPM requirements that include
libjvm.so()(64bit) libjvm.so(SUNWprivate_1.1)(64bit)
The Java packages from Oracle do not provide these items.
% rpm -q --provides -p jdk-8u162-linux-x64.rpm jdk jaxp_parser_impl xml-commons-apis java java-1.8.0 java-fonts jre jre-1.8.0 jdk1.8 = 2000:1.8.0_162-fcs
% rpm -q --provides -p jre-8u162-linux-x64.rpm jaxp_parser_impl xml-commons-apis java java-1.8.0 java-fonts jre jre-1.8.0 jre1.8 = 1.8.0_161-fcs
[% rpm -q --provides jdk-9.0.4_linux-x64_bin.rpm jdk jaxp_parser_impl xml-commons-apis java java-9.0.4 java-fonts jre jre-9.0.4 jdk-9.0.4 = 2000:9.0.4-ga jdk-9.0.4(x86-64) = 2000:9.0.4-ga
Under Redhat 7 in order to get these I need
libjvm.so()(64bit) --> java-1.8.0-ibm libjvm.so(SUNWprivate_1.1)(64bit) --> java-1.8.0-openjdk-headless
The Oracle provided java (jdk or jre) do not provide these things. Both of these java packages provides the lib jvm.so
% rpm -ql java-1.8.0-ibm | grep libjvm /usr/lib/jvm/java-1.8.0-ibm-1.8.0.5.10-1jpp.1.el7.x86_64/jre/bin/classic/libjvm.so /usr/lib/jvm/java-1.8.0-ibm-1.8.0.5.10-1jpp.1.el7.x86_64/jre/bin/j9vm/libjvm.so /usr/lib/jvm/java-1.8.0-ibm-1.8.0.5.10-1jpp.1.el7.x86_64/jre/lib/amd64/classic/libjvm.so /usr/lib/jvm/java-1.8.0-ibm-1.8.0.5.10-1jpp.1.el7.x86_64/jre/lib/amd64/compressedrefs/libjvm.so /usr/lib/jvm/java-1.8.0-ibm-1.8.0.5.10-1jpp.1.el7.x86_64/jre/lib/amd64/default/libjvm.so /usr/lib/jvm/java-1.8.0-ibm-1.8.0.5.10-1jpp.1.el7.x86_64/jre/lib/amd64/j9vm/libjvm.so
% rpm -ql java-1.8.0-openjdk-headless | grep libjvm /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/amd64/server/libjvm.so
Both of these package provide the following potentials for a dependency
jre = 1:1.8.0 java = 1:1.8.0
or if you want to tie to a specific version of java
jre-1.8.0 java-1.8.0
If these requirements were used in the RPM build then I could use Oracle Java to satisfy the RPM requirements.
Am I missing something obvious here?
Comments?