| 1 | #!/bin/sh |
|---|
| 2 | |
|---|
| 3 | set -e |
|---|
| 4 | |
|---|
| 5 | . /usr/share/debconf/confmodule |
|---|
| 6 | |
|---|
| 7 | THIS_PACKAGE=gdm |
|---|
| 8 | DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
|---|
| 9 | |
|---|
| 10 | # creating gdm group if he isn't already there |
|---|
| 11 | if ! getent group gdm >/dev/null; then |
|---|
| 12 | addgroup --system gdm |
|---|
| 13 | fi |
|---|
| 14 | |
|---|
| 15 | # creating gdm user if he isn't already there |
|---|
| 16 | if ! getent passwd gdm >/dev/null; then |
|---|
| 17 | adduser --system --ingroup gdm --home /var/lib/gdm gdm |
|---|
| 18 | usermod -c "Gnome Display Manager" gdm |
|---|
| 19 | usermod -d "/var/lib/gdm" gdm |
|---|
| 20 | usermod -g "gdm" gdm |
|---|
| 21 | usermod -s "/bin/false" gdm |
|---|
| 22 | fi |
|---|
| 23 | |
|---|
| 24 | if [ -d /var/lib/gdm ]; then |
|---|
| 25 | chown -R gdm:gdm /var/lib/gdm |
|---|
| 26 | chmod 0750 /var/lib/gdm |
|---|
| 27 | fi |
|---|
| 28 | |
|---|
| 29 | # debconf is not a registry, so we only fiddle with the default file if it |
|---|
| 30 | # does not exist |
|---|
| 31 | if [ ! -e $DEFAULT_DISPLAY_MANAGER_FILE ]; then |
|---|
| 32 | if db_get shared/default-x-display-manager; then |
|---|
| 33 | # workaround debconf passthru bug (#379198) |
|---|
| 34 | if [ -z "$RET" ]; then |
|---|
| 35 | $RET="$THIS_PACKAGE" |
|---|
| 36 | fi |
|---|
| 37 | if [ "$THIS_PACKAGE" != "$RET" ]; then |
|---|
| 38 | echo "Please be sure to run \"dpkg --configure $RET\"." |
|---|
| 39 | fi |
|---|
| 40 | if db_get "$RET"/daemon_name; then |
|---|
| 41 | echo "$RET" > $DEFAULT_DISPLAY_MANAGER_FILE |
|---|
| 42 | fi |
|---|
| 43 | fi |
|---|
| 44 | fi |
|---|
| 45 | # debconf hangs if gdm gets started below without this |
|---|
| 46 | db_stop || true |
|---|
| 47 | |
|---|
| 48 | # update-rc.d levels |
|---|
| 49 | S=30 |
|---|
| 50 | K=01 |
|---|
| 51 | |
|---|
| 52 | if [ "$1" = "configure" ] && dpkg --compare-versions "$2" lt "2.16.1-1"; then |
|---|
| 53 | # since 2.16.1-1, gdm isn't started from S99 anymore |
|---|
| 54 | if [ -e /etc/rc2.d/S99gdm ]; then |
|---|
| 55 | update-rc.d -f gdm remove >/dev/null |
|---|
| 56 | update-rc.d gdm defaults $S $K |
|---|
| 57 | fi |
|---|
| 58 | elif [ "$1" = "configure" ] && dpkg --compare-versions "$2" le "2.16.4-1.1"; then |
|---|
| 59 | # since after 2.16.4-1.1, gdm isn't started from S21 anymore |
|---|
| 60 | if [ -e /etc/rc2.d/S21gdm ]; then |
|---|
| 61 | update-rc.d -f gdm remove >/dev/null |
|---|
| 62 | update-rc.d gdm defaults $S $K |
|---|
| 63 | fi |
|---|
| 64 | fi |
|---|
| 65 | |
|---|
| 66 | if [ "$1" = "configure" ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt "2.20"; then |
|---|
| 67 | # D'uh, that's an ugly hack, but upstream changed the syntax |
|---|
| 68 | # of the quoting |
|---|
| 69 | if grep -q '\\"' /etc/gdm/gdm.conf; then |
|---|
| 70 | echo "WARNING: fixing quotes in /etc/gdm/gdm.conf" |
|---|
| 71 | cp -p /etc/gdm/gdm.conf /etc/gdm/gdm.conf.dpkg-old |
|---|
| 72 | sed -i 's/\\"/"/g' /etc/gdm/gdm.conf |
|---|
| 73 | fi |
|---|
| 74 | fi |
|---|
| 75 | |
|---|
| 76 | if [ -x /etc/init.d/gdm ]; then |
|---|
| 77 | update-rc.d gdm defaults $S $K >/dev/null 2>&1 |
|---|
| 78 | invoke-rc.d gdm reload || true |
|---|
| 79 | fi |
|---|
| 80 | |
|---|
| 81 | #DEBHELPER# |
|---|
| 82 | |
|---|
| 83 | exit 0 |
|---|