sys-apps/coreutils: add check for running zfs(-kmod) version in coreutils 9

We need to make sure people reboot to avoid data corruption, not just
upgrade the module but fail to restart.

Bug: https://bugs.gentoo.org/815469
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2021-11-11 03:12:23 +00:00
parent eecc12f576
commit 0372bbf13c

View File

@@ -58,6 +58,43 @@ RDEPEND+="
!<app-forensics/tct-1.18-r1
!<net-fs/netatalk-2.0.3-r4"
pkg_pretend() {
if has_version sys-fs/zfs; then
einfo "Checking for compatible ZFS version"
local kmodv minver
kmodv="$(grep kmod <(zfs -V 2>/dev/null))"
# Convert zfs-kmod-2.1.1-r3-gentoo -> 2.1.1-r3
kmodv="${kmodv//zfs-kmod-}"
kmodv="${kmodv%%-gentoo}"
minver="$(ver_cut 2 ${kmodv})"
local diemsg=$(cat <<-EOF
Attempted installation of ${P} on unsupported version of zfs-kmod!
Please reboot to a newer version of zfs-kmod first:
zfs-kmod >=2.0.7 or zfs-kmod >=2.1.1-r3
EOF
)
case "${minver}" in
# 2.0.x
0)
ver_test "${kmodv}" -lt 2.0.7 && die "${diemsg}"
;;
# 2.1.x
1)
ver_test "${kmodv}" -lt 2.1.1-r3 && die "${diemsg}"
;;
# 0.8.x/9999
*)
# We can't really cover this case realistically
# 9999 is too hard to check and 0.8.x isn't being supported anymore.
;;
esac
fi
}
pkg_setup() {
if use test ; then
python-any-r1_pkg_setup