Incoming changes in JDK / JRE 21 packages may require manual intervention

Wow! Glad this thread exists, just read it a few hours ago thanks to the news letter :+1:, and just had it pop up during update! now instead of:scream:I’m like :sweat_smile: Makes everything much easier!

EndeavourOS Rocks! :hugs: :cowboy_hat_face: :partying_face:

1 Like

Thanks Bryan!! :hugs: The “pacman -Sy jdk-openjdk” seemed to have worked, If it doesn’t I’m sure I’ll find out :grimacing:. I have been using either or, and both+ on computers since Windows 3.1 if I remember correctly :thinking:, and to this day I am unsure of the differences only that many programs need them! :roll_eyes: :woozy_face:

: removing jre-openjdk breaks dependency 'java-runtime-openjdk=20' required by java-openjfx
:: removing jre-openjdk breaks dependency 'jre20-openjdk=20.0.2.u9-3' required by jdk-openjdk
 -> exit status 1

Still struggling with this, any ideas,pls?!

Have you tried this? It fixed the issue for me.

[panos@panos-allseries ~]$ sudo pacman -S jdk-openjdk
[sudo] password for panos: 
resolving dependencies...
looking for conflicting packages...
:: jdk-openjdk and jre-openjdk are in conflict. Remove jre-openjdk? [y/N] y
:: jdk-openjdk and jre-openjdk-headless are in conflict. Remove jre-openjdk-headless? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing jre-openjdk breaks dependency 'java-runtime-openjdk=20' required by java-openjfx

that’s the error i got with this one

That’s what I did as well. Everything working great still.

Thanks a lot, this helped me! :innocent:

I used it with jre-openjdk pacman -Sy jre-openjdk and after the question jre-openjdk-headless got uninstalled. Now all is fine.

Best regards

I just noticed this, I think my system has not being updated for a week or so. Should I update it first or I should just run this command? I checked and I have all of this 3 packages installed.

I just remove the java-openjx from aur, then i manually install the JDK
with pacman -Sy jdk-openjdk and boom…eveything is fine again!
Cheers! :grinning:

I have no clean solution at the moment. On my system are some packages that have jdk-openjdk as dependency and some that have jre-openjdk-headless as dependency. Whatever I do - it conflicts.

Try the suggestion in post #14, it seems very simple.

Yes, I have tried.
Removing of jre-openjdk-headless is refused because elasticsearch has it as dependency and I do not want to remove elasticsearch, too.

Then keep that one and remove the other. It is up to you which package to keep. See the original note:

  • If you have both JRE and JRE-headless you will need to choose one of them and install it manually since they would conflict each other now.
sudo pacman -Sy jre-openjdk-headless
eos-update

I cannot remove the other. pdfsam has as dependency jdk-openjdk and I do not want to remove pdfsam. Exactly that is my problem - I have multiple (!!) packages which have as dependency jdk-openjdk and others (also multiple) which have as dependency jre-openjdk-headless. So I need both packages or I must remove other packages what I definitely do not want.

I had to deal with it before this threat did exist. Had 4-5 dependencies which got removed when I removed jdk-openjdk, jre-openjdk and headless.

Then I installed the jdk-openjdk package and re-installed the previously uninstalled software. No big deal.

Might be different if you have many Java software installed on your system.

2 Likes

Yes, all affected packages are java based. I have treid: when I remove jre-openjdk-headless and all affected packages, then update jdk-openjdk and then want to reinstall the other packages they want to install jre-openjdk-headless which would again remove jdk-openjdk. If I try other direction it is the same but other packages affected. The only solution in my eyes would be a metapackage with name jre-openjdk-headless which depends on jdk-openjdk. This action of Arch developers was an ugly one.

In my case all previously removed packages when being re-installed were happy with jdk-openjdk.

Here is what I have now pactree -r jdk-openjdk

jdk-openjdk
├─antlr4
├─bcprov
│ └─pdftk
├─clojure
├─hodoku
├─java-avalon-framework
│ └─fop
├─java-batik
│ └─fop
├─java-commons-io
│ ├─fop
│ └─java-batik
├─java-commons-lang
│ └─pdftk
├─java-commons-logging
│ ├─fop
│ └─java-batik
├─java-xmlgraphics-commons
│ ├─fop
│ └─java-batik
├─kotlin
├─leiningen
├─pdftk
└─trang

I cannot understand. PKGBUILD does not allow “or’s” in dependency. So if jre-openjdk-headless is in its dependency it does not accept anything other than jre-openjdk-headless. I could fix it “dirty” by removing jre-openjdk-headless with pacman -Rdd and elasticsearch is running with jdk-openjdk, too. But: if an update for elasticsearch pops up it cannot be installed because of jre-openjdk-headless is missing. All this is quite logical. You cannot replace dependencies.

EDIT:
Could you please try to install elasticsearch - just FMI…

You are right. Here I get

AUR Explicit (1): elasticsearch-8.11.0-1
Sync Dependency (1): jre-openjdk-headless-21.u35-8
...
:: jre-openjdk-headless and jdk-openjdk are in conflict. Remove jdk-openjdk? [y/N]
...

which in my opinion the maintainer has to fix.