commit:     5b3a64f5da44e421dc51f6723457e02490c783b9
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 11 18:09:26 2021 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Thu Nov 11 18:09:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b3a64f5

sys-apps/coreutils: add zfs-kmod check to 9.0 ebuild too

Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 sys-apps/coreutils/coreutils-9.0.ebuild | 40 +++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/sys-apps/coreutils/coreutils-9.0.ebuild 
b/sys-apps/coreutils/coreutils-9.0.ebuild
index b373e1d79b2..231339807e7 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

Reply via email to