source: trunk/debathena/config/gdm-config/debian/debathena-gdm-config.postinst @ 25163

Revision 25163, 3.7 KB checked in by jdreed, 13 years ago (diff)
In gdm-config: * Don't fail in maintainer scripts, even if the Debian utilities are stupid
Line 
1#!/bin/sh
2# postinst script for debathena-gdm-config
3#
4# see: dh_installdeb(1)
5
6set -e
7
8# summary of how this script can be called:
9#        * <postinst> `configure' <most-recently-configured-version>
10#        * <old-postinst> `abort-upgrade' <new version>
11#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12#          <new-version>
13#        * <postinst> `abort-remove'
14#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15#          <failed-install-package> <version> `removing'
16#          <conflicting-package> <version>
17# for details, see http://www.debian.org/doc/debian-policy/ or
18# the debian-policy package
19
20
21package=debathena-gdm-config
22ours=.debathena
23theirs=.debathena-orig
24
25undivert_unlink_symlink()
26{
27    file="$1"
28    ourfile="$2"
29    theirfile="$3"
30    if [ ! -L "$file" ] || \
31        [ "$(readlink "$file")" != "$(basename "$ourfile")" -a \
32          "$(readlink "$file")" != "$(basename "$theirfile")" ]; then
33        echo "*** OMINOUS WARNING ***: $file is not linked to either $(basename "$ourfile") or $(basename "$theirfile")" >&2
34    else
35        rm -f "$file"
36    fi
37}
38
39undivert_unlink_divert()
40{
41    file="$1"
42    if [ ! -L "$file" ] && [ ! -e "$file" ]; then
43        dpkg-divert --remove --rename --package "$package" "$file"
44    else
45        echo "Not removing diversion of $file by $package" >&2
46    fi
47}
48
49undivert_unlink()
50{
51    prefix=$1
52    suffix=$2
53
54    file=$prefix$suffix
55    ourfile=$prefix$ours$suffix
56    theirfile=$prefix$theirs$suffix
57
58    undivert_unlink_symlink "$file" "$ourfile" "$theirfile"
59    undivert_unlink_divert "$file" "$package"
60}
61
62cleanup_old_diversion() {
63    file="$1"
64    if dpkg-divert --list "${file}" | grep -Fxq "diversion of ${file} to ${file}${theirs} by ${package}"; then
65        undivert_unlink "$file"
66    fi
67}
68
69case "$1" in
70    configure)
71        if dpkg --compare-versions "$2" lt-nl '1.26~'; then
72            touch /var/run/reboot-required
73        fi
74        gdm_version="$(dpkg-query -W -f '${Version}' gdm)"
75        if dpkg --compare-versions "$gdm_version" ge '2.25.2~'; then
76            cleanup_old_diversion /etc/gdm/gdm.conf
77            cleanup_old_diversion /etc/gdm/gdm.conf-custom
78            cleanup_old_diversion /usr/share/gdm/BuiltInSessions/default.desktop
79            cleanup_old_diversion /usr/share/images/xsplash/bg_2560x1600.debathena.jpg
80            cleanup_old_diversion /usr/share/images/xsplash/throbber_small.debathena.png
81            cleanup_old_diversion /usr/share/images/xsplash/throbber_medium.debathena.png
82            cleanup_old_diversion /usr/share/images/xsplash/throbber_large.debathena.png
83            cleanup_old_diversion /usr/share/images/xsplash/throbber_xtra_large.debathena.png
84        fi
85
86        if [ -f /usr/share/xsessions/athena.desktop ] && \
87           [ -x /usr/lib/gdm/gdm-set-default-session ]; then
88          # Sigh.  This exits non-zero if there already is a default
89          # session, but only if DBus is running.
90          /usr/lib/gdm/gdm-set-default-session -k athena || true
91        fi
92
93        if test -f /var/run/gdm.pid ; then
94            if hash invoke-rc.d 2>/dev/null; then
95                invoke-rc.d gdm reload || true
96                else
97                /etc/init.d/gdm reload || true
98            fi
99        fi
100        # We don't actually want the "unknown metapackage" file, but it
101        # needs to be present in case you have debathena-gdm-config and
102        # nothing else, so give it priority 0.
103        update-alternatives --install \
104            /usr/share/gdm/themes/debathena/metapackage.svg \
105            debathena-metapackage.svg \
106            /usr/share/gdm/themes/debathena/metapackage-unknown.svg \
107            0
108    ;;
109
110    abort-upgrade|abort-remove|abort-deconfigure)
111    ;;
112
113    *)
114        echo "postinst called with unknown argument \`$1'" >&2
115        exit 1
116    ;;
117esac
118
119# dh_installdeb will replace this with shell code automatically
120# generated by other debhelper scripts.
121
122#DEBHELPER#
123
124exit 0
125
126
Note: See TracBrowser for help on using the repository browser.