#!/bin/sh set -e multiarch=x86_64-linux-gnu priority=1081 basedir=/usr/lib/jvm/java-8-openjdk-amd64 mandir=$basedir/jre/man srcext=1.gz dstext=1.gz jre_tools='rmid java keytool jjs pack200 rmiregistry unpack200 orbd servertool tnameserv' 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/jre/bin/$i \ $priority \ $slave1 $slave2 done update-alternatives \ --install /usr/bin/jexec jexec $basedir/jre/lib/jexec $priority \ --slave \ /usr/share/binfmts/jar \ jexec-binfmt \ $basedir/jre/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-8 --import jar || true fi # activate class data sharing case amd64 in i386|sparc) rm -f $basedir/jre/lib/amd64/client/classes.jsa log=$(mktemp) || { echo >&2 E: cannot create temporary file; exit 255; } if ! $basedir/bin/java -client -Xshare:dump >$log; then cat >&2 $log rm -f $log # this may fail on some machines/configurations, just ignore it. echo >&2 "ignoring dump failure" #exit 1 fi rm -f $log esac case amd64 in amd64|i386|sparc) rm -f $basedir/jre/lib/amd64/server/classes.jsa log=$(mktemp) || { echo >&2 E: cannot create temporary file; exit 255; } if ! $basedir/bin/java -server -Xshare:dump > $log; then cat >&2 $log rm -f $log # this may fail on some machines/configurations, just ignore it. echo >&2 "ignoring dump failure" #exit 1 fi rm -f $log esac if [ -n "$multiarch" ]; then if [ ! -h /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/zi ] && [ -d /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/zi ]; then rm -rf /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/zi ln -s ../../../../../share/javazi /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/zi fi fi ;; esac exit 0