mirror of https://gitee.com/openkylin/qemu.git
63 lines
2.1 KiB
Bash
63 lines
2.1 KiB
Bash
#!/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
|