summaryrefslogtreecommitdiffstats
path: root/debian/squeeze/tdebase/debian/tdm-trinity.postinst
blob: 28266248434dc87ecf06a4a728b289b4b89aed05 (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
#! /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

# 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 --pidfile /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

    
    

  ;;

  abort-upgrade|abort-remove|abort-deconfigure)
  ;;

  *)
  echo "postinst called with unknown argument \`$1'" >&2
  exit 1
  ;;

esac

if [ -x "/etc/init.d/tdm-trinity" ]; then
  if [ -x "`which insserv 2>/dev/null`" ]; then
    insserv tdm-trinity >/dev/null
  else
    update-rc.d tdm-trinity defaults 13 01 >/dev/null
  fi
fi

if [ -n "$NOSTART" ]; then
  exit 0
else
  if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
    invoke-rc.d tdm-trinity start || true
  else
    /etc/init.d/tdm-trinity start || true
  fi
fi

#DEBHELPER#

exit 0