#!/bin/sh set -e multiarch=x86_64-linux-gnu priority=2111 basedir=/usr/lib/jvm/java-21-openjdk-amd64 mandir=$basedir/man srcext=1.gz dstext=1.gz jre_tools='java jpackage keytool rmiregistry' case "$1" in configure) # fail early. java currently uses tricks to find its own shared # libraries depending on the path of the binary. Will be changed # in OpenJDK7 if ! mountpoint -q /proc; then echo >&2 "the java command requires a mounted proc fs (/proc)." exit 1 fi [ -d /etc/.java ] || mkdir -m 755 /etc/.java [ -d /etc/.java/.systemPrefs ] || mkdir -m 755 /etc/.java/.systemPrefs if [ ! -f /etc/.java/.systemPrefs/.system.lock ]; then touch /etc/.java/.systemPrefs/.system.lock chmod 644 /etc/.java/.systemPrefs/.system.lock fi if [ ! -f /etc/.java/.systemPrefs/.systemRootModFile ]; then touch /etc/.java/.systemPrefs/.systemRootModFile chmod 644 /etc/.java/.systemPrefs/.systemRootModFile fi if [ -z "$2" ]; then update_alternatives=y fi if [ -n "$multiarch" ] && [ -n "$2" ]; then for i in $jre_tools; do if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then update_alternatives=y break fi done fi if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then for i in $jre_tools; do oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}') if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then update_alternatives=y break fi done fi if [ "$update_alternatives" = y ]; then if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then priority=$(expr $priority - 1) fi for i in $jre_tools; do unset slave1 slave2 || true if [ -e $mandir/man1/$i.$srcext ]; then slave1="--slave \ /usr/share/man/man1/$i.$dstext \ $i.$dstext \ $mandir/man1/$i.$srcext" fi # disabled if false && [ -e $mandir/ja/man1/$i.$srcext ]; then slave2="--slave \ /usr/share/man/ja/man1/$i.$dstext \ ${i}_ja.$dstext \ $mandir/ja/man1/$i.$srcext" fi update-alternatives \ --install \ /usr/bin/$i \ $i \ $basedir/bin/$i \ $priority \ $slave1 $slave2 done update-alternatives \ --install /usr/bin/jexec jexec $basedir/lib/jexec $priority \ --slave \ /usr/share/binfmts/jar \ jexec-binfmt \ $basedir/lib/jar.binfmt fi # update alternatives # register binfmt; ignore errors, the alternative may already be # registered by another JRE. if which update-binfmts >/dev/null && [ -r /usr/share/binfmts/jar ]; then update-binfmts --package openjdk-21 --import jar || true fi # Now that java is fully registered and configured, # call update-ca-certificates-java dpkg-trigger update-ca-certificates-java ;; esac exit 0