blob: 707678e7fb7a9106e2decc0f24a090e84a41bbc6 (
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
89
90
91
92
93
94
95
96
97
98
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_OPTIONAL=1
PYTHON_COMPAT=( python3_{10..12} )
inherit linux-info meson python-single-r1
DESCRIPTION="User-space front-end for Ftrace"
HOMEPAGE="https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git"
if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/trace-cmd/${PN}.git"
inherit git-r3
else
SRC_URI="https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/${PN}-v${PV}.tar.gz"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
S="${WORKDIR}/${PN}-v${PV}"
fi
LICENSE="GPL-2+ LGPL-2.1+"
SLOT="0/${PV}"
IUSE="python test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
# Tests segfault for now?
RESTRICT="!test? ( test ) test"
RDEPEND="
>=app-arch/zstd-1.4
>=dev-libs/libtracefs-1.8
>=dev-libs/libtraceevent-1.6.3
sys-libs/zlib
sys-process/audit
python? ( ${PYTHON_DEPS} )
"
DEPEND="
${RDEPEND}
sys-kernel/linux-headers
test? ( dev-util/cunit )
"
BDEPEND="
app-text/asciidoc
virtual/pkgconfig
python? ( dev-lang/swig )
"
pkg_setup() {
local CONFIG_CHECK="
~TRACING
~FTRACE
~BLK_DEV_IO_TRACE"
linux-info_pkg_setup
# TODO: Once we have options for doc+tests, we can revisit Python being
# single-impl.
use python && python-single-r1_pkg_setup
}
src_prepare() {
default
# Due to the in-progress meson build transaction, we decide to separate
# the libtracecmd as an independent package, see bug #909439
# Note: dev-util/trace-cmd still use in-source static libtracecmd duo to
# it still use internal private API.
sed -i -e "/^libtracecmd_standalone_build/s/true/false/" \
"${S}"/lib/meson.build || die
}
src_configure() {
local emesonargs=(
-Dasciidoctor=false
$(meson_use python)
)
# TODO: udis86 isn't wired up to meson at all
# TODO: get docs & tests optional upstream
# TODO: audit/zstd/zlib lack meson options for now. Previously, the situation
# was somewhat automagic, so this isn't a huge loss for now, but we should
# upstream some build options for these.
meson_src_configure
}
src_install() {
meson_src_install
use python && python_install
# TODO: fix bash completion name
mv "${D}"/usr/share/bash-completion/completions/${PN}.bash \
"${D}"/usr/share/bash-completion/completions/${PN} || die
}
python_install() {
python_optimize "${D}$(python_get_sitedir)"
}
|