mirror of
https://git.proxmox.com/git/pve-kernel-meta
synced 2025-08-17 02:49:56 +00:00

Deciding whether or not to add the diversion based on the version
alone fails quite hard in case pve-kernel-helper is in dpkg-state 'rc'
(removed not purged) as reported in our community forum[0]:
* removing pve-kernel-helper removes the diversion of grub-install
* if config-files are still present the preinst script gets called
with the version of the config-files (the version that got removed)
* if the version was newer than 6.4-1~ then no diversion is added
* unpacking fails, because grub-install would be overwritten leaving
pve-kernel-helper in state 'ic'
Explicitly checking whether the diversion is in place sounds like a
robust approach here.
downside: documentation on dpkg-divert in maintainer scripts [1] uses
the version approach.
[0] https://forum.proxmox.com/threads/pve-kernel-helper-wont-install.90029/
[1] https://www.debian.org/doc/debian-policy/ap-pkg-diversions.html
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 3a982230c1
)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
20 lines
401 B
Bash
20 lines
401 B
Bash
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
case "$1" in
|
|
install|upgrade)
|
|
if ! dpkg -S /usr/sbin/grub-install|grep -q 'diversion by pve-kernel-helper'; then
|
|
dpkg-divert --package pve-kernel-helper --add --rename \
|
|
--divert /usr/sbin/grub-install.real /usr/sbin/grub-install
|
|
fi
|
|
;;
|
|
*)
|
|
echo "ignoring unknown preinst command '$1'"
|
|
;;
|
|
esac
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|