commit: 2c6701c76d5ce0fc5c9e16853519fe4426b1d89b
Author: Marc Schiffbauer <mschiff <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 26 23:11:06 2026 +0000
Commit: Marc Schiffbauer <mschiff <AT> gentoo <DOT> org>
CommitDate: Thu Feb 26 23:17:12 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c6701c7
sys-fs/zfs: add 2.3.6
Signed-off-by: Marc Schiffbauer <mschiff <AT> gentoo.org>
sys-fs/zfs/Manifest | 4 +
sys-fs/zfs/zfs-2.3.6.ebuild | 313 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 317 insertions(+)
diff --git a/sys-fs/zfs/Manifest b/sys-fs/zfs/Manifest
index a32b4e5f60c2..7f7d2d8aaaf5 100644
--- a/sys-fs/zfs/Manifest
+++ b/sys-fs/zfs/Manifest
@@ -10,5 +10,9 @@ 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
DIST zfs-2.4.0.tar.gz 34476567 BLAKE2B
f98d940925ba74222ad4976af767bc5c40bdd29bbc0c5eca6ba43a6109f35e773260e946ef01a556732caf44f968e89d296c925602e252af1ece9597753f24d5
SHA512
5f4460707cc24c55900a08d106e549ecc9eb42bc7b64e0fb613d85ba2054c3bc834fb10c34822ef14406dfcfc07b38b7ca668a02086eecb0f107d2ffce66a998
DIST zfs-2.4.0.tar.gz.asc 858 BLAKE2B
8f86f94db68e1bb3b14eec4a342c0315f547fd4df965d14662a8432e577fcea531a0a17ccebee050b9e3d5bf89a2758b25934f192f09ba564d0e30d88111e862
SHA512
2b6726db66fec218e9eef39f7c07753d1566894e0559a1d09d0da3e498d9073c1260c0062efbafad5de5eea4ec4b078f7546c530c2aeed91e8b6851fb2af9188
+DIST zfs-2.4.1.tar.gz 34498270 BLAKE2B
dc7eedb989297ae13d42c1f7c3b55b393d47f1706a029c38801381675909069c6c2112ca545ac395cb2e7bcbaf225fa79982e3c6f3adeca0d30828b88da0f58b
SHA512
15ef20ed8fb976dd123e1f5dca8f0f71a754a3be6edf826bf1d744a28cc8400969d33b79be90a4b5bef95dd200caaca942876f4462b7749667a9e4a225d82676
+DIST zfs-2.4.1.tar.gz.asc 858 BLAKE2B
aeeacec46bd3ac439f53eb24aedfd449bc647c1cc1d93c17d0d8be07f0e01490d33586e47d60ab9250915d514b1140f8d8d1958c8c627e0e887f7ab640d58fa3
SHA512
0d8f9c9eba22aacd122066d4a9a64808b74630f15bb511e35fa0f3100f143f6ef39d1d564cf5b257444066eac4796236da7e8c2fc8627f3088ebb31cba1f833a
diff --git a/sys-fs/zfs/zfs-2.3.6.ebuild b/sys-fs/zfs/zfs-2.3.6.ebuild
new file mode 100644
index 000000000000..8895cb72db32
--- /dev/null
+++ b/sys-fs/zfs/zfs-2.3.6.ebuild
@@ -0,0 +1,313 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintainers should consider lurking in the ZFS IRC channels (there's several)
+# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*'
+# stable backport PRs when they're opened and subscribe to them for any
important
+# cherry-picks that may be needed in advance.
+
+DISTUTILS_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1
flag-o-matic linux-info pam systemd udev usr-ldscript
+
+DESCRIPTION="Userland utilities for ZFS Linux kernel module"
+HOMEPAGE="https://github.com/openzfs/zfs"
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/openzfs/zfs.git"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc
+ inherit verify-sig
+
+ MY_P="${P/_rc/-rc}"
+
SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz"
+ SRC_URI+=" verify-sig? (
https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )"
+ S="${WORKDIR}/${MY_P}"
+
+ if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc"
+ fi
+fi
+
+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.
+# see libsoversion_check() below as well
+SLOT="0/6"
+IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python
+rootfs selinux test-suite unwind"
+
+DEPEND="
+ dev-libs/openssl:=
+ net-libs/libtirpc:=
+ sys-apps/util-linux
+ virtual/zlib:=
+ virtual/libudev:=
+ !minimal? ( ${PYTHON_DEPS} )
+ pam? ( sys-libs/pam )
+ python? (
+ $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]'
'python*')
+ )
+ unwind? ( sys-libs/libunwind:= )
+"
+
+BDEPEND="
+ app-alternatives/awk
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ python? (
+ ${DISTUTILS_DEPS}
+ || (
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+if [[ ${PV} != "9999" ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )"
+fi
+
+# awk is used for some scripts, completions, and the Dracut module
+RDEPEND="
+ ${DEPEND}
+ !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= )
+ !prefix? ( virtual/udev )
+ app-alternatives/awk
+ sys-fs/udev-init-scripts
+ dist-kernel? ( virtual/dist-kernel:= )
+ rootfs? (
+ app-alternatives/cpio
+ app-misc/pax-utils
+ )
+ selinux? ( sec-policy/selinux-zfs )
+ test-suite? (
+ app-shells/ksh
+ sys-apps/kmod[tools]
+ sys-apps/util-linux
+ app-alternatives/bc
+ sys-block/parted
+ sys-fs/lsscsi
+ sys-fs/mdadm
+ sys-process/procps
+ )
+"
+
+# PDEPEND in this form is needed to trick portage suggest
+# enabling dist-kernel if only 1 package have it set, without suggesting to
disable
+PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )"
+
+REQUIRED_USE="
+ !minimal? ( ${PYTHON_REQUIRED_USE} )
+ python? ( !minimal )
+ test-suite? ( !minimal )
+"
+
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/2.1.5-dracut-zfs-missing.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; then
+ linux-info_pkg_setup
+
+ if ! linux_config_exists; then
+ ewarn "Cannot check the linux kernel configuration."
+ else
+ if use test-suite; then
+ if linux_chkconfig_present BLK_DEV_LOOP; then
+ eerror "The ZFS test suite requires
loop device support enabled."
+ eerror "Please enable it:"
+ eerror " CONFIG_BLK_DEV_LOOP=y"
+ eerror "in /usr/src/linux/.config or"
+ eerror " Device Drivers --->"
+ eerror " Block devices --->"
+ eerror " [X] Loopback device
support"
+ fi
+ fi
+ fi
+ fi
+}
+
+libsoversion_check() {
+ local bugurl libzfs_sover
+
bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages"
+
+ libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info'
lib/libzfs/Makefile.am \
+ | grep -Eo '[0-9]+:[0-9]+:[0-9]+')"
+ libzfs_sover="${libzfs_sover%%:*}"
+
+ if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then
+ echo
+ eerror "BUG BUG BUG BUG BUG BUG BUG BUG"
+ eerror "ebuild subslot does not match libzfs soversion!"
+ eerror "libzfs soversion: ${libzfs_sover}"
+ eerror "ebuild value: $(ver_cut 2 ${SLOT})"
+ eerror "This is a bug in the ebuild, please use the following
URL to report it"
+ eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot"
+ echo
+ # we want to abort for releases, but just print a warning for
live ebuild
+ # to keep package installable
+ [[ ${PV} == "9999" ]] || die
+ fi
+}
+
+src_prepare() {
+ default
+ libsoversion_check
+
+ # Run unconditionally (bug #792627)
+ eautoreconf
+
+ if [[ ${PV} != "9999" ]]; then
+ # Set revision number
+ sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die
"Could not set Gentoo release"
+ fi
+
+ if use python; then
+ pushd contrib/pyzfs >/dev/null || die
+ distutils-r1_src_prepare
+ popd >/dev/null || die
+ fi
+
+ # Tries to use /etc/conf.d which we reserve for OpenRC
+ sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die
+
+ # prevent errors showing up on zfs-mount stop, #647688
+ # openrc will unmount all filesystems anyway.
+ sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ use minimal || python_setup
+
+ local myconf=(
+ --bindir="${EPREFIX}/bin"
+ --enable-shared
+ --enable-sysvinit
+ --localstatedir="${EPREFIX}/var"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=user
+ --with-dracutdir="${EPREFIX}/usr/lib/dracut"
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ --with-udevdir="$(get_udevdir)"
+ --with-pamconfigsdir="${EPREFIX}/unwanted_files"
+ --with-pammoduledir="$(getpam_mod_dir)"
+ --with-systemdunitdir="$(systemd_get_systemunitdir)"
+ --with-systemdpresetdir="$(systemd_get_systempresetdir)"
+ --with-vendor=gentoo
+ # Building zfs-mount-generator.c on musl breaks as strndupa
+ # isn't available. But systemd doesn't support musl anyway, so
+ # just disable building it.
+ # UPDATE: it has been fixed since,
+ #
https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a
+ # but we still leave it as this for now.
+ $(use_enable !elibc_musl systemd)
+ $(use_enable debug)
+ $(use_enable nls)
+ $(use_enable pam)
+ $(use_enable python pyzfs)
+ $(use_with unwind libunwind)
+ --disable-static
+ $(usex minimal --without-python --with-python="${EPYTHON}")
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ default
+ if use python; then
+ pushd contrib/pyzfs >/dev/null || die
+ distutils-r1_src_compile
+ popd >/dev/null || die
+ fi
+}
+
+src_install() {
+ default
+
+ gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool
+
+ use pam && { rm -rv "${ED}/unwanted_files" || die ; }
+
+ use test-suite || { rm -r
"${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; }
+
+ find "${ED}" -name '*.la' -delete || die
+
+ dobashcomp contrib/bash_completion.d/zfs
+ bashcomp_alias zfs zpool
+
+ # strip executable bit from conf.d file
+ fperms 0644 /etc/conf.d/zfs
+
+ if use python; then
+ pushd contrib/pyzfs >/dev/null || die
+ distutils-r1_src_install
+ popd >/dev/null || die
+ fi
+
+ # enforce best available python implementation
+ use minimal || python_fix_shebang "${ED}/bin"
+}
+
+pkg_postinst() {
+ udev_reload
+
+ # 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 an initramfs to boot"
+ elog "The following packages provide one and are tested
on a regular basis:"
+ elog " sys-kernel/dracut ( preferred, module
maintained by zfs developers )"
+ elog " sys-kernel/genkernel"
+ fi
+ fi
+
+ if systemd_is_booted || has_version sys-apps/systemd; then
+ einfo "Please refer to
$(systemd_get_systempresetdir)/50-zfs.preset"
+ einfo "for default zfs systemd service configuration"
+ else
+ [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \
+ einfo "You should add zfs-import to the boot runlevel."
+ [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \
+ einfo "You should add zfs-load-key to the boot
runlevel."
+ [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \
+ einfo "You should add zfs-mount to the boot runlevel."
+ [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \
+ einfo "You should add zfs-share to the default
runlevel."
+ [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \
+ einfo "You should add zfs-zed to the default runlevel."
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}