blob: e6903af81533a0d792d4dfec382843a158555a95 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..12} )
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
# 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
}
|