summaryrefslogtreecommitdiff
path: root/debian/postinst
blob: 6c826eb6f4c966a3e0f6487f206412a41ccc5773 (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
#!/bin/sh

set +e 

# is everything in place ?
if [ ! -x "`which adduser`" ]; then 
        echo "I need adduser(8) from the adduser.deb package !";
        exit 1;
fi
if [ ! -x "`which addgroup`" ]; then 
        echo "I need addgroup(8) from the adduser.deb package !";
        exit 1;
fi
if [ ! -x "`which usermod`" ]; then
        echo "I need usermod(8) from the passwd.deb package !";
        exit 1;
fi

# creating gdm group if he isn't already there
if ! grep -q ^gdm: /etc/group; then
        echo Adding system group: gdm.
        addgroup gdm
fi

# creating gdm user if he isn't already there
if ! grep -q ^gdm: /etc/passwd; then
        echo Adding system user: gdm.
        adduser --system --ingroup gdm --home /var/lib/gdm gdm
fi

usermod -c "Gnome Display Manager" gdm
usermod -d "/var/lib/gdm"          gdm
usermod -g "gdm"                   gdm
usermod -s "/bin/false"            gdm

set -e

if [ -d /var/lib/gdm ]; then
  chown -R gdm:gdm /var/lib/gdm
  chmod 0750 /var/lib/gdm
fi

# based on xdm's postinst by Branden Robinson

# don't start gdm if we're currently in X on the display it attempts to
# manage by default.
nostart=
gdm_running=
for hostname in "" "localhost" "$(hostname)" "$(hostname -f)"; do
  if echo $DISPLAY | grep -q "^$hostname:0.*"; then
    nostart=yes
  fi
done

# or if it's already running
# NOTE: the binary on disk most likely has changed, so we can't use --exec
if start-stop-daemon --stop --quiet --signal 0 --pid /var/run/gdm.pid; then
  nostart=yes
  gdm_running=yes
fi

update-rc.d gdm defaults 99 01 >/dev/null

if [ -d /var/state/gdm ]; then
  if [ "$gdm_running" ]; then
    echo "Note: obsolete directory /var/state/gdm cannot be removed when gdm"
    echo "is running.  Reinstall the gdm package (or remove the directory"
    echo "manually) when gdm is not running."
  else
    rm -r /var/state/gdm
  fi
fi

[ "$nostart" ] || /etc/init.d/gdm start || true

#DEBHELPER#