summaryrefslogtreecommitdiffstats
path: root/dilos/core/tdebase/debian/tdm-trinity.postinst
blob: 28071e4b4ac1d0c4405b9b7a8c9da5ab07f86bed (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
161
162
163
164
165
166
167
168
169
170
171
172
#!/bin/sh

set -e
if [ "${BASEDIR:=/}" = "/" ]; then
	BASEDIR=""
fi

# 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=yes
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 /usr/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

#    if [ -f /etc/init.d/tdm-trinity ] && \
#       [ ! -x "`which dpkg-maintscript-helper 2>/dev/null`" ]; then
#        rm -f /etc/init.d/tdm-trinity
#    fi

  ;;

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

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

esac

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

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

#DEBHELPER#

exit 0