Skip to content

update-alternative says "jfr can't be slave of javac" when installing temurin-11-jre and temurin-17-jdk #1194

@ChristianK-DEVK

Description

@ChristianK-DEVK

Please provide a brief summary of the bug

We are running SuSE Enterprise Linux Server 15, ServicePack 6, and using the RPMs provided at https://adoptium.jfrog.io/artifactory/rpm/sles/15/x86_64/

We noticed that when installing temurin-11-jre followed by temurin-17-jdk , the RPM postscriptlet fails with

update-alternatives: error: alternative jfr can't be slave of javac: it is a slave of java
warning: %post(temurin-17-jdk-17.0.15.0.0.6-0.x86_64) scriptlet failed, exit status 2

We are leaving the update-altenatives untarnished in automatic mode. The problem seems to be that both temurin-11-jre and temurin-17-jdk both have "jfr" defined as slaves in the link groups of update-alternatives. temurin-11-jre has it jfr defined in its "java" link group, while temurin-17-jdk has jfr defined as slave in its "javac" link group.
This leads to the collision in the RPM postscriptlet.

update-alternatives --display java

java - auto mode
link best version is /usr/lib64/jvm/temurin-17-jdk/bin/java
link currently points to /usr/lib64/jvm/temurin-17-jdk/bin/java
link java is /usr/bin/java
slave jaotc is /usr/bin/jaotc
slave java.1 is /usr/share/man/man1/java.1
slave jexec is /usr/bin/jexec
slave jfr is /usr/bin/jfr

update-alternatives --display javac

update-alternatives: error: no alternatives for javac

(because installation of the latter link group failed with above error message)

Did you test with the latest update version?

  • Yes

Please provide steps to reproduce where possible

Use SuSE Enterprise Linux Server 15, ServicePack 6

From https://adoptium.jfrog.io/artifactory/rpm/sles/15/x86_64/

install temurin-11-jre followed by temurin-17-jdk

zypper install temurin-11-jre
...
update-alternatives: using /usr/lib64/jvm/temurin-11-jre/bin/java to provide /usr/bin/java (java) in auto mode
(1/1) Installing: temurin-11-jre-11.0.27.0.0.6-0.x86_64
...

zypper install temurin-17-jdk
....
update-alternatives: using /usr/lib64/jvm/temurin-17-jdk/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: error: alternative jfr can't be slave of javac: it is a slave of java
warning: %post(temurin-17-jdk-17.0.15.0.0.6-0.x86_64) scriptlet failed, exit status 2
(1/1) Installing: temurin-17-jdk-17.0.15.0.0.6-0.x86_64

Expected Results

zypper install temurin-17-jdk
succeeding without postscriptlet errors

Actual Results

update-alternatives: using /usr/lib64/jvm/temurin-17-jdk/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: error: alternative jfr can't be slave of javac: it is a slave of java
warning: %post(temurin-17-jdk-17.0.15.0.0.6-0.x86_64) scriptlet failed, exit status 2

What Java Version are you using?

11 and 17

What is your operating system and platform?

SuSE Enterprise Linux 15, SP 6

How did you install Java?

With the zypper package manager

Did it work before?

yes, it did work like 6 months ago or so

Did you test with other Java versions?

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions