Public bug reported:
Hello Description: Ubuntu Jammy Jellyfish (development branch) Release: 22.04 apt-cache policy ca-certificates-java ca-certificates-java: Installed: 20190909 Candidate: 20190909 Version table: *** 20190909 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status what I expect to happen: the package to install reliably in all circonstances what happens instead: in some circonstances the configure stage crashes. Detail as said in the subject, openjdk depends on ca-certificates-java, and ca- certificates-java depends on java. Usually installing ca-certificates- java installs automatically openjdk-18 and the config stage is in a good order: first openjdk, then ca-certificates-java. If one installs openjdk-18, same scenario so everything is good. Well, no. In fact when dealing with circular dependencies, the package order is not really defined. To test the jitsi-videobridge2 package (jitsi-meet project), here are the instructions: curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null sudo apt update Here the package order is different: sudo apt install --dry-run jitsi-videobridge2: (...) Conf ca-certificates-java (20190909 Ubuntu:22.04/jammy [all]) Conf openjdk-18-jre-headless (18~36ea-1 Ubuntu:22.04/jammy [amd64]) to work around this problem, the ca-certificates-java package maintainers have included a horrendous kludge in the postinstall package: for jvm in java-7-openjdk-$arch java-7-openjdk \ oracle-java7-jre-$arch oracle-java7-server-jre-$arch oracle-java7-jdk-$arch \ (... cut for brevity all other java versions between 7 and 17...) java-17-openjdk-$arch java-17-openjdk \ oracle-java17-jre-$arch oracle-java17-server-jre-$arch oracle-java17-jdk-$arch; do if [ -x /usr/lib/jvm/$jvm/bin/java ]; then export JAVA_HOME=/usr/lib/jvm/$jvm PATH=$JAVA_HOME/bin:$PATH break fi done so that when the installation order is reversed the configuration script still runs. However this kludge go only up to Java 17. It is my understanding that these package are coming from upstream (Debian) and Debian 12 only include Java 17 for now. So jitsi-videobridge2 install fine in Bookworm (it pulls Java 17 of course). However, under Jammy it gives that: head: cannot open '/etc/ssl/certs/java/cacerts' for reading: No such file or directory /var/lib/dpkg/info/ca-certificates-java.postinst: line 101: java: command not found dpkg: error processing package ca-certificates-java (--configure): installed ca-certificates-java package post-installation script subprocess returned error exit status 127 dpkg: dependency problems prevent configuration of openjdk-18-jre-headless:amd64: openjdk-18-jre-headless:amd64 depends on ca-certificates-java (>= 20190405~); however: Package ca-certificates-java is not configured yet. dpkg: error processing package openjdk-18-jre-headless:amd64 (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: ca-certificates-java openjdk-18-jre-headless:amd64 E: Sub-process /usr/bin/dpkg returned an error code (1) java is not found, because ls /usr/lib/jvm/ java-1.18.0-openjdk-amd64 java-18-openjdk-amd64 -> java-18-openjdk is available but can't be found. All these tests have been done on a fresh Jammy container obtained thanks to St Graber and its LXD band. So my conclusion: you have to either: - drop java 18 until Debian adopts it and adapts its package - convince Debian to add the test for Java 18 in the ca-certificates-java post install script kludge - take the responsabilty for ca-certificates-java package yourself and fix it at the Ubuntu level. There is of course a fourth option: explain to people complaining that the jitsi-videobridge2 don't install anymore - it installs fine under Focal - that it's the Jitsi-meet project's fault. And possibly other projects as well. The Jitsi-videobridge2 package could probably be modified to fix that, I'll grant it. I did not test it but I think that if it depended on default-jre instead of Pre-Depends: java8-runtime-headless | java8-runtime | java11-runtime-headless | java11-runtime it would install fine even with the incomplete kludge in the ca-certificates-java post-install script. ** Affects: openjdk-18 (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1965987 Title: Circular dependency on ca-certificates-java can crash package configuration To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/openjdk-18/+bug/1965987/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs