summaryrefslogtreecommitdiff
path: root/dev-util
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util')
-rw-r--r--dev-util/aruba/Manifest1
-rw-r--r--dev-util/aruba/aruba-2.3.3.ebuild71
-rw-r--r--dev-util/itstool/itstool-2.0.7_p20250326.ebuild2
-rw-r--r--dev-util/perf/Manifest1
-rw-r--r--dev-util/perf/perf-6.18.ebuild336
-rw-r--r--dev-util/uftrace/Manifest1
-rw-r--r--dev-util/uftrace/uftrace-0.18.1.ebuild71
7 files changed, 482 insertions, 1 deletions
diff --git a/dev-util/aruba/Manifest b/dev-util/aruba/Manifest
index 36d1dcb74f6e..76ad8592927f 100644
--- a/dev-util/aruba/Manifest
+++ b/dev-util/aruba/Manifest
@@ -2,3 +2,4 @@ DIST aruba-2.2.0.tar.gz 130616 BLAKE2B f2f359d5ba79232e575a240e6d278b936f17d532d
DIST aruba-2.3.0.tar.gz 129322 BLAKE2B 024e9dd2a1b028111806dacb97178bd143e7d109b86641cbf5499298315e177dcd89faa62b655069956f3b85908c772f3188729b99c9b2701acfd7d14590292b SHA512 771fcb99f0ace5961343c75a7575383014a22393f9eafaa7a04fa58da93c499dbd60574f47d1484342202fd25af6e50920de6108b22ffd88407add3add8c6625
DIST aruba-2.3.1.tar.gz 129489 BLAKE2B 7f63c6660de98321c90e005eea32e96b9ca307e4942672327ab878acde36d573378301f4c3a7fe6b7fa776754c91f7b652ea85e9a24d98c28cba568abd651307 SHA512 be3fa85fc6f86e2cf31ef239ebb485869cdd49350aaa9f4df842f3682b5b76cf373cb94204b98f59eb3a143588cd075fcc63311417e1a452a0608e88375e0922
DIST aruba-2.3.2.tar.gz 129734 BLAKE2B 48f9a2b4a31b12d9fc33ec87dfd992775b4df40351b2d099da36ca79214fab18a8669ec2cd79cd321cc6e5daa75202ba7c6aae143218782539ab4cee7336e4fe SHA512 46a0143b6368c70407fd1f1f6998f3f36a2f046bcf2b15c85ab68598edbfd0081e1a65c65c23a5ae757fb48499e7ef3a5d0a7751414e8d8bf80dc90f13933c80
+DIST aruba-2.3.3.tar.gz 129792 BLAKE2B 70e38575c5c88b26ad8d826df6f87a6cbd4a14f4e56975e9b15caac6f72826e167c5c7ff08fe57292bb255dd194e4c6b3e0d8ab31b3a737131f503ee9c91bd9e SHA512 3b643e9e13ce31c73967b41629755b3270fd007d5bc66abfbf34465aa458a655d3eaa223e6769e37d3c75ebf2ae03ccf0972b5a7f076cbe69571317c5d6f560c
diff --git a/dev-util/aruba/aruba-2.3.3.ebuild b/dev-util/aruba/aruba-2.3.3.ebuild
new file mode 100644
index 000000000000..594bcd78bda2
--- /dev/null
+++ b/dev-util/aruba/aruba-2.3.3.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34"
+
+RUBY_FAKEGEM_RECIPE_TEST="cucumber"
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+RUBY_FAKEGEM_BINDIR="exe"
+
+RUBY_FAKEGEM_GEMSPEC="aruba.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Cucumber steps for driving out command line applications"
+HOMEPAGE="https://github.com/cucumber/aruba"
+SRC_URI="https://github.com/cucumber/aruba/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="MIT"
+
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="test? ( app-alternatives/bc )"
+
+ruby_add_rdepend "
+ >=dev-ruby/bundler-1.17
+ >=dev-ruby/contracts-0.16.0 <dev-ruby/contracts-0.18
+ >=dev-util/cucumber-8.0 <dev-util/cucumber-11
+ >=dev-ruby/rspec-expectations-3.4:3
+ dev-ruby/thor:1
+"
+
+ruby_add_bdepend "test? ( >=dev-ruby/appraisal-2.4:2 dev-ruby/pry dev-ruby/rspec:3 )"
+
+all_ruby_prepare() {
+ # Remove bundler-related code.
+ sed -i -e '/[Bb]undler/d' Rakefile spec/spec_helper.rb || die
+ #rm Gemfile || die
+
+ sed -i -e '/simplecov/I s:^:#:' \
+ -e '/Before/,/^end/ s:^:#:' \
+ spec/spec_helper.rb features/support/env.rb || die
+ rm -f features/support/simplecov_setup.rb || die
+
+ sed -e "s:_relative ': './:" \
+ -e 's/git ls-files -z/find * -print0/' \
+ -e '/\(kramdown\|pry-doc\|rake-manifest\|rubocop\|simplecov\|yard-junk\)/ s:^:#:' \
+ -i ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ # Avoid features with minor output differences
+ sed -e '/Use .aruba. with .Minitest./i\ @wip' \
+ -i features/01_getting_started_with_aruba/supported_testing_frameworks.feature || die
+ sed -e '/Create files for Minitest/i\ @wip' \
+ -i features/06_use_aruba_cli/initialize_project_with_aruba.feature || die
+ rm -f features/03_testing_frameworks/cucumber/steps/command/wait_for_output_of_command.feature || die
+
+ # Avoid feature that requires aruba to be installed already
+ rm -r features/03_testing_frameworks/cucumber/disable_bundler.feature || die
+
+ # Avoid feature that makes assumptions about physical block size
+ # that we cannot guarantee, bug #935294
+ rm -f features/04_aruba_api/filesystem/report_disk_usage.feature || die
+}
+
+each_ruby_test() {
+ RSPEC_VERSION=3 ruby-ng_rspec
+ RUBYLIB="$(pwd)/lib" ruby-ng_cucumber --tags "not @wip"
+}
diff --git a/dev-util/itstool/itstool-2.0.7_p20250326.ebuild b/dev-util/itstool/itstool-2.0.7_p20250326.ebuild
index d6026e5170ad..6c29c23da9a5 100644
--- a/dev-util/itstool/itstool-2.0.7_p20250326.ebuild
+++ b/dev-util/itstool/itstool-2.0.7_p20250326.ebuild
@@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-${COMMIT}"
# files in /usr/share/itstool/its are under a special exception || GPL-3+
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-util/perf/Manifest b/dev-util/perf/Manifest
index c76b2c10a3a6..49e0247a9165 100644
--- a/dev-util/perf/Manifest
+++ b/dev-util/perf/Manifest
@@ -1,3 +1,4 @@
DIST linux-6.14.tar.xz 149408504 BLAKE2B 11835719804b406fe281ea1c276a84dc0cbaa808552ddcca9233d3eaeb1c001d0455c7205379b02de8e8db758c1bae6fe7ceb6697e63e3cf9ae7187dc7a9715e SHA512 71dcaa3772d8d9797c3ae30cae9c582b11a7047a3bbcb8dfd479a4dffb40ff0da74cf3d45175f50cc9992e338bcadd46c9c570f54054ca3bde6661768d3d22eb
DIST linux-6.16.tar.xz 152620004 BLAKE2B 87bc4da7e89cc8265aebffea7ec6c09f711be24fee87cb1c03a264c03fd5a538d66aa806640835aa5103926e612cdfbc52d7c861d7f7065f1a8bb11d893b0921 SHA512 55a00f89ad6db6db2e26ff5dc5cfc96bbf6654e5bd5d17d2a3b944a47640367e54139716d230923187bebc6cb7756edc9511a620fb8abc6f32c50a658a734784
DIST linux-6.17.tar.xz 153382068 BLAKE2B 0edb2324be5638aa75984128aafdba3e50824187d2fcdff8794eab99d85c10c3a17d1e840053c2c83df5ee11fdf69f1c9452c57ecc9dae01c4af38180fe7821a SHA512 063999d7b819970657f6b7713fdb4173da2065ffdeed7cae197026dbb1edfd7f1d50374f073a1e19ef9686539594824ff6ecb8a930d97c4f272cb12f1c6d8355
+DIST linux-6.18.tar.xz 154309096 BLAKE2B b94b7b9bf18aca0c3e50baf79b009a1448fc6cd9c3ee019f641cc247dcf53a4abef4274ee0608ad8cd4943af69854363a95d26e117ff23620bb07dccb158859f SHA512 88599ffdec96d150c1feb9b261ba93bb0301a9d0e1ad6bef7aeab1f5372cbfc57d8b43c7e902bd8f76921d1dbd8189663c142ea869e51d0e2b483b150ee00fe0
diff --git a/dev-util/perf/perf-6.18.ebuild b/dev-util/perf/perf-6.18.ebuild
new file mode 100644
index 000000000000..584037462fc0
--- /dev/null
+++ b/dev-util/perf/perf-6.18.ebuild
@@ -0,0 +1,336 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( {18..21} )
+PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t)
+inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-single-r1
+
+DESCRIPTION="Userland tools for Linux Performance Counters"
+HOMEPAGE="https://perfwiki.github.io/main/"
+
+LINUX_V="${PV:0:1}.x"
+if [[ ${PV} == *_rc* ]] ; then
+ LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1))
+ PATCH_VERSION=$(ver_cut 1-3)
+ LINUX_PATCH=patch-${PV//_/-}.xz
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH}
+ https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}"
+elif [[ ${PV} == *.*.* ]] ; then
+ # stable-release series
+ LINUX_VER=$(ver_cut 1-2)
+ LINUX_PATCH=patch-${PV}.xz
+ SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}"
+else
+ LINUX_VER=${PV}
+fi
+
+LINUX_SOURCES="linux-${LINUX_VER}.tar.xz"
+SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}"
+
+S_K="${WORKDIR}/linux-${LINUX_VER}"
+S="${S_K}/tools/perf"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc unwind"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+"
+
+# setuptools (and Python) are always needed even if not building Python bindings
+BDEPEND="
+ ${LINUX_PATCH+dev-util/patchutils}
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ app-alternatives/yacc
+ app-alternatives/lex
+ sys-apps/which
+ virtual/pkgconfig
+ app-text/asciidoc
+ app-text/sgml-common
+ app-text/xmlto
+ sys-process/time
+"
+
+RDEPEND="
+ babeltrace? ( dev-util/babeltrace:0/1 )
+ bpf? (
+ dev-libs/libbpf
+ dev-util/bpftool
+ dev-util/pahole
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}=
+ llvm-core/llvm:${LLVM_SLOT}=
+ ')
+ )
+ caps? ( sys-libs/libcap )
+ capstone? ( dev-libs/capstone )
+ crypt? ( dev-libs/openssl:= )
+ gtk? ( x11-libs/gtk+:2 )
+ java? ( virtual/jre:* )
+ libpfm? ( dev-libs/libpfm:= )
+ libtraceevent? ( dev-libs/libtraceevent )
+ libtracefs? ( dev-libs/libtracefs )
+ lzma? ( app-arch/xz-utils )
+ numa? ( sys-process/numactl )
+ perl? ( dev-lang/perl:= )
+ python? ( ${PYTHON_DEPS} )
+ slang? ( sys-libs/slang )
+ systemtap? ( dev-debug/systemtap )
+ tcmalloc? ( dev-util/google-perftools )
+ unwind? ( sys-libs/libunwind:= )
+ app-arch/zstd:=
+ dev-libs/elfutils
+ virtual/zlib:=
+ virtual/libcrypt
+"
+
+DEPEND="${RDEPEND}
+ >=sys-kernel/linux-headers-5.10
+ java? ( virtual/jdk )
+"
+
+QA_FLAGS_IGNORED=(
+ 'usr/bin/perf-read-vdso32' # not linked with anything except for libc
+ 'usr/libexec/perf-core/dlfilters/.*' # plugins
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="
+ ~!SCHED_OMIT_FRAME_POINTER
+ ~DEBUG_INFO
+ ~FRAME_POINTER
+ ~FTRACE
+ ~FTRACE_SYSCALLS
+ ~FUNCTION_TRACER
+ ~KALLSYMS
+ ~KALLSYMS_ALL
+ ~KPROBES
+ ~KPROBE_EVENTS
+ ~PERF_EVENTS
+ ~STACKTRACE
+ ~TRACEPOINTS
+ ~UPROBES
+ ~UPROBE_EVENTS
+ "
+
+ use bpf && llvm-r1_pkg_setup
+ # We enable python unconditionally as libbpf always generates
+ # API headers using python script
+ python_setup
+
+ if use bpf ; then
+ CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT ~UNWINDER_FRAME_POINTER"
+ fi
+
+ linux-info_pkg_setup
+}
+
+# src_unpack and src_prepare are copied to dev-util/bpftool since
+# it's building from the same tarball, please keep it in sync with bpftool
+src_unpack() {
+ local paths=(
+ 'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*'
+ 'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*'
+ 'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*'
+ 'tools/scripts/*'
+ )
+
+ # We expect the tar implementation to support the -j option (both
+ # GNU tar and libarchive's tar support that).
+ echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}"
+ gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \
+ "${paths[@]/#/linux-${LINUX_VER}/}" || die
+
+ if [[ -n ${LINUX_PATCH} ]] ; then
+ eshopts_push -o noglob
+ ebegin "Filtering partial source patch"
+ xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch
+ assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed"
+ eend $? || die "filterdiff failed"
+ test -s ${P}.patch || die "patch is empty?!"
+ eshopts_pop
+ fi
+
+ local a
+ for a in ${A}; do
+ [[ ${a} == ${LINUX_SOURCES} ]] && continue
+ [[ ${a} == ${LINUX_PATCH} ]] && continue
+ unpack ${a}
+ done
+}
+
+src_prepare() {
+ default
+ if [[ -n ${LINUX_PATCH} ]] ; then
+ pushd "${S_K}" >/dev/null || die
+ eapply "${WORKDIR}"/${P}.patch
+ popd || die
+ fi
+
+ pushd "${S_K}" >/dev/null || die
+ # Gentoo patches go here
+ popd || die
+
+ # Drop some upstream too-developer-oriented flags and fix the
+ # Makefile in general
+ sed -i \
+ -e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \
+ "${S}"/Makefile.perf || die
+ # A few places still use -Werror w/out $(WERROR) protection.
+ sed -i -e 's@-Werror@@' \
+ "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \
+ "${S_K}"/tools/lib/perf/Makefile || die
+
+ # Avoid the call to make kernelversion
+ sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die
+ echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE
+
+ # The code likes to compile local assembly files which lack ELF markings.
+ find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} +
+}
+
+puse() { usex $1 "" 1; }
+perf_make() {
+ # The arch parsing is a bit funky. The perf tools package is integrated
+ # into the kernel, so it wants an ARCH that looks like the kernel arch,
+ # but it also wants to know about the split value -- i386/x86_64 vs just
+ # x86. We can get that by telling the func to use an older linux version.
+ # It's kind of a hack, but not that bad ...
+
+ # LIBDIR sets a search path of perf-gtk.so. Bug 515954
+
+ local arch=$(tc-arch-kernel)
+ local java_dir
+ use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm"
+
+ # sync this with the whitelist in tools/perf/Makefile.config
+ local disable_libdw
+ if ! use amd64 && ! use x86 && \
+ ! use arm && \
+ ! use arm64 && \
+ ! use ppc && ! use ppc64 \
+ ! use s390 && \
+ ! use riscv && \
+ ! use loong
+ then
+ disable_libdw=1
+ fi
+
+ # perf directly invokes LD for linking without going through CC, on mips
+ # it is required to specify the emulation. port of below buildroot patch
+ # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/
+ local linker="$(tc-getLD)"
+ if use mips
+ then
+ if use big-endian
+ then
+ use abi_mips_n64 && linker+=" -m elf64btsmip"
+ use abi_mips_n32 && linker+=" -m elf32btsmipn32"
+ use abi_mips_o32 && linker+=" -m elf32btsmip"
+ else
+ use abi_mips_n64 && linker+=" -m elf64ltsmip"
+ use abi_mips_n32 && linker+=" -m elf32ltsmipn32"
+ use abi_mips_o32 && linker+=" -m elf32ltsmip"
+ fi
+ fi
+
+ # FIXME: NO_CORESIGHT
+ local emakeargs=(
+ V=1 VF=1
+ HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)"
+ CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)"
+ CLANG="${CHOST}-clang"
+ PKG_CONFIG="$(tc-getPKG_CONFIG)"
+ prefix="${EPREFIX}/usr" bindir_relative="bin"
+ tipdir="share/doc/${PF}"
+ EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}"
+ EXTRA_LDFLAGS="${LDFLAGS}"
+ ARCH="${arch}"
+ BUILD_BPF_SKEL=$(usex bpf 1 "")
+ BUILD_NONDISTRO=
+ JDIR="${java_dir}"
+ CORESIGHT=
+ GTK2=$(usex gtk 1 "")
+ feature-gtk2-infobar=$(usex gtk 1 "")
+ LIBPERL=$(usex perl 1 "")
+ NO_AUXTRACE=
+ NO_BACKTRACE=
+ NO_CAPSTONE=$(puse capstone)
+ NO_DEMANGLE=
+ NO_JVMTI=$(puse java)
+ NO_LIBAUDIT=1
+ NO_LIBBABELTRACE=$(puse babeltrace)
+ NO_LIBBIONIC=1
+ NO_LIBBPF=$(puse bpf)
+ NO_LIBCAP=$(puse caps)
+ NO_LIBCRYPTO=$(puse crypt)
+ NO_LIBDW_DWARF_UNWIND="${disable_libdw}"
+ NO_LIBELF=
+ NO_LIBLLVM=$(puse bpf)
+ NO_LIBNUMA=$(puse numa)
+ NO_LIBPFM4=$(puse libpfm)
+ NO_LIBPYTHON=$(puse python)
+ NO_LIBTRACEEVENT=$(puse libtraceevent)
+ NO_LIBUNWIND=$(puse unwind)
+ NO_SDT=$(puse systemtap)
+ NO_SHELLCHECK=1
+ NO_SLANG=$(puse slang)
+ NO_LZMA=$(puse lzma)
+ NO_ZLIB=
+ TCMALLOC=$(usex tcmalloc 1 "")
+ WERROR=0
+ DEBUG=$(usex debug 1 "")
+ libdir="${EPREFIX}/usr/$(get_libdir)"
+ LIBDIR="${EPREFIX}/usr/libexec/perf-core"
+ "$@"
+ )
+ NO_JEVENTS=$(puse python) emake "${emakeargs[@]}"
+}
+
+src_compile() {
+ filter-lto
+
+ # capstone-6 compatibility (#964350)
+ append-cppflags -DCAPSTONE_AARCH64_COMPAT_HEADER -DCAPSTONE_SYSTEMZ_COMPAT_HEADER
+
+ perf_make -f Makefile.perf
+ perf_make -C Documentation man
+}
+
+src_test() {
+ :
+}
+
+src_install() {
+ perf_make -f Makefile.perf install DESTDIR="${D}"
+
+ if use python; then
+ perf_make -f Makefile.perf install-python_ext DESTDIR="${D}"
+ fi
+
+ if use gtk; then
+ local libdir
+ libdir="$(get_libdir)"
+ # on some arches it ends up in lib even on 64bit, ppc64 for instance.
+ [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib"
+ mv "${ED}"/usr/${libdir}/libperf-gtk.so \
+ "${ED}"/usr/libexec/perf-core || die
+ fi
+
+ dodoc CREDITS
+
+ dodoc *txt Documentation/*.txt
+
+ # perf needs this decompressed to print out tips for users
+ docompress -x /usr/share/doc/${PF}/tips.txt
+
+ doman Documentation/*.1
+}
diff --git a/dev-util/uftrace/Manifest b/dev-util/uftrace/Manifest
index 70215d00da0c..bb434db88147 100644
--- a/dev-util/uftrace/Manifest
+++ b/dev-util/uftrace/Manifest
@@ -1,2 +1,3 @@
DIST uftrace-0.17.tar.gz 1164457 BLAKE2B 7e9ed9af07d9f2ca8b78d7b7651408f5065917207c57855e6486c6d0d8acdaf3f87096a789f74e4458705c2fd59393fb6973f8e43750bc0bb4e3ab56268e6177 SHA512 b76ac32e68b474522f7d9c470940093bc37cf5d3d2d119d10ffad2954262e83c4092f593f307a41c765a6975416bfc62b844436a4d1888639741eb328e16e1d8
+DIST uftrace-0.18.1.tar.gz 1173722 BLAKE2B 2185205b0cbaafcb497adce672611f5bc28c6dbecd02b757fc5f2ee3c5d9967ac8aa539c66dc106e40ad3e19adce33e984da4dd6aa336a45c8bec9396f53f7dd SHA512 372b7ab0f9b87904493c21e58497d886c212708129334203c11bce1a86da212d2b44f6c66a12d813bab5ab581c866a114d34ffbc403089497942142c7bfb8315
DIST uftrace-0.18.tar.gz 1173673 BLAKE2B 866e4489e482b60fc487de77dfcb5cb1c4733c7e1d5a4fa43728fd1d7129ff53c6dcce493ca7478a554cfba5462c7e457d7fb3d8046cf4804963c6521e1f246d SHA512 07b3559248698c9c5155a6a97e0781b1f16778e773f3522d7f9b553998e69285ddb69e29be9e271c439edd95adb6a12fa57967015716c3e450498f6835b7c613
diff --git a/dev-util/uftrace/uftrace-0.18.1.ebuild b/dev-util/uftrace/uftrace-0.18.1.ebuild
new file mode 100644
index 000000000000..c76410332fed
--- /dev/null
+++ b/dev-util/uftrace/uftrace-0.18.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( luajit )
+PYTHON_COMPAT=( python3_{11..14} ) # fails to compile with python3.13t
+
+inherit bash-completion-r1 lua-single python-single-r1 toolchain-funcs
+
+DESCRIPTION="Function (graph) tracer for user-space"
+HOMEPAGE="https://github.com/namhyung/uftrace"
+SRC_URI="https://github.com/namhyung/uftrace/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="capstone lua python unwind"
+
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+RESTRICT="test"
+
+RDEPEND="
+ sys-libs/ncurses:=
+ virtual/libelf:=
+ capstone? ( dev-libs/capstone:0= )
+ lua? ( ${LUA_DEPS} )
+ python? ( ${PYTHON_DEPS} )
+ unwind? ( sys-libs/libunwind:= )
+"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+ sed -i -e "s/ARCH/MYARCH/g" -e "/ldconfig/d" -e "/bash.completion/d" Makefile || die
+ sed -i -e '/PYTHON_LDFLAGS/{s/$(PYTHON_LDFLAGS)/$(COMMON_LDFLAGS) $(PYTHON_LDFLAGS)/g; p}' Makefile || die
+}
+
+src_configure() {
+ local myconf=(
+ --libdir="${EPREFIX}/usr/$(get_libdir)/uftrace"
+ $(use_with capstone)
+ $(use_with unwind libunwind)
+ $(use_with python libpython)
+ )
+ if use lua && use lua_single_target_luajit; then
+ myconf+=(
+ --with-libluajit
+ )
+ else
+ myconf+=(
+ --without-libluajit
+ )
+ fi
+ CC="$(tc-getCC)" LD="$(tc-getLD)" econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ default
+
+ dodoc doc/*.{md,gif,png}
+ newbashcomp misc/bash-completion.sh uftrace
+}