sys-fs/zfs-kmod: add 2.4.0_rc2

Signed-off-by: Marc Schiffbauer <mschiff@gentoo.org>
This commit is contained in:
Marc Schiffbauer
2025-10-01 21:18:38 +02:00
parent 2ce875a92a
commit 974a60c9b6
2 changed files with 209 additions and 0 deletions

View File

@@ -12,3 +12,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.4.0-rc1.tar.gz 34294259 BLAKE2B 262a510a356c515692d03ce2f5bdb61bb051d04ac79cc7723a2944e9f99f5514e2749752901e202f6bb8edd560e3639b845e790d9b861271265fe04cbe0178ce SHA512 9e8a95d98c311ee6efc8a2aa3f6e97a1573f247bbdbf9f11e0f981f8b768b45337b229d3c17fe7bc40bb67d8f0cc0fc77ab4138c29d3ae3d86eaff54bad84700
DIST zfs-2.4.0-rc1.tar.gz.asc 858 BLAKE2B 5fb794647fe89bc0b4030c273d50a2a8fcefb7e53a088f16fcdfba8d90aa3a011eb6c779e83c9a2bde2c6247a10bdca4245832c89886af8f5a1e7732b8a0fc3a SHA512 0083069492028f188ae015f99939cdde9458e29fee1e3fc848049488ed534fa7f2c557ddb7f83b7155bb29f8b98530c13b64f177fb40a741c3251a68890fa9ce
DIST zfs-2.4.0-rc2.tar.gz 34315284 BLAKE2B 6c72d5e86e93d28fd5204ac4c38175d97b564b671cf71045c94f4b9b19ae36a439000fd55761220a0a17adf9fd9b6df6b367831442c079b0bff1e01a3299baab SHA512 7fa6caecc6818af17bdc104624eb7638a6c41bfca03a5b45ce996e7bbf8bfd1b06a54714ca7cb59ac70b061cb0eb11bc68868f786a502f427775f1bcfe1a5de0
DIST zfs-2.4.0-rc2.tar.gz.asc 858 BLAKE2B 1bdad0ca1fcccae5e74187a88b3352ab8834c15c0933ddedc5562866dc3657ea575db5f788243fe7decc2f58b5470193ae422dec377447e9ffe75c5773378cda SHA512 e0de554bb62b2ee840a3cac2022b91ed83d2572d0ea73d2b5941308e94abf8d2c4d0f50b1bcc309880e0b415963bb6511664fa31601f0290ce9bb9ed79671a65

View File

@@ -0,0 +1,207 @@
# Copyright 1999-2025 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.16
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
}