sys-fs/zfs-kmod: Sync with Gentoo

It's from Gentoo commit 402404856f21795f09877d740d8a80e1dc79c93c.

Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
Flatcar Buildbot 2026-03-02 07:29:58 +00:00 committed by Krzesimir Nowak
parent c788dd296c
commit d2c3b19094
3 changed files with 211 additions and 2 deletions

View File

@ -10,3 +10,5 @@ DIST zfs-2.3.4.tar.gz 34386899 BLAKE2B e7619445a9138475e51e1578cb4e85032570830fa
DIST zfs-2.3.4.tar.gz.asc 858 BLAKE2B 2537afa40b48c07b8ad61a4f6973e40a78b5863afbb6b75674fb7a5950ba2dda22dfa93a180190332d234b0b2e2ce14ed61cb34bc0f56e609dad3cdb805ab5c2 SHA512 cc50fb915d4e8a7eb894bdf919940a8c68828e48a5e1f2a08b08a5e75c0eb8a9cd4feaa84742b65d6b2d85ee839ac2b7d565ed7958006ff079d751145463243b
DIST zfs-2.3.5.tar.gz 34379136 BLAKE2B 4ae090c76e13f2d3d76e481b9950db1319534e47b357e4818bfc4db84cc0a5089de1e46319a36f02010ac27e3ab5cf74a56979b94864d38dcc41c86721841e54 SHA512 72d62e28dc868aba720755685d5e8020d3165d04d0ae55f33e97ed6c503637c476563d23ea6e991784ab1c2e6886d785e2f15f5a71d4d3f69700bbb26eda3dad
DIST zfs-2.3.5.tar.gz.asc 858 BLAKE2B 96edcd3eb5b1a9d33ed50b2526d6a69b5e3dd4d1450205ed7342352aa3ac7014fc813b703ae97a29380da16f452c5491ddf68c05621479b7559f8907cc3b90de SHA512 fc69ab416499ef03cc3721c9f0017e792fc857d045e7f5902a5bf41eb31bbe192e850c1d01482401f06a53926649a1798fc2f7f6fc058fe8c6727b8630c56cdd
DIST zfs-2.3.6.tar.gz 34410022 BLAKE2B 9d83e296cb4e78c67cb9d30ba79b74b4b53c9fd4b0b58cd7a9e1e7b0fafc2c5a49b002c1023d07736c1a6149c61963ccb45e9a82d25944c0a7bd4486ea7fcde8 SHA512 789f534124173693ad461f0fcd5df442588225d5f42420f658fe5c7cb57549417aa472ae95658c90c9dad6818f91d8fb0cbd1fcef2395d167b3ded38477e18c7
DIST zfs-2.3.6.tar.gz.asc 858 BLAKE2B 88e9344ed51d9906011f6f381364aeb8bfe3360b0c12a18ec45c8a8d42725f345e61c0ad63037ace51bdd04276567cd90ba2311c971c6b2f10501ffb0363be84 SHA512 fe1b7977a8ae564fe639ca824a557a1600c3e22df0af3e750464a3c960b9709c289c07e42ef40173e153453c5641c442c660c804ea21370d77d9819c13b655b1

View File

@ -1,4 +1,4 @@
# Copyright 1999-2025 Gentoo Authors
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -31,7 +31,7 @@ else
ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))"
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc"
KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc"
fi
fi

View File

@ -0,0 +1,207 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MODULES_INITRAMFS_IUSE=+initramfs
inherit autotools flag-o-matic linux-mod-r1 multiprocessing
DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
HOMEPAGE="https://github.com/openzfs/zfs"
MODULES_KERNEL_MAX=6.19
MODULES_KERNEL_MIN=4.18
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/openzfs/zfs.git"
inherit git-r3
unset MODULES_KERNEL_MAX
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc
inherit verify-sig
MY_PV=${PV/_rc/-rc}
SRC_URI="https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz"
SRC_URI+=" verify-sig? ( https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz.asc )"
S="${WORKDIR}/zfs-${MY_PV}"
ZFS_KERNEL_COMPAT="${MODULES_KERNEL_MAX}"
# Increments minor eg 5.14 -> 5.15, and still supports override.
ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}"
ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))"
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc"
fi
fi
LICENSE="CDDL MIT debug? ( GPL-2+ )"
SLOT="0/${PVR}"
IUSE="custom-cflags debug +rootfs"
RESTRICT="test"
BDEPEND="
app-alternatives/awk
dev-lang/perl
"
if [[ ${PV} != 9999 ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )"
IUSE+=" +dist-kernel-cap"
RDEPEND="
dist-kernel-cap? ( dist-kernel? (
<virtual/dist-kernel-${ZFS_KERNEL_DEP}
) )
"
fi
# Used to suggest matching USE, but without suggesting to disable
PDEPEND="dist-kernel? ( ~sys-fs/zfs-${PV}[dist-kernel] )"
PATCHES=(
"${FILESDIR}"/${PN}-2.1.11-gentoo.patch
)
pkg_pretend() {
use rootfs || return 0
}
pkg_setup() {
local CONFIG_CHECK="
EFI_PARTITION
ZLIB_DEFLATE
ZLIB_INFLATE
!DEBUG_LOCK_ALLOC
!PAX_KERNEXEC_PLUGIN_METHOD_OR
"
use debug && CONFIG_CHECK+="
DEBUG_INFO
FRAME_POINTER
!DEBUG_INFO_REDUCED
"
use rootfs && CONFIG_CHECK+="
BLK_DEV_INITRD
DEVTMPFS
"
kernel_is -lt 5 && CONFIG_CHECK+=" IOSCHED_NOOP"
if [[ ${PV} != 9999 ]] ; then
local kv_major_max kv_minor_max zcompat
zcompat="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}"
kv_major_max="${zcompat%%.*}"
zcompat="${zcompat#*.}"
kv_minor_max="${zcompat%%.*}"
kernel_is -le "${kv_major_max}" "${kv_minor_max}" || die \
"Linux ${kv_major_max}.${kv_minor_max} is the latest supported version"
fi
linux-mod-r1_pkg_setup
}
src_prepare() {
default
# Run unconditionally (bug #792627)
eautoreconf
if [[ ${PV} != 9999 ]] ; then
# Set module revision number
sed -Ei "s/(Release:.*)1/\1${PR}-gentoo/" META || die
fi
}
src_configure() {
use custom-cflags || strip-flags
filter-ldflags -Wl,*
local myconf=(
--bindir="${EPREFIX}"/bin
--sbindir="${EPREFIX}"/sbin
--with-config=kernel
--with-linux="${KV_DIR}"
--with-linux-obj="${KV_OUT_DIR}"
$(use_enable debug)
# See gentoo.patch
GENTOO_MAKEARGS_EVAL="${MODULES_MAKEARGS[*]@Q}"
TEST_JOBS="$(makeopts_jobs)"
)
econf "${myconf[@]}"
}
src_compile() {
emake "${MODULES_MAKEARGS[@]}"
}
src_install() {
emake "${MODULES_MAKEARGS[@]}" DESTDIR="${ED}" install
modules_post_process
dodoc AUTHORS COPYRIGHT META README.md
}
_old_layout_cleanup() {
# new files are just extra/{spl,zfs}.ko with no subdirs.
local olddir=(
avl/zavl
icp/icp
lua/zlua
nvpair/znvpair
spl/spl
unicode/zunicode
zcommon/zcommon
zfs/zfs
zstd/zzstd
)
# kernel/module/Kconfig contains possible compressed extentions.
local kext kextfiles
for kext in .ko{,.{gz,xz,zst}}; do
kextfiles+=( "${olddir[@]/%/${kext}}" )
done
local oldfile oldpath
for oldfile in "${kextfiles[@]}"; do
oldpath="${EROOT}/lib/modules/${KV_FULL}/extra/${oldfile}"
if [[ -f "${oldpath}" ]]; then
ewarn "Found obsolete zfs module ${oldfile} for current kernel ${KV_FULL}, removing."
rm -rv "${oldpath}" || die
# we do not remove non-empty directories just for safety in case there's something else.
# also it may fail if there are both compressed and uncompressed modules installed.
rmdir -v --ignore-fail-on-non-empty "${oldpath%/*.*}" || die
fi
done
}
pkg_postinst() {
# Check for old module layout before doing anything else.
# only attempt layout cleanup if new .ko location is used.
local newko=( "${EROOT}/lib/modules/${KV_FULL}/extra"/{zfs,spl}.ko* )
# We check first array member, if glob above did not exand, it will be "zfs.ko*" and -f will return false.
# if glob expanded -f will do correct file precense check.
[[ -f ${newko[0]} ]] && _old_layout_cleanup
linux-mod-r1_pkg_postinst
if use x86 || use arm ; then
ewarn "32-bit kernels will likely require increasing vmalloc to"
ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
fi
if has_version sys-boot/grub ; then
ewarn "This version of OpenZFS includes support for new feature flags"
ewarn "that are incompatible with previous versions. GRUB2 support for"
ewarn "/boot with the new feature flags is not yet available."
ewarn "Do *NOT* upgrade root pools to use the new feature flags."
ewarn "Any new pools will be created with the new feature flags by default"
ewarn "and will not be compatible with older versions of OpenZFS. To"
ewarn "create a new pool that is backward compatible wih GRUB2, use "
ewarn
ewarn "zpool create -o compatibility=grub2 ..."
ewarn
ewarn "Refer to /usr/share/zfs/compatibility.d/grub2 for list of features."
fi
}