From c41868c5fc814d87cfc13d4e2fbb4b010269b8bd Mon Sep 17 00:00:00 2001 From: Kai-Chun Ning Date: Thu, 29 Jun 2023 17:56:36 +0200 Subject: [PATCH] app-admin/opensnitch-ebpf-module-1.6.0-r1: Allow rebuilds on distribution kernel upgrades Signed-off-by: Kai-Chun Ning --- app-admin/opensnitch-ebpf-module/Manifest | 2 +- ...=> opensnitch-ebpf-module-1.6.0-r1.ebuild} | 44 ++++++++++++------- 2 files changed, 30 insertions(+), 16 deletions(-) rename app-admin/opensnitch-ebpf-module/{opensnitch-ebpf-module-1.6.0.ebuild => opensnitch-ebpf-module-1.6.0-r1.ebuild} (56%) diff --git a/app-admin/opensnitch-ebpf-module/Manifest b/app-admin/opensnitch-ebpf-module/Manifest index 19bcdb242..26504bf1f 100644 --- a/app-admin/opensnitch-ebpf-module/Manifest +++ b/app-admin/opensnitch-ebpf-module/Manifest @@ -1,4 +1,4 @@ DIST linux-6.0.14.tar.gz 214150171 BLAKE2B 98ec9c9d25416fe757712d629818a51b3f2fbb42b792a2e991f32841487de3115d593a72f61ceefeb92ddc8f75e7d6161eff74d017243fe1115f9e116c0850f6 SHA512 b5b33c25f6bcdc644bfe852ecc50d9ef516660de2e5bc6b42a675cd67c67740ce62a6e6f775de35a823d82bfeec773f6b94cedc79957fbf43a0b6c964887d681 +DIST opensnitch-1.6.0.tar.gz 1291940 BLAKE2B bc9e131f5cdf0631ca828ab41511e2852d2d694bafa5832204f28f38f1a4b0fc103d019267ad12bee84a3077dbca6acf279226fd679ee46f18fd1f24a49072f5 SHA512 4ff4ab840bc81c6df1d37d3390a7719141f583d5a8079561d0d07f5e67d3af5a7b13e0bf196fbe4b969183f63eb67f065a86c65d9c184f58b804efa4ad9a279c DIST opensnitch-ebpf-module-1.5.8.1.tar.gz 1054371 BLAKE2B 458a31deffec5e50db86151d71fcf950beec523d23a7939cb255391082cfe6ace5c5678f8b3129d7f03d4149bcba016fe0fb3c01371eccd85dcca4db965521a0 SHA512 1023268afb1a49f642ac072116f53dc9abc707c00e76b86f21c88becde62e34b69352ff3e9dbb59cc375d72bbdf3e1246021661ebe6f96a10b555e202847ab0e DIST opensnitch-ebpf-module-1.5.8.tar.gz 1054833 BLAKE2B a4ff85524cbe533977cb7740d5c26202444f26286dcb2ebaf081111e6b6152148b0b76c0da7c43e50aeb6ff164ea9154e505c400fac8a292e116e15ba28d4ecf SHA512 d3027f1b84ead4ca870c3aa6442811e1cf1056a29429a069de35d73a3366b474d3d95e5cf8f3666dcf3277375af49e13794290d9914fbeec169d84e2dd610a04 -DIST opensnitch-ebpf-module-1.6.0.tar.gz 1291940 BLAKE2B bc9e131f5cdf0631ca828ab41511e2852d2d694bafa5832204f28f38f1a4b0fc103d019267ad12bee84a3077dbca6acf279226fd679ee46f18fd1f24a49072f5 SHA512 4ff4ab840bc81c6df1d37d3390a7719141f583d5a8079561d0d07f5e67d3af5a7b13e0bf196fbe4b969183f63eb67f065a86c65d9c184f58b804efa4ad9a279c diff --git a/app-admin/opensnitch-ebpf-module/opensnitch-ebpf-module-1.6.0.ebuild b/app-admin/opensnitch-ebpf-module/opensnitch-ebpf-module-1.6.0-r1.ebuild similarity index 56% rename from app-admin/opensnitch-ebpf-module/opensnitch-ebpf-module-1.6.0.ebuild rename to app-admin/opensnitch-ebpf-module/opensnitch-ebpf-module-1.6.0-r1.ebuild index 38e471dfd..0a11cc3e6 100644 --- a/app-admin/opensnitch-ebpf-module/opensnitch-ebpf-module-1.6.0.ebuild +++ b/app-admin/opensnitch-ebpf-module/opensnitch-ebpf-module-1.6.0-r1.ebuild @@ -7,8 +7,9 @@ inherit linux-info DESCRIPTION="eBPF process monitor module for opensnitch" HOMEPAGE="https://github.com/evilsocket/opensnitch" +# NOTE: app-admin/opensnitch and this ebuild share the same source SRC_URI=" - https://github.com/evilsocket/opensnitch/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/evilsocket/opensnitch/archive/refs/tags/v${PV}.tar.gz -> opensnitch-${PV}.tar.gz " S="${WORKDIR}/opensnitch-${PV}" EBPF_DIR=ebpf_prog @@ -16,37 +17,50 @@ EBPF_DIR=ebpf_prog KEYWORDS="~amd64" LICENSE="GPL-3" SLOT="0" +IUSE="dist-kernel" + +MINKV=5.5 # only compatible with kernels >= 5.5 + +RDEPEND=" + dist-kernel? ( virtual/dist-kernel:= ) + ~app-admin/opensnitch-$PV +" + +DEPEND=" + virtual/linux-sources + >=sys-kernel/linux-headers-${MINKV} +" + BDEPEND=" sys-devel/bc sys-devel/clang sys-devel/llvm - net-misc/rsync - sys-kernel/linux-headers " RESTRICT="strip test" QA_PREBUILT="*" -CONFIG_CHECK=" - CGROUP_BPF - BPF - BPF_SYSCALL - BPF_EVENTS - KPROBES - KPROBE_EVENTS - FTRACE_SYSCALLS -" +pkg_setup() { + # see https://github.com/evilsocket/opensnitch/discussions/978 + local CONFIG_CHECK=" + CGROUP_BPF + BPF_EVENTS + FTRACE_SYSCALLS + KPROBES_ON_FTRACE + KPROBE_EVENTS + UPROBE_EVENTS + " -pkg_pretend() { linux-info_pkg_setup - kernel_is -ge 5 5 || die # only compatible with kernels >= 5.5 + kernel_is -ge ${MINKV//./ } || die "Kernel version at least ${MINKV} required" } src_compile() { MODULES_MAKEARGS+=( ARCH="x86" EXTRA_FLAGS="-fno-stack-protector -fcf-protection" - KERNEL_DIR="$KERNEL_DIR" + KERNEL_DIR="${KV_DIR}" + KERNEL_HEADERS=/usr # gentoo installs linux-headers to /usr ) emake "${MODULES_MAKEARGS[@]}" -C "$EBPF_DIR" || die llvm-strip -g "$EBPF_DIR"/opensnitch*.o