1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#!/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. Running just "python" might run
# something from /usr/local/bin, which doesn't necessarily support
# running the landscape client.
PYTHON=/usr/bin/python
case "$1" in
configure)
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
/usr/sbin/update-motd 2>/dev/null || true
elif [ "$RET" = "Run sysinfo on every login" ]; then
rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
/usr/sbin/update-motd 2>/dev/null || true
ln -sf $WRAPPER $PROFILE_LOCATION
else
rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
/usr/sbin/update-motd 2>/dev/null || true
rm -f $PROFILE_LOCATION || true
fi
# 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
# 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
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
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 prior ownerships, we exclude the custom-graph-scripts directory
# because there might script-generated files that we want to preserve
# the ownership of.
find /var/lib/landscape/ -wholename /var/lib/landscape/client/custom-graph-scripts -prune -or -exec chown landscape {} \; > /dev/null 2>&1
chown -R landscape /var/log/landscape
;;
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.
#DEBHELPER#
exit 0
|