/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-client.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/sh -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
set -e
 
19
 
18
20
# Update the initial RAM file system image
19
21
update_initramfs()
20
22
{
21
 
    if [ -x /usr/sbin/update-initramfs ]; then
22
 
        update-initramfs -u -k all
23
 
    fi
 
23
    update-initramfs -u -k all
24
24
    
25
25
    if dpkg --compare-versions "$2" lt-nl "1.0.10-1"; then
26
26
        # Make old initrd.img files unreadable too, in case they were
56
56
        -a -r /etc/keys/mandos/seckey.txt ]; then
57
57
        return 0
58
58
    fi
59
 
    if [ -x /usr/sbin/mandos-keygen ]; then
60
 
        mandos-keygen
61
 
    fi
 
59
    mandos-keygen
 
60
}
 
61
 
 
62
create_dh_params(){
 
63
    if [ -r /etc/keys/mandos/dhparams.pem ]; then
 
64
        return 0
 
65
    fi
 
66
    # Create a Diffe-Hellman parameters file
 
67
    DHFILE="`mktemp -t mandos-client-dh-parameters.XXXXXXXXXX.pem`"
 
68
    # First try certtool from GnuTLS
 
69
    if ! certtool --generate-dh-params --sec-param high \
 
70
         --outfile "$DHFILE"; then
 
71
        # Otherwise try OpenSSL
 
72
        if ! openssl genpkey -genparam -algorithm DH -out "$DHFILE" \
 
73
             -pkeyopt dh_paramgen_prime_len:3072; then
 
74
            # None of the commands succeded; give up
 
75
            rm -- "$DHFILE"
 
76
            return 1
 
77
        fi
 
78
    fi
 
79
    sed --in-place --expression='0,/^-----BEGIN DH PARAMETERS-----$/d' \
 
80
        "$DHFILE"
 
81
    sed --in-place --expression='1i-----BEGIN DH PARAMETERS-----' \
 
82
            "$DHFILE"
 
83
    cp --archive "$DHFILE" /etc/keys/mandos/dhparams.pem
 
84
    rm -- "$DHFILE"
62
85
}
63
86
 
64
87
case "$1" in
65
88
    configure)
66
89
        add_mandos_user "$@"
67
90
        create_key "$@"
 
91
        create_dh_params "$@" || :
68
92
        update_initramfs "$@"
 
93
        if dpkg --compare-versions "$2" lt-nl "1.7.7-1"; then
 
94
            PLUGINHELPERDIR=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)/mandos/plugin-helpers
 
95
            if ! dpkg-statoverride --list "$PLUGINHELPERDIR" \
 
96
                 >/dev/null 2>&1; then
 
97
                chmod u=rwx,go= -- "$PLUGINHELPERDIR"
 
98
            fi
 
99
            if ! dpkg-statoverride --list /etc/mandos/plugin-helpers \
 
100
                 >/dev/null 2>&1; then
 
101
                chmod u=rwx,go= -- /etc/mandos/plugin-helpers
 
102
            fi
 
103
        fi
69
104
        ;;
70
105
    abort-upgrade|abort-deconfigure|abort-remove)
71
106
        ;;