summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-fs/zfs/zfs-2.0.4-r1.ebuild')
-rw-r--r--sys-fs/zfs/zfs-2.0.4-r1.ebuild30
1 files changed, 26 insertions, 4 deletions
diff --git a/sys-fs/zfs/zfs-2.0.4-r1.ebuild b/sys-fs/zfs/zfs-2.0.4-r1.ebuild
index 98198b67e82c..e6152b9eb7e4 100644
--- a/sys-fs/zfs/zfs-2.0.4-r1.ebuild
+++ b/sys-fs/zfs/zfs-2.0.4-r1.ebuild
@@ -7,7 +7,7 @@ DISTUTILS_OPTIONAL=1
DISTUTILS_USE_SETUPTOOLS=manual
PYTHON_COMPAT=( python3_{7,8,9} )
-inherit autotools bash-completion-r1 distutils-r1 flag-o-matic linux-info pam systemd toolchain-funcs udev usr-ldscript
+inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd toolchain-funcs udev usr-ldscript
DESCRIPTION="Userland utilities for ZFS Linux kernel module"
HOMEPAGE="https://github.com/openzfs/zfs"
@@ -26,7 +26,7 @@ LICENSE="BSD-2 CDDL MIT"
# just libzfs soname major for now.
# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered.
SLOT="0/4"
-IUSE="custom-cflags debug kernel-builtin minimal nls pam python +rootfs test-suite static-libs"
+IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs test-suite static-libs"
DEPEND="
net-libs/libtirpc[static-libs?]
@@ -51,9 +51,11 @@ BDEPEND="virtual/awk
"
RDEPEND="${DEPEND}
- !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= )
+ !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:=[dist-kernel?] )
!prefix? ( virtual/udev )
sys-fs/udev-init-scripts
+ virtual/awk
+ dist-kernel? ( virtual/dist-kernel:= )
rootfs? (
app-arch/cpio
app-misc/pax-utils
@@ -83,8 +85,19 @@ PATCHES=(
"${FILESDIR}/2.0.4-scrub-timers.patch"
)
+pkg_pretend() {
+ use rootfs || return 0
+
+ if has_version virtual/dist-kernel && ! use dist-kernel; then
+ ewarn "You have virtual/dist-kernel installed, but"
+ ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}"
+ ewarn "It's recommended to globally enable dist-kernel USE flag"
+ ewarn "to auto-trigger initrd rebuilds with kernel updates"
+ fi
+}
+
pkg_setup() {
- if use kernel_linux && use test-suite; then
+ if use kernel_linux; then
linux-info_pkg_setup
if ! linux_config_exists; then
@@ -193,6 +206,15 @@ src_install() {
}
pkg_postinst() {
+ # we always need userspace utils in sync with zfs-kmod
+ # so force initrd update for userspace as well, to avoid
+ # situation when zfs-kmod trigger initrd rebuild before
+ # userspace component is rebuilt
+ # KV_* variables are provided by linux-info.eclass
+ if [[ -z ${ROOT} ]] && use dist-kernel; then
+ dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
+ fi
+
if use rootfs; then
if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then
elog "root on zfs requires initramfs to boot"