File: //var/lib/dpkg/info/openjdk-8-jre-headless:amd64.postinst
#!/bin/sh
set -e
multiarch=x86_64-linux-gnu
priority=1081
is_default=yes
basedir=/usr/lib/jvm/java-8-openjdk-amd64
mandir=$basedir/jre/man
srcext=1.gz
dstext=1.gz
jre_tools='java jjs keytool pack200 rmid rmiregistry unpack200 orbd servertool tnameserv'
case "$1" in
configure)
if test -z "$2" || dpkg --compare-versions "$2" lt '8u402-ga-2~'; then
# try to remove and ignore the error
update-binfmts --package openjdk-8 \
--remove jar /usr/bin/jexec 2>/dev/null || true
update-alternatives --remove jexec \
$basedir/jre/lib/jexec 2>/dev/null || true
if test -d /usr/share/binfmts; then
rmdir --ignore-fail-on-non-empty /usr/share/binfmts
fi
fi
# 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
test "$update_alternatives" = y || if test "$is_default" = yes; 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}')
test -z "$oldp" || if test "$oldp" -lt $priority; 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
fi # update alternatives
# 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
# Now that java is fully registered and configured,
# call update-ca-certificates-java
dpkg-trigger update-ca-certificates-java
;;
esac
exit 0