/mandos/trunk

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

« back to all changes in this revision

Viewing changes to debian/mandos.postinst

  • Committer: Teddy Hogeborn
  • Date: 2016-06-03 17:27:03 UTC
  • 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/bash -e
 
1
#!/bin/sh
2
2
# This script can be called in the following ways:
3
3
#
4
4
# After the package was installed:
15
15
# If prerm fails during replacement due to conflict:
16
16
#       <postinst> abort-remove in-favour <new-package> <version>
17
17
 
18
 
. /usr/share/debconf/confmodule
 
18
set -e
19
19
 
20
20
case "$1" in
21
21
    configure)
22
 
        if ! getent passwd mandos >/dev/null; then
23
 
            adduser --disabled-password  --quiet --system \
24
 
                --home /nonexistent --no-create-home \
25
 
                --gecos "Mandos password system" --group mandos
 
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
26
55
        fi
27
56
        ;;
28
 
 
 
57
    
29
58
    abort-upgrade|abort-deconfigure|abort-remove)
30
59
        ;;
31
 
 
 
60
    
32
61
    *)
33
 
        echo "$0 called with unknown argument \`$1'" 1>&2
 
62
        echo "$0 called with unknown argument '$1'" 1>&2
34
63
        exit 1
35
64
        ;;
36
65
esac
37
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
 
38
77
#DEBHELPER#
39
78
 
40
79
exit 0