summaryrefslogtreecommitdiff
path: root/dev-util/trace-cmd/trace-cmd-3.1.6.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/trace-cmd/trace-cmd-3.1.6.ebuild')
-rw-r--r--dev-util/trace-cmd/trace-cmd-3.1.6.ebuild144
1 files changed, 144 insertions, 0 deletions
diff --git a/dev-util/trace-cmd/trace-cmd-3.1.6.ebuild b/dev-util/trace-cmd/trace-cmd-3.1.6.ebuild
new file mode 100644
index 000000000000..abddbafded31
--- /dev/null
+++ b/dev-util/trace-cmd/trace-cmd-3.1.6.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_OPTIONAL=1
+
+inherit linux-info bash-completion-r1 python-r1 toolchain-funcs
+
+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="+audit doc python test udis86 +zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+# XXX trace-cmd autodetects this without configurability. This might cause
+# issues if the libraries are picked up with the useflag disabled and later
+# uninstalled
+RDEPEND="
+ audit? ( sys-process/audit )
+ python? ( ${PYTHON_DEPS} )
+ udis86? ( dev-libs/udis86 )
+ zstd? ( >=app-arch/zstd-1.4 )
+ !<dev-libs/libtracefs-1.6.1
+ >=dev-libs/libtracefs-1.6.1-r1
+ >=dev-libs/libtraceevent-1.6.3
+"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers
+ test? ( dev-util/cunit )
+"
+BDEPEND="
+ virtual/pkgconfig
+ python? ( dev-lang/swig )
+ doc? (
+ app-text/asciidoc
+ dev-util/source-highlight
+ )
+"
+
+# having trouble getting tests to compile
+RESTRICT+=" test"
+
+pkg_setup() {
+ local CONFIG_CHECK="
+ ~TRACING
+ ~FTRACE
+ ~BLK_DEV_IO_TRACE"
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+ sed -r -e 's:([[:space:]]+)install_bash_completion($|[[:space:]]+):\1:' \
+ -e '/^prefix/s:/usr/local:/usr:g' \
+ -i Makefile || die "sed failed"
+
+ sed -i -e "s|^htmldir.*|&-${PVR}|g" \
+ -e "s|^pdfdir.*|&-${PVR}|g" \
+ Documentation/libtracecmd/Makefile \
+ Documentation/trace-cmd/Makefile || die
+}
+
+src_configure() {
+ EMAKE_FLAGS=(
+ BUILD_OUTPUT="${WORKDIR}/${P}_build"
+ "prefix=${EPREFIX}/usr"
+ "libdir=${EPREFIX}/usr/$(get_libdir)"
+ "CC=$(tc-getCC)"
+ "AR=$(tc-getAR)"
+ "BASH_COMPLETE_DIR=$(get_bashcompdir)"
+ "etcdir=/etc"
+ $(usex audit '' 'NO_AUDIT=' '' '1')
+ $(usex test 'CUNIT_INSTALLED=' '' '1' '')
+ $(usex udis86 '' 'NO_UDIS86=' '' '1')
+ VERBOSE=1
+ )
+}
+
+src_compile() {
+ emake "${EMAKE_FLAGS[@]}" NO_PYTHON=1 \
+ trace-cmd
+
+ if use python; then
+ python_copy_sources
+ python_foreach_impl python_compile
+ fi
+
+ use doc && emake doc
+}
+
+python_compile() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ emake "${EMAKE_FLAGS[@]}" \
+ PYTHON_VERS="${EPYTHON}" \
+ PYTHON_PKGCONFIG_VERS="${EPYTHON//python/python-}" \
+ python_dir=$(python_get_sitedir)/${PN} \
+ python ctracecmd.so
+
+ popd > /dev/null || die
+}
+
+src_test() {
+ emake "${EMAKE_FLAGS[@]}" test
+}
+
+src_install() {
+ emake "${EMAKE_FLAGS[@]}" NO_PYTHON=1 \
+ DESTDIR="${D}" \
+ install install_libs
+
+ newbashcomp tracecmd/trace-cmd.bash "${PN}"
+
+ use doc && emake DESTDIR="${D}" install_doc
+ use python && python_foreach_impl python_install
+}
+
+python_install() {
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ emake "${EMAKE_FLAGS[@]}" DESTDIR="${D}" \
+ PYTHON_VERS="${EPYTHON}" \
+ PYTHON_PKGCONFIG_VERS="${EPYTHON//python/python-}" \
+ python_dir=$(python_get_sitedir)/${PN} \
+ install_python
+
+ popd > /dev/null || die
+
+ python_optimize
+}