File: qemu-guest-agent.preinst

package info (click to toggle)
qemu 1%3A5.2%2Bdfsg-10
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 201,372 kB
  • sloc: ansic: 2,327,506; pascal: 107,506; asm: 49,545; python: 40,498; sh: 35,286; cpp: 33,587; makefile: 15,209; perl: 6,965; xml: 3,028; objc: 1,460; php: 1,299; tcl: 1,070; yacc: 604; lex: 363; sql: 71; awk: 35; sed: 11
file content (62 lines) | stat: -rw-r--r-- 2,106 bytes parent folder | download | duplicates (5)
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
#!/bin/sh
# preinst script for qemu-guest-agent
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <new-preinst> `install'
#        * <new-preinst> `install' <old-version>
#        * <new-preinst> `upgrade' <old-version>
#        * <old-preinst> `abort-upgrade' <new-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    install|upgrade)
    ;;

    abort-upgrade)
    ;;

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

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Normal mv_conffile alone would fail due to the new path being a DIR in the old package version (LP: 1820291)
case "$1" in
    install|upgrade)
        # From /usr/bin/dpkg-maintscript-helper modified to be able to cope with this edge case
        if [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "1:3.1+dfsg-7~"; then
            TMPCONFFILE="/etc/qemu/fsfreeze-hook.old"
            NEWCONFFILE="/etc/qemu/fsfreeze-hook"
            ORIGCONFFILE="/etc/qemu/fsfreeze-hook/fsfreeze-hook"
            if [ -f "$ORIGCONFFILE" ]; then
                disk_md5sum="$(md5sum "$ORIGCONFFILE" | sed -e 's/ .*//')"
                pkg_md5sum="$(dpkg-query -W -f='${Conffiles}' "qemu-guest-agent" | \
                    sed -n -e "\'^ $ORIGCONFFILE ' { s/ obsolete$//; s/.* //; p }")"
                if [ "$disk_md5sum" = "$pkg_md5sum" ]; then
                    # mark as having no custom content
                    mv -f "$ORIGCONFFILE" "${TMPCONFFILE}.dpkg-remove"
                else
                    # keep the "old" name to reflect there is content to be preserved
                    mv -f "$ORIGCONFFILE" "$TMPCONFFILE"
                fi
                # In any case the old directory blocking the new conffile
                # has to be removed before unpack happens
                rmdir "$NEWCONFFILE" || echo "failed to remove $NEWCONFFILE"
            fi
        fi
        ;;
esac

#DEBHELPER#

exit 0