commit:     313e307513cd231f0f6e6a45e67b25ff5b77835f
Author:     Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail <DOT> 
com>
AuthorDate: Thu Jan 15 07:11:46 2026 +0000
Commit:     Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail <DOT> 
com>
CommitDate: Thu Jan 15 07:18:27 2026 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=313e3075

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

Erasure coding is experimental and therefore USE masked.

Signed-off-by: Florian Albrechtskirchinger <falbrechtskirchinger <AT> gmail.com>

 profiles/package.use.mask                        |  4 ++++
 sys-fs/bcachefs-kmod/bcachefs-kmod-1.35.0.ebuild | 17 +++++++++++++----
 sys-fs/bcachefs-kmod/metadata.xml                |  4 ++++
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/profiles/package.use.mask b/profiles/package.use.mask
index 67e131997c..c2c9e23fae 100644
--- a/profiles/package.use.mask
+++ b/profiles/package.use.mask
@@ -3,6 +3,10 @@
 
 # New entries go on top.
 
+# Florian Albrechtskirchinger <[email protected]> (2026-01-15)
+# Experimental; enable for testing only
+sys-fs/bcachefs-kmod erasure-coding
+
 # Anna Vyalkova <[email protected]> (2025-11-06)
 # Depends on treecleaned media-libs/raspberrypi-userland
 games-emulation/RetroArch dispmanx

diff --git a/sys-fs/bcachefs-kmod/bcachefs-kmod-1.35.0.ebuild 
b/sys-fs/bcachefs-kmod/bcachefs-kmod-1.35.0.ebuild
index a665ed359d..1415cf63fe 100644
--- a/sys-fs/bcachefs-kmod/bcachefs-kmod-1.35.0.ebuild
+++ b/sys-fs/bcachefs-kmod/bcachefs-kmod-1.35.0.ebuild
@@ -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
 }

diff --git a/sys-fs/bcachefs-kmod/metadata.xml 
b/sys-fs/bcachefs-kmod/metadata.xml
index 87ff414109..ee2660a640 100644
--- a/sys-fs/bcachefs-kmod/metadata.xml
+++ b/sys-fs/bcachefs-kmod/metadata.xml
@@ -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>

Reply via email to