sys-fs/bcachefs-kmod: add erasure coding and quota support

Erasure coding is experimental and therefore USE masked.

Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger@gmail.com>
This commit is contained in:
Florian Albrechtskirchinger
2026-01-15 08:11:46 +01:00
parent f28fffc72c
commit 313e307513
3 changed files with 21 additions and 4 deletions

View File

@@ -27,7 +27,7 @@ fi
LICENSE="GPL-2"
SLOT="0"
IUSE="debug verify-sig"
IUSE="debug erasure-coding quota verify-sig"
BDEPEND="
>=sys-kernel/linux-headers-6.16
@@ -63,6 +63,7 @@ pkg_setup() {
FRAME_POINTER
!DEBUG_INFO_REDUCED
"
use quota && CONFIG_CHECK+=" QUOTACTL"
linux-mod-r1_pkg_setup
}
@@ -86,15 +87,23 @@ src_unpack() {
src_prepare() {
default
# Upstream PR: https://github.com/koverstreet/bcachefs/pull/1038
cat <<-EOF >> libbcachefs/Makefile || die
ifdef BCACHEFS_DKMS
subdir-ccflags-\$(CONFIG_BCACHEFS_QUOTA) += -DCONFIG_BCACHEFS_QUOTA=1
subdir-ccflags-\$(CONFIG_BCACHEFS_ERASURE_CODING) += -DCONFIG_BCACHEFS_ERASURE_CODING=1
endif
EOF
sed -i s/^VERSION=.*$/VERSION=${PV}/ Makefile || die
emake DESTDIR="${WORKDIR}" PREFIX="/module" install_dkms
}
src_compile() {
local modlist=( "bcachefs=:../${MODULE_S}:../${MODULE_S}/src/fs/bcachefs" )
local modargs=(
KDIR=${KV_OUT_DIR}
)
local modargs=( KDIR=${KV_OUT_DIR} )
use erasure-coding && modargs+=( CONFIG_BCACHEFS_ERASURE_CODING=y )
use quota && modargs+=( CONFIG_BCACHEFS_QUOTA=y )
linux-mod-r1_src_compile
}

View File

@@ -12,4 +12,8 @@
<upstream>
<remote-id type="github">koverstreet/bcachefs-tools</remote-id>
</upstream>
<use>
<flag name="erasure-coding">Enable bcachefs erasure coding (RAID5/6) support (EXPERIMENTAL)</flag>
<flag name="quota">Enable bcachefs quota support</flag>
</use>
</pkgmetadata>