summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-debug/sysdig/sysdig-0.38.1-r1.ebuild')
-rw-r--r--dev-debug/sysdig/sysdig-0.38.1-r1.ebuild131
1 files changed, 131 insertions, 0 deletions
diff --git a/dev-debug/sysdig/sysdig-0.38.1-r1.ebuild b/dev-debug/sysdig/sysdig-0.38.1-r1.ebuild
new file mode 100644
index 000000000000..1c03185f156d
--- /dev/null
+++ b/dev-debug/sysdig/sysdig-0.38.1-r1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( luajit )
+
+inherit bash-completion-r1 cmake flag-o-matic lua-single
+
+DESCRIPTION="A system exploration and troubleshooting tool"
+HOMEPAGE="https://sysdig.com/"
+
+# The version of falcosecurity-libs required by sysdig as source tree
+LIBS_VERSION="0.17.3"
+SRC_URI="https://github.com/draios/sysdig/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/falcosecurity/libs/archive/${LIBS_VERSION}.tar.gz -> falcosecurity-libs-${LIBS_VERSION}.tar.gz"
+
+# The driver version as found in cmake/modules/driver.cmake
+DRIVER_VERSION="7.2.0+driver"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+IUSE="+modules"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="${LUA_DEPS}
+ dev-cpp/abseil-cpp:=
+ dev-cpp/tbb:=
+ dev-cpp/yaml-cpp:=
+ dev-libs/jsoncpp:=
+ dev-libs/libb64:=
+ dev-libs/protobuf:=
+ dev-libs/re2:=
+ dev-libs/uthash
+ net-libs/grpc:=
+ net-misc/curl
+ sys-libs/ncurses:=
+ sys-libs/zlib:=
+ virtual/libelf:="
+
+DEPEND="${RDEPEND}
+ dev-cpp/nlohmann_json
+ dev-cpp/valijson
+ virtual/os-headers"
+
+# pin the driver to the falcosecurity-libs version
+PDEPEND="modules? ( =dev-debug/scap-driver-${LIBS_VERSION}* )"
+
+PATCHES=( "${FILESDIR}/${PV}-scap-loader.patch" )
+
+src_prepare() {
+ # manually apply patches to falcosecurity-libs dependency
+ pushd "${WORKDIR}/libs-${LIBS_VERSION}"
+ # musl has no libanl (#929227)
+ if [ ${ELIBC} == "musl" ] ; then
+ eapply "${FILESDIR}/${PV}-libs-no-libanl.patch" || die
+ fi
+ popd
+
+ # do not build with debugging info
+ sed -i -e 's/-ggdb//g' CMakeLists.txt "${WORKDIR}"/libs-${LIBS_VERSION}/cmake/modules/CompilerFlags.cmake || die
+
+ # fix the driver version
+ sed -i -e 's/0.0.0-local/${DRIVER_VERSION}/g' cmake/modules/driver.cmake || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # known problems with strict aliasing:
+ # https://github.com/falcosecurity/libs/issues/1964
+ append-flags -fno-strict-aliasing
+
+ local mycmakeargs=(
+ # do not build the kernel driver
+ -DBUILD_DRIVER=OFF
+
+ # libscap examples are not installed or really useful
+ -DBUILD_LIBSCAP_EXAMPLES=OFF
+
+ # do not build internal libs as shared
+ -DBUILD_SHARED_LIBS=OFF
+
+ # do not build eBPF driver for now
+ -DBUILD_SYSDIG_MODERN_BPF=OFF
+
+ # set driver version to prevent downloading (don't ask..)
+ -DDRIVER_SOURCE_DIR="${WORKDIR}"/libs-${LIBS_VERSION}/driver
+ -DDRIVER_VERSION=${DRIVER_VERSION}
+
+ # point sysdig to the libs tree
+ -DFALCOSECURITY_LIBS_SOURCE_DIR="${WORKDIR}"/libs-${LIBS_VERSION}
+
+ # explicitly set sysdig version - required for some reason
+ -DSYSDIG_VERSION=${PV}
+
+ # do not use bundled dependencies for sysdig
+ -DUSE_BUNDLED_DEPS=OFF
+
+ # do not use bundled dependencies for falcosecurity-libs
+ -DUSE_BUNDLED_B64=OFF
+ -DUSE_BUNDLED_JSONCPP=OFF
+ -DUSE_BUNDLED_RE2=OFF
+ -DUSE_BUNDLED_TBB=OFF
+ -DUSE_BUNDLED_VALIJSON=OFF
+
+ # set valijson include path to prevent downloading
+ -DVALIJSON_INCLUDE="${ESYSROOT}"/usr/include
+
+ # enable chisels
+ -DWITH_CHISEL=ON
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # remove driver headers
+ rm -r "${ED}"/usr/src || die
+
+ # remove libscap/libsinsp headers & libs (see #938187)
+ rm -r "${ED}"/usr/include/sysdig || die
+ rm -r "${ED}"/usr/$(get_libdir) || die
+
+ # move bashcomp to the proper location
+ dobashcomp "${ED}"/usr/etc/bash_completion.d/sysdig || die
+ rm -r "${ED}"/usr/etc || die
+}