/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to debian/mandos.postinst

  • Committer: Teddy Hogeborn
  • Date: 2016-06-03 17:27:03 UTC
  • mto: (237.7.594 trunk)
  • mto: This revision was merged to the branch mainline in revision 343.
  • Revision ID: teddy@recompile.se-20160603172703-mc6tjor6rhq4xy74
mandos: Bug fix: Do multiprocessing cleanup correctly on exit

* mandos (main): Save module "multiprocessing" and open file "wnull"
                 as scope variables accessible by function cleanup(),
                 since the module and global variable may not be
                 accessible when the cleanup() function is run as
                 scheduled by atexit().

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# This script can be called in the following ways:
 
3
#
 
4
# After the package was installed:
 
5
#       <postinst> configure <old-version>
 
6
#
 
7
#
 
8
# If prerm fails during upgrade or fails on failed upgrade:
 
9
#       <old-postinst> abort-upgrade <new-version>
 
10
#
 
11
# If prerm fails during deconfiguration of a package:
 
12
#       <postinst> abort-deconfigure in-favour <new-package> <version>
 
13
#                  removing <old-package> <version>
 
14
#
 
15
# If prerm fails during replacement due to conflict:
 
16
#       <postinst> abort-remove in-favour <new-package> <version>
 
17
 
 
18
set -e
 
19
 
 
20
case "$1" in
 
21
    configure)
 
22
        # Rename old "mandos" user and group
 
23
        if dpkg --compare-versions "$2" lt "1.0.3-1"; then
 
24
            case "`getent passwd mandos`" in
 
25
                *:Mandos\ password\ system,,,:/nonexistent:/bin/false)
 
26
                    usermod --login _mandos mandos
 
27
                    groupmod --new-name _mandos mandos
 
28
                    ;;
 
29
            esac
 
30
        fi
 
31
        # Create new user and group
 
32
        if ! getent passwd _mandos >/dev/null; then
 
33
            adduser --system --force-badname --quiet \
 
34
                --home /nonexistent --no-create-home --group \
 
35
                --disabled-password --gecos "Mandos password system" \
 
36
                _mandos
 
37
        elif dpkg --compare-versions "$2" eq 1.7.4-1 \
 
38
                || dpkg --compare-versions "$2" eq "1.7.4-1~bpo8+1"
 
39
        then
 
40
            start=no
 
41
            if ! [ -f /var/lib/mandos/clients.pickle ]; then
 
42
                invoke-rc.d mandos stop
 
43
                start=yes
 
44
            fi
 
45
            chown _mandos:_mandos /var/lib/mandos/clients.pickle \
 
46
                  2>/dev/null || :
 
47
            if [ "$start" = yes ]; then
 
48
                invoke-rc.d mandos start
 
49
            fi
 
50
        fi
 
51
        if ! dpkg-statoverride --list "/var/lib/mandos" >/dev/null \
 
52
             2>&1; then
 
53
            chown _mandos:_mandos /var/lib/mandos
 
54
            chmod u=rwx,go= /var/lib/mandos
 
55
        fi
 
56
        ;;
 
57
    
 
58
    abort-upgrade|abort-deconfigure|abort-remove)
 
59
        ;;
 
60
    
 
61
    *)
 
62
        echo "$0 called with unknown argument '$1'" 1>&2
 
63
        exit 1
 
64
        ;;
 
65
esac
 
66
 
 
67
# Avahi version 0.6.31-2 and older provides "avahi" (instead of
 
68
# "avahi-daemon") in its /etc/init.d script header.  To make
 
69
# insserv(8) happy, we edit our /etc/init.d script header to contain
 
70
# the correct string before the code added by dh_installinit calls
 
71
# update.rc-d, which calls insserv.
 
72
avahi_version="`dpkg-query --showformat='${Version}' --show avahi-daemon`"
 
73
if dpkg --compare-versions "$avahi_version" le 0.6.31-2; then
 
74
    sed --in-place --expression='/^### BEGIN INIT INFO$/,/^### END INIT INFO$/s/^\(# Required-\(Stop\|Start\):.*avahi\)-daemon\>/\1/g' /etc/init.d/mandos
 
75
fi
 
76
 
 
77
#DEBHELPER#
 
78
 
 
79
exit 0