diff options
Diffstat (limited to 'sys-fs/zfs/zfs-0.8.6.ebuild')
-rw-r--r-- | sys-fs/zfs/zfs-0.8.6.ebuild | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/sys-fs/zfs/zfs-0.8.6.ebuild b/sys-fs/zfs/zfs-0.8.6.ebuild index fbe500b2f8d9..54845ae75568 100644 --- a/sys-fs/zfs/zfs-0.8.6.ebuild +++ b/sys-fs/zfs/zfs-0.8.6.ebuild @@ -7,7 +7,7 @@ DISTUTILS_OPTIONAL=1 DISTUTILS_USE_SETUPTOOLS=manual PYTHON_COMPAT=( python3_{7,8,9} ) -inherit autotools bash-completion-r1 flag-o-matic linux-info distutils-r1 systemd toolchain-funcs udev usr-ldscript +inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info systemd toolchain-funcs udev usr-ldscript DESCRIPTION="Userland utilities for ZFS Linux kernel module" HOMEPAGE="https://github.com/openzfs/zfs" @@ -22,7 +22,7 @@ fi LICENSE="BSD-2 CDDL MIT" SLOT="0/2" # just libzfs soname major for now. possible candidates: libuutil, libzpool, libnvpair -IUSE="custom-cflags debug kernel-builtin minimal nls 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?] @@ -46,9 +46,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 @@ -77,8 +79,19 @@ PATCHES=( "${FILESDIR}/bash-completion-sudo.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 @@ -185,6 +198,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" |