commit:     be60e0294c21072362cdbb236fa23661c5118949
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 11 09:36:34 2026 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Sun Jan 11 09:44:10 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be60e029

sys-fs/bcachefs-kmod: new package, promoted from ::guru

Promote bcachefs-kmod from ::guru to ::gentoo with minor style
fixes. Thanks to Alexander Miroshnichenko for maintaining the package in
::guru.

As discussed with Alexander, they are welcome to contribute to the
package in ::gentoo even though not (yet) being a maintainer via proxy.

Also, as discussed in https://github.com/gentoo/gentoo/pull/45259 and
via PM with various parties, this does not merge the bcachefs-tools and
bcachefs-kmod packages, instead they are individual packages. If
experience tells us that it is problematic that bcachefs userland and
the kernel module are in separate packages then we can revise this.

Closes: https://github.com/gentoo/gentoo/pull/45259
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 sys-fs/bcachefs-kmod/Manifest                    |   2 +
 sys-fs/bcachefs-kmod/bcachefs-kmod-1.34.0.ebuild | 112 +++++++++++++++++++++++
 sys-fs/bcachefs-kmod/bcachefs-kmod-9999.ebuild   | 112 +++++++++++++++++++++++
 sys-fs/bcachefs-kmod/metadata.xml                |  11 +++
 4 files changed, 237 insertions(+)

diff --git a/sys-fs/bcachefs-kmod/Manifest b/sys-fs/bcachefs-kmod/Manifest
new file mode 100644
index 000000000000..9dc8c112693f
--- /dev/null
+++ b/sys-fs/bcachefs-kmod/Manifest
@@ -0,0 +1,2 @@
+DIST bcachefs-tools-1.34.0.tar.sign 833 BLAKE2B 
d1253d7cb08526e765af5536969e5110d796e9fd7a5853c548027defe5b685402e297a3895e0f9b2b328745eb5ae34b8cf6356c383306822c6b832a9c7e6c0db
 SHA512 
8e4594a39003702ac56d474077d04adb0762a6a0dc88959ac4c659c3f30fda7073b8332d57bab18b871e808c1173ba759cadf666a4f2dab870b67eef0dab974d
+DIST bcachefs-tools-1.34.0.tar.zst 1393551 BLAKE2B 
17efb7c09b39682f0a16163848928cd0881017f081901859f3f122fd04ad7a7335cc0970c5d35bbf992911a305207fb550bb1693b2eec9b06d291f62ae9266d2
 SHA512 
8abc5b06a6866df378dd5d8d270482020560cd504a4a770af35fb16d6b23fcb5fcfc3a8cd086b027ab90207ba2d841969f7af81eb985087953d9fb28a2774a1c

diff --git a/sys-fs/bcachefs-kmod/bcachefs-kmod-1.34.0.ebuild 
b/sys-fs/bcachefs-kmod/bcachefs-kmod-1.34.0.ebuild
new file mode 100644
index 000000000000..7433885a1a86
--- /dev/null
+++ b/sys-fs/bcachefs-kmod/bcachefs-kmod-1.34.0.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MODULES_INITRAMFS_IUSE=+initramfs
+
+inherit flag-o-matic linux-mod-r1 toolchain-funcs unpacker verify-sig
+
+MY_PN="bcachefs-tools"
+
+DESCRIPTION="Linux bcachefs kernel module for sys-fs/bcachefs-tools"
+HOMEPAGE="https://bcachefs.org/";
+if [[ ${PV} == "9999" ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://evilpiepirate.org/git/bcachefs-tools.git";
+else
+       
SRC_URI="https://evilpiepirate.org/bcachefs-tools/bcachefs-tools-${PV}.tar.zst";
+       SRC_URI+=" verify-sig? ( 
https://evilpiepirate.org/bcachefs-tools/bcachefs-tools-${PV}.tar.sign )"
+       KEYWORDS="~amd64 ~arm64"
+       S="${WORKDIR}/${MY_PN}-${PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="debug verify-sig"
+
+MODULES_KERNEL_MIN=6.16
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kentoverstreet.asc
+
+BDEPEND="
+       >=sys-kernel/linux-headers-6.16
+       verify-sig? ( >=sec-keys/openpgp-keys-kentoverstreet-20241012 )
+"
+
+pkg_setup() {
+       local CONFIG_CHECK="
+               BLOCK
+               CRC_OPTIMIZATIONS
+               EXPORTFS
+               CLOSURES
+               CRC32
+               CRC64
+               FS_POSIX_ACL
+               LZ4_COMPRESS
+               LZ4_DECOMPRESS
+               LZ4HC_COMPRESS
+               ZLIB_DEFLATE
+               ZLIB_INFLATE
+               ZSTD_COMPRESS
+               ZSTD_DECOMPRESS
+               CRYPTO_LIB_SHA256
+               CRYPTO_LIB_CHACHA
+               CRYPTO_LIB_POLY1305
+               KEYS
+               RAID6_PQ
+               XOR_BLOCKS
+               XXHASH
+               SYMBOLIC_ERRNAME
+               MIN_HEAP
+               XARRAY_MULTI
+       "
+       use debug && CONFIG_CHECK+="
+               DEBUG_INFO
+               FRAME_POINTER
+               !DEBUG_INFO_REDUCED
+       "
+       linux-mod-r1_pkg_setup
+}
+
+src_unpack() {
+       # Upstream signs the uncompressed tarball
+       if use verify-sig; then
+               einfo "Unpacking ${P}.tar.zst ..."
+               verify-sig_verify_detached - 
"${DISTDIR}"/${MY_PN}-${PV}.tar.sign \
+                       < <(zstd -fdc "${DISTDIR}"/${MY_PN}-${PV}.tar.zst | tee 
>(tar -xf -))
+               assert "Unpack failed"
+       fi
+
+       if [[ ${PV} == "9999" ]]; then
+               git-r3_src_unpack
+       else
+               unpacker ${MY_PN}-${PV}.tar.zst
+       fi
+
+}
+
+src_prepare() {
+       default
+       tc-export CC
+
+       sed -i s/^VERSION=.*$/VERSION=${PV}/ Makefile || die
+       sed \
+               -e '/^CFLAGS/s:-O2::' \
+               -e '/^CFLAGS/s:-g::' \
+               -i Makefile || die
+       append-lfs-flags
+
+       emake DESTDIR="${WORKDIR}" PREFIX="/module" install_dkms
+}
+
+src_compile() {
+       local module_s="module/src/${PN%-*}-${PV}"
+       local modlist=( 
"bcachefs=:../${module_s}:../${module_s}/src/fs/bcachefs" )
+       local modargs=(
+               KDIR=${KV_OUT_DIR}
+       )
+
+       linux-mod-r1_src_compile
+}

diff --git a/sys-fs/bcachefs-kmod/bcachefs-kmod-9999.ebuild 
b/sys-fs/bcachefs-kmod/bcachefs-kmod-9999.ebuild
new file mode 100644
index 000000000000..7433885a1a86
--- /dev/null
+++ b/sys-fs/bcachefs-kmod/bcachefs-kmod-9999.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MODULES_INITRAMFS_IUSE=+initramfs
+
+inherit flag-o-matic linux-mod-r1 toolchain-funcs unpacker verify-sig
+
+MY_PN="bcachefs-tools"
+
+DESCRIPTION="Linux bcachefs kernel module for sys-fs/bcachefs-tools"
+HOMEPAGE="https://bcachefs.org/";
+if [[ ${PV} == "9999" ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://evilpiepirate.org/git/bcachefs-tools.git";
+else
+       
SRC_URI="https://evilpiepirate.org/bcachefs-tools/bcachefs-tools-${PV}.tar.zst";
+       SRC_URI+=" verify-sig? ( 
https://evilpiepirate.org/bcachefs-tools/bcachefs-tools-${PV}.tar.sign )"
+       KEYWORDS="~amd64 ~arm64"
+       S="${WORKDIR}/${MY_PN}-${PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="debug verify-sig"
+
+MODULES_KERNEL_MIN=6.16
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kentoverstreet.asc
+
+BDEPEND="
+       >=sys-kernel/linux-headers-6.16
+       verify-sig? ( >=sec-keys/openpgp-keys-kentoverstreet-20241012 )
+"
+
+pkg_setup() {
+       local CONFIG_CHECK="
+               BLOCK
+               CRC_OPTIMIZATIONS
+               EXPORTFS
+               CLOSURES
+               CRC32
+               CRC64
+               FS_POSIX_ACL
+               LZ4_COMPRESS
+               LZ4_DECOMPRESS
+               LZ4HC_COMPRESS
+               ZLIB_DEFLATE
+               ZLIB_INFLATE
+               ZSTD_COMPRESS
+               ZSTD_DECOMPRESS
+               CRYPTO_LIB_SHA256
+               CRYPTO_LIB_CHACHA
+               CRYPTO_LIB_POLY1305
+               KEYS
+               RAID6_PQ
+               XOR_BLOCKS
+               XXHASH
+               SYMBOLIC_ERRNAME
+               MIN_HEAP
+               XARRAY_MULTI
+       "
+       use debug && CONFIG_CHECK+="
+               DEBUG_INFO
+               FRAME_POINTER
+               !DEBUG_INFO_REDUCED
+       "
+       linux-mod-r1_pkg_setup
+}
+
+src_unpack() {
+       # Upstream signs the uncompressed tarball
+       if use verify-sig; then
+               einfo "Unpacking ${P}.tar.zst ..."
+               verify-sig_verify_detached - 
"${DISTDIR}"/${MY_PN}-${PV}.tar.sign \
+                       < <(zstd -fdc "${DISTDIR}"/${MY_PN}-${PV}.tar.zst | tee 
>(tar -xf -))
+               assert "Unpack failed"
+       fi
+
+       if [[ ${PV} == "9999" ]]; then
+               git-r3_src_unpack
+       else
+               unpacker ${MY_PN}-${PV}.tar.zst
+       fi
+
+}
+
+src_prepare() {
+       default
+       tc-export CC
+
+       sed -i s/^VERSION=.*$/VERSION=${PV}/ Makefile || die
+       sed \
+               -e '/^CFLAGS/s:-O2::' \
+               -e '/^CFLAGS/s:-g::' \
+               -i Makefile || die
+       append-lfs-flags
+
+       emake DESTDIR="${WORKDIR}" PREFIX="/module" install_dkms
+}
+
+src_compile() {
+       local module_s="module/src/${PN%-*}-${PV}"
+       local modlist=( 
"bcachefs=:../${module_s}:../${module_s}/src/fs/bcachefs" )
+       local modargs=(
+               KDIR=${KV_OUT_DIR}
+       )
+
+       linux-mod-r1_src_compile
+}

diff --git a/sys-fs/bcachefs-kmod/metadata.xml 
b/sys-fs/bcachefs-kmod/metadata.xml
new file mode 100644
index 000000000000..3e35aed47113
--- /dev/null
+++ b/sys-fs/bcachefs-kmod/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <name>Florian Schmaus</name>
+               <email>[email protected]</email>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">koverstreet/bcachefs-tools</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to