mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-21 21:17:37 -08:00
90 lines
2.0 KiB
Bash
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
|
|
}
|