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 +}
