blob: ec394f9cfb67b3cccde57569bd01580e3e4c60a0 (
plain)
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
#! /bin/sh
set -e
# source debconf library
. /usr/share/debconf/confmodule
# debconf is not a registry, so we only fiddle with the default file if it
# does not exist
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
if [ ! -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
DEFAULT_DISPLAY_MANAGER=
if db_get shared/default-x-display-manager; then
DEFAULT_DISPLAY_MANAGER="$RET"
fi
if [ -n "$DEFAULT_DISPLAY_MANAGER" ]; then
DAEMON_NAME=
if db_get "$DEFAULT_DISPLAY_MANAGER"/daemon_name; then
DAEMON_NAME="$RET"
fi
if [ ! -n "$DAEMON_NAME" ]; then
# if we were unable to determine the name of the selected daemon (for
# instance, if the selected default display manager doesn't provide a
# daemon_name question), guess
DAEMON_NAME=$(which "$DEFAULT_DISPLAY_MANAGER" 2>/dev/null)
if [ ! -n "$DAEMON_NAME" ]; then
echo .
# FIXME - redo this part uses shell-lib.sh from xfree86
#warn "unable to determine path to default X display manager" \
# "$DEFAULT_DISPLAY_MANAGER; not updating" \
# "$DEFAULT_DISPLAY_MANAGER_FILE"
fi
fi
if [ -n "$DAEMON_NAME" ]; then
# FIXME - redo this part uses shell-lib.sh from xfree86
#observe "committing change of default X display manager"
echo "$DAEMON_NAME" > "$DEFAULT_DISPLAY_MANAGER_FILE"
fi
fi
fi
# remove the displaced old default display manager file if it exists
if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp" ]; then
rm "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp"
fi
# set default-display-manager systemd service link according to our config
DEFAULT_SERVICE=/etc/systemd/system/display-manager.service
if [ "$1" = configure ] && [ -d /etc/systemd/system/ ]; then
if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
SERVICE=/lib/systemd/system/$(basename $(cat "$DEFAULT_DISPLAY_MANAGER_FILE")).service
if [ -h "$DEFAULT_SERVICE" ] && [ $(readlink "$DEFAULT_SERVICE") = /dev/null ]; then
echo "Display manager service is masked" >&2
elif [ -e "$SERVICE" ]; then
ln -sf "$SERVICE" "$DEFAULT_SERVICE"
else
echo "WARNING: $SERVICE is the selected default display manager but does not exist" >&2
rm -f "$DEFAULT_SERVICE"
fi
else
rm -f "$DEFAULT_SERVICE"
fi
fi
# restarting the daemon may cause output to stdout
db_stop
# don't start tdm if we are upgrading without stopping it
NOSTART=
if [ -e /var/run/tdm-trinity.upgrade ]; then
NOSTART=yes
fi
# or if we're currently in X on the display it attempts to manage by default
for HOST in "" \
"localhost" \
"$(hostname 2> /dev/null)" \
"$(hostname -f 2> /dev/null)"; do
if echo "$DISPLAY" | grep -q "^$HOST:0.*"; then
NOSTART=yes
break
fi
done
# or if it's already running
if start-stop-daemon --stop --quiet --signal 0 --pid /var/run/tdm.pid --exec /opt/trinity/bin/tdm; then
NOSTART=yes
fi
# or if the options file says not to
if ! grep -qs ^restart-on-upgrade /etc/trinity/tdm/tdm.options; then
NOSTART=yes
fi
# md5sum of the stock Xservers shipped with KDE 3.3.2, which shipped with Sarge
SARGEXSERVERS=d3ab063f564492e0e31830f56ccd350e
CONFIGLEVEL=`grep -s ^ConfigVersion= /etc/trinity/tdm/tdmrc | sed s/^ConfigVersion=//`
if [ -e /etc/trinity/tdm/tdmrc ]; then
if dpkg --compare-versions "$CONFIGLEVEL" ge "2.3"; then
TDMRCUPDATED=yes
fi
fi
if [ -e /etc/trinity/tdm/Xservers ]; then
if [ `md5sum /etc/trinity/tdm/Xservers | sed s/\ .*$//` = $SARGEXSERVERS ]; then
XSERVERSUNCHANGED=yes
fi
fi
# From KDE 3.4, /etc/trinity/tdm/Xservers is no longer required, so we remove it, if
# the user has updated their tdmrc (if they haven't, tdm notices and keeps using
# Xservers), and if it wasn't touched, i.e. there are no local changes the user
# will want to merge into tdmrc.
case "$1" in
configure)
if [ ! -z $TDMRCUPDATED ] && [ ! -z $XSERVERSUNCHANGED ]; then
echo "Removing obsolete /etc/trinity/tdm/Xservers (detected no user changes)."
rm -f /etc/trinity/tdm/Xservers
elif [ ! -z $TDMRCUPDATED ] && [ -e /etc/trinity/tdm/Xservers ]; then
echo "Note that /etc/trinity/tdm/Xservers is no longer used by TDM."
echo "You must merge your changes (if any) into /etc/trinity/tdm/tdmrc manually."
echo "Otherwise, /etc/trinity/tdm/Xservers is safe to remove."
fi
rm -f /etc/init.d/tdm-trinity
ln -s /lib/init/upstart-job /etc/init.d/tdm-trinity
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# Upstart is not active?
UPSTART_DIVERT=`dpkg-divert --listpackage /sbin/initctl`
UPSTART_ACTIVE=`dbus-send --system --print-reply --dest=com.ubuntu.Upstart /com/ubuntu/Upstart org.freedesktop.DBus.Properties.Get string:com.ubuntu.Upstart0_6 string:version 2>/dev/null || true`
if [ -z "$UPSTART_DIVERT" ] && [ -z "$UPSTART_ACTIVE" ]; then
echo "Upstart is not active - masking initctl" >&2
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
fi
#DEBHELPER#
# Upstart is not active?
if [ -z "$UPSTART_DIVERT" ] && [ -z "$UPSTART_ACTIVE" ]; then
rm /sbin/initctl
dpkg-divert --local --rename --remove /sbin/initctl
fi
exit 0
|