gentoo/dev-util/0xtools/0xtools-2.0.3-r4.ebuild
Maciej Barć e7892c08d3
dev-util/0xtools: update PYTHON_COMPAT add 3.13
Closes: https://bugs.gentoo.org/952427
Signed-off-by: Maciej Barć <xgqt@gentoo.org>
2025-03-27 17:49:58 +01:00

90 lines
2.0 KiB
Bash

# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..13} )
inherit python-single-r1 systemd toolchain-funcs wrapper
DESCRIPTION="Always-on profiling for production systems"
HOMEPAGE="https://0x.tools/
https://github.com/tanelpoder/0xtools/"
if [[ "${PV}" == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/tanelpoder/${PN}.git"
else
SRC_URI="https://github.com/tanelpoder/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="amd64 ~x86"
fi
LICENSE="GPL-2+"
SLOT="0"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
BDEPEND="
${PYTHON_DEPS}
"
RDEPEND="
${BDEPEND}
sys-power/cpupower
$(python_gen_cond_dep '
dev-util/bcc[${PYTHON_USEDEP}]
')
"
DOCS=( CHANGELOG.md README.md )
src_compile() {
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}"
sed -e "/^sys.path.append/s|(.*)|('$(python_get_sitedir)/${PN}')|" \
-i bin/psn -i bin/schedlat || die
}
src_install() {
# "cpumhzturbo" requires "turbostat", which is not packaged,
# see bug: https://bugs.gentoo.org/939913
# C executables and scripts
exeinto /usr/bin
doexe bin/{cpumhz,vmtop,xcapture}
doexe bin/{run_xcapture.sh,run_xcpu.sh}
# Python executables
python_domodule "lib/${PN}"
python_doscript bin/psn
python_doscript bin/schedlat
python_doscript bin/syscallargs
# Service
systemd_dounit xcapture.service
systemd_dounit xcapture-restart.service
systemd_dounit xcapture-restart.timer
newinitd "${FILESDIR}/0xtools-2.0.3-xcapture-r0.initd" xcapture
# Setup for "xcapture-bpf".
exeinto "/lib/${PN}/xcapture"
doexe bin/xcapture-bpf
insinto "/lib/${PN}/xcapture"
doins bin/xcapture-bpf.c
make_wrapper xcapture-bpf "/lib/${PN}/xcapture/xcapture-bpf"
# There is a upstream command "xtop" that wraps around "xcapture-bpf"
# but its broken because of dynamic path lookup for "xcapture-bpf".
make_wrapper xtop "xcapture-bpf --xtop --clear-screen"
# Service config
insinto /etc/default
newins xcapture.default xcapture
# Service logs
keepdir /var/log/xcapture
einstalldocs
}