summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2021-11-11 10:09:26 -0800
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2021-11-11 10:09:26 -0800
commit5b3a64f5da44e421dc51f6723457e02490c783b9 (patch)
treead26aad67f1f38b453161303db661559e7101df5 /sys-apps
parentsys-apps/coreutils: update zfs-kmod checker (diff)
downloadgentoo-5b3a64f5da44e421dc51f6723457e02490c783b9.tar.gz
gentoo-5b3a64f5da44e421dc51f6723457e02490c783b9.tar.bz2
gentoo-5b3a64f5da44e421dc51f6723457e02490c783b9.zip
sys-apps/coreutils: add zfs-kmod check to 9.0 ebuild too
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/coreutils/coreutils-9.0.ebuild40
1 files changed, 40 insertions, 0 deletions
diff --git a/sys-apps/coreutils/coreutils-9.0.ebuild b/sys-apps/coreutils/coreutils-9.0.ebuild
index b373e1d79b29..231339807e73 100644
--- a/sys-apps/coreutils/coreutils-9.0.ebuild
+++ b/sys-apps/coreutils/coreutils-9.0.ebuild
@@ -58,6 +58,46 @@ RDEPEND+="
!<app-forensics/tct-1.18-r1
!<net-fs/netatalk-2.0.3-r4"
+pkg_pretend() {
+ if has_version "<sys-fs/zfs-9999" ; then
+ einfo "Checking for running ZFS module 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
+ Using ${P} with running version of zfs-kmod of can
+ lead to data loss while using cp command on some configurations.
+ See https://github.com/openzfs/zfs/issues/11900 for details.
+ 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