File: libvirt-daemon-common.postinst

package info (click to toggle)
libvirt 11.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 205,260 kB
  • sloc: ansic: 533,672; xml: 310,954; python: 11,881; perl: 2,629; sh: 2,185; makefile: 448; javascript: 126; cpp: 22
file content (99 lines) | stat: -rw-r--r-- 2,351 bytes parent folder | download | duplicates (3)
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
#!/bin/sh

set -e

# summary of how this script can be called:
#
#   * <postinst> `configure' <most-recently-configured-version>
#   * <old-postinst> `abort-upgrade' <new-version>
#   * <conflictor's-postinst> `abort-remove' `in-favour' <package> <new-version>
#   * <postinst> `abort-remove'
#   * <deconfigured's-postinst> `abort-deconfigure' `in-favour' <failed-install-package>
#     <version> `removing' <conflicting-package> <version>
#
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package

delete_protective_diversion() {
    local usrfile="$1"
    local firstver="$2"

    if [ "$3" != "--" ]; then
        echo "delete_protective_diversion called with the wrong number of arguments" >&2
        return 1
    fi
    for _ in $(seq 1 3); do
        shift
    done

    # If the diversion doesn't exist there's nothing to clean up
    if [ -z "$(dpkg-divert --list "$usrfile")" ]; then
        return 0
    fi

    dpkg-divert \
        --no-rename \
        --divert "$usrfile.usr-is-merged" \
        --remove "$usrfile"
}

add_users_groups()
{
    if ! getent group libvirt >/dev/null; then
        addgroup --quiet --system libvirt
    fi
}

add_statoverrides()
{
    ROOT_DIRS="
        /var/lib/libvirt/images/
        /var/lib/libvirt/boot/
        /var/cache/libvirt/
    "

    for dir in ${ROOT_DIRS}; do
        if ! dpkg-statoverride --list "${dir}" >/dev/null 2>&1; then
            [ ! -e "${dir}" ] || chown root:root "${dir}"
            [ ! -e "${dir}" ] || chmod 0711 "${dir}"
        fi
    done
}

DAEMON_COMMON_UNITS="
    libvirt-guests.service
    virt-guest-shutdown.target
"

case "$1" in
    configure)
        add_users_groups
        add_statoverrides

        # Obsolete UML stuff included until 9.0.0-1
        rm -f /var/log/libvirt/uml/.placeholder
        if [ -d /var/log/libvirt/uml ]; then
            rmdir --ignore-fail-on-non-empty /var/log/libvirt/uml
        fi

        for unit in $DAEMON_COMMON_UNITS; do
            delete_protective_diversion \
                "/lib/systemd/system/$unit" \
                "10.6.0-3~" \
                -- \
                "$@"
        done
    ;;

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

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

#DEBHELPER#

exit 0