mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-12 07:26:58 +02:00
portage-stable: Add zfs & zfs-kmod ebuilds
From Gentoo commit df182f2891606e757be3e8406a69f4a0e53ee324. Also import dist-kernel-utils.eclass. Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This commit is contained in:
parent
a4da571874
commit
8e1b1517f9
173
sdk_container/src/third_party/portage-stable/eclass/dist-kernel-utils.eclass
vendored
Normal file
173
sdk_container/src/third_party/portage-stable/eclass/dist-kernel-utils.eclass
vendored
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
# Copyright 2020-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# @ECLASS: dist-kernel-utils.eclass
|
||||||
|
# @MAINTAINER:
|
||||||
|
# Distribution Kernel Project <dist-kernel@gentoo.org>
|
||||||
|
# @AUTHOR:
|
||||||
|
# Michał Górny <mgorny@gentoo.org>
|
||||||
|
# @SUPPORTED_EAPIS: 7 8
|
||||||
|
# @BLURB: Utility functions related to Distribution Kernels
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# This eclass provides various utility functions related to Distribution
|
||||||
|
# Kernels.
|
||||||
|
|
||||||
|
# @ECLASS_VARIABLE: KERNEL_EFI_ZBOOT
|
||||||
|
# @DEFAULT_UNSET
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# If set to a non-null value, it is assumed the kernel was built with
|
||||||
|
# CONFIG_EFI_ZBOOT enabled. This effects the name of the kernel image on
|
||||||
|
# arm64 and riscv. Mainly useful for sys-kernel/gentoo-kernel-bin.
|
||||||
|
|
||||||
|
if [[ ! ${_DIST_KERNEL_UTILS} ]]; then
|
||||||
|
|
||||||
|
case ${EAPI} in
|
||||||
|
7|8) ;;
|
||||||
|
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
inherit toolchain-funcs
|
||||||
|
|
||||||
|
# @FUNCTION: dist-kernel_get_image_path
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Get relative kernel image path specific to the current ${ARCH}.
|
||||||
|
dist-kernel_get_image_path() {
|
||||||
|
case ${ARCH} in
|
||||||
|
amd64|x86)
|
||||||
|
echo arch/x86/boot/bzImage
|
||||||
|
;;
|
||||||
|
arm64|riscv)
|
||||||
|
if [[ ${KERNEL_EFI_ZBOOT} ]]; then
|
||||||
|
echo arch/${ARCH}/boot/vmlinuz.efi
|
||||||
|
else
|
||||||
|
echo arch/${ARCH}/boot/Image.gz
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
loong)
|
||||||
|
if [[ ${KERNEL_EFI_ZBOOT} ]]; then
|
||||||
|
echo arch/loongarch/boot/vmlinuz.efi
|
||||||
|
else
|
||||||
|
echo arch/loongarch/boot/vmlinux.elf
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
echo arch/arm/boot/zImage
|
||||||
|
;;
|
||||||
|
hppa|ppc|ppc64|sparc)
|
||||||
|
# https://www.kernel.org/doc/html/latest/powerpc/bootwrapper.html
|
||||||
|
# ./ is required because of ${image_path%/*}
|
||||||
|
# substitutions in the code
|
||||||
|
echo ./vmlinux
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
die "${FUNCNAME}: unsupported ARCH=${ARCH}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: dist-kernel_install_kernel
|
||||||
|
# @USAGE: <version> <image> <system.map>
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Install kernel using installkernel tool. <version> specifies
|
||||||
|
# the kernel version, <image> full path to the image, <system.map>
|
||||||
|
# full path to System.map.
|
||||||
|
dist-kernel_install_kernel() {
|
||||||
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
|
[[ ${#} -eq 3 ]] || die "${FUNCNAME}: invalid arguments"
|
||||||
|
local version=${1}
|
||||||
|
local image=${2}
|
||||||
|
local map=${3}
|
||||||
|
|
||||||
|
ebegin "Installing the kernel via installkernel"
|
||||||
|
# note: .config is taken relatively to System.map;
|
||||||
|
# initrd relatively to bzImage
|
||||||
|
ARCH=$(tc-arch-kernel) installkernel "${version}" "${image}" "${map}"
|
||||||
|
eend ${?} || die -n "Installing the kernel failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: dist-kernel_reinstall_initramfs
|
||||||
|
# @USAGE: <kv-dir> <kv-full>
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Rebuild and install initramfs for the specified dist-kernel.
|
||||||
|
# <kv-dir> is the kernel source directory (${KV_DIR} from linux-info),
|
||||||
|
# while <kv-full> is the full kernel version (${KV_FULL}).
|
||||||
|
# The function will determine whether <kernel-dir> is actually
|
||||||
|
# a dist-kernel, and whether initramfs was used.
|
||||||
|
#
|
||||||
|
# This function is to be used in pkg_postinst() of ebuilds installing
|
||||||
|
# kernel modules that are included in the initramfs.
|
||||||
|
dist-kernel_reinstall_initramfs() {
|
||||||
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
|
[[ ${#} -eq 2 ]] || die "${FUNCNAME}: invalid arguments"
|
||||||
|
local kernel_dir=${1}
|
||||||
|
local ver=${2}
|
||||||
|
|
||||||
|
local image_path=${kernel_dir}/$(dist-kernel_get_image_path)
|
||||||
|
if [[ ! -f ${image_path} ]]; then
|
||||||
|
eerror "Kernel install missing, image not found:"
|
||||||
|
eerror " ${image_path}"
|
||||||
|
eerror "Initramfs will not be updated. Please reinstall your kernel."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
dist-kernel_install_kernel "${ver}" "${image_path}" \
|
||||||
|
"${kernel_dir}/System.map"
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: dist-kernel_PV_to_KV
|
||||||
|
# @USAGE: <pv>
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Convert a Gentoo-style ebuild version to kernel "x.y.z[-rcN]" version.
|
||||||
|
dist-kernel_PV_to_KV() {
|
||||||
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
|
[[ ${#} -ne 1 ]] && die "${FUNCNAME}: invalid arguments"
|
||||||
|
local pv=${1}
|
||||||
|
|
||||||
|
local kv=${pv%%_*}
|
||||||
|
[[ -z $(ver_cut 3- "${kv}") ]] && kv+=".0"
|
||||||
|
[[ ${pv} == *_* ]] && kv+=-${pv#*_}
|
||||||
|
echo "${kv}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: dist-kernel_compressed_module_cleanup
|
||||||
|
# @USAGE: <path>
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Traverse path for duplicate (un)compressed modules and remove all
|
||||||
|
# but the newest variant.
|
||||||
|
dist-kernel_compressed_module_cleanup() {
|
||||||
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
|
[[ ${#} -ne 1 ]] && die "${FUNCNAME}: invalid arguments"
|
||||||
|
local path=${1}
|
||||||
|
local basename f
|
||||||
|
|
||||||
|
while read -r basename; do
|
||||||
|
local prev=
|
||||||
|
for f in "${path}/${basename}"{,.gz,.xz,.zst}; do
|
||||||
|
if [[ ! -e ${f} ]]; then
|
||||||
|
continue
|
||||||
|
elif [[ -z ${prev} ]]; then
|
||||||
|
prev=${f}
|
||||||
|
elif [[ ${f} -nt ${prev} ]]; then
|
||||||
|
rm -v "${prev}" || die
|
||||||
|
prev=${f}
|
||||||
|
else
|
||||||
|
rm -v "${f}" || die
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done < <(
|
||||||
|
cd "${path}" &&
|
||||||
|
find -type f \
|
||||||
|
\( -name '*.ko' \
|
||||||
|
-o -name '*.ko.gz' \
|
||||||
|
-o -name '*.ko.xz' \
|
||||||
|
-o -name '*.ko.zst' \
|
||||||
|
\) | sed -e 's:[.]\(gz\|xz\|zst\)$::' | sort | uniq -d || die
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
_DIST_KERNEL_UTILS=1
|
||||||
|
fi
|
18
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest
vendored
Normal file
18
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
AUX zfs-kmod-2.1.11-gentoo.patch 1076 BLAKE2B d2b0fe2ff1ac31c2a2a184141f107010dae61d2de465462b8177db1a07918be2bd2fc4d4570ad8758da87ef14cf3878db062fe9eb5b53fa3156e7db5c06073d4 SHA512 9e103aae75036e52f89e79c4d4ed3cffe670ef423cda7c2f936533b9329e994c7a02d241289f6565e9d086e5b0bdd6865ab3677c3ad84eaadf3abe310977b6a8
|
||||||
|
AUX zfs-kmod-2.2.2-arm64-neon.patch 3145 BLAKE2B 6125fd18649341e44768a84a508cf6d59db72356ebf513fbfb56b50e4fcc9052cee0e315d448e22067b5458336efa3897557dc2cc4ed8b6ef4dda75e0db3e2e0 SHA512 a238df628397fc72e604ec163401865f8348f121bbffac119f5b094ce06318f89fbfb30a1e424ac4835348df67e2512ee05ae5007ee765dc3876d3ba30cdd99d
|
||||||
|
AUX zfs-kmod-2.2.2-autotrim.patch 1186 BLAKE2B 4dcc5eead0b86fa365ed2c228ac1c0b01f89cc36210959c55d5bf06d1b4e739d6e8a0dee3910ae0c08d7859b3c05cf483aec29d5184d3725cfc66419a943c336 SHA512 cf0d10b00ea045184966424474307a00ff95a96a4c0ea8e7e1037b1b101c2e9d6e2a4b52851427031bcba7ef7ff0d71b90d074f33385166d447896b41771396e
|
||||||
|
DIST zfs-2.1.14.tar.gz 35167471 BLAKE2B a7b22eaf05e4fbf416ebe4d7b884c515942fc9375c1dd322cefa00c19c550b9318a4192d6a909d49d58523c8f1a6eaf00189dd58e6543fae17cf8cc35042f469 SHA512 4a65c8b7d5576fa2dcc14e7ccaa93191c1d3791479cf89bd02c2bd04434ff5e93709b328796d4f9ba93da19f12772e359df373f40919350a3e1e4c52758b47c8
|
||||||
|
DIST zfs-2.1.14.tar.gz.asc 836 BLAKE2B f01bc58bf6c3d367c494ed4ea9f3fb1141f3aafdbf4f913b9e0d60d31557076d5ae0e25ca93b013f5fd85e21ba5ae9f61e1a03af54bb0c743869c0ce3d5519df SHA512 be0f386cce952b4047dc2448e356078668e8d4392802dd3bb1a426741f15f4d9fb689cd1cb09972bdbc9fe2e4e782ec4b4754fe811c5657bc1f5308bd38e3926
|
||||||
|
DIST zfs-2.1.15.tar.gz 35209038 BLAKE2B 61f9e14c54d43d1c51269917bb3ffde0530166126ea0467103ff1171dffc537315fd21c270d12f73d677e121b8094af39dd0a1fe3f80986bb42dc16d627dff52 SHA512 24096f2a6ecb3cc51f3d2f11cc69ad134d6fc33667007277c50cf798be2b19b6ddfa9be6923ca53d8b09f0bebae14c44d74811ec776e5aaf4ea0e810844c1f3d
|
||||||
|
DIST zfs-2.1.15.tar.gz.asc 836 BLAKE2B 897c05a8870cd0418493b42fe854ef5b28f9a31513ac262a25631089defa59190808b51bd31e43412b01171bcac0dff0608d417dfdacfeee0b0f067e0627d48f SHA512 a6c5a9d214070a220716075455eb1cb85a53fb20b5fe4319f112cde0653a25f87b66d0f0bcf0ca641e3ac38239759cb9df6ed7f4700056a2732cc8c1ccd9ce05
|
||||||
|
DIST zfs-2.2.2.tar.gz 33816541 BLAKE2B f0619ae42d898d18077096217d0a9ddd7c7378424707aa51d3645661b2889a1459bc4a5e9fe42b6860b2d26e4600da35765b0e741725dafacc2ead2370cad866 SHA512 bba252cbf7986f2cce154dd18a34aa478cf98f70106337188dc894de2446d60a58fa643706927757d1787506b44d4ff404897a2d0e16aacb0a7bf27765703332
|
||||||
|
DIST zfs-2.2.2.tar.gz.asc 836 BLAKE2B bdc86492b2bf45d329e34e89ea7796f5cbf518d32ab114c909321b1d0d8040b9ce4e25b3b85fcbc5ea62ee10a2d716b5b27e37c2c005b307c0b593815c49d625 SHA512 110be1aa90f4749106717165a3cb5116379e2d170146a2b3d2601f04212450da9327e028d6e1e5de7f8a46c6bb7a15e2bcdd09e3e760590fbc695f9562f1440b
|
||||||
|
DIST zfs-2.2.3.tar.gz 33854765 BLAKE2B f83439aa929609191a048dd326b2a15e0f57c72d2901cbfb205b81a29aa42dab49b42eb61647ca3eaed17518b8c907e81343364bfecf83ed441271648f8efd4b SHA512 e6c3df531a33f4bd198429e61b7630f1e965a03fd60d1b847bdf0d55c6d2af3abc38b5e8a63aa9ef9f969cc7eca36cb24a7641f6fb8c41ef2fa024d76cd28f3d
|
||||||
|
DIST zfs-2.2.3.tar.gz.asc 836 BLAKE2B 86e1adc393d1f4643a6fd8c188b555e9dc0fdf7e25690f37ff0a04ff8826eb4fe3c125b54f0c5b9ab33f1daff43c4b44373ee9a4df506f6714f98d77782e6c3c SHA512 fe23ddb9bde78416776411d66a56aa662fa051c8544b4be01ba238b8c1a85ccde1c55329f228fe8ab2681b54a4e4cb08d4e927c597c117242f0b536a40921dc9
|
||||||
|
EBUILD zfs-kmod-2.1.14.ebuild 4601 BLAKE2B 451f240a8bfda7164ee48ae37bb410b8c3e06ca7184126da122258e7f6f8da62d23c9e6b0481e310735d92e460fbe5617a9f01da04cdb0ae801039c93cb12cd7 SHA512 7240287b57eaac31f6d0c7d4994c6a4de44a41ac9470aeb4c95e33ddb9557d7c70fad24c037f32ae026b4b7bb745ec5f4f496a802457dbdb95a8f1ec7f527c49
|
||||||
|
EBUILD zfs-kmod-2.1.15.ebuild 4604 BLAKE2B 44f71a65eacfb6091959ef6e75a71604b861e6da0ca6442cafd24f22166301e0ee6be02e905958e6d5ed854debe0bfea6d80260a14fd37024bb277aaeafa7896 SHA512 eab99b25b5756c90bd21f9f5e5a6c18424a8b647e005c3df465562383c8630a19747ce96c6b735e6a090c73c8c05b541427df12e8e8d2f6ebc1bf2f0c02f1d5e
|
||||||
|
EBUILD zfs-kmod-2.2.2-r1.ebuild 6025 BLAKE2B c0f21b6c1a70b1f664700ec4a85be54d8ef15f2dec828b977f6d52ee9ed2f6468454d6ac161f70e97d49fdcc0b4799ffc56cae137cac8be65a2e7c1a1b42626a SHA512 afc32eef22464550c1097ce60df52c45288ca90509cab45809c763eb5903cdc510dfcc3c53b4d8ff4711cc3e611bc3125426bb692d5f9357a31329e973db8c2f
|
||||||
|
EBUILD zfs-kmod-2.2.2.ebuild 5980 BLAKE2B 7db333fae56ed3306ef21b8adb9172ef056367c339d6bf57e43ab15d6f48888a84c31c317dfc46b757498aacf7f83c2b47436658cbcb6515b78b003c7f806611 SHA512 3da30083362ba3bb9b52d0b6cf3b5874ecacd0c6f208cb86c3b98997905a00d66cd59b8593c9732ff94aafad57c097cad65b3f78d26a803d985758a79d2e9d86
|
||||||
|
EBUILD zfs-kmod-2.2.3.ebuild 5939 BLAKE2B 7e02067dd058fb444ce3f1b3aafd5586dde94fc859bbe4845d6183d544445972fa8297e11b5bab0fc3a48772a3cddee3bffc8908fd88e5a8e79969c0f5dd5c64 SHA512 7657fe374b3feaf3681fdaa36af6b29a227a1253ccc4bb4a609b0687f6bcecdf06b46c88c387bdd73e1be9bd81035234a8e4631d19aa250b2fe0d354b9ea2407
|
||||||
|
EBUILD zfs-kmod-9999.ebuild 5939 BLAKE2B 7e02067dd058fb444ce3f1b3aafd5586dde94fc859bbe4845d6183d544445972fa8297e11b5bab0fc3a48772a3cddee3bffc8908fd88e5a8e79969c0f5dd5c64 SHA512 7657fe374b3feaf3681fdaa36af6b29a227a1253ccc4bb4a609b0687f6bcecdf06b46c88c387bdd73e1be9bd81035234a8e4631d19aa250b2fe0d354b9ea2407
|
||||||
|
MISC metadata.xml 664 BLAKE2B 50e33d5791fd756ae4566052ecd6d8b1b395f8390b4cbc10c3b32bfc12f0a414f4080bf4102091f0920369f7999f2f94022fd526703ee8e73dc948c1f9d28432 SHA512 dca8e09500fe0e20f11b10df22a61ca36c99b6b3a08c465ea011d921b25f5891be3abaa5e6dbda1a52dbbfad69d1c8bf9fc69f71b3ef73cac428015641aa52d2
|
24
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.1.11-gentoo.patch
vendored
Normal file
24
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.1.11-gentoo.patch
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Hack to pass the full linux-mod-r1 toolchain to make during ./configure.
|
||||||
|
Not needed at build time given can pass it normally then.
|
||||||
|
|
||||||
|
Eclass has workarounds, compiler/version matching, and its own set of
|
||||||
|
user variables which creates disparity between ebuilds if not used.
|
||||||
|
|
||||||
|
For the (normal) alternative: KERNEL_{CC,LD} alone is insufficient,
|
||||||
|
but combining with KERNEL_LLVM=1 when CC_IS_CLANG will allow it
|
||||||
|
to work for *most* people (will likely still need KERNEL_LD from
|
||||||
|
linux-mod-r1, or ThinLTO kernels may fail with sandbox violations).
|
||||||
|
|
||||||
|
Note KERNEL_* also cause failure if they contain spaces.
|
||||||
|
|
||||||
|
https://bugs.gentoo.org/865157
|
||||||
|
--- a/config/kernel.m4
|
||||||
|
+++ b/config/kernel.m4
|
||||||
|
@@ -646,6 +646,5 @@
|
||||||
|
AC_TRY_COMMAND([
|
||||||
|
KBUILD_MODPOST_NOFINAL="$5" KBUILD_MODPOST_WARN="$6"
|
||||||
|
- make modules -k -j$TEST_JOBS ${KERNEL_CC:+CC=$KERNEL_CC}
|
||||||
|
- ${KERNEL_LD:+LD=$KERNEL_LD} ${KERNEL_LLVM:+LLVM=$KERNEL_LLVM}
|
||||||
|
+ make modules -k -j$TEST_JOBS '${GENTOO_MAKEARGS_EVAL}'
|
||||||
|
CONFIG_MODULES=y CFLAGS_MODULE=-DCONFIG_MODULES
|
||||||
|
-C $LINUX_OBJ $ARCH_UM M=$PWD/$1 >$1/build.log 2>&1])
|
100
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch
vendored
Normal file
100
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-arm64-neon.patch
vendored
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
https://bugs.gentoo.org/904657
|
||||||
|
https://github.com/openzfs/zfs/issues/14555
|
||||||
|
https://github.com/openzfs/zfs/commit/976bf9b6a61919638d42ed79cd207132785d128a
|
||||||
|
|
||||||
|
From 976bf9b6a61919638d42ed79cd207132785d128a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shengqi Chen <harry-chen@outlook.com>
|
||||||
|
Date: Tue, 9 Jan 2024 08:05:24 +0800
|
||||||
|
Subject: [PATCH] Linux 6.2 compat: add check for kernel_neon_* availability
|
||||||
|
|
||||||
|
This patch adds check for `kernel_neon_*` symbols on arm and arm64
|
||||||
|
platforms to address the following issues:
|
||||||
|
|
||||||
|
1. Linux 6.2+ on arm64 has exported them with `EXPORT_SYMBOL_GPL`, so
|
||||||
|
license compatibility must be checked before use.
|
||||||
|
2. On both arm and arm64, the definitions of these symbols are guarded
|
||||||
|
by `CONFIG_KERNEL_MODE_NEON`, but their declarations are still
|
||||||
|
present. Checking in configuration phase only leads to MODPOST
|
||||||
|
errors (undefined references).
|
||||||
|
|
||||||
|
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
||||||
|
Signed-off-by: Shengqi Chen <harry-chen@outlook.com>
|
||||||
|
Closes #15711
|
||||||
|
Closes #14555
|
||||||
|
Closes: #15401
|
||||||
|
--- a/config/kernel-fpu.m4
|
||||||
|
+++ b/config/kernel-fpu.m4
|
||||||
|
@@ -79,6 +79,12 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_FPU], [
|
||||||
|
__kernel_fpu_end();
|
||||||
|
], [], [ZFS_META_LICENSE])
|
||||||
|
|
||||||
|
+ ZFS_LINUX_TEST_SRC([kernel_neon], [
|
||||||
|
+ #include <asm/neon.h>
|
||||||
|
+ ], [
|
||||||
|
+ kernel_neon_begin();
|
||||||
|
+ kernel_neon_end();
|
||||||
|
+ ], [], [ZFS_META_LICENSE])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_FPU], [
|
||||||
|
@@ -105,9 +111,20 @@ AC_DEFUN([ZFS_AC_KERNEL_FPU], [
|
||||||
|
AC_DEFINE(KERNEL_EXPORTS_X86_FPU, 1,
|
||||||
|
[kernel exports FPU functions])
|
||||||
|
],[
|
||||||
|
- AC_MSG_RESULT(internal)
|
||||||
|
- AC_DEFINE(HAVE_KERNEL_FPU_INTERNAL, 1,
|
||||||
|
- [kernel fpu internal])
|
||||||
|
+ dnl #
|
||||||
|
+ dnl # ARM neon symbols (only on arm and arm64)
|
||||||
|
+ dnl # could be GPL-only on arm64 after Linux 6.2
|
||||||
|
+ dnl #
|
||||||
|
+ ZFS_LINUX_TEST_RESULT([kernel_neon_license],[
|
||||||
|
+ AC_MSG_RESULT(kernel_neon_*)
|
||||||
|
+ AC_DEFINE(HAVE_KERNEL_NEON, 1,
|
||||||
|
+ [kernel has kernel_neon_* functions])
|
||||||
|
+ ],[
|
||||||
|
+ # catch-all
|
||||||
|
+ AC_MSG_RESULT(internal)
|
||||||
|
+ AC_DEFINE(HAVE_KERNEL_FPU_INTERNAL, 1,
|
||||||
|
+ [kernel fpu internal])
|
||||||
|
+ ])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
--- a/include/os/linux/kernel/linux/simd_aarch64.h
|
||||||
|
+++ b/include/os/linux/kernel/linux/simd_aarch64.h
|
||||||
|
@@ -71,9 +71,15 @@
|
||||||
|
#define ID_AA64PFR0_EL1 sys_reg(3, 0, 0, 1, 0)
|
||||||
|
#define ID_AA64ISAR0_EL1 sys_reg(3, 0, 0, 6, 0)
|
||||||
|
|
||||||
|
+#if (defined(HAVE_KERNEL_NEON) && defined(CONFIG_KERNEL_MODE_NEON))
|
||||||
|
#define kfpu_allowed() 1
|
||||||
|
#define kfpu_begin() kernel_neon_begin()
|
||||||
|
#define kfpu_end() kernel_neon_end()
|
||||||
|
+#else
|
||||||
|
+#define kfpu_allowed() 0
|
||||||
|
+#define kfpu_begin() do {} while (0)
|
||||||
|
+#define kfpu_end() do {} while (0)
|
||||||
|
+#endif
|
||||||
|
#define kfpu_init() (0)
|
||||||
|
#define kfpu_fini() do {} while (0)
|
||||||
|
|
||||||
|
--- a/include/os/linux/kernel/linux/simd_arm.h
|
||||||
|
+++ b/include/os/linux/kernel/linux/simd_arm.h
|
||||||
|
@@ -53,9 +53,15 @@
|
||||||
|
#include <asm/elf.h>
|
||||||
|
#include <asm/hwcap.h>
|
||||||
|
|
||||||
|
+#if (defined(HAVE_KERNEL_NEON) && defined(CONFIG_KERNEL_MODE_NEON))
|
||||||
|
#define kfpu_allowed() 1
|
||||||
|
#define kfpu_begin() kernel_neon_begin()
|
||||||
|
#define kfpu_end() kernel_neon_end()
|
||||||
|
+#else
|
||||||
|
+#define kfpu_allowed() 0
|
||||||
|
+#define kfpu_begin() do {} while (0)
|
||||||
|
+#define kfpu_end() do {} while (0)
|
||||||
|
+#endif
|
||||||
|
#define kfpu_init() (0)
|
||||||
|
#define kfpu_fini() do {} while (0)
|
||||||
|
|
||||||
|
|
31
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-autotrim.patch
vendored
Normal file
31
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.2.2-autotrim.patch
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
https://bugs.gentoo.org/923745
|
||||||
|
https://github.com/openzfs/zfs/issues/15453
|
||||||
|
https://github.com/openzfs/zfs/pull/15781
|
||||||
|
https://github.com/openzfs/zfs/pull/15789
|
||||||
|
|
||||||
|
From a0aa7a2ee3b56d7b6d69c2081034ec8293a6d605 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kevin Jin <33590050+jxdking@users.noreply.github.com>
|
||||||
|
Date: Wed, 17 Jan 2024 12:03:58 -0500
|
||||||
|
Subject: [PATCH] Autotrim High Load Average Fix
|
||||||
|
|
||||||
|
Switch from cv_wait() to cv_wait_idle() in vdev_autotrim_wait_kick(),
|
||||||
|
which should mitigate the high load average while waiting.
|
||||||
|
|
||||||
|
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
|
||||||
|
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
||||||
|
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
|
||||||
|
Signed-off-by: jxdking <lostking2008@hotmail.com>
|
||||||
|
Closes #15781
|
||||||
|
--- a/module/zfs/vdev_trim.c
|
||||||
|
+++ b/module/zfs/vdev_trim.c
|
||||||
|
@@ -194,7 +194,8 @@ vdev_autotrim_wait_kick(vdev_t *vd, int num_of_kick)
|
||||||
|
for (int i = 0; i < num_of_kick; i++) {
|
||||||
|
if (vd->vdev_autotrim_exit_wanted)
|
||||||
|
break;
|
||||||
|
- cv_wait(&vd->vdev_autotrim_kick_cv, &vd->vdev_autotrim_lock);
|
||||||
|
+ cv_wait_idle(&vd->vdev_autotrim_kick_cv,
|
||||||
|
+ &vd->vdev_autotrim_lock);
|
||||||
|
}
|
||||||
|
boolean_t exit_wanted = vd->vdev_autotrim_exit_wanted;
|
||||||
|
mutex_exit(&vd->vdev_autotrim_lock);
|
||||||
|
|
17
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/metadata.xml
vendored
Normal file
17
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/metadata.xml
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>sam@gentoo.org</email>
|
||||||
|
<name>Sam James</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="dist-kernel-cap">Prevents upgrading to an unsupported kernel version when combined with USE=dist-kernel</flag>
|
||||||
|
<flag name="rootfs">Pull dependencies and check kernel options required for root-on-zfs</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<bugs-to>https://github.com/openzfs/zfs/issues</bugs-to>
|
||||||
|
<doc>https://openzfs.github.io/openzfs-docs</doc>
|
||||||
|
<remote-id type="github">openzfs/zfs</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
177
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.14.ebuild
vendored
Normal file
177
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.14.ebuild
vendored
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools dist-kernel-utils 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.5
|
||||||
|
MODULES_KERNEL_MIN=3.10
|
||||||
|
|
||||||
|
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-${PV%_rc?}"
|
||||||
|
|
||||||
|
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 ppc64 ~riscv ~sparc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="CDDL MIT debug? ( GPL-2+ )"
|
||||||
|
SLOT="0/${PVR}"
|
||||||
|
IUSE="custom-cflags debug +rootfs"
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
dev-lang/perl
|
||||||
|
app-alternatives/awk
|
||||||
|
"
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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() {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
linux-mod-r1_pkg_postinst
|
||||||
|
|
||||||
|
if [[ -z ${ROOT} ]] && use dist-kernel ; then
|
||||||
|
dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
177
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.15.ebuild
vendored
Normal file
177
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.15.ebuild
vendored
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools dist-kernel-utils 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.7
|
||||||
|
MODULES_KERNEL_MIN=3.10
|
||||||
|
|
||||||
|
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-${PV%_rc?}"
|
||||||
|
|
||||||
|
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 ~ppc64 ~riscv ~sparc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="CDDL MIT debug? ( GPL-2+ )"
|
||||||
|
SLOT="0/${PVR}"
|
||||||
|
IUSE="custom-cflags debug +rootfs"
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
BDEPEND="
|
||||||
|
dev-lang/perl
|
||||||
|
app-alternatives/awk
|
||||||
|
"
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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() {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
linux-mod-r1_pkg_postinst
|
||||||
|
|
||||||
|
if [[ -z ${ROOT} ]] && use dist-kernel ; then
|
||||||
|
dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
219
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.2-r1.ebuild
vendored
Normal file
219
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.2-r1.ebuild
vendored
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools dist-kernel-utils 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.6
|
||||||
|
MODULES_KERNEL_MIN=3.10
|
||||||
|
|
||||||
|
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
|
||||||
|
"${FILESDIR}"/${PN}-2.2.2-arm64-neon.patch
|
||||||
|
"${FILESDIR}"/${PN}-2.2.2-autotrim.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() {
|
||||||
|
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 [[ -z ${ROOT} ]] && use dist-kernel ; then
|
||||||
|
dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
218
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild
vendored
Normal file
218
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.2.ebuild
vendored
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools dist-kernel-utils 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.6
|
||||||
|
MODULES_KERNEL_MIN=3.10
|
||||||
|
|
||||||
|
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
|
||||||
|
"${FILESDIR}"/${PN}-2.2.2-arm64-neon.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() {
|
||||||
|
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 [[ -z ${ROOT} ]] && use dist-kernel ; then
|
||||||
|
dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
217
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.3.ebuild
vendored
Normal file
217
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.2.3.ebuild
vendored
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools dist-kernel-utils 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.7
|
||||||
|
MODULES_KERNEL_MIN=3.10
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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() {
|
||||||
|
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 [[ -z ${ROOT} ]] && use dist-kernel ; then
|
||||||
|
dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
217
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild
vendored
Normal file
217
sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild
vendored
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools dist-kernel-utils 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.7
|
||||||
|
MODULES_KERNEL_MIN=3.10
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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() {
|
||||||
|
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 [[ -z ${ROOT} ]] && use dist-kernel ; then
|
||||||
|
dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
18
sdk_container/src/third_party/portage-stable/sys-fs/zfs/Manifest
vendored
Normal file
18
sdk_container/src/third_party/portage-stable/sys-fs/zfs/Manifest
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
AUX 2.1.5-dracut-zfs-missing.patch 309 BLAKE2B e66e700757aa6498b71d714c13e29e671455c77b1b319c7e951b10edc7179f37149b093c5b24fa17b487b9025112bcf31dffb441bbdde7943d90d16443140384 SHA512 0de374270a4814a937e5d97ec4261c5f77ef44fb8f3afc74c4b802d140e4595362b288ff91b8a5c4e9754871969d1f6af05eafa9c91e38c8b913c26ba78b1676
|
||||||
|
AUX 2.1.5-r2-dracut-non-root.patch 1823 BLAKE2B b6954c1648742cb19b1cea5709bdba78477731232bfd6a180f2b2aa179ba2e10ac968af6658fc9fd9a7a03127098c7e4401f3ad803e603d4e114d995b370da3d SHA512 33b3244de91f3d51ef2c2eff2ea4515890b7fa9b39a077b4034f770772077e75e6c5db187c76aa19dd2fb60dac91de35d70fbd84be3704bb950bbf8d4656c29a
|
||||||
|
AUX 2.2.2-no-USER_NS.patch 1099 BLAKE2B a2810552a28e4ef3f90d860903a4896774512fc13826921ec2ae0ac1f93ed9577fc6b80fa71d630be8358db5b63aa667afc5cc18d3643fe0b2f95f3b68c23767 SHA512 c9301ed3e00fac7e094f10e30da58d50cfefb0ce3122ac5dc9a486ddaf5c9b7434cb60ba625fc3428cf58f1e0fd4c7ba1aae9e419710fcd50db3692209201db5
|
||||||
|
AUX 2.2.3-musl.patch 1965 BLAKE2B ce061e6975fb462d68e5724e398dd774fbf8b1ea433098d40e6f060bce785518e48b71f5697acc3b52b6f8e24182d1576e7fdee53cc2146882dc5b1285b2bf81 SHA512 a314f7712346897f63efe24d4435494b6bc1fb01f1129379f2ffea179546c5e4058cf0402b2aab3c403679fa803659d5a0a91b101e519362dc22a20705c0d5b6
|
||||||
|
DIST zfs-2.1.14.tar.gz 35167471 BLAKE2B a7b22eaf05e4fbf416ebe4d7b884c515942fc9375c1dd322cefa00c19c550b9318a4192d6a909d49d58523c8f1a6eaf00189dd58e6543fae17cf8cc35042f469 SHA512 4a65c8b7d5576fa2dcc14e7ccaa93191c1d3791479cf89bd02c2bd04434ff5e93709b328796d4f9ba93da19f12772e359df373f40919350a3e1e4c52758b47c8
|
||||||
|
DIST zfs-2.1.14.tar.gz.asc 836 BLAKE2B f01bc58bf6c3d367c494ed4ea9f3fb1141f3aafdbf4f913b9e0d60d31557076d5ae0e25ca93b013f5fd85e21ba5ae9f61e1a03af54bb0c743869c0ce3d5519df SHA512 be0f386cce952b4047dc2448e356078668e8d4392802dd3bb1a426741f15f4d9fb689cd1cb09972bdbc9fe2e4e782ec4b4754fe811c5657bc1f5308bd38e3926
|
||||||
|
DIST zfs-2.1.15.tar.gz 35209038 BLAKE2B 61f9e14c54d43d1c51269917bb3ffde0530166126ea0467103ff1171dffc537315fd21c270d12f73d677e121b8094af39dd0a1fe3f80986bb42dc16d627dff52 SHA512 24096f2a6ecb3cc51f3d2f11cc69ad134d6fc33667007277c50cf798be2b19b6ddfa9be6923ca53d8b09f0bebae14c44d74811ec776e5aaf4ea0e810844c1f3d
|
||||||
|
DIST zfs-2.1.15.tar.gz.asc 836 BLAKE2B 897c05a8870cd0418493b42fe854ef5b28f9a31513ac262a25631089defa59190808b51bd31e43412b01171bcac0dff0608d417dfdacfeee0b0f067e0627d48f SHA512 a6c5a9d214070a220716075455eb1cb85a53fb20b5fe4319f112cde0653a25f87b66d0f0bcf0ca641e3ac38239759cb9df6ed7f4700056a2732cc8c1ccd9ce05
|
||||||
|
DIST zfs-2.2.2.tar.gz 33816541 BLAKE2B f0619ae42d898d18077096217d0a9ddd7c7378424707aa51d3645661b2889a1459bc4a5e9fe42b6860b2d26e4600da35765b0e741725dafacc2ead2370cad866 SHA512 bba252cbf7986f2cce154dd18a34aa478cf98f70106337188dc894de2446d60a58fa643706927757d1787506b44d4ff404897a2d0e16aacb0a7bf27765703332
|
||||||
|
DIST zfs-2.2.2.tar.gz.asc 836 BLAKE2B bdc86492b2bf45d329e34e89ea7796f5cbf518d32ab114c909321b1d0d8040b9ce4e25b3b85fcbc5ea62ee10a2d716b5b27e37c2c005b307c0b593815c49d625 SHA512 110be1aa90f4749106717165a3cb5116379e2d170146a2b3d2601f04212450da9327e028d6e1e5de7f8a46c6bb7a15e2bcdd09e3e760590fbc695f9562f1440b
|
||||||
|
DIST zfs-2.2.3.tar.gz 33854765 BLAKE2B f83439aa929609191a048dd326b2a15e0f57c72d2901cbfb205b81a29aa42dab49b42eb61647ca3eaed17518b8c907e81343364bfecf83ed441271648f8efd4b SHA512 e6c3df531a33f4bd198429e61b7630f1e965a03fd60d1b847bdf0d55c6d2af3abc38b5e8a63aa9ef9f969cc7eca36cb24a7641f6fb8c41ef2fa024d76cd28f3d
|
||||||
|
DIST zfs-2.2.3.tar.gz.asc 836 BLAKE2B 86e1adc393d1f4643a6fd8c188b555e9dc0fdf7e25690f37ff0a04ff8826eb4fe3c125b54f0c5b9ab33f1daff43c4b44373ee9a4df506f6714f98d77782e6c3c SHA512 fe23ddb9bde78416776411d66a56aa662fa051c8544b4be01ba238b8c1a85ccde1c55329f228fe8ab2681b54a4e4cb08d4e927c597c117242f0b536a40921dc9
|
||||||
|
EBUILD zfs-2.1.14.ebuild 8907 BLAKE2B ef6fa6ab85907507d146f3ee17c12680226ffcf0b49559d2f2521b95758d5dffe8ae4763d2db2691a09cf1a9d02bda4a58de0ffad205b4ec05201b3f76f85c3e SHA512 6f106cf37a7bc7fc850f86169aa90cea904680b85d5512045b36f7853024d702ca25272bc735eb5b140598581ea5edcd67b4bf027e1b378af2f8559b01d7838d
|
||||||
|
EBUILD zfs-2.1.15.ebuild 8910 BLAKE2B 94a66b34f4fbf9fb82c206a03f0511b52d1e2c039c56f848806960ef87b3d371944b640ca99ea7e921e0d6c369591a3227726faee93ba432777c00eda0eaac81 SHA512 4bbe411217fc9c658d49d966d041ef22fc3221bd25e3bb00f172419f0280f283fa95fe527e1f422ab9a04eb90d7cd8e1eac6329ed99f3f40b4bb5d6cbd93332d
|
||||||
|
EBUILD zfs-2.2.2-r1.ebuild 8809 BLAKE2B cbb0a314545e47bae39a40550179a30b7649f76a743a8171fede13557d343da5fd888c2101568f236358e9c9377d71dac844c4e7f6757646922efc9cd627ed1b SHA512 27b8f2c1eaa086b51bce6fdcd733a615843e7b8bd9a134b9c954a3f85796f0a75cfcb056e583c714c59f689dc999e167054a1fd20df9f69ebb90b67e82737495
|
||||||
|
EBUILD zfs-2.2.3.ebuild 8844 BLAKE2B eb9aa0625fb4f58cb31385224347512e4b1fc71ff1ed46537de764911dcc7351e39182d62b167f7cc84c394fdc0abd86efffeeaa21cb55fd45b7bc59095ca13a SHA512 f85f82ab4bf550fa139629dbf1114f6dc1507faf8bd3e469558f2d76a45455f935155938343834b02414582e22fe6b59ef6f088a9ab18ca15b6d8ec0c036ec43
|
||||||
|
EBUILD zfs-9999.ebuild 8774 BLAKE2B 687b990541b8458069d9cf37c27fa4948e928858e8c852dae97e46ca975fbff1b26f8311358a943c8c587b59b3277378fc9445d092dc509e00716d99aace3d1b SHA512 b1710a7020598369dad2874391ad91133f89630313f4bdc637f0bf7649722b6a3d857694fc91630a0749ed94198aaeede58defd6c8044d43dacdd265dd1e8de4
|
||||||
|
MISC metadata.xml 2093 BLAKE2B 40f9f693751748deab32cd78bb919483e37d35da74ecaa28b31a183807c25c6a7022226e761dc27f895b142274bd9920e361f45a50b98bcf2a4b701d9e67fb94 SHA512 63d91d33151eea801c854246ea2c4640ecd432e74668b8f4f6ea22d4ae61823848a1608e9ee25821ef463f5f5e8e7e1c8d2aae4f1fee492ea4112214d2d6d1ed
|
14
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-dracut-zfs-missing.patch
vendored
Normal file
14
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-dracut-zfs-missing.patch
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
https://github.com/openzfs/zfs/commit/ebbfc6cb853d2d2f3f0671362d5ff5588be39e9d
|
||||||
|
https://github.com/openzfs/zfs/issues/13595
|
||||||
|
--- b/contrib/dracut/90zfs/module-setup.sh.in
|
||||||
|
+++ a/contrib/dracut/90zfs/module-setup.sh.in
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
installkernel() {
|
||||||
|
+ instmods zfs
|
||||||
|
- instmods -c zfs
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
|
60
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-r2-dracut-non-root.patch
vendored
Normal file
60
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-r2-dracut-non-root.patch
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
https://github.com/openzfs/zfs/commit/eefe83eaa68f7cb4a49c580dd940d3688e42c849
|
||||||
|
https://bugs.gentoo.org/854333
|
||||||
|
|
||||||
|
From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Toyam Cox <aviator45003@gmail.com>
|
||||||
|
Date: Thu, 30 Jun 2022 13:47:58 -0400
|
||||||
|
Subject: [PATCH] dracut: fix boot on non-zfs-root systems
|
||||||
|
|
||||||
|
Simply prevent overwriting root until it needs to be overwritten.
|
||||||
|
|
||||||
|
Dracut could change this value before this module is called, but won't
|
||||||
|
change the kernel command line.
|
||||||
|
|
||||||
|
Reviewed-by: Andrew J. Hesford <ajh@sideband.org>
|
||||||
|
Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
|
||||||
|
Closes #13592
|
||||||
|
---
|
||||||
|
contrib/dracut/90zfs/zfs-lib.sh.in | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/contrib/dracut/90zfs/zfs-lib.sh.in b/contrib/dracut/90zfs/zfs-lib.sh.in
|
||||||
|
index e44673c2d75..3a43e514d6f 100755
|
||||||
|
--- a/contrib/dracut/90zfs/zfs-lib.sh.in
|
||||||
|
+++ b/contrib/dracut/90zfs/zfs-lib.sh.in
|
||||||
|
@@ -88,11 +88,11 @@ decode_root_args() {
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
- root=$(getarg root=)
|
||||||
|
+ xroot=$(getarg root=)
|
||||||
|
rootfstype=$(getarg rootfstype=)
|
||||||
|
|
||||||
|
# shellcheck disable=SC2249
|
||||||
|
- case "$root" in
|
||||||
|
+ case "$xroot" in
|
||||||
|
""|zfs|zfs:|zfs:AUTO)
|
||||||
|
root=zfs:AUTO
|
||||||
|
rootfstype=zfs
|
||||||
|
@@ -100,7 +100,7 @@ decode_root_args() {
|
||||||
|
;;
|
||||||
|
|
||||||
|
ZFS=*|zfs:*)
|
||||||
|
- root="${root#zfs:}"
|
||||||
|
+ root="${xroot#zfs:}"
|
||||||
|
root="${root#ZFS=}"
|
||||||
|
root=$(echo "$root" | tr '+' ' ')
|
||||||
|
rootfstype=zfs
|
||||||
|
@@ -109,9 +109,9 @@ decode_root_args() {
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$rootfstype" = "zfs" ]; then
|
||||||
|
- case "$root" in
|
||||||
|
+ case "$xroot" in
|
||||||
|
"") root=zfs:AUTO ;;
|
||||||
|
- *) root=$(echo "$root" | tr '+' ' ') ;;
|
||||||
|
+ *) root=$(echo "$xroot" | tr '+' ' ') ;;
|
||||||
|
esac
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
39
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.2-no-USER_NS.patch
vendored
Normal file
39
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.2-no-USER_NS.patch
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
https://github.com/openzfs/zfs/issues/15241
|
||||||
|
https://github.com/openzfs/zfs/pull/15560
|
||||||
|
|
||||||
|
From e0a7ec29d91b79adfd81073f229241351ed0ae21 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ilkka Sovanto <github@ilkka.kapsi.fi>
|
||||||
|
Date: Wed, 22 Nov 2023 20:24:47 +0200
|
||||||
|
Subject: [PATCH] Fix zoneid when USER_NS is disabled
|
||||||
|
|
||||||
|
getzoneid() should return GLOBAL_ZONEID instead of 0 when USER_NS is disabled.
|
||||||
|
|
||||||
|
Signed-off-by: Ilkka Sovanto <github@ilkka.kapsi.fi>
|
||||||
|
--- a/lib/libspl/os/linux/zone.c
|
||||||
|
+++ b/lib/libspl/os/linux/zone.c
|
||||||
|
@@ -42,20 +42,20 @@ getzoneid(void)
|
||||||
|
int c = snprintf(path, sizeof (path), "/proc/self/ns/user");
|
||||||
|
/* This API doesn't have any error checking... */
|
||||||
|
if (c < 0 || c >= sizeof (path))
|
||||||
|
- return (0);
|
||||||
|
+ return (GLOBAL_ZONEID);
|
||||||
|
|
||||||
|
ssize_t r = readlink(path, buf, sizeof (buf) - 1);
|
||||||
|
if (r < 0)
|
||||||
|
- return (0);
|
||||||
|
+ return (GLOBAL_ZONEID);
|
||||||
|
|
||||||
|
cp = strchr(buf, '[');
|
||||||
|
if (cp == NULL)
|
||||||
|
- return (0);
|
||||||
|
+ return (GLOBAL_ZONEID);
|
||||||
|
cp++;
|
||||||
|
|
||||||
|
unsigned long n = strtoul(cp, NULL, 10);
|
||||||
|
if (n == ULONG_MAX && errno == ERANGE)
|
||||||
|
- return (0);
|
||||||
|
+ return (GLOBAL_ZONEID);
|
||||||
|
zoneid_t z = (zoneid_t)n;
|
||||||
|
|
||||||
|
return (z);
|
||||||
|
|
63
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.3-musl.patch
vendored
Normal file
63
sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.3-musl.patch
vendored
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
https://github.com/openzfs/zfs/pull/15925
|
||||||
|
|
||||||
|
From 68419c70dc7235a4954d6c0c09d60f9ebe694a3c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam James <sam@gentoo.org>
|
||||||
|
Date: Fri, 23 Feb 2024 05:12:09 +0000
|
||||||
|
Subject: [PATCH] Use <fcntl.h> instead of <sys/fcntl.h>
|
||||||
|
|
||||||
|
When building on musl, we get:
|
||||||
|
```
|
||||||
|
In file included from tests/zfs-tests/cmd/getversion.c:22:
|
||||||
|
/usr/include/sys/fcntl.h:1:2: error: #warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h> [-Werror=cpp]
|
||||||
|
1 | #warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h>
|
||||||
|
|
||||||
|
In file included from module/os/linux/zfs/vdev_file.c:36:
|
||||||
|
/usr/include/sys/fcntl.h:1:2: error: #warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h> [-Werror=cpp]
|
||||||
|
1 | #warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h>
|
||||||
|
```
|
||||||
|
|
||||||
|
Bug: https://bugs.gentoo.org/925235
|
||||||
|
Signed-off-by: Sam James <sam@gentoo.org>
|
||||||
|
---
|
||||||
|
module/os/linux/zfs/vdev_file.c | 2 +-
|
||||||
|
tests/zfs-tests/cmd/getversion.c | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/module/os/linux/zfs/vdev_file.c b/module/os/linux/zfs/vdev_file.c
|
||||||
|
index 5abc0426d1..68e3042a97 100644
|
||||||
|
--- a/module/os/linux/zfs/vdev_file.c
|
||||||
|
+++ b/module/os/linux/zfs/vdev_file.c
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
* Copyright (c) 2011, 2020 by Delphix. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#include <fcntl.h>
|
||||||
|
#include <sys/zfs_context.h>
|
||||||
|
#include <sys/spa.h>
|
||||||
|
#include <sys/spa_impl.h>
|
||||||
|
@@ -33,7 +34,6 @@
|
||||||
|
#include <sys/fs/zfs.h>
|
||||||
|
#include <sys/fm/fs/zfs.h>
|
||||||
|
#include <sys/abd.h>
|
||||||
|
-#include <sys/fcntl.h>
|
||||||
|
#include <sys/vnode.h>
|
||||||
|
#include <sys/zfs_file.h>
|
||||||
|
#ifdef _KERNEL
|
||||||
|
diff --git a/tests/zfs-tests/cmd/getversion.c b/tests/zfs-tests/cmd/getversion.c
|
||||||
|
index 62c1c5b6ab..1e026b92d1 100644
|
||||||
|
--- a/tests/zfs-tests/cmd/getversion.c
|
||||||
|
+++ b/tests/zfs-tests/cmd/getversion.c
|
||||||
|
@@ -19,9 +19,9 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
-#include <sys/fcntl.h>
|
||||||
|
#include <linux/fs.h>
|
||||||
|
#include <err.h>
|
||||||
|
+#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
--
|
||||||
|
2.43.2
|
||||||
|
|
38
sdk_container/src/third_party/portage-stable/sys-fs/zfs/metadata.xml
vendored
Normal file
38
sdk_container/src/third_party/portage-stable/sys-fs/zfs/metadata.xml
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>sam@gentoo.org</email>
|
||||||
|
<name>Sam James</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="kernel-builtin">Disable dependency on <pkg>sys-fs/zfs-kmod</pkg> under the assumption that ZFS is part of the kernel source tree</flag>
|
||||||
|
<flag name="minimal">Don't install python scripts (arcstat, dbufstat etc) and avoid dependency on <pkg>dev-lang/python</pkg></flag>
|
||||||
|
<flag name="pam">Install zfs_key pam module, for automatically loading zfs encryption keys for home datasets</flag>
|
||||||
|
<flag name="rootfs">Enable dependencies required for booting off a pool containing a rootfs</flag>
|
||||||
|
<flag name="test-suite">Install regression test suite</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<bugs-to>https://github.com/openzfs/zfs/issues</bugs-to>
|
||||||
|
<doc>https://openzfs.github.io/openzfs-docs</doc>
|
||||||
|
<remote-id type="github">openzfs/zfs</remote-id>
|
||||||
|
</upstream>
|
||||||
|
<longdescription lang="en">
|
||||||
|
OpenZFS is an advanced file system and volume manager which was originally developed
|
||||||
|
for Solaris and is now maintained by the OpenZFS community
|
||||||
|
|
||||||
|
It includes the functionality of both traditional file systems and volume manager.
|
||||||
|
It has many advanced features including:
|
||||||
|
* Protection against data corruption. Integrity checking for both data and metadata.
|
||||||
|
* Continuous integrity verification and automatic “self-healing” repair
|
||||||
|
* Data redundancy with mirroring, RAID-Z1/2/3 [and DRAID]
|
||||||
|
* Support for high storage capacities — up to 256 trillion yobibytes (2^128 bytes)
|
||||||
|
* Space-saving with transparent compression using LZ4, GZIP or ZSTD
|
||||||
|
* Hardware-accelerated native encryption
|
||||||
|
* Efficient storage with snapshots and copy-on-write clones
|
||||||
|
* Efficient local or remote replication — send only changed blocks with ZFS send and receive
|
||||||
|
|
||||||
|
The OpenZFS project brings together developers from the Linux, FreeBSD, illumos, MacOS, and Windows platforms.
|
||||||
|
OpenZFS is supported by a wide range of companies.
|
||||||
|
</longdescription>
|
||||||
|
</pkgmetadata>
|
311
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.14.ebuild
vendored
Normal file
311
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.14.ebuild
vendored
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
|
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}/${P%_rc?}"
|
||||||
|
|
||||||
|
if [[ ${PV} != *_rc* ]]; then
|
||||||
|
KEYWORDS="amd64 arm64 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/5"
|
||||||
|
IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
net-libs/libtirpc:=
|
||||||
|
sys-apps/util-linux
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/libudev:=
|
||||||
|
dev-libs/openssl:0=
|
||||||
|
!minimal? ( ${PYTHON_DEPS} )
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
python? (
|
||||||
|
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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 )
|
||||||
|
sys-fs/udev-init-scripts
|
||||||
|
app-alternatives/awk
|
||||||
|
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=(
|
||||||
|
# bug #854333
|
||||||
|
"${FILESDIR}"/2.1.5-r2-dracut-non-root.patch
|
||||||
|
|
||||||
|
"${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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# All the same issue:
|
||||||
|
# Segfaults w/ GCC 12 and 'zfs send'
|
||||||
|
# bug #856373
|
||||||
|
# https://github.com/openzfs/zfs/issues/13620
|
||||||
|
# https://github.com/openzfs/zfs/issues/13605
|
||||||
|
append-flags -fno-tree-vectorize
|
||||||
|
|
||||||
|
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)
|
||||||
|
--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 ${EROOT}/$(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
|
||||||
|
}
|
311
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.15.ebuild
vendored
Normal file
311
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.15.ebuild
vendored
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
|
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}/${P%_rc?}"
|
||||||
|
|
||||||
|
if [[ ${PV} != *_rc* ]]; then
|
||||||
|
KEYWORDS="~amd64 ~arm64 ~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/5"
|
||||||
|
IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
net-libs/libtirpc:=
|
||||||
|
sys-apps/util-linux
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/libudev:=
|
||||||
|
dev-libs/openssl:0=
|
||||||
|
!minimal? ( ${PYTHON_DEPS} )
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
python? (
|
||||||
|
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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 )
|
||||||
|
sys-fs/udev-init-scripts
|
||||||
|
app-alternatives/awk
|
||||||
|
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=(
|
||||||
|
# bug #854333
|
||||||
|
"${FILESDIR}"/2.1.5-r2-dracut-non-root.patch
|
||||||
|
|
||||||
|
"${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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# All the same issue:
|
||||||
|
# Segfaults w/ GCC 12 and 'zfs send'
|
||||||
|
# bug #856373
|
||||||
|
# https://github.com/openzfs/zfs/issues/13620
|
||||||
|
# https://github.com/openzfs/zfs/issues/13605
|
||||||
|
append-flags -fno-tree-vectorize
|
||||||
|
|
||||||
|
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)
|
||||||
|
--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 ${EROOT}/$(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
|
||||||
|
}
|
307
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.2-r1.ebuild
vendored
Normal file
307
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.2-r1.ebuild
vendored
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..11} )
|
||||||
|
|
||||||
|
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/5"
|
||||||
|
IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-libs/openssl:=
|
||||||
|
net-libs/libtirpc:=
|
||||||
|
sys-apps/util-linux
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/libudev:=
|
||||||
|
!minimal? ( ${PYTHON_DEPS} )
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
python? (
|
||||||
|
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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
|
||||||
|
"${FILESDIR}"/2.2.2-no-USER_NS.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)
|
||||||
|
--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 ${EROOT}/$(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
|
||||||
|
}
|
308
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.3.ebuild
vendored
Normal file
308
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.3.ebuild
vendored
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
|
||||||
|
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/5"
|
||||||
|
IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-libs/openssl:=
|
||||||
|
net-libs/libtirpc:=
|
||||||
|
sys-apps/util-linux
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/libudev:=
|
||||||
|
!minimal? ( ${PYTHON_DEPS} )
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
python? (
|
||||||
|
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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
|
||||||
|
"${FILESDIR}"/2.2.2-no-USER_NS.patch
|
||||||
|
"${FILESDIR}"/2.2.3-musl.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)
|
||||||
|
--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 ${EROOT}/$(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
|
||||||
|
}
|
306
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild
vendored
Normal file
306
sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild
vendored
Normal file
@ -0,0 +1,306 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
DISTUTILS_OPTIONAL=1
|
||||||
|
DISTUTILS_USE_PEP517=setuptools
|
||||||
|
PYTHON_COMPAT=( python3_{10..12} )
|
||||||
|
|
||||||
|
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/5"
|
||||||
|
IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-libs/openssl:=
|
||||||
|
net-libs/libtirpc:=
|
||||||
|
sys-apps/util-linux
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/libudev:=
|
||||||
|
!minimal? ( ${PYTHON_DEPS} )
|
||||||
|
pam? ( sys-libs/pam )
|
||||||
|
python? (
|
||||||
|
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
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)
|
||||||
|
--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 ${EROOT}/$(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
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user