135 lines
4.6 KiB
Bash
Executable File
135 lines
4.6 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# summary of how this script can be called:
|
|
# * <postinst> `configure' <most-recently-configured-version>
|
|
# * <old-postinst> `abort-upgrade' <new version>
|
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
|
# <new-version>
|
|
# * <postinst> `abort-remove'
|
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
|
# <failed-install-package> <version> `removing'
|
|
# <conflicting-package> <version>
|
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
. /usr/share/debconf/confmodule
|
|
trap "db_stop || true" EXIT HUP INT QUIT TERM
|
|
|
|
PACKAGE=landscape-common
|
|
|
|
# Use the default installed Python 3. Running just "python3" might run
|
|
# something from /usr/local/bin, which doesn't necessarily support
|
|
# running the landscape client.
|
|
PYTHON=/usr/bin/python3
|
|
|
|
case "$1" in
|
|
configure)
|
|
|
|
#########################################
|
|
# from landscape-base
|
|
|
|
# Create landscape system user
|
|
if ! getent passwd landscape >/dev/null; then
|
|
adduser --quiet --system --group --disabled-password \
|
|
--home /var/lib/landscape --no-create-home landscape
|
|
touch /var/lib/landscape/.cleanup.user
|
|
fi
|
|
|
|
# Create landscape system group (for <= 1.0.29.1-0ubuntu0.9.04.0)
|
|
if ! getent group landscape >/dev/null; then
|
|
addgroup --quiet --system landscape
|
|
touch /var/lib/landscape/.cleanup.group
|
|
fi
|
|
|
|
# Ensure primary group is landscape (for <= 1.0.29.1-0ubuntu0.9.04.0)
|
|
if ! usermod -g landscape landscape > /dev/null 2>&1; then
|
|
echo "ERROR: usermod -g landscape landscape failed."
|
|
fi
|
|
|
|
# Fix ownerships.
|
|
chown -R root:landscape /etc/landscape
|
|
chmod 0775 /etc/landscape/
|
|
chown -R landscape:landscape /var/lib/landscape
|
|
chown -R landscape:landscape /var/log/landscape
|
|
|
|
#########################################
|
|
# from landscape-client-base
|
|
|
|
# 0.9.1 introduces non-backwards compatible changes. This detects
|
|
# whether or not the data is in the current format. If not, all
|
|
# existing data is removed.
|
|
DATA_DIR=/var/lib/landscape
|
|
|
|
if [ -d $DATA_DIR/data ]; then
|
|
rm -rf $DATA_DIR/*
|
|
elif [ -f $DATA_DIR/client/data.bpickle ]; then
|
|
LAST_BYTE=`sed -n '$,$s/.*\(.\)/\1/p' $DATA_DIR/client/data.bpickle`
|
|
if [ "$LAST_BYTE" = e ]; then
|
|
rm -rf $DATA_DIR/*
|
|
fi
|
|
fi
|
|
|
|
# Fix prior ownerships, we exclude the custom-graph-scripts directory
|
|
# because there might script-generated files that we want to preserve
|
|
# the ownership of.
|
|
if [ -d /var/lib/landscape/client ]; then
|
|
find /var/lib/landscape/client/ -wholename /var/lib/landscape/client/custom-graph-scripts -prune -or -exec chown landscape {} \; > /dev/null 2>&1
|
|
fi
|
|
chown -Rf landscape:root /etc/landscape/client.conf || true
|
|
|
|
#########################################
|
|
# from landscape-sysinfo
|
|
|
|
db_get $PACKAGE/sysinfo
|
|
# Choices:
|
|
# * Do not display sysinfo on login
|
|
# * Cache sysinfo in /etc/motd
|
|
# * Run sysinfo on every login
|
|
SYSINFO="${RET:-Cache sysinfo in /etc/motd}"
|
|
WRAPPER=/usr/share/landscape/landscape-sysinfo.wrapper
|
|
PROFILE_LOCATION=/etc/profile.d/50-landscape-sysinfo.sh
|
|
UPDATE_MOTD_LOCATION=/etc/update-motd.d/50-landscape-sysinfo
|
|
if [ "$RET" = "Cache sysinfo in /etc/motd" ]; then
|
|
rm -f $PROFILE_LOCATION 2>/dev/null || true
|
|
ln -sf $WRAPPER $UPDATE_MOTD_LOCATION
|
|
$WRAPPER >/dev/null 2>&1 || true
|
|
elif [ "$RET" = "Run sysinfo on every login" ]; then
|
|
rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
|
|
ln -sf $WRAPPER $PROFILE_LOCATION
|
|
$WRAPPER >/dev/null 2>&1 || true
|
|
else
|
|
rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
|
|
rm -f $PROFILE_LOCATION || true
|
|
fi
|
|
|
|
# We rely on landscape-base to create the user and log dir.
|
|
|
|
;;
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# dh_installdeb will replace this with shell code automatically
|
|
# generated by other debhelper scripts.
|
|
|
|
|
|
# Automatically added by dh_python3
|
|
if command -v py3compile >/dev/null 2>&1; then
|
|
py3compile -p landscape-common:amd64
|
|
fi
|
|
if command -v pypy3compile >/dev/null 2>&1; then
|
|
pypy3compile -p landscape-common:amd64 || true
|
|
fi
|
|
|
|
# End automatically added section
|
|
|
|
|
|
exit 0
|