commit:     5bb9dff0d4ad83a6cc07858b5a70a336a4150860
Author:     Holger Hoffstätte <holger <AT> applied-asynchrony <DOT> com>
AuthorDate: Mon Jan  1 14:54:39 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 11 14:12:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bb9dff0

dev-util/scap-driver: fix build on kernel 6.7

Closes: https://bugs.gentoo.org/921163
Signed-off-by: Holger Hoffstätte <holger <AT> applied-asynchrony.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/0.29.3-fix-kmod-build-on-6.7+.patch      | 21 +++++++++
 dev-util/scap-driver/scap-driver-0.29.3-r5.ebuild  | 52 ++++++++++++++++++++++
 2 files changed, 73 insertions(+)

diff --git a/dev-util/scap-driver/files/0.29.3-fix-kmod-build-on-6.7+.patch 
b/dev-util/scap-driver/files/0.29.3-fix-kmod-build-on-6.7+.patch
new file mode 100644
index 000000000000..a6db9e2d751c
--- /dev/null
+++ b/dev-util/scap-driver/files/0.29.3-fix-kmod-build-on-6.7+.patch
@@ -0,0 +1,21 @@
+
+Bug: https://bugs.gentoo.org/921163
+Subset of patch taken from: 
https://github.com/falcosecurity/libs/commit/bf0afa0cacb775582fde134500fe66af38f1eb59
+
+--- a/driver/ppm_fillers.c     2024-01-01 15:05:13.000000000 +0100
++++ b/driver/ppm_fillers.c     2024-01-01 15:15:59.893048651 +0100
+@@ -430,7 +430,13 @@ struct file *ppm_get_mm_exe_file(struct
+ {
+       struct file *exe_file;
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0)
++      // Since linux 6.7.0, `get_file_rcu` is no more a define and takes a 
double pointer parameter.
++      // See 
https://github.com/torvalds/linux/commit/0ede61d8589cc2d93aa78230d74ac58b5b8d0244.
++      rcu_read_lock();
++      exe_file = get_file_rcu(&mm->exe_file);
++      rcu_read_unlock();
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)
+       rcu_read_lock();
+       exe_file = rcu_dereference(mm->exe_file);
+       if (exe_file && !get_file_rcu(exe_file))

diff --git a/dev-util/scap-driver/scap-driver-0.29.3-r5.ebuild 
b/dev-util/scap-driver/scap-driver-0.29.3-r5.ebuild
new file mode 100644
index 000000000000..099b02873376
--- /dev/null
+++ b/dev-util/scap-driver/scap-driver-0.29.3-r5.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake linux-mod-r1
+
+DESCRIPTION="Kernel module for dev-util/sysdig"
+HOMEPAGE="https://sysdig.com/";
+
+# The driver is part of falcosecurity/libs, but for versioning reasons we 
cannot (yet)
+# use semver-released packages; instead we pull in a commit that is used and 
known
+# to work with sysdig, see sysdig/cmake/modules/falcosecurity-libs.cmake for 
details.
+# For now the commit here and the one referenced in sysdig should be in sync.
+LIBS_COMMIT="e5c53d648f3c4694385bbe488e7d47eaa36c229a"
+SRC_URI="https://github.com/falcosecurity/libs/archive/${LIBS_COMMIT}.tar.gz 
-> falcosecurity-libs-${LIBS_COMMIT}.tar.gz"
+S="${WORKDIR}/libs-${LIBS_COMMIT}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="!<dev-util/sysdig-${PV}[modules]"
+
+CONFIG_CHECK="HAVE_SYSCALL_TRACEPOINTS ~TRACEPOINTS"
+
+PATCHES=(
+       "${FILESDIR}"/${PV}-fix-kmod-build-on-5.18+.patch
+       "${FILESDIR}"/${PV}-fix-kmod-build-on-6.2+.patch
+       "${FILESDIR}"/${PV}-fix-kmod-build-on-6.3+.patch
+       "${FILESDIR}"/${PV}-fix-kmod-build-on-6.4+.patch
+       "${FILESDIR}"/${PV}-fix-kmod-build-on-6.7+.patch
+)
+
+src_configure() {
+       local mycmakeargs=(
+               # we will use linux-mod, so just pretend to use bundled deps
+               # in order to make it through the cmake setup.
+               -DUSE_BUNDLED_DEPS=ON
+               -DCREATE_TEST_TARGETS=OFF
+               -DDRIVER_VERSION=${LIBS_COMMIT}
+       )
+
+       cmake_src_configure
+}
+
+src_compile() {
+       local modlist=( scap=:"${BUILD_DIR}"/driver/src )
+       local modargs=( KERNELDIR="${KV_OUT_DIR}" )
+
+       linux-mod-r1_src_compile
+}

Reply via email to