diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 16:47:34 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 16:47:34 -0500 |
| commit | dda948891d3731927b821ce31f9d9a2d03ba20c5 (patch) | |
| tree | 99cd40be4cbb0606260da212cd81b8ab2db9da9b /dev-debug | |
| parent | a3ceca1b4c0d9bdb550dc23f06ffbb5a8e033bc7 (diff) | |
| download | baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.gz baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.xz baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.zip | |
Adding metadata
Diffstat (limited to 'dev-debug')
178 files changed, 11248 insertions, 0 deletions
diff --git a/dev-debug/apitrace/Manifest b/dev-debug/apitrace/Manifest new file mode 100644 index 000000000000..269c07922d3e --- /dev/null +++ b/dev-debug/apitrace/Manifest @@ -0,0 +1,2 @@ +DIST apitrace-13.0-libbacktrace-d4bdca038e8685af3043683a881af37489fc1827.tar.gz 683938 BLAKE2B b9cf6ac161ac3babd769acefaf73567a196ffac5658c18cf0cb0f5b5ff153f074e9ac58b7caf08d5ec0bafe2170ced6c96483ddc01f1d4d2713fd90292b6f993 SHA512 d0ff3edd37d40cfe2f0615c8369992a02e9bb579694806bf8faf8c942b25367bdf74cd73f07affbaa2decf27130f49d1663553102e7bc205fc4cd49c72ea15ef +DIST apitrace-13.0.tar.gz 2274587 BLAKE2B 5d28db7a5ee0f4798c14c017c2b35294e1758490b0b277b8011eff0405124f23e71c571cf41613326d47736ec5173b8db8d2dfe16610db29c2339b09ca4632bc SHA512 8a8c5b69722cc2eca8ff3e0b30282b0c134f03a55a6a2383750d9842015e3b3cf6265b8831245aa686e806796cb9a52685a41c1d212f6c9fbb0ae5e3c1b066cf diff --git a/dev-debug/apitrace/apitrace-13.0.ebuild b/dev-debug/apitrace/apitrace-13.0.ebuild new file mode 100644 index 000000000000..730e0f481cd9 --- /dev/null +++ b/dev-debug/apitrace/apitrace-13.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +inherit cmake-multilib multilib optfeature python-single-r1 + +DESCRIPTION="Tool for tracing, analyzing, and debugging graphics APIs" +HOMEPAGE="https://github.com/apitrace/apitrace" +# Newer than the submodule commit from 13.0, but this commit includes a patch for tests. +# See #738888 +BACKTRACE_COMMIT="d4bdca038e8685af3043683a881af37489fc1827" +SRC_URI=" + https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz + https://github.com/ianlancetaylor/libbacktrace/archive/${BACKTRACE_COMMIT}.tar.gz + -> ${P}-libbacktrace-${BACKTRACE_COMMIT}.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~x86" +IUSE="gui test X" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +DEPEND="${PYTHON_DEPS} + app-arch/brotli:=[${MULTILIB_USEDEP}] + app-arch/snappy:=[${MULTILIB_USEDEP}] + media-libs/libpng:0=[${MULTILIB_USEDEP}] + media-libs/waffle[${MULTILIB_USEDEP}] + virtual/zlib:=[${MULTILIB_USEDEP}] + gui? ( dev-qt/qtbase:6[-gles2-only,gui,widgets] ) + X? ( x11-libs/libX11 ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( dev-cpp/gtest ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.0-disable-multiarch.patch + "${FILESDIR}"/${PN}-12.0-unbundle.patch +) + +src_prepare() { + sed -e "s:0.0-unknown:${PV}:" -i cmake/GenerateVersion.cmake || die + + # still 3rd libs: khronos, crc32c and md5-compat + rm -r $(find thirdparty -mindepth 1 -maxdepth 1 \ + ! -name crc32c \ + ! -name khronos \ + ! -name md5 \ + ! -name support \ + -type d -print) || die + + mv "${WORKDIR}"/libbacktrace-${BACKTRACE_COMMIT} thirdparty/libbacktrace || die + + cmake_src_prepare +} + +multilib_src_configure() { + local mycmakeargs=( + -DBUILD_TESTING=$(usex test) + -DDOC_INSTALL_DIR="${EPREFIX}"/usr/share/doc/${PF} + -DENABLE_X11=$(usex X) + -DENABLE_EGL=ON + -DENABLE_CLI=ON + -DENABLE_GUI=$(multilib_native_usex gui) + -DENABLE_QT6=$(multilib_native_usex gui) + -DENABLE_STATIC_SNAPPY=OFF + -DENABLE_WAFFLE=ON + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake_src_configure +} + +src_install() { + MULTILIB_CHOST_TOOLS=( + /usr/bin/apitrace$(get_exeext) + /usr/bin/eglretrace$(get_exeext) + /usr/bin/gltrim$(get_exeext) + ) + use X && MULTILIB_CHOST_TOOLS+=( /usr/bin/glretrace$(get_exeext) ) + + cmake-multilib_src_install + + make_libegl_symlinks() { + dosym egltrace.so /usr/$(get_libdir)/${PN}/wrappers/libEGL.so + dosym egltrace.so /usr/$(get_libdir)/${PN}/wrappers/libEGL.so.1 + } + multilib_foreach_abi make_libegl_symlinks + + make_libgl_symlinks() { + dosym glxtrace.so /usr/$(get_libdir)/${PN}/wrappers/libGL.so + dosym glxtrace.so /usr/$(get_libdir)/${PN}/wrappers/libGL.so.1 + dosym glxtrace.so /usr/$(get_libdir)/${PN}/wrappers/libGL.so.1.2 + } + use X && multilib_foreach_abi make_libgl_symlinks +} + +pkg_postinst() { + optfeature "retracediff.py: side by side retracing" "dev-python/pillow" "dev-python/numpy" + optfeature "snapdiff.py: image comparison scripts" "dev-python/pillow" +} diff --git a/dev-debug/apitrace/files/apitrace-12.0-unbundle.patch b/dev-debug/apitrace/files/apitrace-12.0-unbundle.patch new file mode 100644 index 000000000000..03467714e2c8 --- /dev/null +++ b/dev-debug/apitrace/files/apitrace-12.0-unbundle.patch @@ -0,0 +1,30 @@ +diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt +index 34eb7f7..5fbd073 100644 +--- a/thirdparty/CMakeLists.txt ++++ b/thirdparty/CMakeLists.txt +@@ -16,25 +16,6 @@ function (include_with_scope) + include (${ARGV}) + endfunction () + +-set (SUBMODULES_MISSING FALSE) +-foreach (path IN ITEMS +- brotli/LICENSE +- gtest/LICENSE +- libbacktrace/LICENSE +- libpng/LICENSE +- snappy/COPYING +- zlib/README +- directxmath/LICENSE +-) +- if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${path}") +- message (SEND_ERROR "error: ${CMAKE_CURRENT_SOURCE_DIR}/${path} does not exist") +- set (SUBMODULES_MISSING TRUE) +- endif () +-endforeach () +-if (SUBMODULES_MISSING) +- message (FATAL_ERROR "Update Git submodules by running\ngit submodule update --init --depth 1 --recursive") +-endif () +- + if (ENABLE_STATIC_SNAPPY OR NOT Snappy_FOUND) + message (STATUS "Using bundled Snappy") + include_with_scope (snappy.cmake) diff --git a/dev-debug/apitrace/files/apitrace-9.0-disable-multiarch.patch b/dev-debug/apitrace/files/apitrace-9.0-disable-multiarch.patch new file mode 100644 index 000000000000..37085b1ae299 --- /dev/null +++ b/dev-debug/apitrace/files/apitrace-9.0-disable-multiarch.patch @@ -0,0 +1,53 @@ +From 556397e399994b005524b88171c9c103b8cc1b25 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Mon, 29 Apr 2019 20:32:04 +0200 +Subject: [PATCH] Use CMAKE_INSTALL_LIBDIR for LIB_INSTALL_DIR + +Respect the libdir cmake already set up for us instead of using +debian-specific multiarch paths. + +Patch was rebased multiple times from 4.0 to 9.0 now. + +Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> +--- + CMakeLists.txt | 17 ++--------------- + 1 file changed, 2 insertions(+), 15 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 19316e60..6c3c4b85 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -438,15 +438,6 @@ endif () + ############################################################################## + # Installation directories + +-if (CMAKE_SYSTEM_NAME STREQUAL "Linux") +- # Debian multiarch support +- execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH +- OUTPUT_VARIABLE ARCH_SUBDIR +- ERROR_QUIET +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +-endif() +- + if (WIN32 OR APPLE) + # On Windows/MacOSX, applications are usually installed on a directory of + # their own +@@ -455,12 +446,8 @@ if (WIN32 OR APPLE) + set (LIB_ARCH_INSTALL_DIR lib) + else () + set (DOC_DEFAULT_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME}) +- set (LIB_INSTALL_DIR lib${LIB_SUFFIX}/${CMAKE_PROJECT_NAME}) +- if (ARCH_SUBDIR) +- set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME}) +- else () +- set (LIB_ARCH_INSTALL_DIR lib${LIB_SUFFIX}/${CMAKE_PROJECT_NAME}) +- endif () ++ set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}) ++ set (LIB_ARCH_INSTALL_DIR ${LIB_INSTALL_DIR}) + endif () + + # Allow customization of the doc installation dir (Slackware uses different +-- +2.24.1 + diff --git a/dev-debug/apitrace/metadata.xml b/dev-debug/apitrace/metadata.xml new file mode 100644 index 000000000000..5f33304011d5 --- /dev/null +++ b/dev-debug/apitrace/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/bpftrace/Manifest b/dev-debug/bpftrace/Manifest new file mode 100644 index 000000000000..81369d914bf0 --- /dev/null +++ b/dev-debug/bpftrace/Manifest @@ -0,0 +1,7 @@ +DIST bpftrace-0.24.2-man.tar.xz 43820 BLAKE2B b0964633f4c1a462874f20934c286c321307a4abf79ebebaf085396e545a119f39f46f35b597921a61a5707a6cad5b368788ca8db682dee0eb916fc8a65b5520 SHA512 5a64c875400ede0050ee13f00351e06f72aeb8d8ce0db6933ac9c9f93023388218dd5fd62db7fd24370ddadbe390c6efa71692afd2e55b7f5755e4816f4832eb +DIST bpftrace-0.24.2.tar.gz 1375106 BLAKE2B c397eb7ded3a72ea0805487db66f422bda9a0a743b1757056dc1bc70119e2d4fa7e69577a7e295143ce2b9789c62c4469b995ac0dca228c464efb3db8da25eeb SHA512 d9ff773ce39b578877d5e73a48434d3654b46985bb4b9ad458fbf622718049da5075b3a2d2e6d1ae0a9effbdb74658822b4c4535bca384fbd6e539fdec393f4b +DIST bpftrace-0.25.0-man.tar.xz 44292 BLAKE2B e3ad8255b74836c9947595cd3c39caa201ccc420e573376ea7a144c499f4f74349911df87618f98a877d797b6d3b0c54f0117292537d03e184d2669b8a1331a5 SHA512 343fadffec5d2a6f702e2fe67087718c909f32cd6440dabc0fa93d2c0b8264ceda7d7a1eee7f79b4be2365318170c4eff7582453ec8ff4e15343ce2cb056b2ea +DIST bpftrace-0.25.1-man.tar.xz 44300 BLAKE2B 54ed5e0e04f74d7c310d14a2d624238d9d7f42a4abab101272693caf714020bb420a221793ea8bef0bd1490cd47e6cc87ed4e75d187c7127c99b2ef771df208a SHA512 d9b28a4e4705714ba38af0dcda6eb78379cb44da5dd2de47cca1061bc2b020b97aca4fd09cb734932a5f925b31b34aa266e4ff2a54ac438715543c054340cd8d +DIST bpftrace-0.25.1.tar.gz 1486111 BLAKE2B f2b9f2f9d44faa47f846c3c14800424d27dca0d210672cc03f60e5aadfe789fb4842bddfca4a4d73b3714a8d817710cedb66b055f8477e58f1202b64a188a444 SHA512 abe7bfab906894de889c958020b2dcc65bdc0b5c3d8986846ef41a9d593ca16075632916cf281154630221c6e511a11e3139a09bb641570277a44bd47299bbe6 +DIST bpftrace-0.26.1-man.tar.xz 44680 BLAKE2B 21e0c4492b1885f24fdd91c814a5144326c0e7491b07dd1dfcc4f139842d4094371a179842a6d0cfc5666e3cb4e631138ecdaf56e8ba64b001046ce934294ba2 SHA512 653a0877eb4ff74f17adf7688490c3afb63a264cf9fe3f64d3ec7437f2a51ee7dd21a254277cba677fa6fac8cff836d25e94199ee5ac8ef3152eedee38fbf707 +DIST bpftrace-0.26.1.tar.gz 1549419 BLAKE2B f9be88f6767de8752d46377f2833a511972166fc2d857fc11c16264e40f42cd39f12f9a8e04e0c8b9b8a3f11b1c4df17b002acbadbf30658d01494bdb206818b SHA512 2b2f052b742317b991b2e267881167ec58f0b7fa24574950f090d237665930a7ddfaa26e9a9f03eb3db01ab111a99ecb8f4b41f1c944b6f1df0218f109bfe72d diff --git a/dev-debug/bpftrace/bpftrace-0.24.2.ebuild b/dev-debug/bpftrace/bpftrace-0.24.2.ebuild new file mode 100644 index 000000000000..ea57a4ba3a3f --- /dev/null +++ b/dev-debug/bpftrace/bpftrace-0.24.2.ebuild @@ -0,0 +1,159 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {17..21} ) +RUST_MIN_VER="1.85.1" +RUST_OPTIONAL=1 + +inherit cmake flag-o-matic linux-info llvm-r1 rust + +DESCRIPTION="High-level tracing language for eBPF" +HOMEPAGE="https://github.com/bpftrace/bpftrace" +MY_PV="${PV//_/}" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="https://github.com/bpftrace/bpftrace" + EGIT_BRANCH="release/0.24.x" + inherit git-r3 + # use a released man page for git + MAN_V="0.24.2" +else + SRC_URI="https://github.com/bpftrace/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64" + # the man page version may trail the release + #MAN_V="0.24.2" +fi + +SRC_URI+=" https://github.com/bpftrace/${PN}/releases/download/v${MAN_V:-${PV}}/man.tar.xz -> ${PN}-${MAN_V:-${PV}}-man.tar.xz" + +S="${WORKDIR}/${PN}-${MY_PV:-${PV}}" + +LICENSE="Apache-2.0" +SLOT="0" + +IUSE="pcap systemd test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/blazesym_c-0.1.1 + >=dev-libs/libbpf-1.5:= + >=dev-util/bcc-0.25.0 + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}=[llvm_targets_BPF(+)] + ') + sys-libs/binutils-libs:= + virtual/libelf:= + systemd? ( sys-apps/systemd:= ) + pcap? ( net-libs/libpcap:= ) + virtual/zlib:= +" +DEPEND=" + ${RDEPEND} + dev-libs/cereal:= + test? ( dev-cpp/gtest ) +" +BDEPEND=" + app-arch/xz-utils + app-alternatives/lex + app-alternatives/yacc + dev-libs/cereal + dev-util/bpftool + || ( dev-util/xxd app-editors/vim-core ) + test? ( + ${RUST_DEPEND} + dev-lang/go + dev-util/pahole + ) + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/0.11.4-old-kernels.patch" + "${FILESDIR}/0.21.0-dont-compress-man.patch" + "${FILESDIR}/0.24.1-enable-ubsan.patch" +) + +pkg_pretend() { + local CONFIG_CHECK=" + ~BPF + ~BPF_EVENTS + ~BPF_JIT + ~BPF_SYSCALL + ~DEBUG_INFO_BTF + ~DEBUG_INFO_BTF_MODULES + ~FTRACE_SYSCALLS + ~HAVE_EBPF_JIT + " + + check_extra_config + + if use test; then + if ! linux_config_exists ; then + die "Unable to check your kernel for BTF support: tests cannot run." + elif ! linux_chkconfig_present DEBUG_INFO_BTF ; then + die "CONFIG_DEBUG_INFO_BTF is not set: tests cannot run." + fi + fi +} + +pkg_setup() { + llvm-r1_pkg_setup + use test && rust_pkg_setup +} + +# git-r3 overrides automatic SRC_URI unpacking +src_unpack() { + default + + if [[ ${PV} == *9999* ]] ; then + git-r3_src_unpack + fi +} + +src_prepare() { + # create a usable version from git + if [[ ${PV} == *9999* ]] ; then + local rev=$(git branch --show-current | sed -e 's/* //g' -e 's/release\///g')-$(git rev-parse --short HEAD) + sed -i "/configure_file/i set (BPFTRACE_VERSION \"${rev}\")" cmake/Version.cmake || die + fi + + cmake_src_prepare +} + +src_configure() { + # suppress one remaining and benign ODR violation warning due to + # a generated libbpf header used by the tests, see: + # https://github.com/bpftrace/bpftrace/issues/4591 + use test && append-flags -Wno-odr + + local mycmakeargs=( + # DO dynamically link the bpftrace executable + -DSTATIC_LINKING=OFF + # DO NOT build the internal libs as shared + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=$(usex test) + # we use the pregenerated man page + -DENABLE_MAN=OFF + -DENABLE_SKB_OUTPUT=$(usex pcap) + -DENABLE_SYSTEMD=$(usex systemd) + ) + + # enable UBSAN only when enabled in the toolchain + if is-flagq -fsanitize=undefined; then + filter-flags -fsanitize=undefined + mycmakeargs+=( -DBUILD_UBSAN=ON ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + doman man/man8/*.? + gunzip "${WORKDIR}/man/man8/bpftrace.8.gz" || die + doman "${WORKDIR}/man/man8/bpftrace.8" +} diff --git a/dev-debug/bpftrace/bpftrace-0.25.1.ebuild b/dev-debug/bpftrace/bpftrace-0.25.1.ebuild new file mode 100644 index 000000000000..ab4ee111d39f --- /dev/null +++ b/dev-debug/bpftrace/bpftrace-0.25.1.ebuild @@ -0,0 +1,160 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..22} ) +RUST_MIN_VER="1.85.0" +RUST_OPTIONAL=1 + +inherit cmake flag-o-matic linux-info llvm-r1 rust + +DESCRIPTION="High-level tracing language for eBPF" +HOMEPAGE="https://github.com/bpftrace/bpftrace" +MY_PV="${PV//_/}" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="https://github.com/bpftrace/bpftrace" + EGIT_BRANCH="master" + inherit git-r3 + # use a released man page for git + MAN_V="0.25.0" +else + SRC_URI="https://github.com/bpftrace/bpftrace/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64" + # the man page version may trail the release + #MAN_V="0.25.0" +fi + +SRC_URI+=" https://github.com/bpftrace/bpftrace/releases/download/v${MAN_V:-${PV}}/man.tar.xz -> bpftrace-${MAN_V:-${PV}}-man.tar.xz" + +S="${WORKDIR}/${PN}-${MY_PV:-${PV}}" + +LICENSE="Apache-2.0" +SLOT="0" + +IUSE="pcap systemd test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/blazesym_c-0.1.1 + >=dev-libs/libbpf-1.6:=[static-libs] + >=dev-util/bcc-0.25.0 + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}=[llvm_targets_BPF(+)] + ') + sys-libs/binutils-libs:= + virtual/libelf:= + systemd? ( sys-apps/systemd:= ) + pcap? ( net-libs/libpcap:= ) + virtual/zlib:= +" +DEPEND=" + ${RDEPEND} + dev-libs/cereal:= + test? ( dev-cpp/gtest ) +" +BDEPEND=" + app-arch/xz-utils + app-alternatives/lex + app-alternatives/yacc + dev-libs/cereal + dev-util/bpftool + || ( dev-util/xxd app-editors/vim-core ) + test? ( + ${RUST_DEPEND} + dev-lang/go + dev-util/pahole + ) + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/0.11.4-old-kernels.patch" + "${FILESDIR}/0.21.0-dont-compress-man.patch" +) + +pkg_pretend() { + local CONFIG_CHECK=" + ~BPF + ~BPF_EVENTS + ~BPF_JIT + ~BPF_SYSCALL + ~DEBUG_INFO_BTF + ~DEBUG_INFO_BTF_MODULES + ~FTRACE_SYSCALLS + ~HAVE_EBPF_JIT + " + + check_extra_config + + if use test; then + if ! linux_config_exists ; then + die "Unable to check your kernel for BTF support: tests cannot run." + elif ! linux_chkconfig_present DEBUG_INFO_BTF ; then + die "CONFIG_DEBUG_INFO_BTF is not set: tests cannot run." + fi + fi +} + +pkg_setup() { + llvm-r1_pkg_setup + use test && rust_pkg_setup +} + +# git-r3 overrides automatic SRC_URI unpacking +src_unpack() { + default + + if [[ ${PV} == *9999* ]] ; then + git-r3_src_unpack + fi +} + +src_prepare() { + # create a usable version from git + if [[ ${PV} == *9999* ]] ; then + local rev=$(git branch --show-current | sed -e 's/* //g' -e 's/release\///g')-$(git rev-parse --short HEAD) + sed -i "/configure_file/i set (BPFTRACE_VERSION \"${rev}\")" cmake/Version.cmake || die + fi + + cmake_src_prepare +} + +src_configure() { + # suppress one remaining and benign ODR violation warning due to + # a generated libbpf header used by the tests, see: + # https://github.com/bpftrace/bpftrace/issues/4591 + use test && append-flags -Wno-odr + + local mycmakeargs=( + # DO dynamically link the bpftrace executable + -DSTATIC_LINKING=OFF + # DO NOT build the internal libs as shared + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=$(usex test) + # we use the pregenerated man page + -DENABLE_MAN=OFF + -DENABLE_SKB_OUTPUT=$(usex pcap) + -DENABLE_SYSTEMD=$(usex systemd) + # always use system libbpf + -DUSE_SYSTEM_LIBBPF=ON + ) + + # enable UBSAN only when enabled in the toolchain + if is-flagq -fsanitize=undefined; then + filter-flags -fsanitize=undefined + mycmakeargs+=( -DBUILD_UBSAN=ON ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + doman man/man8/*.? + gunzip "${WORKDIR}/man/man8/bpftrace.8.gz" || die + doman "${WORKDIR}/man/man8/bpftrace.8" +} diff --git a/dev-debug/bpftrace/bpftrace-0.26.1.ebuild b/dev-debug/bpftrace/bpftrace-0.26.1.ebuild new file mode 100644 index 000000000000..726742c759d6 --- /dev/null +++ b/dev-debug/bpftrace/bpftrace-0.26.1.ebuild @@ -0,0 +1,160 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..22} ) +RUST_MIN_VER="1.85.0" +RUST_OPTIONAL=1 + +inherit cmake flag-o-matic linux-info llvm-r2 rust + +DESCRIPTION="High-level tracing language for eBPF" +HOMEPAGE="https://github.com/bpftrace/bpftrace" +MY_PV="${PV//_/}" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="https://github.com/bpftrace/bpftrace" + EGIT_BRANCH="master" + inherit git-r3 + # use a released man page for git + MAN_V="0.25.0" +else + SRC_URI="https://github.com/bpftrace/bpftrace/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64" + # the man page version may trail the release + #MAN_V="0.25.0" +fi + +SRC_URI+=" https://github.com/bpftrace/bpftrace/releases/download/v${MAN_V:-${PV}}/man.tar.xz -> bpftrace-${MAN_V:-${PV}}-man.tar.xz" + +S="${WORKDIR}/${PN}-${MY_PV:-${PV}}" + +LICENSE="Apache-2.0" +SLOT="0" + +IUSE="pcap systemd test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/blazesym_c-0.1.1 + >=dev-libs/libbpf-1.6:=[static-libs] + >=dev-util/bcc-0.25.0 + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}=[llvm_targets_BPF(+)] + ') + sys-libs/binutils-libs:= + virtual/libelf:= + systemd? ( sys-apps/systemd:= ) + pcap? ( net-libs/libpcap:= ) + virtual/zlib:= +" +DEPEND=" + ${RDEPEND} + dev-libs/cereal:= + test? ( dev-cpp/gtest ) +" +BDEPEND=" + app-arch/xz-utils + app-alternatives/lex + app-alternatives/yacc + dev-libs/cereal + dev-util/bpftool + || ( dev-util/xxd app-editors/vim-core ) + test? ( + ${RUST_DEPEND} + dev-lang/go + dev-util/pahole + ) + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/0.11.4-old-kernels.patch" + "${FILESDIR}/0.21.0-dont-compress-man.patch" +) + +pkg_pretend() { + local CONFIG_CHECK=" + ~BPF + ~BPF_EVENTS + ~BPF_JIT + ~BPF_SYSCALL + ~DEBUG_INFO_BTF + ~DEBUG_INFO_BTF_MODULES + ~FTRACE_SYSCALLS + ~HAVE_EBPF_JIT + " + + check_extra_config + + if use test; then + if ! linux_config_exists ; then + die "Unable to check your kernel for BTF support: tests cannot run." + elif ! linux_chkconfig_present DEBUG_INFO_BTF ; then + die "CONFIG_DEBUG_INFO_BTF is not set: tests cannot run." + fi + fi +} + +pkg_setup() { + llvm-r2_pkg_setup + use test && rust_pkg_setup +} + +# git-r3 overrides automatic SRC_URI unpacking +src_unpack() { + default + + if [[ ${PV} == *9999* ]] ; then + git-r3_src_unpack + fi +} + +src_prepare() { + # create a usable version from git + if [[ ${PV} == *9999* ]] ; then + local rev=$(git branch --show-current | sed -e 's/* //g' -e 's/release\///g')-$(git rev-parse --short HEAD) + sed -i "/configure_file/i set (BPFTRACE_VERSION \"${rev}\")" cmake/Version.cmake || die + fi + + cmake_src_prepare +} + +src_configure() { + # suppress one remaining and benign ODR violation warning due to + # a generated libbpf header used by the tests, see: + # https://github.com/bpftrace/bpftrace/issues/4591 + use test && append-flags -Wno-odr + + local mycmakeargs=( + # DO dynamically link the bpftrace executable + -DSTATIC_LINKING=OFF + # DO NOT build the internal libs as shared + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=$(usex test) + # we use the pregenerated man page + -DENABLE_MAN=OFF + -DENABLE_SKB_OUTPUT=$(usex pcap) + -DENABLE_SYSTEMD=$(usex systemd) + # always use system libbpf + -DUSE_SYSTEM_LIBBPF=ON + ) + + # enable UBSAN only when enabled in the toolchain + if is-flagq -fsanitize=undefined; then + filter-flags -fsanitize=undefined + mycmakeargs+=( -DBUILD_UBSAN=ON ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + doman man/man8/*.? + gunzip "${WORKDIR}/man/man8/bpftrace.8.gz" || die + doman "${WORKDIR}/man/man8/bpftrace.8" +} diff --git a/dev-debug/bpftrace/bpftrace-9999.ebuild b/dev-debug/bpftrace/bpftrace-9999.ebuild new file mode 100644 index 000000000000..726742c759d6 --- /dev/null +++ b/dev-debug/bpftrace/bpftrace-9999.ebuild @@ -0,0 +1,160 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..22} ) +RUST_MIN_VER="1.85.0" +RUST_OPTIONAL=1 + +inherit cmake flag-o-matic linux-info llvm-r2 rust + +DESCRIPTION="High-level tracing language for eBPF" +HOMEPAGE="https://github.com/bpftrace/bpftrace" +MY_PV="${PV//_/}" + +if [[ ${PV} == *9999* ]] ; then + EGIT_REPO_URI="https://github.com/bpftrace/bpftrace" + EGIT_BRANCH="master" + inherit git-r3 + # use a released man page for git + MAN_V="0.25.0" +else + SRC_URI="https://github.com/bpftrace/bpftrace/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64" + # the man page version may trail the release + #MAN_V="0.25.0" +fi + +SRC_URI+=" https://github.com/bpftrace/bpftrace/releases/download/v${MAN_V:-${PV}}/man.tar.xz -> bpftrace-${MAN_V:-${PV}}-man.tar.xz" + +S="${WORKDIR}/${PN}-${MY_PV:-${PV}}" + +LICENSE="Apache-2.0" +SLOT="0" + +IUSE="pcap systemd test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/blazesym_c-0.1.1 + >=dev-libs/libbpf-1.6:=[static-libs] + >=dev-util/bcc-0.25.0 + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}=[llvm_targets_BPF(+)] + ') + sys-libs/binutils-libs:= + virtual/libelf:= + systemd? ( sys-apps/systemd:= ) + pcap? ( net-libs/libpcap:= ) + virtual/zlib:= +" +DEPEND=" + ${RDEPEND} + dev-libs/cereal:= + test? ( dev-cpp/gtest ) +" +BDEPEND=" + app-arch/xz-utils + app-alternatives/lex + app-alternatives/yacc + dev-libs/cereal + dev-util/bpftool + || ( dev-util/xxd app-editors/vim-core ) + test? ( + ${RUST_DEPEND} + dev-lang/go + dev-util/pahole + ) + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/0.11.4-old-kernels.patch" + "${FILESDIR}/0.21.0-dont-compress-man.patch" +) + +pkg_pretend() { + local CONFIG_CHECK=" + ~BPF + ~BPF_EVENTS + ~BPF_JIT + ~BPF_SYSCALL + ~DEBUG_INFO_BTF + ~DEBUG_INFO_BTF_MODULES + ~FTRACE_SYSCALLS + ~HAVE_EBPF_JIT + " + + check_extra_config + + if use test; then + if ! linux_config_exists ; then + die "Unable to check your kernel for BTF support: tests cannot run." + elif ! linux_chkconfig_present DEBUG_INFO_BTF ; then + die "CONFIG_DEBUG_INFO_BTF is not set: tests cannot run." + fi + fi +} + +pkg_setup() { + llvm-r2_pkg_setup + use test && rust_pkg_setup +} + +# git-r3 overrides automatic SRC_URI unpacking +src_unpack() { + default + + if [[ ${PV} == *9999* ]] ; then + git-r3_src_unpack + fi +} + +src_prepare() { + # create a usable version from git + if [[ ${PV} == *9999* ]] ; then + local rev=$(git branch --show-current | sed -e 's/* //g' -e 's/release\///g')-$(git rev-parse --short HEAD) + sed -i "/configure_file/i set (BPFTRACE_VERSION \"${rev}\")" cmake/Version.cmake || die + fi + + cmake_src_prepare +} + +src_configure() { + # suppress one remaining and benign ODR violation warning due to + # a generated libbpf header used by the tests, see: + # https://github.com/bpftrace/bpftrace/issues/4591 + use test && append-flags -Wno-odr + + local mycmakeargs=( + # DO dynamically link the bpftrace executable + -DSTATIC_LINKING=OFF + # DO NOT build the internal libs as shared + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=$(usex test) + # we use the pregenerated man page + -DENABLE_MAN=OFF + -DENABLE_SKB_OUTPUT=$(usex pcap) + -DENABLE_SYSTEMD=$(usex systemd) + # always use system libbpf + -DUSE_SYSTEM_LIBBPF=ON + ) + + # enable UBSAN only when enabled in the toolchain + if is-flagq -fsanitize=undefined; then + filter-flags -fsanitize=undefined + mycmakeargs+=( -DBUILD_UBSAN=ON ) + fi + + cmake_src_configure +} + +src_install() { + cmake_src_install + doman man/man8/*.? + gunzip "${WORKDIR}/man/man8/bpftrace.8.gz" || die + doman "${WORKDIR}/man/man8/bpftrace.8" +} diff --git a/dev-debug/bpftrace/files/0.11.4-old-kernels.patch b/dev-debug/bpftrace/files/0.11.4-old-kernels.patch new file mode 100644 index 000000000000..831de6487a84 --- /dev/null +++ b/dev-debug/bpftrace/files/0.11.4-old-kernels.patch @@ -0,0 +1,28 @@ +diff --git a/src/btf.h b/src/btf.h +index 61579a3..4e9f9fc 100644 +--- a/src/btf.h ++++ b/src/btf.h +@@ -2,6 +2,7 @@ + + #include "types.h" + #include <linux/types.h> ++#include <linux/version.h> + #include <map> + #include <regex> + #include <string> +@@ -11,6 +12,15 @@ + struct btf; + struct btf_type; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0) ++/* this is required to build with 5.4 and earlier kernel headers */ ++enum btf_func_linkage { ++ BTF_FUNC_STATIC = 0, ++ BTF_FUNC_GLOBAL = 1, ++ BTF_FUNC_EXTERN = 2, ++}; ++#endif ++ + namespace bpftrace { + + class BTF diff --git a/dev-debug/bpftrace/files/0.21.0-dont-compress-man.patch b/dev-debug/bpftrace/files/0.21.0-dont-compress-man.patch new file mode 100644 index 000000000000..93bcfcf73e31 --- /dev/null +++ b/dev-debug/bpftrace/files/0.21.0-dont-compress-man.patch @@ -0,0 +1,47 @@ +diff --git a/man/adoc/CMakeLists.txt b/man/adoc/CMakeLists.txt +index 1a81dee0..c93ccbd2 100644 +--- a/man/adoc/CMakeLists.txt ++++ b/man/adoc/CMakeLists.txt +@@ -1,7 +1,5 @@ +-find_program(GZIP gzip REQUIRED) + find_program(ASCIIDOCTOR asciidoctor) + file(GLOB FILES *.adoc) +-set(GZFILES "") + if(NOT "${ASCIIDOCTOR}" STREQUAL "ASCIIDOCTOR-NOTFOUND") + foreach(FIL ${FILES}) + get_filename_component(NAME ${FIL} NAME_WE) +@@ -12,14 +10,9 @@ if(NOT "${ASCIIDOCTOR}" STREQUAL "ASCIIDOCTOR-NOTFOUND") + COMMAND ${ASCIIDOCTOR} ${FIL} -b manpage -o - > ${MANPAGE_FILE} + DEPENDS ${FIL}) + +- add_custom_command(OUTPUT ${GZ_MANPAGE_FILE} +- COMMAND ${GZIP} -nc ${MANPAGE_FILE} > ${GZ_MANPAGE_FILE} +- DEPENDS ${MANPAGE_FILE}) +- +- list(APPEND GZFILES ${GZ_MANPAGE_FILE}) + endforeach() +- add_custom_target(adoc_man DEPENDS ${GZFILES}) +- install(FILES ${GZFILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8) ++ add_custom_target(adoc_man DEPENDS ${FILES}) ++ install(FILES ${FILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8) + else() + message(WARNING "asciidoctor not found, building without bpftrace manpage") + add_custom_target(adoc_man) +diff --git a/man/man8/CMakeLists.txt b/man/man8/CMakeLists.txt +index 2a316cd9..2207cf80 100644 +--- a/man/man8/CMakeLists.txt ++++ b/man/man8/CMakeLists.txt +@@ -1,12 +1,3 @@ +-find_program(GZIP gzip REQUIRED) + file(GLOB FILES *.8) +-set(GZFILES "") +-foreach(FIL ${FILES}) +- get_filename_component(NAME ${FIL} NAME) +- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz +- COMMAND ${GZIP} -nc ${FIL} > ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz +- DEPENDS ${FIL}) +- list(APPEND GZFILES "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz") +-endforeach() + add_custom_target(man_man DEPENDS ${GZFILES}) +-install(FILES ${GZFILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8) ++install(FILES ${FILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8) diff --git a/dev-debug/bpftrace/files/0.24.1-enable-ubsan.patch b/dev-debug/bpftrace/files/0.24.1-enable-ubsan.patch new file mode 100644 index 000000000000..8e6cc1bb3053 --- /dev/null +++ b/dev-debug/bpftrace/files/0.24.1-enable-ubsan.patch @@ -0,0 +1,88 @@ +From: https://github.com/bpftrace/bpftrace/pull/4655 + +From: =?UTF-8?q?Viktor=20Mal=C3=ADk?= <viktor.malik@gmail.com> +Date: Thu, 25 Sep 2025 13:34:17 +0200 +Subject: [PATCH] CMake: Enable UBSan builds (#4655) + +Add new CMake option `BUILD_UBSAN` which will add `-fsanitize=undefined` +to the build. This helps to identify undefined behavior. + +Signed-off-by: Viktor Malik <viktor.malik@gmail.com> +--- + CMakeLists.txt | 1 + + src/CMakeLists.txt | 13 +++++++++++++ + src/aot/CMakeLists.txt | 4 ++++ + tests/CMakeLists.txt | 5 +++++ + 4 files changed, 23 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 898ec2f85560..5bb09a2e56be 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -15,6 +15,7 @@ set(HARDENED_STDLIB OFF CACHE BOOL "Enable hardened definitions for standard lib + set(STATIC_LINKING OFF CACHE BOOL "Build bpftrace as a statically linked executable") + + set(BUILD_ASAN OFF CACHE BOOL "Build bpftrace with -fsanitize=address") ++set(BUILD_UBSAN OFF CACHE BOOL "Build bpftrace with -fsanitize=undefined") + set(ENABLE_MAN ON CACHE BOOL "Build man pages") + set(BUILD_TESTING ON CACHE BOOL "Build test suite") + set(ENABLE_TEST_VALIDATE_CODEGEN ON CACHE BOOL "Run LLVM IR validation tests") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 0432e6106e6d..d5432c0995d3 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -2,6 +2,12 @@ if(HAVE_BFD_DISASM) + set(BFD_DISASM_SRC bfd-disasm.cpp) + endif() + ++if (BUILD_UBSAN) ++ # This adds -fsanitize=undefined to all below compiler invocations, including ++ # subdirectories. ++ add_compile_options("-fsanitize=undefined") ++endif() ++ + add_library(required_resources required_resources.cpp) + add_dependencies(required_resources parser) + +@@ -201,6 +207,13 @@ if (BUILD_ASAN) + target_link_options(bpftrace PUBLIC "-fsanitize=address") + endif() + ++if (BUILD_UBSAN) ++ # We do not use add_link_options here since it doesn't work for some reason. ++ # Instead, just pass -fsanitize=undefined to the linker when linking the ++ # bpftrace target. ++ target_link_options(bpftrace PUBLIC "-fsanitize=undefined") ++endif() ++ + if (STATIC_LINKING) + if(ANDROID) + target_link_libraries(libbpftrace "-Wl,-Bdynamic" "-ldl" "-lm" "-lz") +diff --git a/src/aot/CMakeLists.txt b/src/aot/CMakeLists.txt +index 1323bdacb6df..5267e4a1c19e 100644 +--- a/src/aot/CMakeLists.txt ++++ b/src/aot/CMakeLists.txt +@@ -34,3 +34,7 @@ if(BUILD_ASAN) + target_compile_options(bpftrace-aotrt PUBLIC "-fsanitize=address") + target_link_options(bpftrace-aotrt PUBLIC "-fsanitize=address") + endif() ++ ++if(BUILD_UBSAN) ++ target_link_options(bpftrace-aotrt PUBLIC "-fsanitize=undefined") ++endif() +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index b6002e8075ff..141b44d5a30e 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -94,6 +94,11 @@ if(BUILD_ASAN) + target_link_options(bpftrace_test PUBLIC "-fsanitize=address") + endif() + ++if(BUILD_UBSAN) ++ target_compile_options(bpftrace_test PUBLIC "-fsanitize=undefined") ++ target_link_options(bpftrace_test PUBLIC "-fsanitize=undefined") ++endif() ++ + # bpftrace tests require (at minimum) version 1.11. + # There's no great way to enforce a minimum version from cmake -- the cmake + # modules don't respect minimum requested version. diff --git a/dev-debug/bpftrace/metadata.xml b/dev-debug/bpftrace/metadata.xml new file mode 100644 index 000000000000..13c1ae7c4586 --- /dev/null +++ b/dev-debug/bpftrace/metadata.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>holger@applied-asynchrony.com</email> + <name>Holger Hoffstätte</name> + </maintainer> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <maintainer type="person"> + <email>dlan@gentoo.org</email> + <name>Yixun Lan</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <use> + <flag name="pcap">Enable skb_output using <pkg>net-libs/libpcap</pkg> + </flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/cgdb/Manifest b/dev-debug/cgdb/Manifest new file mode 100644 index 000000000000..772ad27a5505 --- /dev/null +++ b/dev-debug/cgdb/Manifest @@ -0,0 +1 @@ +DIST cgdb-0.8.0.tar.gz 328281 BLAKE2B 60e577dd5f8363b91da33136a9ffd911581e9cea4cdc1d0fcd338e0a761a26921e6edf6298c619b8d0eb1486449843457b2c5370a395a8c49fed5382a60e63a2 SHA512 e2b653db472de2014402dae6d13953ab811526a47ad5d7a05e34cfba09f44d6fea6b19304b9205ff0e2ac9549ffa5818f4282d7c03293b6c0ca9d563f9ae89e1 diff --git a/dev-debug/cgdb/cgdb-0.8.0.ebuild b/dev-debug/cgdb/cgdb-0.8.0.ebuild new file mode 100644 index 000000000000..f7e94fa4e4d3 --- /dev/null +++ b/dev-debug/cgdb/cgdb-0.8.0.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/cgdb/cgdb.git" +else + SRC_URI="https://github.com/cgdb/cgdb/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 arm ppc ppc64 x86" +fi + +inherit autotools multilib-minimal + +DESCRIPTION="A curses front-end for GDB, the GNU debugger" +HOMEPAGE="https://cgdb.github.io/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="test" +# Tests are broken, need additional research to figure out the cause +# Bug: https://bugs.gentoo.org/831899 +RESTRICT="test" + +DEPEND=" + sys-libs/ncurses:= + sys-libs/readline:= +" +BDEPEND=" + sys-devel/flex + test? ( + dev-util/dejagnu + app-misc/dtach + ) +" +RDEPEND=" + ${DEPEND} + dev-debug/gdb +" + +DOCS=( AUTHORS ChangeLog FAQ INSTALL NEWS README.md ) + +PATCHES=( + "${FILESDIR}"/${P}-ar.patch + "${FILESDIR}"/${PN}-0.8.0-configure-c99.patch +) + +src_prepare() { + default + AT_M4DIR="config" eautoreconf +} + +multilib_src_configure() { + unset LEX + ECONF_SOURCE="${S}" econf +} + +multilib_src_test() { + # Tests need an interactive shell, #654986 + + # real-time output of the log ;-) + touch "${T}/dtach-test.log" || die + tail -f "${T}/dtach-test.log" & + local tail_pid=${!} + + nonfatal dtach -N "${T}/dtach.sock" \ + bash -c 'emake check &> "${T}"/dtach-test.log; echo ${?} > "${T}"/dtach-test.out' + + kill "${tail_pid}" + [[ -f ${T}/dtach-test.out ]] || die "Unable to run tests" + [[ $(<"${T}"/dtach-test.out) == 0 ]] || die "Tests failed" +} diff --git a/dev-debug/cgdb/cgdb-9999.ebuild b/dev-debug/cgdb/cgdb-9999.ebuild new file mode 100644 index 000000000000..0567e31f4ac4 --- /dev/null +++ b/dev-debug/cgdb/cgdb-9999.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/cgdb/cgdb.git" +else + SRC_URI="https://github.com/cgdb/cgdb/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +fi + +inherit autotools multilib-minimal + +DESCRIPTION="A curses front-end for GDB, the GNU debugger" +HOMEPAGE="https://cgdb.github.io/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="test" +# Tests are broken, need additional research to figure out the cause +# Bug: https://bugs.gentoo.org/831899 +RESTRICT="test" + +DEPEND=" + sys-libs/ncurses:0= + sys-libs/readline:0=" + +BDEPEND=" + test? ( + dev-util/dejagnu + app-misc/dtach + )" + +RDEPEND=" + ${DEPEND} + dev-debug/gdb" + +DOCS=( AUTHORS ChangeLog FAQ INSTALL NEWS README.md ) + +PATCHES=( + "${FILESDIR}"/${P}-ar.patch +) + +src_prepare() { + default + AT_M4DIR="config" eautoreconf +} + +multilib_src_test() { + # Tests need an interactive shell, #654986 + + # real-time output of the log ;-) + touch "${T}/dtach-test.log" || die + tail -f "${T}/dtach-test.log" & + local tail_pid=${!} + + nonfatal dtach -N "${T}/dtach.sock" \ + bash -c 'emake check &> "${T}"/dtach-test.log; echo ${?} > "${T}"/dtach-test.out' + + kill "${tail_pid}" + [[ -f ${T}/dtach-test.out ]] || die "Unable to run tests" + [[ $(<"${T}"/dtach-test.out) == 0 ]] || die "Tests failed" +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf +} diff --git a/dev-debug/cgdb/files/cgdb-0.8.0-ar.patch b/dev-debug/cgdb/files/cgdb-0.8.0-ar.patch new file mode 100644 index 000000000000..128c32ec238c --- /dev/null +++ b/dev-debug/cgdb/files/cgdb-0.8.0-ar.patch @@ -0,0 +1,18 @@ +Bug: https://bugs.gentoo.org/724256 +Patch taken from https://github.com/cgdb/cgdb/pull/142 +--- a/configure.ac ++++ b/configure.ac +@@ -13,6 +13,13 @@ AC_PROG_INSTALL + AC_PROG_RANLIB + AM_PROG_LEX + AC_PROG_YACC ++m4_ifndef([AC_PROG_AR],[dnl ++ AN_MAKEVAR([AR], [AC_PROG_AR]) ++ AN_PROGRAM([ar], [AC_PROG_AR]) ++ AC_DEFUN([AC_PROG_AR], ++ [AC_CHECK_TOOL(AR, ar, :)]) ++]) ++AC_PROG_AR + + dnl determine if we are running in linux, cygwin, solaris, or freebsd + AC_CANONICAL_HOST diff --git a/dev-debug/cgdb/files/cgdb-0.8.0-configure-c99.patch b/dev-debug/cgdb/files/cgdb-0.8.0-configure-c99.patch new file mode 100644 index 000000000000..bd021476bf53 --- /dev/null +++ b/dev-debug/cgdb/files/cgdb-0.8.0-configure-c99.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/830222 +https://github.com/cgdb/cgdb/pull/338 + +From 039dba0ec3ae2c4b2636418652a5c63f9ff86049 Mon Sep 17 00:00:00 2001 +From: Florian Weimer <fweimer@redhat.com> +Date: Wed, 8 Mar 2023 11:29:06 +0100 +Subject: [PATCH] configure: Avoid implicit int in readline check + +Future compilers will not accept implicit ints by default, altering +the outcome of the check without this change. + +Signed-off-by: Florian Weimer <fweimer@redhat.com> +--- a/config/readline_check_version.m4 ++++ b/config/readline_check_version.m4 +@@ -86,7 +86,7 @@ AC_CACHE_VAL(ac_cv_rl_version, + #include <stdlib.h> + #include <readline/readline.h> + +-main() ++int main(void) + { + FILE *fp; + fp = fopen("conftest.rlv", "w"); diff --git a/dev-debug/cgdb/files/cgdb-9999-ar.patch b/dev-debug/cgdb/files/cgdb-9999-ar.patch new file mode 100644 index 000000000000..ed5f200b3260 --- /dev/null +++ b/dev-debug/cgdb/files/cgdb-9999-ar.patch @@ -0,0 +1,16 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -13,6 +13,13 @@ AC_PROG_INSTALL + AC_PROG_RANLIB + AM_PROG_LEX + AC_PROG_YACC ++m4_ifndef([AC_PROG_AR],[dnl ++ AN_MAKEVAR([AR], [AC_PROG_AR]) ++ AN_PROGRAM([ar], [AC_PROG_AR]) ++ AC_DEFUN([AC_PROG_AR], ++ [AC_CHECK_TOOL(AR, ar, :)]) ++]) ++AC_PROG_AR + + dnl determine if we are running in linux, cygwin, solaris, or freebsd + AC_CANONICAL_HOST diff --git a/dev-debug/cgdb/metadata.xml b/dev-debug/cgdb/metadata.xml new file mode 100644 index 000000000000..5f33304011d5 --- /dev/null +++ b/dev-debug/cgdb/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/d-feet/Manifest b/dev-debug/d-feet/Manifest new file mode 100644 index 000000000000..2b752579e2ae --- /dev/null +++ b/dev-debug/d-feet/Manifest @@ -0,0 +1 @@ +DIST d-feet-0.3.16.tar.xz 237888 BLAKE2B b4773b781c53feb11889b49746e714a42a15a85daeb16dcd5235609fb6105c0b1a3ebeeb4a08830de9067f1c193702b31fcbfc67190eb2f901907b96acfcadbc SHA512 ff4db968cbd679e2065c614d538187fe3c56118b44638771ec9f7472bdba4a798dc682565f520a8680a8001ea39ce88555b07cda172e60f88eb6bdf1e00b5a6d diff --git a/dev-debug/d-feet/d-feet-0.3.16-r1.ebuild b/dev-debug/d-feet/d-feet-0.3.16-r1.ebuild new file mode 100644 index 000000000000..224b4efb77c2 --- /dev/null +++ b/dev-debug/d-feet/d-feet-0.3.16-r1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit gnome2 meson python-single-r1 virtualx + +DESCRIPTION="D-Feet is a powerful D-Bus debugger" +HOMEPAGE="https://wiki.gnome.org/Apps/DFeet" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~riscv x86" + +IUSE="test +X" +RESTRICT="!test? ( test )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + ${PYTHON_DEPS} + >=x11-libs/gtk+-3.9.4:3[introspection] + >=dev-libs/gobject-introspection-1.82.0-r2:= +" +RDEPEND=" + ${DEPEND} + >=dev-libs/glib-2.34:2 + $(python_gen_cond_dep ' + >=dev-python/pygobject-3.3.91:3[${PYTHON_USEDEP}] + ') + >=sys-apps/dbus-1 + X? ( x11-libs/libwnck:3[introspection] ) +" +BDEPEND=" + dev-util/itstool +" + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.16-fix-meson-0.61.patch + "${FILESDIR}"/0001-Do-not-lint-coding-style-in-distro-testing.patch +) + +src_configure() { + local emesonargs=( + $(meson_use test tests) + -Dpython="${EPYTHON}" + ) + meson_src_configure +} + +src_test() { + virtx meson_src_test +} + +src_install() { + meson_src_install + python_optimize +} diff --git a/dev-debug/d-feet/files/0001-Do-not-lint-coding-style-in-distro-testing.patch b/dev-debug/d-feet/files/0001-Do-not-lint-coding-style-in-distro-testing.patch new file mode 100644 index 000000000000..620e9cf400bb --- /dev/null +++ b/dev-debug/d-feet/files/0001-Do-not-lint-coding-style-in-distro-testing.patch @@ -0,0 +1,30 @@ +From e1572f7c2e690411357457c76960e64ae9e8207a Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz@gentoo.org> +Date: Fri, 20 Jun 2025 01:39:16 -0400 +Subject: [PATCH] Do not lint coding style in distro testing + +--- + src/tests/meson.build | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/src/tests/meson.build b/src/tests/meson.build +index 19f819b..0879981 100644 +--- a/src/tests/meson.build ++++ b/src/tests/meson.build +@@ -18,13 +18,3 @@ test( + workdir: meson.current_source_dir(), + ) + +-test( +- 'check-code-style', +- find_program('pycodestyle-3', 'pycodestyle', 'pep8'), +- args: [ +- '--exclude=".svn,CVS,.bzr,.hg,.git,__pycache__,.\#*"', +- '--max-line-length=99', +- '--ignore=E123,E402,W504', +- src_dir, +- ], +-) +-- +2.49.0 + diff --git a/dev-debug/d-feet/files/d-feet-0.3.16-fix-meson-0.61.patch b/dev-debug/d-feet/files/d-feet-0.3.16-fix-meson-0.61.patch new file mode 100644 index 000000000000..064f94105882 --- /dev/null +++ b/dev-debug/d-feet/files/d-feet-0.3.16-fix-meson-0.61.patch @@ -0,0 +1,31 @@ +https://gitlab.gnome.org/GNOME/d-feet/-/merge_requests/32 +https://bugs.gentoo.org/831524 + +From 05465d486afdba116dbc22fc22c1e6573aea4f22 Mon Sep 17 00:00:00 2001 +From: Jan Beich <jbeich@FreeBSD.org> +Date: Mon, 24 Jan 2022 12:11:57 +0000 +Subject: [PATCH] meson: drop unused argument for i18n.merge_file() + +Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0. + +data/meson.build:15:0: ERROR: Function does not take positional arguments. +data/meson.build:27:0: ERROR: Function does not take positional arguments. +--- a/data/meson.build ++++ b/data/meson.build +@@ -13,7 +13,6 @@ desktop_in = configure_file( + ) + + i18n.merge_file( +- desktop, + type: 'desktop', + input: desktop_in, + output: '@BASENAME@', +@@ -25,7 +24,6 @@ i18n.merge_file( + appdata = df_namespace + '.appdata.xml' + + i18n.merge_file( +- appdata, + input: appdata + '.in', + output: '@BASENAME@', + po_dir: po_dir, +GitLab diff --git a/dev-debug/d-feet/metadata.xml b/dev-debug/d-feet/metadata.xml new file mode 100644 index 000000000000..f6b6cde5f785 --- /dev/null +++ b/dev-debug/d-feet/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/d-spy/Manifest b/dev-debug/d-spy/Manifest new file mode 100644 index 000000000000..3c4dbcd78c67 --- /dev/null +++ b/dev-debug/d-spy/Manifest @@ -0,0 +1,2 @@ +DIST d-spy-48.0.tar.xz 219364 BLAKE2B b2df2027ce3767516bdd1ba9304c7b4f0e5883d04e26cfe94abc34c2ddb6292cca8fe313715e447b6b94f69316b96884578fac9891e5037acb7061f4df1f15da SHA512 aaea06f6ebdd93b3ab1fee8fd917600ae93aa90e35e0e8188eac614b10b043777021649e585150f973b5e0c079f1e94b10139758c6fe9e6d197f16192e1d44bd +DIST d-spy-49.2.tar.xz 215988 BLAKE2B 2950f8887c945afa0ee6a4af8e7e934595a67862a9e5056b48b72076fedeec985abc97d68eec87929e117a42730fc3f62a33d869d6b473569bcc7e1ff428964e SHA512 379d7ff8539163cf9792b6c53747fd66540f6d12616b0f7ec977adab890de4362fbf77cdc8b4afeaeb0583cff1ae6f7621cda880ab05a2cde6b3abc372e9707d diff --git a/dev-debug/d-spy/d-spy-48.0.ebuild b/dev-debug/d-spy/d-spy-48.0.ebuild new file mode 100644 index 000000000000..0ba6cb0690ee --- /dev/null +++ b/dev-debug/d-spy/d-spy-48.0.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit gnome.org meson xdg + +DESCRIPTION="D-Spy is a simple tool to explore D-Bus connections" +HOMEPAGE="https://apps.gnome.org/Dspy/" + +LICENSE="GPL-3+ LGPL-3+" +SLOT="1" +KEYWORDS="amd64 ~arm64" + +DEPEND=" + >=dev-libs/glib-2.76:2 + >=gui-libs/gtk-4.12:4 + >=gui-libs/libadwaita-1.5:1 +" +RDEPEND=" + ${DEPEND} + >=sys-apps/dbus-1 +" +BDEPEND=" + dev-libs/appstream-glib + dev-util/desktop-file-utils + sys-devel/gettext + virtual/pkgconfig +" + +src_configure() { + local emesonargs=( + -Dbuilder=false + ) + meson_src_configure +} diff --git a/dev-debug/d-spy/d-spy-49.2.ebuild b/dev-debug/d-spy/d-spy-49.2.ebuild new file mode 100644 index 000000000000..8cb6250c2433 --- /dev/null +++ b/dev-debug/d-spy/d-spy-49.2.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit gnome.org meson xdg + +DESCRIPTION="D-Spy is a simple tool to explore D-Bus connections" +HOMEPAGE="https://apps.gnome.org/Dspy/" + +LICENSE="GPL-3+ LGPL-3+" +SLOT="1" +KEYWORDS="~amd64 ~arm64" + +DEPEND=" + >=dev-libs/glib-2.82:2 + >=gui-libs/gtk-4.16:4 + >=dev-libs/libdex-0.11 + >=gui-libs/libadwaita-1.7:1 +" +RDEPEND=" + ${DEPEND} + >=sys-apps/dbus-1 +" +BDEPEND=" + dev-libs/appstream-glib + dev-util/desktop-file-utils + sys-devel/gettext + virtual/pkgconfig +" + +src_configure() { + local emesonargs=( + -Dbuilder=false + ) + meson_src_configure +} diff --git a/dev-debug/d-spy/metadata.xml b/dev-debug/d-spy/metadata.xml new file mode 100644 index 000000000000..f6b6cde5f785 --- /dev/null +++ b/dev-debug/d-spy/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/ddd/Manifest b/dev-debug/ddd/Manifest new file mode 100644 index 000000000000..365fb8f7a180 --- /dev/null +++ b/dev-debug/ddd/Manifest @@ -0,0 +1,2 @@ +DIST ddd-3.3.12.tar.gz 5687115 BLAKE2B 52c448eda46bfdc4f5720abda569a0c70f3680c3fdd543f6101c9af8c4c448496414c1c2a7be91590d9f14d0c8c2bb053a234d179bf900ca52df0ea8c2642131 SHA512 1249e4f5f25335f8f2c3616470f7a8f36262c00b8ac12b79f2b2806228de2831ebeb780fe09490e5e8b5b1ca108fe936ae70856f6a6ec02876fc75c7b4a7dbf3 +DIST ddd-3.4.1.tar.gz 5843945 BLAKE2B 14ec84250dc1a32998cd85d0eb303d4c4d53e027a7f49ca65b7cd65f2c30ea0e450ba41cc35d9050de4c7097f4703d1bb40d1402b5dfdecc5c22f86b2b8101ed SHA512 84dfa5dbbba1033a0fb4e60c6bfacd86f9d9b22f20ab02ada1c1a2abfdac18fe5ef8af25c9519638ae3b9a1d06f4518aec03afff9dbae35e8fd6aab8a6829bef diff --git a/dev-debug/ddd/ddd-3.3.12-r5.ebuild b/dev-debug/ddd/ddd-3.3.12-r5.ebuild new file mode 100644 index 000000000000..730e4ac6d261 --- /dev/null +++ b/dev-debug/ddd/ddd-3.3.12-r5.ebuild @@ -0,0 +1,90 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools desktop flag-o-matic optfeature + +DESCRIPTION="Graphical front-end for command-line debuggers" +HOMEPAGE="https://www.gnu.org/software/ddd" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-3 LGPL-3 FDL-1.1" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ppc64 ~sparc x86" +IUSE="readline" + +RESTRICT="test" + +COMMON_DEPEND=" + dev-debug/gdb + sys-libs/ncurses:= + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXmu + x11-libs/libXpm + x11-libs/libXt + >=x11-libs/motif-2.3:0 + ppc? ( dev-libs/elfutils ) + ppc64? ( dev-libs/elfutils ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${COMMON_DEPEND} + x11-base/xorg-proto +" +RDEPEND="${COMMON_DEPEND} + x11-apps/xfontsel +" + +PATCHES=( + "${FILESDIR}/${P}-gcc44.patch" + "${FILESDIR}/${P}-gdb-disassembler-bug.patch" + "${FILESDIR}/${PN}-3.3.12-man.patch" + "${FILESDIR}/${PN}-3.3.12-tinfo.patch" + "${FILESDIR}/${PN}-3.3.12-gcc9.patch" + "${FILESDIR}/${PN}-3.3.12-parallel.patch" + "${FILESDIR}/${PN}-3.3.12-clang.patch" +) + +DOCS=( + AUTHORS CREDITS INSTALL NEWS PROBLEMS README TIPS TODO + doc/ddd{-paper.ps,.pdf,-themes.pdf} +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/858347 + # https://savannah.gnu.org/bugs/?65456 + filter-lto + + econf \ + $(use_with readline) +} + +src_install() { + # Remove app defaults + rm -f "${S}"/ddd/Ddd || die + + # Install ddd distribution + default + + # Install application icon + doicon "${S}"/icons/ddd.xpm +} + +pkg_postinst() { + optfeature "Data visualisation" sci-visualization/gnuplot + optfeature "Java debugging" virtual/jdk + optfeature "Bash debugging" app-shells/bashdb + optfeature "Perl debugging" dev-lang/perl + optfeature "Python debugging" dev-python/pydb + elog + elog "Important notice: if you encounter DDD crashes during visualization, you might" + elog "have hit bug #459324. Try switching to plotting in external window:" + elog "Select Edit|Preferences|Helpers and switch 'plot window' to 'external'" +} diff --git a/dev-debug/ddd/ddd-3.4.1.ebuild b/dev-debug/ddd/ddd-3.4.1.ebuild new file mode 100644 index 000000000000..c7182039dedd --- /dev/null +++ b/dev-debug/ddd/ddd-3.4.1.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools desktop flag-o-matic optfeature + +DESCRIPTION="Graphical front-end for command-line debuggers" +HOMEPAGE="https://www.gnu.org/software/ddd" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-3 LGPL-3 FDL-1.1" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ppc64 ~sparc x86" +IUSE="readline" + +RESTRICT="test" + +COMMON_DEPEND=" + dev-debug/gdb + media-libs/freetype:2 + sys-libs/ncurses:= + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXmu + x11-libs/libXpm + x11-libs/libXt + >=x11-libs/motif-2.3:0 + ppc? ( dev-libs/elfutils ) + ppc64? ( dev-libs/elfutils ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${COMMON_DEPEND} + x11-base/xorg-proto +" +RDEPEND="${COMMON_DEPEND} + x11-apps/xfontsel +" + +DOCS=( + README doc/ddd{.pdf,-themes.pdf} +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/858347 + # https://savannah.gnu.org/bugs/?65456 + filter-lto + + econf \ + $(use_with readline) +} + +src_install() { + # Remove app defaults + rm -f "${S}"/ddd/Ddd || die + + # Install ddd distribution + default + + # Install application icon + doicon "${S}"/icons/ddd.xpm +} + +pkg_postinst() { + optfeature "Data visualisation" sci-visualization/gnuplot + optfeature "Java debugging" virtual/jdk + optfeature "Bash debugging" app-shells/bashdb + optfeature "Perl debugging" dev-lang/perl + optfeature "Python debugging" dev-python/pydb + elog + elog "Important notice: if you encounter DDD crashes during visualization, you might" + elog "have hit bug #459324. Try switching to plotting in external window:" + elog "Select Edit|Preferences|Helpers and switch 'plot window' to 'external'" +} diff --git a/dev-debug/ddd/files/ddd-3.3.12-clang.patch b/dev-debug/ddd/files/ddd-3.3.12-clang.patch new file mode 100644 index 000000000000..a1f8da27b116 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-clang.patch @@ -0,0 +1,15 @@ +diff -ruN ddd-3.3.12/ddd/exit.C ddd-my/ddd/exit.C +--- ddd-3.3.12/ddd/exit.C 2009-02-11 18:25:07.000000000 +0100 ++++ ddd-my/ddd/exit.C 2020-09-27 03:23:14.713650981 +0200 +@@ -769,7 +769,11 @@ + + static XtAppContext xt_error_app_context = 0; + ++#ifdef __clang__ ++static void ddd_xt_error(String message = 0) _X_NORETURN ++#else + static void ddd_xt_error(String message = 0) ++#endif + { + ddd_has_crashed = true; + diff --git a/dev-debug/ddd/files/ddd-3.3.12-gcc44.patch b/dev-debug/ddd/files/ddd-3.3.12-gcc44.patch new file mode 100644 index 000000000000..2464b2b4a9c4 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-gcc44.patch @@ -0,0 +1,10 @@ +--- ddd-3.3.12-orig/ddd/strclass.C ++++ ddd-3.3.12/ddd/strclass.C +@@ -39,6 +39,7 @@ + #include <limits.h> + #include <new> + #include <stdlib.h> ++#include <stdio.h> + + void string::error(const char* msg) const + { diff --git a/dev-debug/ddd/files/ddd-3.3.12-gcc9.patch b/dev-debug/ddd/files/ddd-3.3.12-gcc9.patch new file mode 100644 index 000000000000..ce12a41c91d2 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-gcc9.patch @@ -0,0 +1,93 @@ +diff -ruN -x '*.am' ddd-3.3.12/ddd/strclass.h my/ddd/strclass.h +--- ddd-3.3.12/ddd/strclass.h 2009-02-11 18:25:06.000000000 +0100 ++++ my/ddd/strclass.h 2019-11-22 22:00:49.000267420 +0100 +@@ -543,7 +543,6 @@ + bool OK() const; + }; + +- + class string + { + friend class subString; +@@ -811,9 +810,9 @@ + const regex& sep); + + friend string common_prefix(const string& x, const string& y, +- int startpos = 0); ++ int startpos); + friend string common_suffix(const string& x, const string& y, +- int startpos = -1); ++ int startpos); + friend string replicate(char c, int n); + friend string replicate(const string& y, int n); + friend string join(const string *src, int n, const string& sep); +@@ -864,8 +863,8 @@ + friend std::istream& operator>>(std::istream& s, string& x); + + friend int readline(std::istream& s, string& x, +- char terminator = '\n', +- int discard_terminator = 1); ++ char terminator, ++ int discard_terminator); + + // Status + unsigned int length() const; +@@ -882,6 +881,58 @@ + bool OK() const; + }; + ++inline void cat(const string&, const string&, string&); ++inline void cat(const string&, const subString&, string&); ++inline void cat(const string&, const constSubString&, string&); ++inline void cat(const string&, const char*, string&); ++inline void cat(const string&, char*, string&); ++inline void cat(const string&, char, string&); ++ ++inline void cat(const subString&, const string&, string&); ++inline void cat(const subString&, const subString&, string&); ++inline void cat(const subString&, const char*, string&); ++inline void cat(const subString&, char*, string&); ++inline void cat(const subString&, char, string&); ++ ++inline void cat(const char*, const string&, string&); ++inline void cat(const char*, const subString&, string&); ++inline void cat(const char*, const char*, string&); ++inline void cat(const char*, char*, string&); ++inline void cat(const char*, char, string&); ++ ++inline void cat(char*, const string&, string&); ++inline void cat(char*, const subString&, string&); ++inline void cat(char*, const char*, string&); ++inline void cat(char*, char*, string&); ++inline void cat(char*, char, string&); ++ ++inline void cat(char, const string&, string&); ++inline void cat(char, const subString&, string&); ++inline void cat(char, const char*, string&); ++inline void cat(char, char*, string&); ++inline void cat(char, char, string&); ++ ++int split(const string& x, string *res, int maxn, ++ const string& sep); ++int split(const string& x, string *res, int maxn, ++ const regex& sep); ++ ++string common_prefix(const string& x, const string& y, ++ int startpos = 0); ++string common_suffix(const string& x, const string& y, ++ int startpos = -1); ++string replicate(char c, int n); ++string replicate(const string& y, int n); ++string join(const string *src, int n, const string& sep); ++ ++inline std::ostream& operator<<(std::ostream& s, const string& x); ++inline std::ostream& operator<<(std::ostream& s, const subString& x); ++std::istream& operator>>(std::istream& s, string& x); ++ ++int readline(std::istream& s, string& x, ++ char terminator = '\n', ++ int discard_terminator = 1); ++ + // Inject names manually to accomodate argument-dependent name lookup (ADL) + // (aka Koenig lookup). The rule is that friend declarations are visible + // when found through ADL because an argument of the call happens to be diff --git a/dev-debug/ddd/files/ddd-3.3.12-gdb-disassembler-bug.patch b/dev-debug/ddd/files/ddd-3.3.12-gdb-disassembler-bug.patch new file mode 100644 index 000000000000..738cda5946f9 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-gdb-disassembler-bug.patch @@ -0,0 +1,11 @@ +--- a/ddd/GDBAgent.C 2004-09-01 20:07:38.000000000 +0200 ++++ b/ddd/GDBAgent.C 2010-06-15 14:16:34.000000000 +0200 +@@ -3078,7 +3078,7 @@ + { + string end_( end ); + normalize_address(end_); +- cmd += ' '; ++ cmd += ','; + cmd += end_; + } + return cmd; diff --git a/dev-debug/ddd/files/ddd-3.3.12-man.patch b/dev-debug/ddd/files/ddd-3.3.12-man.patch new file mode 100644 index 000000000000..06f9deb806f0 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-man.patch @@ -0,0 +1,16 @@ +diff -ruN ddd-3.3.12/ddd/Makefile.am ddd-my/ddd/Makefile.am +--- ddd-3.3.12/ddd/Makefile.am 2009-02-11 18:25:07.000000000 +0100 ++++ ddd-my/ddd/Makefile.am 2012-11-06 01:48:46.363493473 +0100 +@@ -1371,10 +1371,8 @@ + man_MANS = ddd.1 + + # `ddd.man' has 8-bit format, `ddd.1' has 7-bit format +-ddd.1: ddd.man $(srcdir)/unumlaut.sed +- -$(SED) -f $(srcdir)/unumlaut.sed ddd.man | $(DELETE_CR) > $@~ \ +- && $(MV) $@~ $@ +- ++ddd.1: ddd.man ++ iconv -f ISO8859-15 -t UTF-8 ddd.man > ddd.1 + + + # ----------------------------------------------------------------------------- diff --git a/dev-debug/ddd/files/ddd-3.3.12-parallel.patch b/dev-debug/ddd/files/ddd-3.3.12-parallel.patch new file mode 100644 index 000000000000..21624a2ab614 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-parallel.patch @@ -0,0 +1,15 @@ +diff -ruN -x strclass.h ddd-3.3.12/ddd/Makefile.am my/ddd/Makefile.am +--- ddd-3.3.12/ddd/Makefile.am 2009-02-11 18:25:07.000000000 +0100 ++++ my/ddd/Makefile.am 2019-11-22 22:49:26.212765331 +0100 +@@ -580,9 +580,8 @@ + + # Make sure needed headers are built before trying to compile these files + # (Assume ddd.C is the first source file to be built.) +-ddd.o: version.h host.h root.h +-resources.o: Ddd.ad.h +-show.o: build.h ++# MM: AND WHY WOULD YOU ASSUME THAT?? ++BUILT_SOURCES = version.h host.h root.h Ddd.ad.h build.h + + # ----------------------------------------------------------------------------- + # Local Libraries. diff --git a/dev-debug/ddd/files/ddd-3.3.12-tinfo.patch b/dev-debug/ddd/files/ddd-3.3.12-tinfo.patch new file mode 100644 index 000000000000..ab7df14ae9d9 --- /dev/null +++ b/dev-debug/ddd/files/ddd-3.3.12-tinfo.patch @@ -0,0 +1,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -360,7 +360,7 @@ + dnl + _termlib="${ddd_termlib}" + if test "x${ddd_termlib}" = x; then +- _termlib="mytinfo ncurses curses termcap terminfo termlib" ++ _termlib="mytinfo ncurses tinfo curses termcap terminfo termlib" + fi + _termlib_path= + if test x"${ddd_termlib_libraries_path}" != x; then diff --git a/dev-debug/ddd/metadata.xml b/dev-debug/ddd/metadata.xml new file mode 100644 index 000000000000..9e0d9ed37bef --- /dev/null +++ b/dev-debug/ddd/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <longdescription lang="en"> + GNU DDD is a graphical front-end for command-line debuggers such as + GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger, the bash debugger, + or the Python debugger. Besides ``usual'' front-end features such as + viewing source texts, DDD has become famous through its interactive + graphical data display, where data structures are displayed as graphs. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/drgn/Manifest b/dev-debug/drgn/Manifest new file mode 100644 index 000000000000..09d4a727cea4 --- /dev/null +++ b/dev-debug/drgn/Manifest @@ -0,0 +1,2 @@ +DIST drgn-0.0.33.tar.gz 1674341 BLAKE2B 3995dd5c4b0242bea63e1fe40a031ac117376287b323da24286700d455ce8bacfee56dc7fc7fb873ef67295f47ae93b7f2ff56483ddd5cbe30ccc83f9e9f32af SHA512 163a281af90320287914b5544adb05f1dd5b96d9f2478df82f70f8258f30814c03be673fa9db177297b5fa1223c9923c041209c68b3df6e34f2b63b14fd74301 +DIST drgn-0.1.0.tar.gz 1850058 BLAKE2B 1556b67c59b565a94874eb88fa5cf3d30326560c4b599e45b750f74715d96fa0e4ae3675378503ecb4ae81a0e2bd2f810ff3cc4a1ccf1e6d0049aa2deeea2df2 SHA512 de17207b7badfc685c1a4d9593f9cd9e330ae6d7bf4f80628bf2b5c9d5c2a309b88bd05c0d46837aa9bacc5f3bd35711ed9226fbcaef1b6e37b3bb1830c652ca diff --git a/dev-debug/drgn/drgn-0.0.33.ebuild b/dev-debug/drgn/drgn-0.0.33.ebuild new file mode 100644 index 000000000000..7391a8237363 --- /dev/null +++ b/dev-debug/drgn/drgn-0.0.33.ebuild @@ -0,0 +1,68 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 multiprocessing pypi toolchain-funcs + +DESCRIPTION="Programmable debugger" +HOMEPAGE=" + https://github.com/osandov/drgn + https://pypi.org/project/drgn/ + https://drgn.readthedocs.io/en/latest/ +" + +LICENSE="LGPL-2.1+" +# Note that as of 0.0.31 at least, the API+ABI of libdrgn is unstable. +SLOT="0/${PV}" +KEYWORDS="~amd64" +IUSE="debuginfod lzma openmp" + +DEPEND=" + >=dev-libs/elfutils-0.165[debuginfod?] + dev-libs/libkdumpfile:= + lzma? ( app-arch/xz-utils ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( dev-libs/check ) +" + +distutils_enable_tests unittest + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_configure() { + tc-export AR CC OBJCOPY OBJDUMP PKG_CONFIG RANLIB STRIP + + cat >> setup.cfg <<-EOF || die + [build_ext] + parallel = $(makeopts_jobs) + EOF + + # setuptools calls autotools (!) + export CONFIGURE_FLAGS + CONFIGURE_FLAGS="--disable-dependency-tracking --disable-silent-rules" + CONFIGURE_FLAGS+=" --with-libkdumpfile" + CONFIGURE_FLAGS+=" --enable-libdrgn" + CONFIGURE_FLAGS+=" --enable-python-extension" + CONFIGURE_FLAGS+=" --disable-dlopen-debuginfod" + CONFIGURE_FLAGS+=" $(use_with debuginfod)" + CONFIGURE_FLAGS+=" $(use_with lzma)" + CONFIGURE_FLAGS+=" $(use_enable openmp)" + CONFIGURE_FLAGS+=" --build=${CBUILD}" + CONFIGURE_FLAGS+=" --host=${CHOST}" + CONFIGURE_FLAGS+=" --target=${CTARGET}" + distutils-r1_src_configure +} diff --git a/dev-debug/drgn/drgn-0.1.0.ebuild b/dev-debug/drgn/drgn-0.1.0.ebuild new file mode 100644 index 000000000000..f43acbdec2a3 --- /dev/null +++ b/dev-debug/drgn/drgn-0.1.0.ebuild @@ -0,0 +1,70 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 multiprocessing pypi toolchain-funcs + +DESCRIPTION="Programmable debugger" +HOMEPAGE=" + https://github.com/osandov/drgn + https://pypi.org/project/drgn/ + https://drgn.readthedocs.io/en/latest/ +" + +LICENSE="LGPL-2.1+" +# Note that as of 0.0.31 at least, the API+ABI of libdrgn is unstable. +SLOT="0/${PV}" +KEYWORDS="~amd64" +IUSE="debuginfod lzma openmp pcre" + +DEPEND=" + >=dev-libs/elfutils-0.165[debuginfod?] + dev-libs/libkdumpfile:= + lzma? ( app-arch/xz-utils ) + pcre? ( dev-libs/libpcre2 ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + virtual/pkgconfig + test? ( dev-libs/check ) +" + +distutils_enable_tests unittest + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_configure() { + tc-export AR CC OBJCOPY OBJDUMP PKG_CONFIG RANLIB STRIP + + cat >> setup.cfg <<-EOF || die + [build_ext] + parallel = $(makeopts_jobs) + EOF + + # setuptools calls autotools (!) + export CONFIGURE_FLAGS + CONFIGURE_FLAGS="--disable-dependency-tracking --disable-silent-rules" + CONFIGURE_FLAGS+=" --with-libkdumpfile" + CONFIGURE_FLAGS+=" --enable-libdrgn" + CONFIGURE_FLAGS+=" --enable-python-extension" + CONFIGURE_FLAGS+=" --disable-dlopen-debuginfod" + CONFIGURE_FLAGS+=" $(use_with debuginfod)" + CONFIGURE_FLAGS+=" $(use_with lzma)" + CONFIGURE_FLAGS+=" $(use_enable openmp)" + CONFIGURE_FLAGS+=" $(use_with pcre pcre2)" + CONFIGURE_FLAGS+=" --build=${CBUILD}" + CONFIGURE_FLAGS+=" --host=${CHOST}" + CONFIGURE_FLAGS+=" --target=${CTARGET}" + distutils-r1_src_configure +} diff --git a/dev-debug/drgn/metadata.xml b/dev-debug/drgn/metadata.xml new file mode 100644 index 000000000000..3deb6540954f --- /dev/null +++ b/dev-debug/drgn/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <use> + <flag name="debuginfod">Enable debuginfod support</flag> + <flag name="lzma">Support XZ-compressed debug information (MiniDebugInfo).</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/dtrace/Manifest b/dev-debug/dtrace/Manifest new file mode 100644 index 000000000000..8ae8bc350f5a --- /dev/null +++ b/dev-debug/dtrace/Manifest @@ -0,0 +1,2 @@ +DIST dtrace-2.0.6.tar.gz 1728356 BLAKE2B dbb28c97a91e6759517eb6840b93b3abc5df08d33b94bd70bd03e2ffb523469324daa1d067c150244ea94c9ffc8d31703e4963f0746fed540863a8fc7f6674ef SHA512 89f9c572c2aed56fb6161d4a98681ca151fd084a21d0de455eab26dca839dd7001633a09a37d08078fce311b23b4a1b7ba7aef41a070249fd4e3fc68e328997d +DIST dtrace-2.0.7.tar.gz 1730617 BLAKE2B 971cadc74482368f1a51c89f8793f01ebf499fc3e1dc085b7e26642f157e8a58979082e9c3dd127b21443592f32d49ced4571d933392c0576650c9adc8bfb419 SHA512 5c49efde8a2bd4f4e79410bfebde07ac49415789a21351c077166d3c5e0f58a5153f8e391f7775cb9c6adb1bec30884dae2540c73ca2db25d56d30202e42f789 diff --git a/dev-debug/dtrace/dtrace-2.0.6.ebuild b/dev-debug/dtrace/dtrace-2.0.6.ebuild new file mode 100644 index 000000000000..4c3fb6b82c29 --- /dev/null +++ b/dev-debug/dtrace/dtrace-2.0.6.ebuild @@ -0,0 +1,232 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo flag-o-matic linux-info multilib systemd toolchain-funcs udev + +DESCRIPTION="Dynamic BPF-based system-wide tracing tool" +HOMEPAGE="https://github.com/oracle/dtrace https://wiki.gentoo.org/wiki/DTrace" + +if [[ ${PV} == 9999 ]]; then + EGIT_BRANCH="devel" + EGIT_REPO_URI="https://github.com/oracle/dtrace" + inherit git-r3 +else + SRC_URI="https://github.com/oracle/dtrace/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + + KEYWORDS="-* amd64 arm64" +fi + +LICENSE="UPL-1.0" +SLOT="0" +IUSE="test-install valgrind" + +# TODO: can we make the wireshark dep conditional? +DEPEND=" + dev-libs/elfutils + dev-libs/libbpf + dev-libs/libpfm:= + net-analyzer/wireshark[dumpcap] + net-libs/libpcap + >=sys-fs/fuse-3.2.0:3= + >=sys-libs/binutils-libs-2.42:= + virtual/zlib:= +" +RDEPEND=" + ${DEPEND} + !dev-debug/systemtap[dtrace-symlink(+)] + net-analyzer/wireshark + test-install? ( + app-alternatives/bc + app-editors/vim-core + dev-build/make + dev-lang/perl + dev-util/perf + net-fs/nfs-utils + sys-apps/coreutils + sys-fs/xfsprogs + sys-process/time + virtual/jdk + ) +" +BDEPEND=" + dev-build/make + sys-apps/gawk + sys-devel/bison + >=sys-devel/bpf-toolchain-14.1.0 + sys-devel/flex +" +DEPEND+=" valgrind? ( dev-debug/valgrind )" + +QA_PRESTRIPPED=" + usr/.*/dtrace/testsuite/test/triggers/.* +" +QA_FLAGS_IGNORED=" + usr/.*/dtrace/testsuite/test/triggers/.* +" + +# TODO: report upstream (bug #938221) although it seems like it's +# not relevant given it's a BPF object. +QA_EXECSTACK=" + usr/*/dtrace/bpf_dlib.* +" + +pkg_pretend() { + # TODO: optional kernel patches + + # Basics for debugging information, BPF + local CONFIG_CHECK="~BPF ~DEBUG_INFO_BTF ~KALLSYMS_ALL" + + CONFIG_CHECK+=" ~CUSE" + + # Tracing + CONFIG_CHECK+=" ~TRACING" + CONFIG_CHECK+=" ~UPROBES ~UPROBE_EVENTS" + CONFIG_CHECK+=" ~FTRACE ~FTRACE_SYSCALLS ~DYNAMIC_FTRACE ~FUNCTION_TRACER" + CONFIG_CHECK+=" ~FPROBE" + CONFIG_CHECK+=" ~BPF_KPROBE_OVERRIDE ~FUNCTION_ERROR_INJECTION" + # DTrace can fallback to kprobes for fbt but people often want them off + # for security and newer kernels work fine with BPF for that, so + # let's omit it. kprobes are slower and scale poorly. + + # https://gcc.gnu.org/PR84052 + CONFIG_CHECK+=" !GCC_PLUGIN_RANDSTRUCT" + + if use test-install ; then + # See test/modules + CONFIG_CHECK+=" ~EXT4_FS ~ISO9660_FS ~NFS_FS ~RDS ~TUN" + fi + + check_extra_config +} + +pkg_setup() { + eval unset ${!LC_*} LANG +} + +src_configure() { + if tc-is-cross-compiler; then + die "DTrace does not yet support cross-compilation." + fi + + tc-export CC + + # lld does this by default, so fix that, although lld fails anyway... + # 'LIBDTRACE_1.0' to symbol 'dtrace_provider_modules' failed: symbol not defined + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + # mold and lld can't cope with some relocation types used, e.g. + # 'test-triggers--usdt-tst-forker-prov.o:(.SUNW_dof): unknown relocation: R_X86_64_GLOB_DAT' + tc-ld-force-bfd + + # -fno-semantic-interposition seems to lead to a broken dtrace + # that can't actually obtain results from probes, even trivial examples + # just hang. + filter-flags -fno-semantic-interposition + # While it builds as of 2025-06-08, it's broken at runtime + # in the same way as -fno-semantic-interposition (hangs, no probes fire). + filter-lto + + local confargs=( + # TODO: Maybe we should set the UNPRIV_UID to something? -3 is a bit... kludgy + --prefix="${EPREFIX}"/usr + --mandir="${EPREFIX}"/usr/share/man + --docdir="${EPREFIX}"/usr/share/doc/${PF} + --with-systemd + HAVE_LIBCTF=yes + HAVE_BPFV3=yes + HAVE_VALGRIND=$(usex valgrind) + ) + + edo ./configure "${confargs[@]}" +} + +src_compile() { + local myemakeargs=( + verbose=1 + $(usev !test-install TRIGGERS='') + ) + + if use amd64 ; then + ! has_multilib_profile && myemakeargs+=( NATIVE_BITNESS_ONLY=1 ) + fi + + # -j1: https://github.com/oracle/dtrace/issues/82 + emake -j1 "${myemakeargs[@]}" +} + +src_test() { + # Needs root and is also very time-consuming + :; +} + +src_install() { + emake DESTDIR="${D}" -j1 install $(usev test-install install-test) + + # We want to strip neither the BPF libraries nor libdtrace.so itself + # as probes attach to some symbols that would get removed otherwise. + dostrip -x "/usr/$(get_libdir)" + + # It's a binary (TODO: move it?) + docompress -x /usr/share/doc/${PF}/showUSDT + + newinitd "${FILESDIR}"/dtprobed.init dtprobed +} + +pkg_postinst() { + # We need a udev reload to pick up the CUSE device node rules. + udev_reload + + if [[ -n ${REPLACING_VERSIONS} ]]; then + # TODO: Make this more intelligent wrt comparison + # One option for this is to detect when it's needed (DOF stash layout changes) + # and then e.g. sleep and restart for the user. + if systemd_is_booted ; then + einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" + einfo " systemctl try-restart dtprobed" + else + einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" + einfo " /etc/init.d/dtprobed restart" + fi + else + einfo "See https://wiki.gentoo.org/wiki/DTrace for getting started." + + # We can't do magic for people with ROOT=. + if [[ -n ${ROOT} ]] ; then + einfo "Enable and start the DTrace 'dtprobed' service for systemd with:" + einfo " systemctl enable --now dtprobed" + einfo + einfo "Enable and start the DTrace 'dtprobed' service for OpenRC with:" + einfo " rc-update add dtprobed" + einfo " /etc/init.d/dtprobed start" + return + fi + + # For first installs, we enable the service and start it. + # + # This is unusual, but the behaviour without dtprobed running + # is untested/unsupported. It's not a network service, it + # has no configuration, reads a single device node, and + # does all parsing within a seccomp jail. It also leads + # to hard-to-diagnose issues because USDT probes won't + # be registered and an application might have already + # started up which needs to be traced. + if systemd_is_booted ; then + ebegin "Enabling & starting DTrace 'dtprobed' service" + systemctl enable --now dtprobed + eend $? + else + ebegin "Enabling DTrace 'dtprobed' service" + rc-update add dtprobed + eend $? + + ebegin "Starting DTrace 'dtprobed' service" + rc-service dtprobed start + eend $? + fi + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/dev-debug/dtrace/dtrace-2.0.7.ebuild b/dev-debug/dtrace/dtrace-2.0.7.ebuild new file mode 100644 index 000000000000..4c3fb6b82c29 --- /dev/null +++ b/dev-debug/dtrace/dtrace-2.0.7.ebuild @@ -0,0 +1,232 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo flag-o-matic linux-info multilib systemd toolchain-funcs udev + +DESCRIPTION="Dynamic BPF-based system-wide tracing tool" +HOMEPAGE="https://github.com/oracle/dtrace https://wiki.gentoo.org/wiki/DTrace" + +if [[ ${PV} == 9999 ]]; then + EGIT_BRANCH="devel" + EGIT_REPO_URI="https://github.com/oracle/dtrace" + inherit git-r3 +else + SRC_URI="https://github.com/oracle/dtrace/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + + KEYWORDS="-* amd64 arm64" +fi + +LICENSE="UPL-1.0" +SLOT="0" +IUSE="test-install valgrind" + +# TODO: can we make the wireshark dep conditional? +DEPEND=" + dev-libs/elfutils + dev-libs/libbpf + dev-libs/libpfm:= + net-analyzer/wireshark[dumpcap] + net-libs/libpcap + >=sys-fs/fuse-3.2.0:3= + >=sys-libs/binutils-libs-2.42:= + virtual/zlib:= +" +RDEPEND=" + ${DEPEND} + !dev-debug/systemtap[dtrace-symlink(+)] + net-analyzer/wireshark + test-install? ( + app-alternatives/bc + app-editors/vim-core + dev-build/make + dev-lang/perl + dev-util/perf + net-fs/nfs-utils + sys-apps/coreutils + sys-fs/xfsprogs + sys-process/time + virtual/jdk + ) +" +BDEPEND=" + dev-build/make + sys-apps/gawk + sys-devel/bison + >=sys-devel/bpf-toolchain-14.1.0 + sys-devel/flex +" +DEPEND+=" valgrind? ( dev-debug/valgrind )" + +QA_PRESTRIPPED=" + usr/.*/dtrace/testsuite/test/triggers/.* +" +QA_FLAGS_IGNORED=" + usr/.*/dtrace/testsuite/test/triggers/.* +" + +# TODO: report upstream (bug #938221) although it seems like it's +# not relevant given it's a BPF object. +QA_EXECSTACK=" + usr/*/dtrace/bpf_dlib.* +" + +pkg_pretend() { + # TODO: optional kernel patches + + # Basics for debugging information, BPF + local CONFIG_CHECK="~BPF ~DEBUG_INFO_BTF ~KALLSYMS_ALL" + + CONFIG_CHECK+=" ~CUSE" + + # Tracing + CONFIG_CHECK+=" ~TRACING" + CONFIG_CHECK+=" ~UPROBES ~UPROBE_EVENTS" + CONFIG_CHECK+=" ~FTRACE ~FTRACE_SYSCALLS ~DYNAMIC_FTRACE ~FUNCTION_TRACER" + CONFIG_CHECK+=" ~FPROBE" + CONFIG_CHECK+=" ~BPF_KPROBE_OVERRIDE ~FUNCTION_ERROR_INJECTION" + # DTrace can fallback to kprobes for fbt but people often want them off + # for security and newer kernels work fine with BPF for that, so + # let's omit it. kprobes are slower and scale poorly. + + # https://gcc.gnu.org/PR84052 + CONFIG_CHECK+=" !GCC_PLUGIN_RANDSTRUCT" + + if use test-install ; then + # See test/modules + CONFIG_CHECK+=" ~EXT4_FS ~ISO9660_FS ~NFS_FS ~RDS ~TUN" + fi + + check_extra_config +} + +pkg_setup() { + eval unset ${!LC_*} LANG +} + +src_configure() { + if tc-is-cross-compiler; then + die "DTrace does not yet support cross-compilation." + fi + + tc-export CC + + # lld does this by default, so fix that, although lld fails anyway... + # 'LIBDTRACE_1.0' to symbol 'dtrace_provider_modules' failed: symbol not defined + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + # mold and lld can't cope with some relocation types used, e.g. + # 'test-triggers--usdt-tst-forker-prov.o:(.SUNW_dof): unknown relocation: R_X86_64_GLOB_DAT' + tc-ld-force-bfd + + # -fno-semantic-interposition seems to lead to a broken dtrace + # that can't actually obtain results from probes, even trivial examples + # just hang. + filter-flags -fno-semantic-interposition + # While it builds as of 2025-06-08, it's broken at runtime + # in the same way as -fno-semantic-interposition (hangs, no probes fire). + filter-lto + + local confargs=( + # TODO: Maybe we should set the UNPRIV_UID to something? -3 is a bit... kludgy + --prefix="${EPREFIX}"/usr + --mandir="${EPREFIX}"/usr/share/man + --docdir="${EPREFIX}"/usr/share/doc/${PF} + --with-systemd + HAVE_LIBCTF=yes + HAVE_BPFV3=yes + HAVE_VALGRIND=$(usex valgrind) + ) + + edo ./configure "${confargs[@]}" +} + +src_compile() { + local myemakeargs=( + verbose=1 + $(usev !test-install TRIGGERS='') + ) + + if use amd64 ; then + ! has_multilib_profile && myemakeargs+=( NATIVE_BITNESS_ONLY=1 ) + fi + + # -j1: https://github.com/oracle/dtrace/issues/82 + emake -j1 "${myemakeargs[@]}" +} + +src_test() { + # Needs root and is also very time-consuming + :; +} + +src_install() { + emake DESTDIR="${D}" -j1 install $(usev test-install install-test) + + # We want to strip neither the BPF libraries nor libdtrace.so itself + # as probes attach to some symbols that would get removed otherwise. + dostrip -x "/usr/$(get_libdir)" + + # It's a binary (TODO: move it?) + docompress -x /usr/share/doc/${PF}/showUSDT + + newinitd "${FILESDIR}"/dtprobed.init dtprobed +} + +pkg_postinst() { + # We need a udev reload to pick up the CUSE device node rules. + udev_reload + + if [[ -n ${REPLACING_VERSIONS} ]]; then + # TODO: Make this more intelligent wrt comparison + # One option for this is to detect when it's needed (DOF stash layout changes) + # and then e.g. sleep and restart for the user. + if systemd_is_booted ; then + einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" + einfo " systemctl try-restart dtprobed" + else + einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" + einfo " /etc/init.d/dtprobed restart" + fi + else + einfo "See https://wiki.gentoo.org/wiki/DTrace for getting started." + + # We can't do magic for people with ROOT=. + if [[ -n ${ROOT} ]] ; then + einfo "Enable and start the DTrace 'dtprobed' service for systemd with:" + einfo " systemctl enable --now dtprobed" + einfo + einfo "Enable and start the DTrace 'dtprobed' service for OpenRC with:" + einfo " rc-update add dtprobed" + einfo " /etc/init.d/dtprobed start" + return + fi + + # For first installs, we enable the service and start it. + # + # This is unusual, but the behaviour without dtprobed running + # is untested/unsupported. It's not a network service, it + # has no configuration, reads a single device node, and + # does all parsing within a seccomp jail. It also leads + # to hard-to-diagnose issues because USDT probes won't + # be registered and an application might have already + # started up which needs to be traced. + if systemd_is_booted ; then + ebegin "Enabling & starting DTrace 'dtprobed' service" + systemctl enable --now dtprobed + eend $? + else + ebegin "Enabling DTrace 'dtprobed' service" + rc-update add dtprobed + eend $? + + ebegin "Starting DTrace 'dtprobed' service" + rc-service dtprobed start + eend $? + fi + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/dev-debug/dtrace/dtrace-9999.ebuild b/dev-debug/dtrace/dtrace-9999.ebuild new file mode 100644 index 000000000000..a048c509f0f0 --- /dev/null +++ b/dev-debug/dtrace/dtrace-9999.ebuild @@ -0,0 +1,233 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo flag-o-matic linux-info multilib systemd toolchain-funcs udev + +DESCRIPTION="Dynamic BPF-based system-wide tracing tool" +HOMEPAGE="https://github.com/oracle/dtrace https://wiki.gentoo.org/wiki/DTrace" + +if [[ ${PV} == 9999 ]]; then + EGIT_BRANCH="devel" + EGIT_REPO_URI="https://github.com/oracle/dtrace" + inherit git-r3 +else + SRC_URI="https://github.com/oracle/dtrace/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + + KEYWORDS="-* ~amd64 ~arm64" +fi + +LICENSE="UPL-1.0" +SLOT="0" +IUSE="test-install valgrind" + +# TODO: can we make the wireshark dep conditional? +DEPEND=" + dev-libs/elfutils + dev-libs/libbpf + dev-libs/libpfm:= + net-analyzer/wireshark[dumpcap] + net-libs/libpcap + >=sys-fs/fuse-3.2.0:3= + >=sys-libs/binutils-libs-2.42:= + virtual/zlib:= +" +RDEPEND=" + ${DEPEND} + !dev-debug/systemtap[dtrace-symlink(+)] + net-analyzer/wireshark + test-install? ( + app-alternatives/bc + app-editors/vim-core + dev-build/make + dev-lang/perl + dev-util/perf + net-fs/nfs-utils + sys-apps/coreutils + sys-fs/xfsprogs + sys-process/time + virtual/jdk + ) +" +BDEPEND=" + dev-build/make + sys-apps/gawk + sys-devel/bison + >=sys-devel/bpf-toolchain-14.1.0 + sys-devel/flex +" +DEPEND+=" valgrind? ( dev-debug/valgrind )" + +QA_PRESTRIPPED=" + usr/.*/dtrace/testsuite/test/triggers/.* +" +QA_FLAGS_IGNORED=" + usr/.*/dtrace/testsuite/test/triggers/.* +" + +# TODO: report upstream (bug #938221) although it seems like it's +# not relevant given it's a BPF object. +QA_EXECSTACK=" + usr/*/dtrace/bpf_dlib.* +" + +pkg_pretend() { + # TODO: optional kernel patches + + # Basics for debugging information, BPF + local CONFIG_CHECK="~BPF ~DEBUG_INFO_BTF ~KALLSYMS_ALL" + + CONFIG_CHECK+=" ~CUSE" + + # Tracing + CONFIG_CHECK+=" ~TRACING" + CONFIG_CHECK+=" ~UPROBES ~UPROBE_EVENTS" + CONFIG_CHECK+=" ~FTRACE ~FTRACE_SYSCALLS ~DYNAMIC_FTRACE ~FUNCTION_TRACER" + CONFIG_CHECK+=" ~FPROBE" + CONFIG_CHECK+=" ~BPF_KPROBE_OVERRIDE ~FUNCTION_ERROR_INJECTION" + # DTrace can fallback to kprobes for fbt but people often want them off + # for security and newer kernels work fine with BPF for that, so + # let's omit it. kprobes are slower and scale poorly. + + # https://gcc.gnu.org/PR84052 + CONFIG_CHECK+=" !GCC_PLUGIN_RANDSTRUCT" + + if use test-install ; then + # See test/modules + CONFIG_CHECK+=" ~EXT4_FS ~ISO9660_FS ~NFS_FS ~RDS ~TUN" + fi + + check_extra_config +} + +pkg_setup() { + eval unset ${!LC_*} LANG +} + +src_configure() { + if tc-is-cross-compiler; then + die "DTrace does not yet support cross-compilation." + fi + + tc-export CC + + # lld does this by default, so fix that, although lld fails anyway... + # 'LIBDTRACE_1.0' to symbol 'dtrace_provider_modules' failed: symbol not defined + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + # mold and lld can't cope with some relocation types used, e.g. + # 'test-triggers--usdt-tst-forker-prov.o:(.SUNW_dof): unknown relocation: R_X86_64_GLOB_DAT' + tc-ld-force-bfd + + # -fno-semantic-interposition seems to lead to a broken dtrace + # that can't actually obtain results from probes, even trivial examples + # just hang. + filter-flags -fno-semantic-interposition + # While it builds as of 2025-06-08, it's broken at runtime + # in the same way as -fno-semantic-interposition (hangs, no probes fire). + filter-lto + + local confargs=( + --disable-dependency-tracking + # TODO: Maybe we should set the UNPRIV_UID to something? -3 is a bit... kludgy + --prefix="${EPREFIX}"/usr + --mandir="${EPREFIX}"/usr/share/man + --docdir="${EPREFIX}"/usr/share/doc/${PF} + --with-systemd + HAVE_LIBCTF=yes + HAVE_BPFV3=yes + HAVE_VALGRIND=$(usex valgrind) + ) + + edo ./configure "${confargs[@]}" +} + +src_compile() { + local myemakeargs=( + verbose=1 + $(usev !test-install TRIGGERS='') + ) + + if use amd64 ; then + ! has_multilib_profile && myemakeargs+=( NATIVE_BITNESS_ONLY=1 ) + fi + + # -j1: https://github.com/oracle/dtrace/issues/82 + emake -j1 "${myemakeargs[@]}" +} + +src_test() { + # Needs root and is also very time-consuming + :; +} + +src_install() { + emake DESTDIR="${D}" -j1 install $(usev test-install install-test) + + # We want to strip neither the BPF libraries nor libdtrace.so itself + # as probes attach to some symbols that would get removed otherwise. + dostrip -x "/usr/$(get_libdir)" + + # It's a binary (TODO: move it?) + docompress -x /usr/share/doc/${PF}/showUSDT + + newinitd "${FILESDIR}"/dtprobed.init dtprobed +} + +pkg_postinst() { + # We need a udev reload to pick up the CUSE device node rules. + udev_reload + + if [[ -n ${REPLACING_VERSIONS} ]]; then + # TODO: Make this more intelligent wrt comparison + # One option for this is to detect when it's needed (DOF stash layout changes) + # and then e.g. sleep and restart for the user. + if systemd_is_booted ; then + einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" + einfo " systemctl try-restart dtprobed" + else + einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" + einfo " /etc/init.d/dtprobed restart" + fi + else + einfo "See https://wiki.gentoo.org/wiki/DTrace for getting started." + + # We can't do magic for people with ROOT=. + if [[ -n ${ROOT} ]] ; then + einfo "Enable and start the DTrace 'dtprobed' service for systemd with:" + einfo " systemctl enable --now dtprobed" + einfo + einfo "Enable and start the DTrace 'dtprobed' service for OpenRC with:" + einfo " rc-update add dtprobed" + einfo " /etc/init.d/dtprobed start" + return + fi + + # For first installs, we enable the service and start it. + # + # This is unusual, but the behaviour without dtprobed running + # is untested/unsupported. It's not a network service, it + # has no configuration, reads a single device node, and + # does all parsing within a seccomp jail. It also leads + # to hard-to-diagnose issues because USDT probes won't + # be registered and an application might have already + # started up which needs to be traced. + if systemd_is_booted ; then + ebegin "Enabling & starting DTrace 'dtprobed' service" + systemctl enable --now dtprobed + eend $? + else + ebegin "Enabling DTrace 'dtprobed' service" + rc-update add dtprobed + eend $? + + ebegin "Starting DTrace 'dtprobed' service" + rc-service dtprobed start + eend $? + fi + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/dev-debug/dtrace/files/dtprobed.init b/dev-debug/dtrace/files/dtprobed.init new file mode 100644 index 000000000000..b3d039671e2f --- /dev/null +++ b/dev-debug/dtrace/files/dtprobed.init @@ -0,0 +1,15 @@ +#!/sbin/openrc-run + +depend() { + need localmount + need bootmisc + after logger +} + +start() { + start-stop-daemon --start --exec /usr/sbin/dtprobed +} + +stop() { + start-stop-daemon --stop --exec /usr/sbin/dtprobed +} diff --git a/dev-debug/dtrace/metadata.xml b/dev-debug/dtrace/metadata.xml new file mode 100644 index 000000000000..83d41390d149 --- /dev/null +++ b/dev-debug/dtrace/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <maintainer type="person"> + <email>arsen@gentoo.org</email> + <name>Arsen Arsenović</name> + </maintainer> + <use> + <flag name="test-install"> + Install the testsuite for manual use. It is not suitable + for automatic execution within the ebuild because it + requires root privileges. + + BTF must be available for the running kernel at build-time + with this flag. + </flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/gdb-dashboard/Manifest b/dev-debug/gdb-dashboard/Manifest new file mode 100644 index 000000000000..a83981878a85 --- /dev/null +++ b/dev-debug/gdb-dashboard/Manifest @@ -0,0 +1 @@ +DIST gdb-dashboard-0.17.4.tar.gz 23332 BLAKE2B cf05fea4c3d722d1bafbc6ef4a26df88be555be6adf8dca313ef9b8b28cad533931d3d2da0cb2660c1233c3b3e744a518893698ecbb1e573e12812cebfc3e7c8 SHA512 9cce63be926d21aace0833b52b36266f115599fbbf426dcd7d8090a6861c1c9db26fe7d953bedcbec0b96b75c9b2b9af59666c0e80f5cdf55bd6d44523459dbd diff --git a/dev-debug/gdb-dashboard/files/gdb-dashboard-0.17.4-fix-buffer-overflow.patch b/dev-debug/gdb-dashboard/files/gdb-dashboard-0.17.4-fix-buffer-overflow.patch new file mode 100644 index 000000000000..d1ec1f375ae9 --- /dev/null +++ b/dev-debug/gdb-dashboard/files/gdb-dashboard-0.17.4-fix-buffer-overflow.patch @@ -0,0 +1,34 @@ +Ref: https://github.com/cyrus-and/gdb-dashboard/pull/342 + +From b47be5e0563dec7d8d71bd5477d7c27bb1fda0c1 Mon Sep 17 00:00:00 2001 +From: Valentin Tunev <vlttnv@fastmail.com> +Date: Wed, 5 Nov 2025 21:59:17 +0200 +Subject: [PATCH] Fix buffer overflow in get_term_size() + +Use an 8-byte buffer, unpack the first 4 bytes for rows/cols, and +include SystemError in the except clause to cover additional terminal +errors. +--- + .gdbinit | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/.gdbinit b/.gdbinit +index 3af237b..654f27d 100644 +--- a/.gdbinit ++++ b/.gdbinit +@@ -612,11 +612,11 @@ class Dashboard(gdb.Command): + else: + import termios + import fcntl +- # first 2 shorts (4 byte) of struct winsize +- raw = fcntl.ioctl(fd, termios.TIOCGWINSZ, ' ' * 4) +- height, width = struct.unpack('hh', raw) ++ # struct winsize is 8 bytes, but we only need the first 2 shorts (rows, cols) ++ raw = fcntl.ioctl(fd, termios.TIOCGWINSZ, b'\0' * 8) ++ height, width = struct.unpack('hh', raw[:4]) + return int(width), int(height) +- except (ImportError, OSError): ++ except (ImportError, OSError, SystemError): + # this happens when no curses library is found on windows or when + # the terminal is not properly configured + return 80, 24 # hardcoded fallback value diff --git a/dev-debug/gdb-dashboard/gdb-dashboard-0.17.4-r1.ebuild b/dev-debug/gdb-dashboard/gdb-dashboard-0.17.4-r1.ebuild new file mode 100644 index 000000000000..de1ef87e757e --- /dev/null +++ b/dev-debug/gdb-dashboard/gdb-dashboard-0.17.4-r1.ebuild @@ -0,0 +1,55 @@ +# Copyright 2023-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit python-single-r1 optfeature wrapper + +DESCRIPTION="Modular visual interface for GDB in Python" +HOMEPAGE="https://github.com/cyrus-and/gdb-dashboard" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/cyrus-and/gdb-dashboard" +else + SRC_URI="https://github.com/cyrus-and/gdb-dashboard/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-debug/gdb[python] + ${PYTHON_DEPS} +" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +PATCHES=( "${FILESDIR}"/${PN}-0.17.4-fix-buffer-overflow.patch ) + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_install() { + insinto "/usr/share/${PN}" + newins .gdbinit "${PN}" + + # install a convenient wrapper. disables any typical .gdbinit (-nh) to + # get a clean state without interference. -q to disable annoying + # copyright message at startup. + make_wrapper "$PN" "gdb -q -nh -iex 'source /usr/share/${PN}/${PN}'" + + dodoc README.md +} + +pkg_postinst() { + einfo "To use ${PN}:" + einfo " Either use the installed '${PN}' wrapper script directly." + einfo " Or put 'source /usr/share/${PN}/${PN}' in your .gdbinit file." + einfo "" + + optfeature "syntax highlighting" "dev-python/pygments" +} diff --git a/dev-debug/gdb-dashboard/metadata.xml b/dev-debug/gdb-dashboard/metadata.xml new file mode 100644 index 000000000000..18f5fb184b10 --- /dev/null +++ b/dev-debug/gdb-dashboard/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>nrk@disroot.org</email> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/gdb/Manifest b/dev-debug/gdb/Manifest new file mode 100644 index 000000000000..7ec59dcc8c08 --- /dev/null +++ b/dev-debug/gdb/Manifest @@ -0,0 +1,3 @@ +DIST gdb-16.3.tar.xz 24434444 BLAKE2B a75c8655b39580a7f6e0d85ef663f60932fbed9a92ade6d58a2e99bc8b1416b36f8410c66c23bdada83e221a65c1cdfdeb7bb7ae9a930c443557864a1769dbee SHA512 fffd6689c3405466a179670b04720dc825e4f210a761f63dd2b33027432f8cd5d1c059c431a5ec9e165eedd1901220b5329d73c522f9a444788888c731b29e9c +DIST gdb-17.1.tar.xz 24663896 BLAKE2B 35de074a50c747e6ed42faee8a87b3898b57d33e9667c9001eaf8b54c8cce555f7b16642d1583c1b4aabb45fc5e5db8c33d9f5786351e736f2db2f90d28a07ed SHA512 f1a6751e439a2128fecf3eae8b57c1608a0dc7cfe79b4356a937874e5a42bb2df0aba36eb6a9452c41966908b9a59076c7cad9720f684688ab956b65080f1d7c +DIST gdb-17.2.tar.xz 24658624 BLAKE2B 3c6c893e1d26d534918fb07b64f2e5b368825a64f888171f07443c5ebed456e7c26ed223d78bf304ee5f145c6f3c08c790c993c7b955d168e2fd8e656c6e1e9a SHA512 7794c5a185be7ed5e7ad1000c4ff7d8497c80425a1bc108aab8fd3dd8ecdde034e294dfd65b25c6b0dcd8ed2a240caf07293f3e73791b6cfc890d580d0af4581 diff --git a/dev-debug/gdb/files/gdb-8.3.1-verbose-build.patch b/dev-debug/gdb/files/gdb-8.3.1-verbose-build.patch new file mode 100644 index 000000000000..06aa6084d2d2 --- /dev/null +++ b/dev-debug/gdb/files/gdb-8.3.1-verbose-build.patch @@ -0,0 +1,13 @@ +Enable verbose build. By default gdb ignores even --disable-silent-rules. +Override verbosity back to non-silent. + +https://bugs.gentoo.org/695936 +--- a/gdb/silent-rules.mk ++++ b/gdb/silent-rules.mk +@@ -1,5 +1,4 @@ +-# If V is undefined or V=0 is specified, use the silent/verbose/compact mode. +-V ?= 0 ++V ?= 1 + ifeq ($(V),0) + ECHO_CXX = @echo " CXX $@"; + ECHO_CXXLD = @echo " CXXLD $@"; diff --git a/dev-debug/gdb/gdb-16.3.ebuild b/dev-debug/gdb/gdb-16.3.ebuild new file mode 100644 index 000000000000..fc32c360afa1 --- /dev/null +++ b/dev-debug/gdb/gdb-16.3.ebuild @@ -0,0 +1,349 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{13..14} ) +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs + +export CTARGET=${CTARGET:-${CHOST}} + +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +case ${PV} in + 9999*) + # live git tree + EGIT_REPO_URI=" + https://sourceware.org/git/binutils-gdb.git + https://git.sr.ht/~sourceware/binutils-gdb + https://gitlab.com/x86-binutils/binutils-gdb.git + " + inherit git-r3 + SRC_URI="" + ;; + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; + *) + # Normal upstream release + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 +esac + +PATCH_DEV="" +PATCH_VER="" +DESCRIPTION="GNU debugger" +HOMEPAGE="https://sourceware.org/gdb/" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} +" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="babeltrace cet +debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" +fi +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + rocm? ( multitarget ) +" +RESTRICT="!test? ( test )" + +# <babeltrace-2: bug #951652 +RDEPEND=" + dev-libs/mpfr:= + dev-libs/gmp:= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= + virtual/zlib:= + babeltrace? ( dev-util/babeltrace:0/1 ) + debuginfod? ( + dev-libs/elfutils[debuginfod(-)] + ) + lzma? ( app-arch/xz-utils ) + python? ( ${PYTHON_DEPS} ) + guile? ( ${GUILE_DEPS} ) + xml? ( dev-libs/expat ) + rocm? ( >=dev-libs/rocdbgapi-6.3 ) + source-highlight? ( + dev-util/source-highlight + ) + xxhash? ( + dev-libs/xxhash + ) + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + sys-apps/texinfo + app-alternatives/yacc + nls? ( sys-devel/gettext ) + source-highlight? ( virtual/pkgconfig ) + test? ( dev-util/dejagnu ) +" + +QA_CONFIG_IMPL_DECL_SKIP=( + MIN # gnulib FP (bug #898688) +) + +QA_PREBUILT="usr/share/gdb/guile/*" + +PATCHES=( + "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch +) + +pkg_setup() { + local CONFIG_CHECK + + if [[ ${CHOST} == *-linux-* ]] ; then + if kernel_is -ge 6.11.3 ; then + # https://forums.gentoo.org/viewtopic-p-8846891.html + # + # Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE + # should be okay, but not CONFIG_PROC_MEM_NO_FORCE. + CONFIG_CHECK+=" + ~!PROC_MEM_NO_FORCE + " + fi + fi + + linux-info_pkg_setup + + use guile && guile-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + use guile && guile_bump_sources + + strip-linguas -u bfd/po opcodes/po + + # Avoid using ancient termcap from host on Prefix systems + sed -i -e 's/termcap tinfow/tinfow/g' \ + gdb/configure{.ac,} || die +} + +gdb_branding() { + printf "Gentoo ${PV} " + + if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then + printf "p${PATCH_VER}" + else + printf "vanilla" + fi + + [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}" +} + +src_configure() { + strip-unsupported-flags + + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + local myconf=( + # portage's econf() does not detect presence of --d-d-t + # because it greps only top-level ./configure. But not + # libiberty's or gdb's configure. + --disable-dependency-tracking + --disable-silent-rules + + --with-pkgversion="$(gdb_branding)" + --with-bugurl='https://bugs.gentoo.org/' + --disable-werror + # Disable modules that are in a combined binutils/gdb tree. bug #490566 + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} + + $(use_with babeltrace) + $(use_with debuginfod) + + $(use_enable test unit-tests) + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" + ) + + is_cross && myconf+=( + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" + --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" + ) + + # gdbserver only works for native targets (CHOST==CTARGET). + # it also doesn't support all targets, so rather than duplicate + # the target list (which changes between versions), use the + # "auto" value when things are turned on, which is triggered + # whenever no --enable or --disable is given + if is_cross || use !server ; then + myconf+=( --disable-gdbserver ) + fi + + myconf+=( + --enable-64-bit-bfd + --disable-install-libbfd + --disable-install-libiberty + --enable-obsolete + # This only disables building in the readline subdir. + # For gdb itself, it'll use the system version. + --disable-readline + --with-system-readline + # This only disables building in the zlib subdir. + # For gdb itself, it'll use the system version. + --without-zlib + --with-system-zlib + --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug + --with-amd-dbgapi=$(usex rocm) + $(use_with xml expat) + $(use_with lzma) + $(use_enable nls) + $(use_enable sim) + $(use_enable source-highlight) + $(use multitarget && echo --enable-targets=all) + $(use_with python python "${EPYTHON}") + $(use_with xxhash) + $(use_with guile) + $(use_with zstd) + + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) + + # source-highlight is detected with pkg-config: bug #716558 + export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" + + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + + # ensure proper compiler is detected for Clang builds: bug #831202 + export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}" + + econf "${myconf[@]}" +} + +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + +src_install() { + emake DESTDIR="${D}" install + + find "${ED}"/usr -name libiberty.a -delete || die + + # Delete translations that conflict with binutils-libs. bug #528088 + # Note: Should figure out how to store these in an internal gdb dir. + if use nls ; then + find "${ED}" \ + -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \ + -delete || die + fi + + # Don't install docs when building a cross-gdb + if [[ ${CTARGET} != ${CHOST} ]] ; then + rm -rf "${ED}"/usr/share/{doc,info,locale} || die + local f + for f in "${ED}"/usr/share/man/*/* ; do + if [[ ${f##*/} != ${CTARGET}-* ]] ; then + mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die + fi + done + return 0 + fi + + # Install it by hand for now: + # https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html + # Only install if it exists due to the twisted behavior (see + # notes in src_configure above). + [[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay + + docinto gdb + dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ + gdb/NEWS gdb/PROBLEMS + docinto sim + dodoc sim/{MAINTAINERS,README-HACKING} + + if use server ; then + docinto gdbserver + dodoc gdbserver/README + fi + + # Remove shared info pages + rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* + + use guile && guile_unstrip_ccache + + if use python ; then + python_optimize "${ED}"/usr/share/gdb/python/gdb + fi +} + +pkg_postinst() { + # Portage doesn't unmerge files in /etc + rm -vf "${EROOT}"/etc/skel/.gdbinit + + if use prefix && [[ ${CHOST} == *-darwin* ]] ; then + ewarn "gdb is unable to get a mach task port when installed by Prefix" + ewarn "Portage, unprivileged. To make gdb fully functional you'll" + ewarn "have to perform the following steps:" + ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb" + ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb" + fi +} diff --git a/dev-debug/gdb/gdb-17.1.ebuild b/dev-debug/gdb/gdb-17.1.ebuild new file mode 100644 index 000000000000..e634b4f5812e --- /dev/null +++ b/dev-debug/gdb/gdb-17.1.ebuild @@ -0,0 +1,354 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{13..14} ) +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs + +export CTARGET=${CTARGET:-${CHOST}} + +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +case ${PV} in + 9999*) + # live git tree + EGIT_REPO_URI=" + https://sourceware.org/git/binutils-gdb.git + https://git.sr.ht/~sourceware/binutils-gdb + https://gitlab.com/x86-binutils/binutils-gdb.git + " + inherit git-r3 + SRC_URI="" + ;; + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; + *) + # Normal upstream release + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 +esac + +PATCH_DEV="" +PATCH_VER="" +DESCRIPTION="GNU debugger" +HOMEPAGE="https://sourceware.org/gdb/" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} +" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="babeltrace cet +debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla +xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" +fi +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + rocm? ( multitarget ) +" +RESTRICT="!test? ( test )" + +# <babeltrace-2: bug #951652 +RDEPEND=" + dev-libs/mpfr:= + dev-libs/gmp:= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= + virtual/zlib:= + babeltrace? ( dev-util/babeltrace:0/1 ) + debuginfod? ( + dev-libs/elfutils[debuginfod(-)] + ) + lzma? ( app-arch/xz-utils ) + python? ( ${PYTHON_DEPS} ) + guile? ( ${GUILE_DEPS} ) + xml? ( dev-libs/expat ) + rocm? ( >=dev-libs/rocdbgapi-6.3 ) + source-highlight? ( + dev-util/source-highlight + ) + xxhash? ( + dev-libs/xxhash + ) + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + sys-apps/texinfo + app-alternatives/yacc + nls? ( sys-devel/gettext ) + source-highlight? ( virtual/pkgconfig ) + test? ( dev-util/dejagnu ) +" + +QA_CONFIG_IMPL_DECL_SKIP=( + MIN # gnulib FP (bug #898688) +) + +QA_PREBUILT="usr/share/gdb/guile/*" + +PATCHES=( + "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch +) + +pkg_setup() { + local CONFIG_CHECK + + if [[ ${CHOST} == *-linux-* ]] ; then + if kernel_is -ge 6.11.3 ; then + # https://forums.gentoo.org/viewtopic-p-8846891.html + # See also PR31520. + # + # Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE + # should be okay, but not CONFIG_PROC_MEM_NO_FORCE. + CONFIG_CHECK+=" + ~!PROC_MEM_NO_FORCE + " + fi + fi + + linux-info_pkg_setup + + use guile && guile-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + use guile && guile_bump_sources + + strip-linguas -u bfd/po opcodes/po + + # Avoid using ancient termcap from host on Prefix systems + sed -i -e 's/termcap tinfow/tinfow/g' \ + gdb/configure{.ac,} || die +} + +gdb_branding() { + printf "Gentoo ${PV} " + + if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then + printf "p${PATCH_VER}" + else + printf "vanilla" + fi + + [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}" +} + +src_configure() { + strip-unsupported-flags + + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + local myconf=( + # portage's econf() does not detect presence of --d-d-t + # because it greps only top-level ./configure. But not + # libiberty's or gdb's configure. + --disable-dependency-tracking + --disable-silent-rules + + --with-pkgversion="$(gdb_branding)" + --with-bugurl='https://bugs.gentoo.org/' + --disable-werror + # Disable modules that are in a combined binutils/gdb tree. bug #490566 + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} + + $(use_with babeltrace) + $(use_with debuginfod) + + $(use_enable test unit-tests) + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" + ) + + is_cross && myconf+=( + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" + --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" + ) + + # gdbserver only works for native targets (CHOST==CTARGET). + # it also doesn't support all targets, so rather than duplicate + # the target list (which changes between versions), use the + # "auto" value when things are turned on, which is triggered + # whenever no --enable or --disable is given + if is_cross || use !server ; then + myconf+=( --disable-gdbserver ) + fi + + myconf+=( + --enable-64-bit-bfd + --disable-install-libbfd + --disable-install-libiberty + --enable-obsolete + # This only disables building in the readline subdir. + # For gdb itself, it'll use the system version. + --disable-readline + --with-system-readline + # This only disables building in the zlib subdir. + # For gdb itself, it'll use the system version. + --without-zlib + --with-system-zlib + --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug + --with-amd-dbgapi=$(usex rocm) + $(use_with xml expat) + $(use_with lzma) + $(use_enable nls) + $(use_enable sim) + $(use_enable source-highlight) + $(use multitarget && echo --enable-targets=all) + $(use_with python python "${EPYTHON}") + $(use_with xxhash) + $(use_with guile) + $(use_with zstd) + + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) + + # source-highlight is detected with pkg-config: bug #716558 + export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" + + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + + # ensure proper compiler is detected for Clang builds: bug #831202 + export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}" + + econf "${myconf[@]}" +} + +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + +src_install() { + emake DESTDIR="${D}" install + + find "${ED}"/usr -name libiberty.a -delete || die + + # Delete translations that conflict with binutils-libs. bug #528088 + # Note: Should figure out how to store these in an internal gdb dir. + if use nls ; then + find "${ED}" \ + -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \ + -delete || die + fi + + # Don't install docs when building a cross-gdb + if [[ ${CTARGET} != ${CHOST} ]] ; then + rm -rf "${ED}"/usr/share/{doc,info,locale} || die + local f + for f in "${ED}"/usr/share/man/*/* ; do + if [[ ${f##*/} != ${CTARGET}-* ]] ; then + mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die + fi + done + return 0 + fi + + # Install it by hand for now: + # https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html + # Only install if it exists due to the twisted behavior (see + # notes in src_configure above). + [[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay + + docinto gdb + dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ + gdb/NEWS gdb/PROBLEMS + docinto sim + dodoc sim/{MAINTAINERS,README-HACKING} + + if use server ; then + docinto gdbserver + dodoc gdbserver/README + fi + + # Remove shared info pages + rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* + + use guile && guile_unstrip_ccache + + if use python ; then + python_optimize "${ED}"/usr/share/gdb/python/gdb + fi + + if use kernel_Hurd ; then + mv "${ED}"/usr/bin/gcore "${ED}"/usr/bin/gcore.gdb || die + fi +} + +pkg_postinst() { + # Portage doesn't unmerge files in /etc + rm -vf "${EROOT}"/etc/skel/.gdbinit + + if use prefix && [[ ${CHOST} == *-darwin* ]] ; then + ewarn "gdb is unable to get a mach task port when installed by Prefix" + ewarn "Portage, unprivileged. To make gdb fully functional you'll" + ewarn "have to perform the following steps:" + ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb" + ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb" + fi +} diff --git a/dev-debug/gdb/gdb-17.2.ebuild b/dev-debug/gdb/gdb-17.2.ebuild new file mode 100644 index 000000000000..74d14782e7fd --- /dev/null +++ b/dev-debug/gdb/gdb-17.2.ebuild @@ -0,0 +1,354 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{13..14} ) +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs + +export CTARGET=${CTARGET:-${CHOST}} + +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +case ${PV} in + 9999*) + # live git tree + EGIT_REPO_URI=" + https://sourceware.org/git/binutils-gdb.git + https://git.sr.ht/~sourceware/binutils-gdb + https://gitlab.com/x86-binutils/binutils-gdb.git + " + inherit git-r3 + SRC_URI="" + ;; + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; + *) + # Normal upstream release + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 +esac + +PATCH_DEV="" +PATCH_VER="" +DESCRIPTION="GNU debugger" +HOMEPAGE="https://sourceware.org/gdb/" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} +" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="babeltrace cet +debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla +xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +fi +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + rocm? ( multitarget ) +" +RESTRICT="!test? ( test )" + +# <babeltrace-2: bug #951652 +RDEPEND=" + dev-libs/mpfr:= + dev-libs/gmp:= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= + virtual/zlib:= + babeltrace? ( dev-util/babeltrace:0/1 ) + debuginfod? ( + dev-libs/elfutils[debuginfod(-)] + ) + lzma? ( app-arch/xz-utils ) + python? ( ${PYTHON_DEPS} ) + guile? ( ${GUILE_DEPS} ) + xml? ( dev-libs/expat ) + rocm? ( >=dev-libs/rocdbgapi-6.3 ) + source-highlight? ( + dev-util/source-highlight + ) + xxhash? ( + dev-libs/xxhash + ) + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + sys-apps/texinfo + app-alternatives/yacc + nls? ( sys-devel/gettext ) + source-highlight? ( virtual/pkgconfig ) + test? ( dev-util/dejagnu ) +" + +QA_CONFIG_IMPL_DECL_SKIP=( + MIN # gnulib FP (bug #898688) +) + +QA_PREBUILT="usr/share/gdb/guile/*" + +PATCHES=( + "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch +) + +pkg_setup() { + local CONFIG_CHECK + + if [[ ${CHOST} == *-linux-* ]] ; then + if kernel_is -ge 6.11.3 ; then + # https://forums.gentoo.org/viewtopic-p-8846891.html + # See also PR31520. + # + # Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE + # should be okay, but not CONFIG_PROC_MEM_NO_FORCE. + CONFIG_CHECK+=" + ~!PROC_MEM_NO_FORCE + " + fi + fi + + linux-info_pkg_setup + + use guile && guile-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + use guile && guile_bump_sources + + strip-linguas -u bfd/po opcodes/po + + # Avoid using ancient termcap from host on Prefix systems + sed -i -e 's/termcap tinfow/tinfow/g' \ + gdb/configure{.ac,} || die +} + +gdb_branding() { + printf "Gentoo ${PV} " + + if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then + printf "p${PATCH_VER}" + else + printf "vanilla" + fi + + [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}" +} + +src_configure() { + strip-unsupported-flags + + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + local myconf=( + # portage's econf() does not detect presence of --d-d-t + # because it greps only top-level ./configure. But not + # libiberty's or gdb's configure. + --disable-dependency-tracking + --disable-silent-rules + + --with-pkgversion="$(gdb_branding)" + --with-bugurl='https://bugs.gentoo.org/' + --disable-werror + # Disable modules that are in a combined binutils/gdb tree. bug #490566 + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} + + $(use_with babeltrace) + $(use_with debuginfod) + + $(use_enable test unit-tests) + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" + ) + + is_cross && myconf+=( + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" + --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" + ) + + # gdbserver only works for native targets (CHOST==CTARGET). + # it also doesn't support all targets, so rather than duplicate + # the target list (which changes between versions), use the + # "auto" value when things are turned on, which is triggered + # whenever no --enable or --disable is given + if is_cross || use !server ; then + myconf+=( --disable-gdbserver ) + fi + + myconf+=( + --enable-64-bit-bfd + --disable-install-libbfd + --disable-install-libiberty + --enable-obsolete + # This only disables building in the readline subdir. + # For gdb itself, it'll use the system version. + --disable-readline + --with-system-readline + # This only disables building in the zlib subdir. + # For gdb itself, it'll use the system version. + --without-zlib + --with-system-zlib + --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug + --with-amd-dbgapi=$(usex rocm) + $(use_with xml expat) + $(use_with lzma) + $(use_enable nls) + $(use_enable sim) + $(use_enable source-highlight) + $(use multitarget && echo --enable-targets=all) + $(use_with python python "${EPYTHON}") + $(use_with xxhash) + $(use_with guile) + $(use_with zstd) + + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) + + # source-highlight is detected with pkg-config: bug #716558 + export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" + + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + + # ensure proper compiler is detected for Clang builds: bug #831202 + export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}" + + econf "${myconf[@]}" +} + +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + +src_install() { + emake DESTDIR="${D}" install + + find "${ED}"/usr -name libiberty.a -delete || die + + # Delete translations that conflict with binutils-libs. bug #528088 + # Note: Should figure out how to store these in an internal gdb dir. + if use nls ; then + find "${ED}" \ + -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \ + -delete || die + fi + + # Don't install docs when building a cross-gdb + if [[ ${CTARGET} != ${CHOST} ]] ; then + rm -rf "${ED}"/usr/share/{doc,info,locale} || die + local f + for f in "${ED}"/usr/share/man/*/* ; do + if [[ ${f##*/} != ${CTARGET}-* ]] ; then + mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die + fi + done + return 0 + fi + + # Install it by hand for now: + # https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html + # Only install if it exists due to the twisted behavior (see + # notes in src_configure above). + [[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay + + docinto gdb + dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ + gdb/NEWS gdb/PROBLEMS + docinto sim + dodoc sim/{MAINTAINERS,README-HACKING} + + if use server ; then + docinto gdbserver + dodoc gdbserver/README + fi + + # Remove shared info pages + rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* + + use guile && guile_unstrip_ccache + + if use python ; then + python_optimize "${ED}"/usr/share/gdb/python/gdb + fi + + if use kernel_Hurd ; then + mv "${ED}"/usr/bin/gcore "${ED}"/usr/bin/gcore.gdb || die + fi +} + +pkg_postinst() { + # Portage doesn't unmerge files in /etc + rm -vf "${EROOT}"/etc/skel/.gdbinit + + if use prefix && [[ ${CHOST} == *-darwin* ]] ; then + ewarn "gdb is unable to get a mach task port when installed by Prefix" + ewarn "Portage, unprivileged. To make gdb fully functional you'll" + ewarn "have to perform the following steps:" + ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb" + ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb" + fi +} diff --git a/dev-debug/gdb/gdb-9999.ebuild b/dev-debug/gdb/gdb-9999.ebuild new file mode 100644 index 000000000000..e584bcc141c6 --- /dev/null +++ b/dev-debug/gdb/gdb-9999.ebuild @@ -0,0 +1,351 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{13..14} ) +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs + +export CTARGET=${CTARGET:-${CHOST}} + +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +case ${PV} in + 9999*) + # live git tree + EGIT_REPO_URI=" + https://sourceware.org/git/binutils-gdb.git + https://git.sr.ht/~sourceware/binutils-gdb + https://gitlab.com/x86-binutils/binutils-gdb.git + " + inherit git-r3 + SRC_URI="" + ;; + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; + *) + # Normal upstream release + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 +esac + +PATCH_DEV="" +PATCH_VER="" +DESCRIPTION="GNU debugger" +HOMEPAGE="https://sourceware.org/gdb/" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} +" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="cet +debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla +xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +fi +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + rocm? ( multitarget ) +" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/mpfr:= + dev-libs/gmp:= + >=sys-libs/ncurses-5.2-r2:= + >=sys-libs/readline-7:= + virtual/zlib:= + debuginfod? ( + dev-libs/elfutils[debuginfod(-)] + ) + lzma? ( app-arch/xz-utils ) + python? ( ${PYTHON_DEPS} ) + guile? ( ${GUILE_DEPS} ) + xml? ( dev-libs/expat ) + rocm? ( >=dev-libs/rocdbgapi-6.3 ) + source-highlight? ( + dev-util/source-highlight + ) + xxhash? ( + dev-libs/xxhash + ) + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-arch/xz-utils + sys-apps/texinfo + app-alternatives/yacc + nls? ( sys-devel/gettext ) + source-highlight? ( virtual/pkgconfig ) + test? ( dev-util/dejagnu ) +" + +QA_CONFIG_IMPL_DECL_SKIP=( + MIN # gnulib FP (bug #898688) +) + +QA_PREBUILT="usr/share/gdb/guile/*" + +PATCHES=( + "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch +) + +pkg_setup() { + local CONFIG_CHECK + + if [[ ${CHOST} == *-linux-* ]] ; then + if kernel_is -ge 6.11.3 ; then + # https://forums.gentoo.org/viewtopic-p-8846891.html + # See also PR31520. + # + # Either CONFIG_PROC_MEM_ALWAYS_FORCE or CONFIG_PROC_MEM_FORCE_PTRACE + # should be okay, but not CONFIG_PROC_MEM_NO_FORCE. + CONFIG_CHECK+=" + ~!PROC_MEM_NO_FORCE + " + fi + fi + + linux-info_pkg_setup + + use guile && guile-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + use guile && guile_bump_sources + + strip-linguas -u bfd/po opcodes/po + + # Avoid using ancient termcap from host on Prefix systems + sed -i -e 's/termcap tinfow/tinfow/g' \ + gdb/configure{.ac,} || die +} + +gdb_branding() { + printf "Gentoo ${PV} " + + if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then + printf "p${PATCH_VER}" + else + printf "vanilla" + fi + + [[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}" +} + +src_configure() { + strip-unsupported-flags + + # See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html + # Avoid really confusing logs from subconfigure spam, makes logs far + # more legible. + MAKEOPTS="--output-sync=line ${MAKEOPTS}" + + local myconf=( + # portage's econf() does not detect presence of --d-d-t + # because it greps only top-level ./configure. But not + # libiberty's or gdb's configure. + --disable-dependency-tracking + --disable-silent-rules + + --with-pkgversion="$(gdb_branding)" + --with-bugurl='https://bugs.gentoo.org/' + --disable-werror + # Disable modules that are in a combined binutils/gdb tree. bug #490566 + --disable-{binutils,etc,gas,gold,gprof,gprofng,ld} + + $(use_with debuginfod) + + $(use_enable test unit-tests) + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + + # Helps when cross-compiling. Not to be confused with --with-sysroot. + --with-build-sysroot="${ESYSROOT}" + ) + + is_cross && myconf+=( + --with-sysroot="\${prefix}/${CTARGET}" + --includedir="\${prefix}/include/${CTARGET}" + --with-gdb-datadir="\${datadir}/gdb/${CTARGET}" + ) + + # gdbserver only works for native targets (CHOST==CTARGET). + # it also doesn't support all targets, so rather than duplicate + # the target list (which changes between versions), use the + # "auto" value when things are turned on, which is triggered + # whenever no --enable or --disable is given + if is_cross || use !server ; then + myconf+=( --disable-gdbserver ) + fi + + myconf+=( + --enable-64-bit-bfd + --disable-install-libbfd + --disable-install-libiberty + --enable-obsolete + # This only disables building in the readline subdir. + # For gdb itself, it'll use the system version. + --disable-readline + --with-system-readline + # This only disables building in the zlib subdir. + # For gdb itself, it'll use the system version. + --without-zlib + --with-system-zlib + --with-separate-debug-dir="${EPREFIX}"/usr/lib/debug + --with-amd-dbgapi=$(usex rocm) + $(use_with xml expat) + $(use_with lzma) + $(use_enable nls) + $(use_enable sim) + $(use_enable source-highlight) + $(use multitarget && echo --enable-targets=all) + $(use_with python python "${EPYTHON}") + $(use_with xxhash) + $(use_with guile) + $(use_with zstd) + + # Find libraries using the toolchain sysroot rather than the configured + # prefix. Needed when cross-compiling. + # + # Check which libraries to apply this to with: + # "${S}"/gdb/configure --help | grep without-lib | sort + --without-lib{expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix + ) + + # source-highlight is detected with pkg-config: bug #716558 + export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)" + + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + + # ensure proper compiler is detected for Clang builds: bug #831202 + export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}" + + econf "${myconf[@]}" +} + +src_test() { + # Run the unittests (nabbed invocation from Fedora's spec file) at least + emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"' + + # Too many failures + # In fact, gdb's test suite needs some work to get passing. + # See e.g. https://sourceware.org/gdb/wiki/TestingGDB. + # As of 11.2, on amd64: "# of unexpected failures 8600" + # Also, ia64 kernel crashes when gdb testsuite is running. + #emake -k check +} + +src_install() { + emake DESTDIR="${D}" install + + find "${ED}"/usr -name libiberty.a -delete || die + + # Delete translations that conflict with binutils-libs. bug #528088 + # Note: Should figure out how to store these in an internal gdb dir. + if use nls ; then + find "${ED}" \ + -regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \ + -delete || die + fi + + # Don't install docs when building a cross-gdb + if [[ ${CTARGET} != ${CHOST} ]] ; then + rm -rf "${ED}"/usr/share/{doc,info,locale} || die + local f + for f in "${ED}"/usr/share/man/*/* ; do + if [[ ${f##*/} != ${CTARGET}-* ]] ; then + mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die + fi + done + return 0 + fi + + # Install it by hand for now: + # https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html + # Only install if it exists due to the twisted behavior (see + # notes in src_configure above). + [[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay + + docinto gdb + dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \ + gdb/NEWS gdb/PROBLEMS + docinto sim + dodoc sim/{MAINTAINERS,README-HACKING} + + if use server ; then + docinto gdbserver + dodoc gdbserver/README + fi + + # Remove shared info pages + rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info* + + use guile && guile_unstrip_ccache + + if use python ; then + python_optimize "${ED}"/usr/share/gdb/python/gdb + fi + + if use kernel_Hurd ; then + mv "${ED}"/usr/bin/gcore "${ED}"/usr/bin/gcore.gdb || die + fi +} + +pkg_postinst() { + # Portage doesn't unmerge files in /etc + rm -vf "${EROOT}"/etc/skel/.gdbinit + + if use prefix && [[ ${CHOST} == *-darwin* ]] ; then + ewarn "gdb is unable to get a mach task port when installed by Prefix" + ewarn "Portage, unprivileged. To make gdb fully functional you'll" + ewarn "have to perform the following steps:" + ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb" + ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb" + fi +} diff --git a/dev-debug/gdb/metadata.xml b/dev-debug/gdb/metadata.xml new file mode 100644 index 000000000000..e9a6045cd6b0 --- /dev/null +++ b/dev-debug/gdb/metadata.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + <name>Gentoo Toolchain Project</name> + </maintainer> + <use> + <flag name="babeltrace">Enable <pkg>dev-util/babeltrace</pkg> support</flag> + <flag name="cet">Enable Intel Control-flow Enforcement Technology.</flag> + <flag name="lzma">Support lzma compression in ELF debug info</flag> + <flag name="multitarget">Support all known targets in one gdb binary</flag> + <flag name="python">Enable support for the new internal scripting language, as well as extended pretty printers</flag> + <flag name="rocm">Enable support for AMD GPU debugging via <pkg>dev-libs/rocdbgapi</pkg> + </flag> + <flag name="server">Install the "gdbserver" program (useful for embedded/remote targets)</flag> + <flag name="sim">Build gdb's simulators for various hardware platforms. See https://sourceware.org/gdb/wiki/Sim.</flag> + <flag name="source-highlight">Enable listing highlighting via <pkg>dev-util/source-highlight</pkg> + </flag> + <flag name="xml">Support parsing XML data files needed (at least) for cpu features, memory maps, and syscall tracing</flag> + <flag name="xxhash">Use <pkg>dev-libs/xxhash</pkg> to speed up internal hashing.</flag> + <flag name="debuginfod">Enable debuginfod support via <pkg>dev-libs/elfutils</pkg> libdebuginfod</flag> + </use> + <upstream> + <remote-id type="cpe">cpe:/a:gnu:gdb</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/gdbgui/Manifest b/dev-debug/gdbgui/Manifest new file mode 100644 index 000000000000..8fdaa2185b33 --- /dev/null +++ b/dev-debug/gdbgui/Manifest @@ -0,0 +1,3 @@ +DIST gdbgui-0.15.2.0.gh.tar.gz 4950845 BLAKE2B ffdce1923aead7d5cf202aa6954bbedcfa55cb27351b7635dd9636a8b398e4d9d8baa1c59789ba47e80ae581fa6510cae2017d0639cc7f9137d8ce5e0324172b SHA512 b1aef477f87b04016f594fe38581b646a0179bf9fd2441c6af3a534a817fc0b43a89f22016e252dffca775ab2b6a4e9cd7962f6f347be9295aee0af798a033b3 +DIST gdbgui-0.15.2.0.tar.gz 1292007 BLAKE2B 32adaef906d0fa94de76d7009c3a0c37e9596403b8a10b3b75b798627141627d7d7196399d61b4252512c6707a2ac8ec71958bb22432155ef8d11b3681aa89c2 SHA512 e678494efe6ef3a1e65dc167b0620cffd219a9fa3c2dcf5c127229042bb9e0f3a7ccba0cbf5c70689bb4ec1ec3f3c36be75a2b6024ea615758928205e584ecb8 +DIST gdbgui-0.15.3.0.tar.gz 1292210 BLAKE2B 76b0ac41025955e4af96a4cd45ef66247085aa233102f997fbbb513c8123c5308d8df1eeb22eaf8b7661b1aa04496437a3a32f7146cc47c4ecee9020f41bf6fe SHA512 b07723db7d777982c91baebf8c9d382bbaca99cb779a4a1392cbcc8ec5ee4563a8679ee7c41baa4e698f902c463edc3c5f47a4c61aa045ed02ae99a122d59968 diff --git a/dev-debug/gdbgui/gdbgui-0.15.2.0-r1.ebuild b/dev-debug/gdbgui/gdbgui-0.15.2.0-r1.ebuild new file mode 100644 index 000000000000..d736efdd8373 --- /dev/null +++ b/dev-debug/gdbgui/gdbgui-0.15.2.0-r1.ebuild @@ -0,0 +1,31 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="Browser-based frontend to gdb" +HOMEPAGE="https://www.gdbgui.com/ https://github.com/cs01/gdbgui" +SRC_URI="https://github.com/cs01/gdbgui/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + dev-python/bidict[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + dev-python/flask-compress[${PYTHON_USEDEP}] + dev-python/flask-socketio[${PYTHON_USEDEP}] + dev-python/pygdbmi[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/python-engineio[${PYTHON_USEDEP}] +" + +RDEPEND="${DEPEND}" + +distutils_enable_tests pytest diff --git a/dev-debug/gdbgui/gdbgui-0.15.2.0.ebuild b/dev-debug/gdbgui/gdbgui-0.15.2.0.ebuild new file mode 100644 index 000000000000..ecdfbbb0ebb5 --- /dev/null +++ b/dev-debug/gdbgui/gdbgui-0.15.2.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Browser-based frontend to gdb" +HOMEPAGE="https://www.gdbgui.com/ https://github.com/cs01/gdbgui" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + dev-python/bidict[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + dev-python/flask-compress[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/python-engineio[${PYTHON_USEDEP}] +" + +RDEPEND="${DEPEND}" diff --git a/dev-debug/gdbgui/gdbgui-0.15.3.0.ebuild b/dev-debug/gdbgui/gdbgui-0.15.3.0.ebuild new file mode 100644 index 000000000000..ecdfbbb0ebb5 --- /dev/null +++ b/dev-debug/gdbgui/gdbgui-0.15.3.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Browser-based frontend to gdb" +HOMEPAGE="https://www.gdbgui.com/ https://github.com/cs01/gdbgui" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + dev-python/bidict[${PYTHON_USEDEP}] + dev-python/flask[${PYTHON_USEDEP}] + dev-python/flask-compress[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/python-engineio[${PYTHON_USEDEP}] +" + +RDEPEND="${DEPEND}" diff --git a/dev-debug/gdbgui/metadata.xml b/dev-debug/gdbgui/metadata.xml new file mode 100644 index 000000000000..6e8632a248e2 --- /dev/null +++ b/dev-debug/gdbgui/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>stkw0@disroot.org</email> + <name>David Roman</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/gef/Manifest b/dev-debug/gef/Manifest new file mode 100644 index 000000000000..5437980b1ac4 --- /dev/null +++ b/dev-debug/gef/Manifest @@ -0,0 +1,3 @@ +DIST gef-2023.08.tar.gz 230347 BLAKE2B b9b8fed1bdf81fa870583921c4bdd6df2d98112748c939da48acae7e636ec6e22dc751d8ed75e52e72ff0aa04835720293f0e82e99ff614c447f2a614c76e48a SHA512 d3a26826b991db7e8d475da945b16933ce046dd64381f5df60ea0fe310d0325f39b05142de5f75abbbd5693c93ad70ff25e982d0ff3526a6fe66fd7526a359c5 +DIST gef-2025.01.tar.gz 246677 BLAKE2B a607d882ed62efa4da7a60d594852a9bc2f6d6583bd7049fd6db616e71fcfb1caf9a7fd9be261b604257740974cbd1ce7ce1b11c061006a22e85dac57e7011db SHA512 0a028c0457b6b35a78ab4e8030010d586bb38bf8968ff1b4bf67d7f0bacedb78f3627699674f50217154f9254fac0ec5d65922845af3da0f72fed7b9bfc2ad8d +DIST gef-2026.01.tar.gz 247419 BLAKE2B 5dffee69689aaa988dc35e56809f1a7775e872f12c20d047de9ee4f5b5bf1146c567549080e65cf98ae7310a1735263fdf525fd930099f694dc57f001c3660d0 SHA512 20e1bd398b1bc0345a7a637fe058a0aaee9f4c2b5a65ce67f3774d9fcf4a5c865f43fbe1ff9cb2d5e04091d025dded43e08f88b5333211084616955a3fc5eac6 diff --git a/dev-debug/gef/gef-2023.08.ebuild b/dev-debug/gef/gef-2023.08.ebuild new file mode 100644 index 000000000000..f1e8b847ea11 --- /dev/null +++ b/dev-debug/gef/gef-2023.08.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND=" + dev-python/mkdocs-material +" + +inherit python-single-r1 docs wrapper + +DESCRIPTION="GDB Enhanced Features for exploit devs & reversers" +HOMEPAGE="https://github.com/hugsy/gef" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hugsy/gef" +else + SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="test" +# Seem to hang right now? +RESTRICT="!test? ( test ) test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + dev-util/ropper[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + dev-libs/capstone[python,${PYTHON_USEDEP}] + dev-libs/keystone[python,${PYTHON_USEDEP}] + dev-python/pylint[${PYTHON_USEDEP}] + dev-util/unicorn[python,${PYTHON_USEDEP}] + ')" + +BDEPEND=" + test? ( + $(python_gen_cond_dep ' + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ') + )" + +DOCS=( README.md ) + +src_prepare() { + default + + sed -i -e '/pylint/d' tests/requirements.txt || die +} + +src_compile() { + # Tries to compile tests + : + + docs_compile +} + +src_install() { + insinto "/usr/share/${PN}" + doins -r *.py + + python_optimize "${ED}/usr/share/${PN}" + + make_wrapper "gdb-gef" \ + "gdb -x \"/usr/share/${PN}/gef.py\"" || die + + einstalldocs +} + +pkg_postinst() { + einfo "\nUsage:" + einfo " ~$ gdb-gef <program>\n" +} diff --git a/dev-debug/gef/gef-2025.01.ebuild b/dev-debug/gef/gef-2025.01.ebuild new file mode 100644 index 000000000000..0ad1e35635be --- /dev/null +++ b/dev-debug/gef/gef-2025.01.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND=" + dev-python/mkdocs-material +" + +inherit python-single-r1 docs wrapper + +DESCRIPTION="GDB Enhanced Features for exploit devs & reversers" +HOMEPAGE="https://github.com/hugsy/gef" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hugsy/gef" +else + SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64 x86" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="test" +# Seem to hang right now? +RESTRICT="!test? ( test ) test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + dev-util/ropper[${PYTHON_SINGLE_USEDEP}] + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + dev-libs/capstone[python,${PYTHON_USEDEP}] + dev-libs/keystone[python,${PYTHON_USEDEP}] + dev-python/pylint[${PYTHON_USEDEP}] + dev-python/rpyc[${PYTHON_USEDEP}] + dev-util/unicorn[python,${PYTHON_USEDEP}] + ')" + +BDEPEND=" + test? ( + $(python_gen_cond_dep ' + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ') + )" + +DOCS=( README.md ) + +src_prepare() { + default + + sed -i -e '/pylint/d' tests/requirements.txt || die +} + +src_compile() { + # Tries to compile tests + : + + docs_compile +} + +src_install() { + insinto "/usr/share/${PN}" + doins -r *.py + + python_optimize "${ED}/usr/share/${PN}" + + make_wrapper "gdb-gef" \ + "gdb -x \"/usr/share/${PN}/gef.py\"" || die + + einstalldocs +} + +pkg_postinst() { + einfo "\nUsage:" + einfo " ~$ gdb-gef <program>\n" +} diff --git a/dev-debug/gef/gef-2026.01.ebuild b/dev-debug/gef/gef-2026.01.ebuild new file mode 100644 index 000000000000..3026e6c21870 --- /dev/null +++ b/dev-debug/gef/gef-2026.01.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND=" + dev-python/mkdocs-material +" + +inherit python-single-r1 docs wrapper + +DESCRIPTION="GDB Enhanced Features for exploit devs & reversers" +HOMEPAGE="https://github.com/hugsy/gef" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hugsy/gef" +else + SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64 x86" +fi + +LICENSE="MIT" +SLOT="0" +# Needs network access and possibly privileges +RESTRICT="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + dev-util/ropper[${PYTHON_SINGLE_USEDEP}] + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + dev-libs/capstone[python,${PYTHON_USEDEP}] + dev-libs/keystone[python,${PYTHON_USEDEP}] + dev-python/pylint[${PYTHON_USEDEP}] + dev-python/rpyc[${PYTHON_USEDEP}] + dev-util/unicorn[python,${PYTHON_USEDEP}] + ') +" + +DOCS=( README.md ) + +src_prepare() { + default + + sed -i -e '/pylint/d' tests/requirements.txt || die +} + +src_compile() { + # Tries to compile tests + : + + docs_compile +} + +src_install() { + insinto "/usr/share/${PN}" + doins -r *.py + + python_optimize "${ED}/usr/share/${PN}" + + make_wrapper "gdb-gef" \ + "gdb -x \"/usr/share/${PN}/gef.py\"" || die + + einstalldocs +} + +pkg_postinst() { + einfo "\nUsage:" + einfo " ~$ gdb-gef <program>\n" +} diff --git a/dev-debug/gef/gef-9999.ebuild b/dev-debug/gef/gef-9999.ebuild new file mode 100644 index 000000000000..e6f8121a7c7a --- /dev/null +++ b/dev-debug/gef/gef-9999.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND=" + dev-python/mkdocs-material +" + +inherit python-single-r1 docs wrapper + +DESCRIPTION="GDB Enhanced Features for exploit devs & reversers" +HOMEPAGE="https://github.com/hugsy/gef" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/hugsy/gef" +else + SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +LICENSE="MIT" +SLOT="0" +# Needs network access and possibly privileges +RESTRICT="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + dev-util/ropper[${PYTHON_SINGLE_USEDEP}] + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + dev-libs/capstone[python,${PYTHON_USEDEP}] + dev-libs/keystone[python,${PYTHON_USEDEP}] + dev-python/pylint[${PYTHON_USEDEP}] + dev-python/rpyc[${PYTHON_USEDEP}] + dev-util/unicorn[python,${PYTHON_USEDEP}] + ') +" + +DOCS=( README.md ) + +src_prepare() { + default + + sed -i -e '/pylint/d' tests/requirements.txt || die +} + +src_compile() { + # Tries to compile tests + : + + docs_compile +} + +src_install() { + insinto "/usr/share/${PN}" + doins -r *.py + + python_optimize "${ED}/usr/share/${PN}" + + make_wrapper "gdb-gef" \ + "gdb -x \"/usr/share/${PN}/gef.py\"" || die + + einstalldocs +} + +pkg_postinst() { + einfo "\nUsage:" + einfo " ~$ gdb-gef <program>\n" +} diff --git a/dev-debug/gef/metadata.xml b/dev-debug/gef/metadata.xml new file mode 100644 index 000000000000..99e980ca8334 --- /dev/null +++ b/dev-debug/gef/metadata.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>mario.haustein@hrz.tu-chemnitz.de</email> + <name>Mario Haustein</name> + </maintainer> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <longdescription> + GEF is a set of commands for x86/64, ARM, MIPS, PowerPC and SPARC to + assist exploit developers and reverse-engineers when using old school + GDB. It provides additional features to GDB using the Python API to + assist during the process of dynamic analysis and exploit development. + Application developers will also benefit from it, as GEF lifts a great + part of regular GDB obscurity, avoiding repeating traditional commands, + or bringing out the relevant information from the debugging runtime. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/gfxreconstruct/Manifest b/dev-debug/gfxreconstruct/Manifest new file mode 100644 index 000000000000..e990b269f393 --- /dev/null +++ b/dev-debug/gfxreconstruct/Manifest @@ -0,0 +1,2 @@ +DIST SPIRV-Reflect-1.4.341.0.tar.gz 348384 BLAKE2B 1fc461f02a3e35b610cae0b2e41cfc8b0938a13d5c1fe62d2e3a53d3822cf7bc94d3d3a5cda3ba3707ecc9aa34415b351f1ac25f92922e63378a2822e766fb68 SHA512 ee8abc9958af8887300eece7dbcf11ed4bf79d9ee281318e6794f093a988438736e0da642d61b975912475cc3a0b13fe8cd17d3a6b0fcfff653c9831f5d86ba0 +DIST gfxreconstruct-1.4.341.0.tar.gz 50763927 BLAKE2B b532535012088bb043f1098886bd30ce1e3345515e217a77a05229f98b36678703ed9773169cf7cfa0f09f4694635c69532127df86649cd3e19daa2b6768ec4f SHA512 0efb51431b8ae40e723d06ff3ab6a2505094dc88104a0f2da42f4c1e301dbdd929398e7183a996b7b31854f45506ea636cec40f9fa883aafbe8d8b0b493716aa diff --git a/dev-debug/gfxreconstruct/files/1.3.313.0-use-system-vulkan.patch b/dev-debug/gfxreconstruct/files/1.3.313.0-use-system-vulkan.patch new file mode 100644 index 000000000000..419ec4134ebe --- /dev/null +++ b/dev-debug/gfxreconstruct/files/1.3.313.0-use-system-vulkan.patch @@ -0,0 +1,38 @@ +From 900940f63432dac21b397150031355c7511032a4 Mon Sep 17 00:00:00 2001 +From: Matt Turner <mattst88@gmail.com> +Date: Thu, 15 May 2025 23:28:26 -0400 +Subject: [PATCH] Use system Vulkan Headers instead of embedded ones. + +--- + cmake/FindVulkanVersion.cmake | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git ./cmake/FindVulkanVersion.cmake ./cmake/FindVulkanVersion.cmake +index 3821c2c8..f7744813 100644 +--- ./cmake/FindVulkanVersion.cmake ++++ ./cmake/FindVulkanVersion.cmake +@@ -13,9 +13,7 @@ set(FIND_VULKAN_DIR ${CMAKE_CURRENT_LIST_DIR}) + find_file (VULKAN_HEADER + vulkan_core.h + HINTS +- external/Vulkan-Headers/include/vulkan +- ${FIND_VULKAN_DIR}/../external/Vulkan-Headers/include/vulkan +- ${FIND_VULKAN_DIR}/../../external/Vulkan-Headers/include/vulkan ++ /usr/include/vulkan/ + NO_DEFAULT_PATH + NO_CMAKE_FIND_ROOT_PATH + ) +@@ -28,9 +26,7 @@ else() + find_file(VULKAN_HEADER + vulkan.h + HINTS +- external/Vulkan-Headers/include/vulkan +- ${FIND_VULKAN_DIR}/../external/Vulkan-Headers/include/vulkan +- ${FIND_VULKAN_DIR}/../../external/Vulkan-Headers/include/vulkan ++ /usr/include/vulkan/ + NO_DEFAULT_PATH + NO_CMAKE_FIND_ROOT_PATH + ) +-- +2.49.0 + diff --git a/dev-debug/gfxreconstruct/gfxreconstruct-1.4.341.0.ebuild b/dev-debug/gfxreconstruct/gfxreconstruct-1.4.341.0.ebuild new file mode 100644 index 000000000000..00f8000090bd --- /dev/null +++ b/dev-debug/gfxreconstruct/gfxreconstruct-1.4.341.0.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +inherit cmake + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://github.com/LunarG/gfxreconstruct.git" + EGIT_SUBMODULES=( external/{Vulkan-Headers,SPIRV-Headers,SPIRV-Reflect} ) + inherit git-r3 +else + SRC_URI=" + https://github.com/LunarG/${PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz + https://github.com/KhronosGroup/SPIRV-Reflect/archive/vulkan-sdk-${PV}.tar.gz -> SPIRV-Reflect-${PV}.tar.gz + " + KEYWORDS="~amd64" + S="${WORKDIR}"/${PN}-vulkan-sdk-${PV} +fi + +DESCRIPTION="Graphics API Capture and Replay Tools" +HOMEPAGE="https://github.com/LunarG/gfxreconstruct" + +LICENSE="MIT" +SLOT="0" +IUSE="wayland X" + +RDEPEND=" + app-arch/lz4:= + app-arch/zstd:= + virtual/zlib:= + + media-libs/vulkan-loader[wayland?,X?] + wayland? ( dev-libs/wayland ) + X? ( + x11-libs/libX11 + x11-libs/libxcb + x11-libs/xcb-util-keysyms + ) +" +DEPEND="${RDEPEND} + X? ( x11-libs/libXrandr ) +" +if [[ ${PV} != 9999* ]]; then + DEPEND+=" + ~dev-util/spirv-headers-${PV} + ~dev-util/vulkan-headers-${PV} + " + PATCHES=( + "${FILESDIR}"/1.3.313.0-use-system-vulkan.patch + ) +fi + +src_unpack() { + if [[ ${PV} == 9999* ]]; then + git-r3_src_unpack + else + default + rmdir "${S}"/external/SPIRV-Reflect || die + mv "${WORKDIR}"/SPIRV-Reflect-vulkan-sdk-${PV} "${S}"/external/SPIRV-Reflect || die + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_SKIP_RPATH=ON + -DBUILD_WERROR=OFF + -DBUILD_WSI_DISPLAY_SUPPORT=ON + -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) + -DBUILD_WSI_XCB_SUPPORT=$(usex X) + -DBUILD_WSI_XLIB_SUPPORT=$(usex X) + -DGFXRECON_ENABLE_OPENXR=OFF + ) + cmake_src_configure +} diff --git a/dev-debug/gfxreconstruct/gfxreconstruct-9999.ebuild b/dev-debug/gfxreconstruct/gfxreconstruct-9999.ebuild new file mode 100644 index 000000000000..00f8000090bd --- /dev/null +++ b/dev-debug/gfxreconstruct/gfxreconstruct-9999.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +inherit cmake + +if [[ ${PV} == 9999* ]]; then + EGIT_REPO_URI="https://github.com/LunarG/gfxreconstruct.git" + EGIT_SUBMODULES=( external/{Vulkan-Headers,SPIRV-Headers,SPIRV-Reflect} ) + inherit git-r3 +else + SRC_URI=" + https://github.com/LunarG/${PN}/archive/vulkan-sdk-${PV}.tar.gz -> ${P}.tar.gz + https://github.com/KhronosGroup/SPIRV-Reflect/archive/vulkan-sdk-${PV}.tar.gz -> SPIRV-Reflect-${PV}.tar.gz + " + KEYWORDS="~amd64" + S="${WORKDIR}"/${PN}-vulkan-sdk-${PV} +fi + +DESCRIPTION="Graphics API Capture and Replay Tools" +HOMEPAGE="https://github.com/LunarG/gfxreconstruct" + +LICENSE="MIT" +SLOT="0" +IUSE="wayland X" + +RDEPEND=" + app-arch/lz4:= + app-arch/zstd:= + virtual/zlib:= + + media-libs/vulkan-loader[wayland?,X?] + wayland? ( dev-libs/wayland ) + X? ( + x11-libs/libX11 + x11-libs/libxcb + x11-libs/xcb-util-keysyms + ) +" +DEPEND="${RDEPEND} + X? ( x11-libs/libXrandr ) +" +if [[ ${PV} != 9999* ]]; then + DEPEND+=" + ~dev-util/spirv-headers-${PV} + ~dev-util/vulkan-headers-${PV} + " + PATCHES=( + "${FILESDIR}"/1.3.313.0-use-system-vulkan.patch + ) +fi + +src_unpack() { + if [[ ${PV} == 9999* ]]; then + git-r3_src_unpack + else + default + rmdir "${S}"/external/SPIRV-Reflect || die + mv "${WORKDIR}"/SPIRV-Reflect-vulkan-sdk-${PV} "${S}"/external/SPIRV-Reflect || die + fi +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_SKIP_RPATH=ON + -DBUILD_WERROR=OFF + -DBUILD_WSI_DISPLAY_SUPPORT=ON + -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland) + -DBUILD_WSI_XCB_SUPPORT=$(usex X) + -DBUILD_WSI_XLIB_SUPPORT=$(usex X) + -DGFXRECON_ENABLE_OPENXR=OFF + ) + cmake_src_configure +} diff --git a/dev-debug/gfxreconstruct/metadata.xml b/dev-debug/gfxreconstruct/metadata.xml new file mode 100644 index 000000000000..811825f90a16 --- /dev/null +++ b/dev-debug/gfxreconstruct/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>vulkan@gentoo.org</email> + <name>Vulkan Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/gprofng-gui/Manifest b/dev-debug/gprofng-gui/Manifest new file mode 100644 index 000000000000..831e13c32afe --- /dev/null +++ b/dev-debug/gprofng-gui/Manifest @@ -0,0 +1,3 @@ +DIST gprofng-gui-2.0.tar.gz 1297153 BLAKE2B 0a0c921a2ba1e81cdec3cba5fbe66ae8079fcce3f3fcad2ad792e2758ca218bd667dd9722d32e25027d9eb1b6ddb3897c94098db07f24915928347c4ff804b19 SHA512 2e27eb3632de6a81c9301bea740a1bda288d0c74a788a59cc44cd3c3a172a45e7be8bacb7ffe454924f707728b38bfb539998a41a8ef0b363039d7d6fcc6ac0a +DIST gprofng-gui-2.1.tar.gz 1323092 BLAKE2B b7618272f9798e2b4798b5c234d4ed323b086bae086f8df86407c129598db881ad5c87262a4f8093b22708e444db31421d157e2b1aff216adcca5a06713935a2 SHA512 c9351933594a9af06fadb7771a74fbec44a5d5a44672267f857c654ce871ca0b542cd5cfc287cdeed2b25f962696fa4b302c0733326cdf4d13ee4e13ed4f32ac +DIST gprofng-gui-2.2.tar.gz 1323156 BLAKE2B 102168c2ffc2f5c0b034d7047ba072c0df6000aa9e3f42fc5f6604f2f083f51bfc12d3ea41e10fb316cbb3cdac811730425a517ad3c01bb309bc57817bbd9e5d SHA512 3cb90479dbc30724d4b779ec9b070d39e5cb571dafe3a455a3cd3f323497dac43d3a6a275363940ee75e7e906671398e51a86dfffda9b7e6a73b888acb54c782 diff --git a/dev-debug/gprofng-gui/gprofng-gui-2.0.ebuild b/dev-debug/gprofng-gui/gprofng-gui-2.0.ebuild new file mode 100644 index 000000000000..562dab19b40b --- /dev/null +++ b/dev-debug/gprofng-gui/gprofng-gui-2.0.ebuild @@ -0,0 +1,35 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-2 xdg + +DESCRIPTION="Full-fledged graphical interface to operate gprofng" +HOMEPAGE="https://www.gnu.org/software/gprofng-gui/" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/gprofng-gui.git" + inherit autotools git-r3 +else + SRC_URI="mirror://gnu/gprofng-gui/${P}.tar.gz" + S="${WORKDIR}/${P}" + + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3+" +SLOT="0" + +DEPEND=">=virtual/jdk-1.8:*" +RDEPEND=" + sys-devel/binutils:*[gprofng(-)] + >=virtual/jre-1.8:* +" + +src_prepare() { + default + + [[ ${PV} == 9999 ]] && eautoreconf + + java-pkg-2_src_prepare +} diff --git a/dev-debug/gprofng-gui/gprofng-gui-2.1.ebuild b/dev-debug/gprofng-gui/gprofng-gui-2.1.ebuild new file mode 100644 index 000000000000..984f2988c01c --- /dev/null +++ b/dev-debug/gprofng-gui/gprofng-gui-2.1.ebuild @@ -0,0 +1,52 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-2 xdg + +DESCRIPTION="Full-fledged graphical interface to operate gprofng" +HOMEPAGE="https://www.gnu.org/software/gprofng-gui/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/gprofng-gui.git" + inherit autotools git-r3 +else + SRC_URI="mirror://gnu/gprofng-gui/${P}.tar.gz" + S="${WORKDIR}/${P}" + + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3+" +SLOT="0" + +DEPEND=">=virtual/jdk-1.8:*" +RDEPEND=" + sys-devel/binutils:*[gprofng(-)] + >=virtual/jre-1.8:* +" + +src_prepare() { + default + + mkdir "${WORKDIR}"/build || die + + [[ ${PV} == 9999 ]] && eautoreconf + + java-pkg-2_src_prepare +} + +src_configure() { + cd "${WORKDIR}"/build || die + ECONF_SOURCE="${S}" econf +} + +src_compile() { + emake -C "${WORKDIR}"/build +} + +src_install() { + einstalldocs + emake -C "${WORKDIR}"/build DESTDIR="${D}" install +} diff --git a/dev-debug/gprofng-gui/gprofng-gui-2.2.ebuild b/dev-debug/gprofng-gui/gprofng-gui-2.2.ebuild new file mode 100644 index 000000000000..984f2988c01c --- /dev/null +++ b/dev-debug/gprofng-gui/gprofng-gui-2.2.ebuild @@ -0,0 +1,52 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-2 xdg + +DESCRIPTION="Full-fledged graphical interface to operate gprofng" +HOMEPAGE="https://www.gnu.org/software/gprofng-gui/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/gprofng-gui.git" + inherit autotools git-r3 +else + SRC_URI="mirror://gnu/gprofng-gui/${P}.tar.gz" + S="${WORKDIR}/${P}" + + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3+" +SLOT="0" + +DEPEND=">=virtual/jdk-1.8:*" +RDEPEND=" + sys-devel/binutils:*[gprofng(-)] + >=virtual/jre-1.8:* +" + +src_prepare() { + default + + mkdir "${WORKDIR}"/build || die + + [[ ${PV} == 9999 ]] && eautoreconf + + java-pkg-2_src_prepare +} + +src_configure() { + cd "${WORKDIR}"/build || die + ECONF_SOURCE="${S}" econf +} + +src_compile() { + emake -C "${WORKDIR}"/build +} + +src_install() { + einstalldocs + emake -C "${WORKDIR}"/build DESTDIR="${D}" install +} diff --git a/dev-debug/gprofng-gui/gprofng-gui-9999.ebuild b/dev-debug/gprofng-gui/gprofng-gui-9999.ebuild new file mode 100644 index 000000000000..984f2988c01c --- /dev/null +++ b/dev-debug/gprofng-gui/gprofng-gui-9999.ebuild @@ -0,0 +1,52 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-2 xdg + +DESCRIPTION="Full-fledged graphical interface to operate gprofng" +HOMEPAGE="https://www.gnu.org/software/gprofng-gui/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/gprofng-gui.git" + inherit autotools git-r3 +else + SRC_URI="mirror://gnu/gprofng-gui/${P}.tar.gz" + S="${WORKDIR}/${P}" + + KEYWORDS="~amd64" +fi + +LICENSE="GPL-3+" +SLOT="0" + +DEPEND=">=virtual/jdk-1.8:*" +RDEPEND=" + sys-devel/binutils:*[gprofng(-)] + >=virtual/jre-1.8:* +" + +src_prepare() { + default + + mkdir "${WORKDIR}"/build || die + + [[ ${PV} == 9999 ]] && eautoreconf + + java-pkg-2_src_prepare +} + +src_configure() { + cd "${WORKDIR}"/build || die + ECONF_SOURCE="${S}" econf +} + +src_compile() { + emake -C "${WORKDIR}"/build +} + +src_install() { + einstalldocs + emake -C "${WORKDIR}"/build DESTDIR="${D}" install +} diff --git a/dev-debug/gprofng-gui/metadata.xml b/dev-debug/gprofng-gui/metadata.xml new file mode 100644 index 000000000000..0853793ec926 --- /dev/null +++ b/dev-debug/gprofng-gui/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + <name>Gentoo Toolchain Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/hotspot/Manifest b/dev-debug/hotspot/Manifest new file mode 100644 index 000000000000..fdd2f6fb1bc0 --- /dev/null +++ b/dev-debug/hotspot/Manifest @@ -0,0 +1,4 @@ +DIST PrefixTickLabels-7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1.gh.tar.gz 21553 BLAKE2B c804b6a573db0015fea032c4e1497d19e70a6d1fac85e980a8a9467bb773b583be0e4ffcc92802083760c56541fc17f3f5ed698f34913e49451a064768a4ad7f SHA512 d0f9d5f1e4b597f55d612bdcb9c870f0a490a5c66cb72e10bb1e73278be3f33bfb0a9c4ba0f4dfd3973f030814b594f9225f9d49a190de176961aa7677287d6f +DIST hotspot-1.6.0.gh.tar.gz 4108062 BLAKE2B fa60d3cee1f2551b97ec7806d0f05de95ba50f533a8528488a3bb6ed026ae2702761d006139bdf300becd9f4846851f5bd2f5935d76054593e5f7a746896df73 SHA512 ddd252ae828dd5086f67b074078eecb3bdff44be9b614eec72b15dbfb0fdab574fadd8d0f32136f1f8f92ed3359ef5194236f3c9bbb3beb0eb93d509ca146a0f +DIST hotspot-b61451d827dd23e35c5f611e3626226a119dfa48.gh.tar.gz 4103942 BLAKE2B 0ccdc66f1bde032c981d49807a659589ac51023f747afc462a75c27594cc806e67b3ec9525e0236da568c1ecf8f1d4fefcbd539ed5577f9a23850b20a478671b SHA512 e77111fe9213b24aca6070eb21ea1e608dd30472bf72d6433a5e72f2d8e17926bee169aa70820776dbcb966e610fef43f0091db98443e929a2fb1437956f7300 +DIST perfparser-65472541f74da213583535c8bb4fea831e875109.gh.tar.gz 3312538 BLAKE2B d2443e60c93047d7f5714d56ed24e5d3f94ace7cef152a6ea70539f8c0e0eb720297635da122715cd07f7efacbed9010951d368f1fc94142a5ebd130ea39377e SHA512 7ee0ec21dfdc201618921d1878c19c32cafecb268ecf45b513048730d8c34202fd28b531ec938ef13666d7b5dd83b75b68f33a607a6e016fcd8759af980bb223 diff --git a/dev-debug/hotspot/files/hotspot-odr.patch b/dev-debug/hotspot/files/hotspot-odr.patch new file mode 100644 index 000000000000..75f11ad1b698 --- /dev/null +++ b/dev-debug/hotspot/files/hotspot-odr.patch @@ -0,0 +1,234 @@ +--- a/src/models/disassemblymodel.cpp ++++ b/src/models/disassemblymodel.cpp +@@ -240,7 +240,7 @@ QModelIndex DisassemblyModel::indexForFileLine(const Data::FileLine& fileLine) c + return index(bestMatch, 0); + } + +-void DisassemblyModel::find(const QString& search, Direction direction, int current) ++void DisassemblyModel::find(const QString& search, SearchDirection direction, int current) + { + auto searchFunc = [&search](const DisassemblyOutput::DisassemblyLine& line) { + return line.disassembly.indexOf(search, 0, Qt::CaseInsensitive) != -1; +--- a/src/models/disassemblymodel.h ++++ b/src/models/disassemblymodel.h +@@ -20,7 +20,7 @@ class Definition; + class Repository; + } + +-enum class Direction; ++enum class SearchDirection; + + class DisassemblyModel : public QAbstractTableModel + { +@@ -76,7 +76,7 @@ signals: + + public slots: + void updateHighlighting(int line); +- void find(const QString& search, Direction direction, int offset); ++ void find(const QString& search, SearchDirection direction, int offset); + void scrollToLine(const QString& lineNumber); + + private: +--- a/src/models/search.h ++++ b/src/models/search.h +@@ -10,7 +10,7 @@ + #include <algorithm> + #include <iterator> + +-enum class Direction ++enum class SearchDirection + { + Forward, + Backward +@@ -45,7 +45,7 @@ int search_helper(const it begin, const it end, const it current, SearchFunc sea + } + + template<typename it, typename SearchFunc, typename EndReached> +-int search(const it begin, const it end, int current, Direction direction, SearchFunc searchFunc, EndReached endReached) ++int search(const it begin, const it end, int current, SearchDirection direction, SearchFunc searchFunc, EndReached endReached) + { + if (begin == end) + return -1; +@@ -54,7 +54,7 @@ int search(const it begin, const it end, int current, Direction direction, Searc + current = std::clamp(current, 0, static_cast<int>(size) - 1); + const auto currentIt = begin + current; + +- if (direction == Direction::Forward) { ++ if (direction == SearchDirection::Forward) { + return search_helper(begin, end, std::next(currentIt), searchFunc, endReached); + } + +--- a/src/models/sourcecodemodel.cpp ++++ b/src/models/sourcecodemodel.cpp +@@ -258,7 +258,7 @@ void SourceCodeModel::setSysroot(const QString& sysroot) + m_sysroot = sysroot; + } + +-void SourceCodeModel::find(const QString& search, Direction direction, int current) ++void SourceCodeModel::find(const QString& search, SearchDirection direction, int current) + { + auto searchFunc = [&search](const QString& line) { return line.indexOf(search, 0, Qt::CaseInsensitive) != -1; }; + +--- a/src/models/sourcecodemodel.h ++++ b/src/models/sourcecodemodel.h +@@ -20,7 +20,7 @@ class Repository; + class Definition; + } + +-enum class Direction; ++enum class SearchDirection; + + Q_DECLARE_METATYPE(QTextLine) + +@@ -73,7 +73,7 @@ public slots: + void updateHighlighting(int line); + void setSysroot(const QString& sysroot); + +- void find(const QString& search, Direction direction, int current); ++ void find(const QString& search, SearchDirection direction, int current); + void scrollToLine(const QString& lineNumber); + + private: +--- a/src/resultsdisassemblypage.cpp ++++ b/src/resultsdisassemblypage.cpp +@@ -407,12 +407,12 @@ ResultsDisassemblyPage::ResultsDisassemblyPage(CostContextMenu* costContextMenu, + + auto searchNext = [model, edit, additionalRows, searchResultIndex] { + const auto offset = searchResultIndex->isValid() ? searchResultIndex->row() - additionalRows : 0; +- model->find(edit->text(), Direction::Forward, offset); ++ model->find(edit->text(), SearchDirection::Forward, offset); + }; + + auto searchPrev = [model, edit, additionalRows, searchResultIndex] { + const auto offset = searchResultIndex->isValid() ? searchResultIndex->row() - additionalRows : 0; +- model->find(edit->text(), Direction::Backward, offset); ++ model->find(edit->text(), SearchDirection::Backward, offset); + }; + + auto findNextAction = KStandardAction::findNext(this, searchNext, actions); +--- a/tests/modeltests/tst_models.cpp ++++ b/tests/modeltests/tst_models.cpp +@@ -514,7 +514,7 @@ private slots: + // check if search works in general + QSignalSpy searchSpy(&model, &SourceCodeModel::resultFound); + for (int i = 0; i < 5; i++) { +- model.find(QStringLiteral("Line 5"), Direction::Forward, i); ++ model.find(QStringLiteral("Line 5"), SearchDirection::Forward, i); + auto result = searchSpy.takeFirst(); + QCOMPARE(result.at(0).value<QModelIndex>(), model.index(3, SourceCodeModel::SourceCodeColumn)); + } +@@ -522,21 +522,21 @@ private slots: + // Check wrap around + for (int i = 1; i < 4; i++) { + QSignalSpy endReached(&model, &SourceCodeModel::searchEndReached); +- model.find(QStringLiteral("Line 3"), Direction::Forward, i); ++ model.find(QStringLiteral("Line 3"), SearchDirection::Forward, i); + QCOMPARE(endReached.size(), 1); + } + + // check if no result found works + searchSpy.clear(); + for (int i = 0; i < 5; i++) { +- model.find(QStringLiteral("Line 8"), Direction::Forward, i); ++ model.find(QStringLiteral("Line 8"), SearchDirection::Forward, i); + auto result = searchSpy.takeFirst(); + QCOMPARE(result.at(0).value<QModelIndex>().isValid(), false); + } + + // test backward search + for (int i = 4; i > 0; i--) { +- model.find(QStringLiteral("Line 7"), Direction::Backward, i); ++ model.find(QStringLiteral("Line 7"), SearchDirection::Backward, i); + auto result = searchSpy.takeFirst(); + QCOMPARE(result.at(0).value<QModelIndex>(), model.index(5, SourceCodeModel::SourceCodeColumn)); + } +@@ -544,14 +544,14 @@ private slots: + // Check wrap around + for (int i = 4; i > 0; i--) { + QSignalSpy endReached(&model, &SourceCodeModel::searchEndReached); +- model.find(QStringLiteral("Line 7"), Direction::Backward, i); ++ model.find(QStringLiteral("Line 7"), SearchDirection::Backward, i); + QCOMPARE(endReached.size(), 1); + } + + // check if no result found works + searchSpy.clear(); + for (int i = 0; i < 5; i++) { +- model.find(QStringLiteral("Line 8"), Direction::Backward, i); ++ model.find(QStringLiteral("Line 8"), SearchDirection::Backward, i); + auto result = searchSpy.takeFirst(); + QCOMPARE(result.at(0).value<QModelIndex>().isValid(), false); + } +--- a/tests/modeltests/tst_search.cpp ++++ b/tests/modeltests/tst_search.cpp +@@ -24,9 +24,9 @@ private slots: + const std::array<int, 0> testArray = {}; + + QCOMPARE( +- search(testArray.cbegin(), testArray.cend(), 0, Direction::Forward, [](int) { return false; }, [] {}), -1); ++ search(testArray.cbegin(), testArray.cend(), 0, SearchDirection::Forward, [](int) { return false; }, [] {}), -1); + QCOMPARE( +- search(testArray.cbegin(), testArray.cend(), 0, Direction::Backward, [](int) { return false; }, [] {}), -1); ++ search(testArray.cbegin(), testArray.cend(), 0, SearchDirection::Backward, [](int) { return false; }, [] {}), -1); + } + void testSearch() + { +@@ -35,11 +35,11 @@ private slots: + int maxOffset = testArray.size() - 1; + for (int offset = 0; offset < maxOffset; offset++) { + QCOMPARE(search( +- testArray.cbegin(), testArray.cend(), offset, Direction::Forward, ++ testArray.cbegin(), testArray.cend(), offset, SearchDirection::Forward, + [](int num) { return num == 2; }, [] {}), + 1); + QCOMPARE(search( +- testArray.cbegin(), testArray.cend(), offset, Direction::Backward, ++ testArray.cbegin(), testArray.cend(), offset, SearchDirection::Backward, + [](int num) { return num == 2; }, [] {}), + 1); + } +@@ -51,7 +51,7 @@ private slots: + { + bool endReached = false; + QCOMPARE(search( +- testArray.cbegin(), testArray.cend(), 1, Direction::Forward, [](int i) { return i == 1; }, ++ testArray.cbegin(), testArray.cend(), 1, SearchDirection::Forward, [](int i) { return i == 1; }, + [&endReached] { endReached = true; }), + 0); + QCOMPARE(endReached, true); +@@ -60,7 +60,7 @@ private slots: + { + bool endReached = false; + QCOMPARE(search( +- testArray.cbegin(), testArray.cend(), 1, Direction::Backward, [](int i) { return i == 4; }, ++ testArray.cbegin(), testArray.cend(), 1, SearchDirection::Backward, [](int i) { return i == 4; }, + [&endReached] { endReached = true; }), + 3); + QCOMPARE(endReached, true); +@@ -73,7 +73,7 @@ private slots: + + for (int i = 0; i < 2; i++) { + QCOMPARE(search( +- testArray.cbegin(), testArray.cend(), 0, Direction::Forward, [](int) { return true; }, [] {}), ++ testArray.cbegin(), testArray.cend(), 0, SearchDirection::Forward, [](int) { return true; }, [] {}), + -1); + } + } +@@ -83,7 +83,7 @@ private slots: + const std::array<int, 1> testArray = {0}; + + QCOMPARE(search( +- testArray.cbegin(), testArray.cend(), 1, Direction::Forward, [](int i) { return i == 0; }, [] {}), ++ testArray.cbegin(), testArray.cend(), 1, SearchDirection::Forward, [](int i) { return i == 0; }, [] {}), + 0); + } + +@@ -93,7 +93,7 @@ private slots: + + for (std::size_t i = 0; i < testArray.size(); i++) { + QCOMPARE(search( +- testArray.cbegin() + 1, testArray.cbegin() + 3, i, Direction::Forward, ++ testArray.cbegin() + 1, testArray.cbegin() + 3, i, SearchDirection::Forward, + [](int i) { return i == 0; }, [] {}), + -1); + } diff --git a/dev-debug/hotspot/hotspot-1.5.1_p20250907-r1.ebuild b/dev-debug/hotspot/hotspot-1.5.1_p20250907-r1.ebuild new file mode 100644 index 000000000000..b5ff51ae0faa --- /dev/null +++ b/dev-debug/hotspot/hotspot-1.5.1_p20250907-r1.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QTMIN=6.8.1 +KFMIN=6.18.0 + +inherit ecm xdg + +DESCRIPTION="Linux perf GUI for performance analysis" +HOMEPAGE="https://github.com/KDAB/hotspot" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/KDAB/hotspot" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + HOTSPOT_COMMIT="b61451d827dd23e35c5f611e3626226a119dfa48" + PERFPARSER_COMMIT="65472541f74da213583535c8bb4fea831e875109" + PREFIXTICKLABELS_COMMIT="7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1" + SRC_URI=" + https://github.com/KDAB/hotspot/archive/${HOTSPOT_COMMIT}.tar.gz + -> ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz + https://github.com/KDAB/perfparser/archive/${PERFPARSER_COMMIT}.tar.gz + -> perfparser-${PERFPARSER_COMMIT}.gh.tar.gz + https://github.com/koenpoppe/PrefixTickLabels/archive/${PREFIXTICKLABELS_COMMIT}.tar.gz + -> PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz + " + S="${WORKDIR}"/${PN}-${HOTSPOT_COMMIT} +else + SRC_URI=" + https://github.com/KDAB/hotspot/releases/download/v${PV}/${PN}-v${PV}.tar.gz + https://github.com/KDAB/hotspot/releases/download/v${PV}/${PN}-perfparser-v${PV}.tar.gz + -> ${PN}-v${PV}-perfparser.tar.gz + https://github.com/KDAB/hotspot/releases/download/v${PV}/${PN}-PrefixTickLabels-v${PV}.tar.gz + -> ${PN}-v${PV}-PrefixTickLabels.tar.gz + " + S="${WORKDIR}"/${PN} +fi + +# hotspot itself is GPL-2 or GPL-3 +# bundled perfparser is GPL-3 +# bundled PrefixTickLabels is GPL-3 +LICENSE="|| ( GPL-2 GPL-3 ) GPL-3" +SLOT="0" +IUSE="debuginfod" +if [[ ${PV} != 9999 ]] ; then + KEYWORDS="~amd64" +fi + +DEPEND=" + app-arch/zstd:= + dev-libs/elfutils[debuginfod?] + dev-libs/qcustomplot + >=dev-qt/qtbase-${QTMIN}:6=[network,widgets] + >=dev-qt/qtsvg-${QTMIN}:6 + gui-libs/kddockwidgets:= + >=kde-frameworks/karchive-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kio-${KFMIN}:6 + >=kde-frameworks/kitemviews-${KFMIN}:6 + >=kde-frameworks/kitemmodels-${KFMIN}:6 + >=kde-frameworks/knotifications-${KFMIN}:6 + >=kde-frameworks/kparts-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6 + >=kde-frameworks/solid-${KFMIN}:6 + >=kde-frameworks/syntax-highlighting-${KFMIN}:6 + >=kde-frameworks/threadweaver-${KFMIN}:6 + media-gfx/kgraphviewer + sys-devel/gettext +" +RDEPEND=" + ${DEPEND} + dev-util/perf + sys-devel/binutils:* +" + +PATCHES=( + "${FILESDIR}"/${PN}-odr.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_p* ]] ; then + unpack ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz + tar -xf "${DISTDIR}"/perfparser-${PERFPARSER_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/perfparser || die + tar -xf "${DISTDIR}"/PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/PrefixTickLabels || die + else + unpack ${PN}-v${PV}.tar.gz + tar -xf "${DISTDIR}"/${PN}-v${PV}-perfparser.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/perfparser || die + tar -xf "${DISTDIR}"/${PN}-v${PV}-PrefixTickLabels.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/PrefixTickLabels || die + fi +} + +src_configure() { + local mycmakeargs=( + -DQT6_BUILD=true + ) + + if ! use debuginfod; then + mycmakeargs+=( + -DHAVE_DWFL_GET_DEBUGINFOD_CLIENT_SYMBOL="no" + -DHAVE_DEBUGINFOD_SET_USER_DATA="no" + ) + fi + + ecm_src_configure +} + +src_test() { + CMAKE_SKIP_TESTS=( + # Complains about {d,rustc}_demangle missing, but may fail + # for other reasons too. + tst_perfparser + ) + + ecm_src_test +} diff --git a/dev-debug/hotspot/hotspot-1.6.0.ebuild b/dev-debug/hotspot/hotspot-1.6.0.ebuild new file mode 100644 index 000000000000..41d986efdb47 --- /dev/null +++ b/dev-debug/hotspot/hotspot-1.6.0.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QTMIN=6.8.1 +KFMIN=6.18.0 + +inherit ecm xdg + +DESCRIPTION="Linux perf GUI for performance analysis" +HOMEPAGE="https://github.com/KDAB/hotspot" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/KDAB/hotspot" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + HOTSPOT_COMMIT="b61451d827dd23e35c5f611e3626226a119dfa48" + PERFPARSER_COMMIT="65472541f74da213583535c8bb4fea831e875109" + PREFIXTICKLABELS_COMMIT="7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1" + SRC_URI=" + https://github.com/KDAB/hotspot/archive/${HOTSPOT_COMMIT}.tar.gz + -> ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz + https://github.com/KDAB/perfparser/archive/${PERFPARSER_COMMIT}.tar.gz + -> perfparser-${PERFPARSER_COMMIT}.gh.tar.gz + https://github.com/koenpoppe/PrefixTickLabels/archive/${PREFIXTICKLABELS_COMMIT}.tar.gz + -> PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz + " + S="${WORKDIR}"/${PN}-${HOTSPOT_COMMIT} +else + PERFPARSER_COMMIT="65472541f74da213583535c8bb4fea831e875109" + PREFIXTICKLABELS_COMMIT="7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1" + SRC_URI=" + https://github.com/KDAB/hotspot/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz + https://github.com/KDAB/perfparser/archive/${PERFPARSER_COMMIT}.tar.gz + -> perfparser-${PERFPARSER_COMMIT}.gh.tar.gz + https://github.com/koenpoppe/PrefixTickLabels/archive/${PREFIXTICKLABELS_COMMIT}.tar.gz + -> PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz + " +fi + +# hotspot itself is GPL-2 or GPL-3 +# bundled perfparser is GPL-3 +# bundled PrefixTickLabels is GPL-3 +LICENSE="|| ( GPL-2 GPL-3 ) GPL-3" +SLOT="0" +IUSE="debuginfod" +if [[ ${PV} != 9999 ]] ; then + KEYWORDS="~amd64" +fi + +DEPEND=" + app-arch/zstd:= + dev-libs/elfutils[debuginfod?] + dev-libs/qcustomplot + >=dev-qt/qtbase-${QTMIN}:6=[network,widgets] + >=dev-qt/qtsvg-${QTMIN}:6 + gui-libs/kddockwidgets:= + >=kde-frameworks/karchive-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kio-${KFMIN}:6 + >=kde-frameworks/kitemviews-${KFMIN}:6 + >=kde-frameworks/kitemmodels-${KFMIN}:6 + >=kde-frameworks/knotifications-${KFMIN}:6 + >=kde-frameworks/kparts-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6 + >=kde-frameworks/solid-${KFMIN}:6 + >=kde-frameworks/syntax-highlighting-${KFMIN}:6 + >=kde-frameworks/threadweaver-${KFMIN}:6 + media-gfx/kgraphviewer + sys-devel/gettext +" +RDEPEND=" + ${DEPEND} + dev-util/perf + sys-devel/binutils:* +" + +PATCHES=( + "${FILESDIR}"/${PN}-odr.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_p* ]] ; then + unpack ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz + tar -xf "${DISTDIR}"/perfparser-${PERFPARSER_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/perfparser || die + tar -xf "${DISTDIR}"/PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/PrefixTickLabels || die + else + unpack ${P}.gh.tar.gz + tar -xf "${DISTDIR}"/perfparser-${PERFPARSER_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/perfparser || die + tar -xf "${DISTDIR}"/PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/PrefixTickLabels || die + fi +} + +src_configure() { + local mycmakeargs=( + -DQT6_BUILD=true + ) + + if ! use debuginfod; then + mycmakeargs+=( + -DHAVE_DWFL_GET_DEBUGINFOD_CLIENT_SYMBOL="no" + -DHAVE_DEBUGINFOD_SET_USER_DATA="no" + ) + fi + + ecm_src_configure +} + +src_test() { + CMAKE_SKIP_TESTS=( + # Complains about {d,rustc}_demangle missing, but may fail + # for other reasons too. + tst_perfparser + ) + + ecm_src_test +} diff --git a/dev-debug/hotspot/hotspot-9999.ebuild b/dev-debug/hotspot/hotspot-9999.ebuild new file mode 100644 index 000000000000..41d986efdb47 --- /dev/null +++ b/dev-debug/hotspot/hotspot-9999.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QTMIN=6.8.1 +KFMIN=6.18.0 + +inherit ecm xdg + +DESCRIPTION="Linux perf GUI for performance analysis" +HOMEPAGE="https://github.com/KDAB/hotspot" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/KDAB/hotspot" + inherit git-r3 +elif [[ ${PV} == *_p* ]] ; then + HOTSPOT_COMMIT="b61451d827dd23e35c5f611e3626226a119dfa48" + PERFPARSER_COMMIT="65472541f74da213583535c8bb4fea831e875109" + PREFIXTICKLABELS_COMMIT="7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1" + SRC_URI=" + https://github.com/KDAB/hotspot/archive/${HOTSPOT_COMMIT}.tar.gz + -> ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz + https://github.com/KDAB/perfparser/archive/${PERFPARSER_COMMIT}.tar.gz + -> perfparser-${PERFPARSER_COMMIT}.gh.tar.gz + https://github.com/koenpoppe/PrefixTickLabels/archive/${PREFIXTICKLABELS_COMMIT}.tar.gz + -> PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz + " + S="${WORKDIR}"/${PN}-${HOTSPOT_COMMIT} +else + PERFPARSER_COMMIT="65472541f74da213583535c8bb4fea831e875109" + PREFIXTICKLABELS_COMMIT="7cd6d5a04cf3747cc9327efdbcbf43620efaa0c1" + SRC_URI=" + https://github.com/KDAB/hotspot/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz + https://github.com/KDAB/perfparser/archive/${PERFPARSER_COMMIT}.tar.gz + -> perfparser-${PERFPARSER_COMMIT}.gh.tar.gz + https://github.com/koenpoppe/PrefixTickLabels/archive/${PREFIXTICKLABELS_COMMIT}.tar.gz + -> PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz + " +fi + +# hotspot itself is GPL-2 or GPL-3 +# bundled perfparser is GPL-3 +# bundled PrefixTickLabels is GPL-3 +LICENSE="|| ( GPL-2 GPL-3 ) GPL-3" +SLOT="0" +IUSE="debuginfod" +if [[ ${PV} != 9999 ]] ; then + KEYWORDS="~amd64" +fi + +DEPEND=" + app-arch/zstd:= + dev-libs/elfutils[debuginfod?] + dev-libs/qcustomplot + >=dev-qt/qtbase-${QTMIN}:6=[network,widgets] + >=dev-qt/qtsvg-${QTMIN}:6 + gui-libs/kddockwidgets:= + >=kde-frameworks/karchive-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kio-${KFMIN}:6 + >=kde-frameworks/kitemviews-${KFMIN}:6 + >=kde-frameworks/kitemmodels-${KFMIN}:6 + >=kde-frameworks/knotifications-${KFMIN}:6 + >=kde-frameworks/kparts-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6 + >=kde-frameworks/solid-${KFMIN}:6 + >=kde-frameworks/syntax-highlighting-${KFMIN}:6 + >=kde-frameworks/threadweaver-${KFMIN}:6 + media-gfx/kgraphviewer + sys-devel/gettext +" +RDEPEND=" + ${DEPEND} + dev-util/perf + sys-devel/binutils:* +" + +PATCHES=( + "${FILESDIR}"/${PN}-odr.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif [[ ${PV} == *_p* ]] ; then + unpack ${PN}-${HOTSPOT_COMMIT}.gh.tar.gz + tar -xf "${DISTDIR}"/perfparser-${PERFPARSER_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/perfparser || die + tar -xf "${DISTDIR}"/PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/PrefixTickLabels || die + else + unpack ${P}.gh.tar.gz + tar -xf "${DISTDIR}"/perfparser-${PERFPARSER_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/perfparser || die + tar -xf "${DISTDIR}"/PrefixTickLabels-${PREFIXTICKLABELS_COMMIT}.gh.tar.gz --strip-components=1 \ + -C "${S}"/3rdparty/PrefixTickLabels || die + fi +} + +src_configure() { + local mycmakeargs=( + -DQT6_BUILD=true + ) + + if ! use debuginfod; then + mycmakeargs+=( + -DHAVE_DWFL_GET_DEBUGINFOD_CLIENT_SYMBOL="no" + -DHAVE_DEBUGINFOD_SET_USER_DATA="no" + ) + fi + + ecm_src_configure +} + +src_test() { + CMAKE_SKIP_TESTS=( + # Complains about {d,rustc}_demangle missing, but may fail + # for other reasons too. + tst_perfparser + ) + + ecm_src_test +} diff --git a/dev-debug/hotspot/metadata.xml b/dev-debug/hotspot/metadata.xml new file mode 100644 index 000000000000..f8814792a86f --- /dev/null +++ b/dev-debug/hotspot/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <use> + <flag name="debuginfod">Enable debuginfod support via <pkg>dev-libs/elfutils</pkg> libdebuginfod</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/kdbg/Manifest b/dev-debug/kdbg/Manifest new file mode 100644 index 000000000000..656196b14f1f --- /dev/null +++ b/dev-debug/kdbg/Manifest @@ -0,0 +1,3 @@ +DIST kdbg-3.1.0_p20250406-patchset.tar.xz 3812 BLAKE2B bbdc08408b9ff123dcd3e283f8862e541031646e4a303dbe0c311571282ddf6a7d580fb68637def3685d779f598c7ea2b4f5b280963629bd964c0ae408e0ddd6 SHA512 6cce46cb257cedb31c13fa556ec6c5ca0ba558ac1fb21e29be99996011c8077e3563bb39e0895c84c66e3246d871a51a6cdc3157c9cda9f06569090add3e53be +DIST kdbg-3.1.0_p20250406.tar.gz 454669 BLAKE2B c4aafba0df4841d972dc3c48d8ac0cfaa4ea9dd4a689105fb4f93ed82595b0a058d798b42243ac9475125855fa2130587ba0e2dd9f5cf9c40c699b85f6bdb9d6 SHA512 57bb250251c43e83fc1897c3798cb8ae740e2b549014cdc54d44fb9775bff7ab786acfddfc5b0f159b9d22c39b84793236fbf6db712c00df8f8938b196a56454 +DIST kdbg-3.2.0.gh.tar.gz 439388 BLAKE2B 6d43397806a275f259cfa12cedd34b9c280ab0b5c1b44e62ac69cc32684ad308b0de1823c6fbae7a8ba8706078093c00e9d7151b822acce92ae0497b4d0bb708 SHA512 ef86103bb52721ab3e35a8de99a24987f68bbae8f0b714e6c6274124ad6d9b17e61e81ed0f13589516b33796d43a0c4209eac2cd0a8eb89a71eeb1f1d3a61a41 diff --git a/dev-debug/kdbg/kdbg-3.1.0_p20250406-r1.ebuild b/dev-debug/kdbg/kdbg-3.1.0_p20250406-r1.ebuild new file mode 100644 index 000000000000..7a00440c5b6c --- /dev/null +++ b/dev-debug/kdbg/kdbg-3.1.0_p20250406-r1.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +COMMIT="78450aec94de5c2c5e07f9a448f454ebe39e4fc0" +PATCHSET="${P}-patchset.tar.xz" +ECM_HANDBOOK="true" +KFMIN=6.9.0 +QTMIN=6.8.1 +inherit ecm xdg + +DESCRIPTION="Graphical debugger interface" +HOMEPAGE="https://www.kdbg.org/" +SRC_URI="https://github.com/j6t/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~riscv ~x86" + +DEPEND=" + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtbase-${QTMIN}:6[gui,widgets] + >=kde-frameworks/kconfig-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6[X] + >=kde-frameworks/kxmlgui-${KFMIN}:6 +" +RDEPEND="${DEPEND} + !${CATEGORY}/${PN}:5 + dev-debug/gdb +" + +# Patchset containing queued up upstream MRs, in order: +# https://github.com/j6t/kdbg/pull/48 (only partially picked) +# https://github.com/j6t/kdbg/commit/2e5de789 (Switch to KX11Extras) +# https://github.com/j6t/kdbg/pull/49 (Cast to QChar) +# https://github.com/j6t/kdbg/pull/50 +PATCHES=( "${WORKDIR}"/${PATCHSET/.tar.xz/} ) + +src_prepare() { + ecm_src_prepare + # TODO: raising ECM leads to many more deprecations erroring out: + sed -e "/^find_package(ECM/ s/\${KF_MIN_VERSION} //" -i CMakeLists.txt || die + if ! use handbook; then + cmake_run_in kdbg cmake_comment_add_subdirectory doc + fi +} diff --git a/dev-debug/kdbg/kdbg-3.1.0_p20250406.ebuild b/dev-debug/kdbg/kdbg-3.1.0_p20250406.ebuild new file mode 100644 index 000000000000..74303154d897 --- /dev/null +++ b/dev-debug/kdbg/kdbg-3.1.0_p20250406.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +COMMIT="78450aec94de5c2c5e07f9a448f454ebe39e4fc0" +PATCHSET="${P}-patchset.tar.xz" +ECM_HANDBOOK="true" +KFMIN=6.9.0 +QTMIN=6.8.1 +inherit ecm xdg + +DESCRIPTION="Graphical debugger interface" +HOMEPAGE="https://www.kdbg.org/" +SRC_URI="https://github.com/j6t/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~riscv ~x86" + +DEPEND=" + >=dev-qt/qtbase-${QTMIN}:6[gui,widgets] + >=kde-frameworks/kconfig-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6[X] + >=kde-frameworks/kxmlgui-${KFMIN}:6 +" +RDEPEND="${DEPEND} + !${CATEGORY}/${PN}:5 + dev-debug/gdb +" + +# Patchset containing queued up upstream MRs, in order: +# https://github.com/j6t/kdbg/pull/48 (only partially picked) +# https://github.com/j6t/kdbg/commit/2e5de789 (Switch to KX11Extras) +# https://github.com/j6t/kdbg/pull/49 (Cast to QChar) +# https://github.com/j6t/kdbg/pull/50 +PATCHES=( "${WORKDIR}"/${PATCHSET/.tar.xz/} ) + +src_prepare() { + ecm_src_prepare + # TODO: raising ECM leads to many more deprecations erroring out: + sed -e "/^find_package(ECM/ s/\${KF_MIN_VERSION} //" -i CMakeLists.txt || die + if ! use handbook; then + cmake_run_in kdbg cmake_comment_add_subdirectory doc + fi +} diff --git a/dev-debug/kdbg/kdbg-3.2.0.ebuild b/dev-debug/kdbg/kdbg-3.2.0.ebuild new file mode 100644 index 000000000000..08c1a4cdbd42 --- /dev/null +++ b/dev-debug/kdbg/kdbg-3.2.0.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_HANDBOOK="true" +KFMIN=6.9.0 +QTMIN=6.8.1 +inherit ecm xdg + +DESCRIPTION="Graphical debugger interface" +HOMEPAGE="https://www.kdbg.org/" +SRC_URI="https://github.com/j6t/${PN}/archive/refs/tags/${P}.tar.gz -> ${P}.gh.tar.gz" +S="${WORKDIR}/${PN}-${P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~riscv ~x86" + +DEPEND=" + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtbase-${QTMIN}:6[gui,widgets] + >=kde-frameworks/kconfig-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6[X] + >=kde-frameworks/kxmlgui-${KFMIN}:6 +" +RDEPEND="${DEPEND} + !${CATEGORY}/${PN}:5 + dev-debug/gdb +" + +src_prepare() { + ecm_src_prepare + if ! use handbook; then + cmake_run_in kdbg cmake_comment_add_subdirectory doc + fi +} + +src_configure() { + local mycmakeargs=( + -DBUILD_FOR_KDE_VERSION=6 + ) + ecm_src_configure +} diff --git a/dev-debug/kdbg/metadata.xml b/dev-debug/kdbg/metadata.xml new file mode 100644 index 000000000000..02ffb2bf11fe --- /dev/null +++ b/dev-debug/kdbg/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>kde@gentoo.org</email> + <name>Gentoo KDE Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/leaktracer/Manifest b/dev-debug/leaktracer/Manifest new file mode 100644 index 000000000000..f48add3e2c81 --- /dev/null +++ b/dev-debug/leaktracer/Manifest @@ -0,0 +1 @@ +DIST leaktracer-2.4-gentoo_p2.tbz2 11957 BLAKE2B 0af20e7a43c88a16027e859779924ef3fc86af5fb8324a96721f190db4ef59d78681ea4b91ef9843ed467541c9ca3a9b1618339174fdc1901a13b5221acc5479 SHA512 12f348564933c8cf372208f846bb21b175f041e7687811e9c6ce8062e7f285b9d2395e7853a20df11d9b0d5b8fff89efc76ccbac9f8b7c0bc4fd4ea25d476718 diff --git a/dev-debug/leaktracer/leaktracer-2.4-r3.ebuild b/dev-debug/leaktracer/leaktracer-2.4-r3.ebuild new file mode 100644 index 000000000000..e0ba6140a682 --- /dev/null +++ b/dev-debug/leaktracer/leaktracer-2.4-r3.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +# Upstream-package has no version in it's name. +# We therefore repackage it directly, together with the patches. +PATCH_LEVEL="2" + +DESCRIPTION="Trace and analyze memory leaks in C++ programs" +HOMEPAGE="https://andreasen.org/LeakTracer/" +SRC_URI="mirror://gentoo/${P}-gentoo_p${PATCH_LEVEL}.tbz2" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" + +DEPEND="dev-lang/perl + dev-debug/gdb" +RDEPEND="${DEPEND}" + +# leaktracer is being realized using LD_PRELOAD and segfaults +# when being run in the sandbox and the library is _not_ in +# /usr/$(get_libdir) which is not possible before installation +RESTRICT="test" + +src_prepare() { + eapply -p1 "${WORKDIR}/patches/01_all_gcc-cflags.patch" + eapply -p0 "${WORKDIR}/patches/05_all_libdir.patch" + eapply -p1 "${WORKDIR}/patches/15_all_printf.patch" + + sed -i \ + -e "s|%LIBDIR%|$(get_libdir)|" \ + LeakCheck || die "sed for setting lib path failed" + + eapply_user +} + +src_compile() { + emake CXX="$(tc-getCXX)" +} + +src_install() { + dobin LeakCheck leak-analyze + dolib.so LeakTracer.so + dodoc README test.cc + docinto html + dodoc README.html +} + +pkg_postinst() { + elog "To use LeakTracer, run LeakCheck my_prog and then leak-analyze my_prog leak.out" + elog "Please refer to README file for more info." +} diff --git a/dev-debug/leaktracer/metadata.xml b/dev-debug/leaktracer/metadata.xml new file mode 100644 index 000000000000..5f33304011d5 --- /dev/null +++ b/dev-debug/leaktracer/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/lldb-mi/Manifest b/dev-debug/lldb-mi/Manifest new file mode 100644 index 000000000000..aad3f02c3a69 --- /dev/null +++ b/dev-debug/lldb-mi/Manifest @@ -0,0 +1 @@ +DIST lldb-mi-0.0.1.tar.gz 190715 BLAKE2B c658f8a6943d0cc165dbdc5f4acb38081d0b1fc4a213795cb948a934be6558ad3dfb38a1d20611b60d9396aba23337f665839615c26a5029ddf48c977a12add8 SHA512 33488d254cd294f7f565f2c571ed399d63189f26f1d0567bf3a0a8a44bbb20a9e0690b190d3409a8678ecf237e33ff4dacd1c80ea671a3931b50ab91d690b147 diff --git a/dev-debug/lldb-mi/files/lldb-mi-0.0.1-find_packages_GTest.patch b/dev-debug/lldb-mi/files/lldb-mi-0.0.1-find_packages_GTest.patch new file mode 100644 index 000000000000..7d18c7f71220 --- /dev/null +++ b/dev-debug/lldb-mi/files/lldb-mi-0.0.1-find_packages_GTest.patch @@ -0,0 +1,40 @@ +From: Paul Zander <negril.nx+gentoo@gmail.com> +Subject: [PATCH] CMake: use system gtest instead of fetching it + +diff --git a/test/unittests/CMakeLists.txt b/test/unittests/CMakeLists.txt +index 4d07cdb..976b8e5 100644 +--- a/test/unittests/CMakeLists.txt ++++ b/test/unittests/CMakeLists.txt +@@ -1,10 +1,7 @@ + cmake_minimum_required(VERSION 3.11) + +-include(FetchContent) +-FetchContent_Declare(gtest +- QUIET +- URL https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip +-) ++enable_testing() ++find_package(GTest REQUIRED) + + # Prevent overriding the parent project's linker settings, for Windows. + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +@@ -15,10 +12,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options("-Wno-error=covered-switch-default") + endif() + +-FetchContent_MakeAvailable(gtest) +- +-include(GoogleTest) +- + include_directories(../../src) + + set(UNITTESTS_ROOT ${CMAKE_CURRENT_LIST_DIR}) +@@ -39,7 +32,7 @@ function(add_lldb_mi_test NAME TEST) + endforeach(SRC) + + add_executable(${NAME} ${TEST} ${SOURCES_RELATIVE}) +- target_link_libraries(${NAME} gtest_main) ++ target_link_libraries(${NAME} GTest::gtest GTest::gtest_main) + set_target_properties(${NAME} PROPERTIES FOLDER "unittests") + + gtest_discover_tests(${NAME}) diff --git a/dev-debug/lldb-mi/lldb-mi-0.0.1.ebuild b/dev-debug/lldb-mi/lldb-mi-0.0.1.ebuild new file mode 100644 index 000000000000..8a59d6fe7cd5 --- /dev/null +++ b/dev-debug/lldb-mi/lldb-mi-0.0.1.ebuild @@ -0,0 +1,52 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {16..23} ) + +inherit cmake llvm-r2 + +DESCRIPTION="LLDB Machine Interface Driver" +HOMEPAGE="https://github.com/lldb-tools/lldb-mi" + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI="https://github.com/lldb-tools/lldb-mi.git" + EGIT_BRANCH="main" + inherit git-r3 +else + SRC_URI=" + https://github.com/lldb-tools/lldb-mi/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="Apache-2.0-with-LLVM-exceptions" +SLOT="0" + +IUSE="test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + llvm-core/lldb:= + $(llvm_gen_dep ' + llvm-core/llvm:${LLVM_SLOT} + ') +" +DEPEND="${RDEPEND} + test? ( + dev-cpp/gtest + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.0.1-find_packages_GTest.patch" +) + +src_configure() { + local mycmakeargs=( + -DINCLUDE_TESTS="$(usex test)" + ) + cmake_src_configure +} diff --git a/dev-debug/lldb-mi/lldb-mi-9999.ebuild b/dev-debug/lldb-mi/lldb-mi-9999.ebuild new file mode 100644 index 000000000000..8a59d6fe7cd5 --- /dev/null +++ b/dev-debug/lldb-mi/lldb-mi-9999.ebuild @@ -0,0 +1,52 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {16..23} ) + +inherit cmake llvm-r2 + +DESCRIPTION="LLDB Machine Interface Driver" +HOMEPAGE="https://github.com/lldb-tools/lldb-mi" + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI="https://github.com/lldb-tools/lldb-mi.git" + EGIT_BRANCH="main" + inherit git-r3 +else + SRC_URI=" + https://github.com/lldb-tools/lldb-mi/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + " + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="Apache-2.0-with-LLVM-exceptions" +SLOT="0" + +IUSE="test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + llvm-core/lldb:= + $(llvm_gen_dep ' + llvm-core/llvm:${LLVM_SLOT} + ') +" +DEPEND="${RDEPEND} + test? ( + dev-cpp/gtest + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.0.1-find_packages_GTest.patch" +) + +src_configure() { + local mycmakeargs=( + -DINCLUDE_TESTS="$(usex test)" + ) + cmake_src_configure +} diff --git a/dev-debug/lldb-mi/metadata.xml b/dev-debug/lldb-mi/metadata.xml new file mode 100644 index 000000000000..d77a9a5a9acf --- /dev/null +++ b/dev-debug/lldb-mi/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>negril.nx+gentoo@gmail.com</email> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/ltrace/Manifest b/dev-debug/ltrace/Manifest new file mode 100644 index 000000000000..4ba9c741a472 --- /dev/null +++ b/dev-debug/ltrace/Manifest @@ -0,0 +1,2 @@ +DIST ltrace-0.7.91_pre20221216.tar.bz2 288077 BLAKE2B cadc2ac551a96dfa95aee0d0eb251d8f41a8631350ba3be3f67d0cb10774a3db6abbd42481d24febdfcb0d565107e66b4de0056a85a7954bb050adb8e8fa5b4a SHA512 993c247797551b4fbb202c04f9af08063c8641946825b17d1f32c4647c606ece803a6b049c4afa3046c798add161ab58f01d90106f3b6029a223af03bca27a99 +DIST ltrace-0.8.1.tar.bz2 296963 BLAKE2B 4fb938f3511668f836f7f9cd3d3ab88b9e46a749bce9f506609c1ebfced552c71f868272766be7d902c0151eba55061d6aa9f5c88b0f40cf040cc6f4a43d9ce6 SHA512 68fdf10abb3c9534987cb4fcf2531502f8376c56299d56908406ba903fa63af2e0a82c3b902ed0cd47e4985154155a4e9387a11ada066515de26486301dddbaf diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch b/dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch new file mode 100644 index 000000000000..06db36c46818 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-CXX-for-tests.patch @@ -0,0 +1,11 @@ +Testsuite uses CXX to trace mangled symbols. +--- a/configure.ac ++++ b/configure.ac +@@ -53,6 +53,7 @@ AC_SUBST(HOST_CPU) + + # Checks for programs. + AC_PROG_CC ++AC_PROG_CXX + LT_INIT + # libtool-2: LT_INIT() + AM_INIT_AUTOMAKE([foreign no-exeext dist-bzip2]) diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch b/dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch new file mode 100644 index 000000000000..7ff573272963 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-alpha-protos.patch @@ -0,0 +1,12 @@ +Fix build failure on alpha: + plt.c:32:12: error: dereferencing pointer to incomplete type ‘struct library_symbol’ + return sym->enter_addr; + ^ +--- a/sysdeps/linux-gnu/alpha/plt.c 2012-11-10 13:43:55.000000000 +0100 ++++ b/sysdeps/linux-gnu/alpha/plt.c 2016-06-27 23:21:28.000000000 +0200 +@@ -23,0 +24 @@ ++#include "library.h" +--- a/sysdeps/linux-gnu/alpha/trace.c 2016-06-27 23:30:08.000000000 +0200 ++++ b/sysdeps/linux-gnu/alpha/trace.c 2016-06-27 23:25:20.000000000 +0200 +@@ -29,0 +30 @@ ++#include "backend.h" diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch b/dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch new file mode 100644 index 000000000000..c466ce17e02d --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-ia64-pid_t.patch @@ -0,0 +1,6 @@ +--- a/sysdeps/linux-gnu/ia64/breakpoint.c ++++ b/sysdeps/linux-gnu/ia64/breakpoint.c +@@ -26,2 +26,3 @@ + #include <sys/ptrace.h> ++#include <sys/types.h> /* pid_t */ + #include <string.h> diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch b/dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch new file mode 100644 index 000000000000..4fb1c4eba734 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-ia64.patch @@ -0,0 +1,39 @@ +Fix build fauilure on ia64. + +Build fails due to bitrot: some definitions +moved off from <sys/pthrace.h> to <asm/ptrace.h> +(similar to other arches). + +fetch.c:39:26: error: field 'regs' has incomplete type + struct pt_all_user_regs regs; + ^~~~ +fetch.c:209:25: warning: 'struct ia64_fpreg' declared inside parameter list will not be visible outside of this definition or declaration + fpreg_to_double (struct ia64_fpreg *fp) { + ^~~~~~~~~~ +fetch.c: In function 'fpreg_to_double': +fetch.c:211:45: error: dereferencing pointer to incomplete type 'struct ia64_fpreg' + asm ("ldf.fill %0=%1" : "=f"(result) : "m"(*fp)); + ^~~ + +diff --git a/sysdeps/linux-gnu/ia64/fetch.c b/sysdeps/linux-gnu/ia64/fetch.c +index 54dc5b8..b3b9a9a 100644 +--- a/sysdeps/linux-gnu/ia64/fetch.c ++++ b/sysdeps/linux-gnu/ia64/fetch.c +@@ -134,9 +134,4 @@ allocate_reg(struct fetch_context *ctx, struct Process *proc, + return 0; + +- /* This would normally be brought over from asm/ptrace.h, but +- * when we do, we get namespace conflicts between asm/fpu.h +- * and libunwind. */ +- enum { PT_AUR_BSP = 17 }; +- + union cfm_t cfm = { .value = ctx->regs.cfm }; + unsigned long *bsp = (unsigned long *)ctx->regs.ar[PT_AUR_BSP]; +diff --git a/sysdeps/linux-gnu/ia64/ptrace.h b/sysdeps/linux-gnu/ia64/ptrace.h +index ef63b4f..8b131f1 100644 +--- a/sysdeps/linux-gnu/ia64/ptrace.h ++++ b/sysdeps/linux-gnu/ia64/ptrace.h +@@ -20,2 +20,3 @@ + + #include <sys/ptrace.h> ++#include <asm/ptrace.h> diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch b/dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch new file mode 100644 index 000000000000..7729449d0604 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-musl-host.patch @@ -0,0 +1,11 @@ +https://bugs.gentoo.org/713428 +--- a/configure.ac ++++ b/configure.ac +@@ -33,6 +33,7 @@ AC_CANONICAL_HOST + + case "${host_os}" in + linux-gnu*) HOST_OS="linux-gnu" ;; ++ linux-musl*) HOST_OS="linux-gnu" ;; + linux-uclibc*) HOST_OS="linux-gnu" ;; + *) AC_MSG_ERROR([unkown host-os ${host_os}]) ;; + esac diff --git a/dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch b/dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch new file mode 100644 index 000000000000..5e46135add3e --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.3-print-test-pie.patch @@ -0,0 +1,15 @@ +--- a/testsuite/ltrace.minor/print-instruction-pointer.exp ++++ b/testsuite/ltrace.minor/print-instruction-pointer.exp +@@ -32,6 +32,12 @@ catch "exec sh -c {objdump -d $objdir/$subdir/$binfile | sed -n '/^\[0-9a-fA-F\] + catch "exec sh -c {echo \"$output\" | sed -n '2p'| awk -F' ' '{print \$1}'|awk -F: '{print \$1}'}" addr1 + catch "exec sh -c {echo \"$output\" | sed -n '5p'| awk -F' ' '{print \$1}'|awk -F: '{print \$1}'}" addr2 + ++# Pick at most last 3 digits: ++# PIE binaries randomize address on page level. ++# Let's assume page size is no bigger than 4096 (3 hex digits) ++set addr1 [string range $addr1 3 end] ++set addr2 [string range $addr2 3 end] ++ + verbose "addr1 = $addr1" + verbose "addr2 = $addr2" + # Verify the output by checking numbers of print in main.ltrace. diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch b/dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch new file mode 100644 index 000000000000..1f3bb5ec6a21 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-debian-patchset-6.4.patch @@ -0,0 +1,77 @@ +Patches imported from the Debian patch set 6.4 for ltrace-0.7.3: + - 01-avoid-libstdc++ (adapted to account for the absence of configure), + - 03-alpha-debug.h + - 05-sparc-ftbfs + - 06-unexpected-breakpoint +The other two have since been merged upstream. + +--- a/configure.ac ++++ b/configure.ac +@@ -126,6 +126,15 @@ + libstdcxx_LIBS=""]) + AC_SUBST(libstdcxx_LIBS) + ++if test "x$liberty_LIBS" != "x" ++then ++ libsupcxx_LIBS="" ++ libstdcxx_LIBS="" ++elif test "x$libsupcxx_LIBS" != "x" ++then ++ libstdcxx_LIBS="" ++fi ++ + + dnl Check security_get_boolean_active availability. + AC_CHECK_HEADERS(selinux/selinux.h) +--- a/handle_event.c ++++ b/handle_event.c +@@ -740,9 +740,12 @@ + + if ((sbp = address2bpstruct(leader, brk_addr)) != NULL) + breakpoint_on_hit(sbp, event->proc); +- else if (event->proc->state != STATE_IGNORED) ++ else if (event->proc->state != STATE_IGNORED) { + output_line(event->proc, + "unexpected breakpoint at %p", brk_addr); ++ continue_process(event->proc->pid); ++ return; ++ } + + /* breakpoint_on_hit may delete its own breakpoint, so we have + * to look it up again. */ +--- a/sysdeps/linux-gnu/alpha/trace.c ++++ b/sysdeps/linux-gnu/alpha/trace.c +@@ -29,7 +29,6 @@ + + #include "proc.h" + #include "common.h" +-#include "debug.h" + + #if (!defined(PTRACE_PEEKUSER) && defined(PTRACE_PEEKUSR)) + # define PTRACE_PEEKUSER PTRACE_PEEKUSR +--- a/sysdeps/linux-gnu/sparc/plt.c ++++ b/sysdeps/linux-gnu/sparc/plt.c +@@ -19,8 +19,9 @@ + */ + + #include <gelf.h> ++ + #include "proc.h" +-#include "common.h" ++#include "library.h" + + GElf_Addr + arch_plt_sym_val(struct ltelf *lte, size_t ndx, GElf_Rela * rela) { +--- a/sysdeps/linux-gnu/sparc/trace.c ++++ b/sysdeps/linux-gnu/sparc/trace.c +@@ -26,8 +26,10 @@ + #include <sys/wait.h> + #include <signal.h> + #include <string.h> ++ + #include "ptrace.h" + #include "proc.h" ++#include "backend.h" + #include "common.h" + + void diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch b/dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch new file mode 100644 index 000000000000..06075006b2e1 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-pid_t.patch @@ -0,0 +1,10 @@ +--- a/proc.h ++++ b/proc.h +@@ -27,6 +27,7 @@ + + #include <sys/time.h> + #include <stdint.h> ++#include <unistd.h> /* pid_t */ + + #if defined(HAVE_LIBDW) + # include <elfutils/libdwfl.h> diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch b/dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch new file mode 100644 index 000000000000..b78d4580b050 --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-test-glibc-2.33.patch @@ -0,0 +1,11 @@ +--- a/testsuite/ltrace.main/system_calls.exp ++++ b/testsuite/ltrace.main/system_calls.exp +@@ -133,7 +133,7 @@ + { {^write$} == 1 } + { {^unlink(at)?$} >= 2 } + { {^open(at)?$} == 1 } +- { {^(new|f)?stat(64)?$} >= 1 } ++ { {^(new)?stat|fstatat64|newfstatat$} >= 1 } + { {^close$} == 1 } + { {^getcwd$} == 1 } + { {^chdir$} == 1 } diff --git a/dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch b/dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch new file mode 100644 index 000000000000..c7c997d5545e --- /dev/null +++ b/dev-debug/ltrace/files/ltrace-0.7.91-tuple-tests.patch @@ -0,0 +1,11 @@ +--- a/testsuite/Makefile.am ++++ b/testsuite/Makefile.am +@@ -42,6 +42,8 @@ + echo set elfutils_LD_LIBRARY_PATH '"$(elfutils_LD_LIBRARY_PATH)"' >> $@ + echo set libunwind_LD_LIBRARY_PATH '"$(libunwind_LD_LIBRARY_PATH)"' >> $@ + echo set PREFIX '"$(prefix)"' >> $@ ++ echo set CC_FOR_TARGET '"$(CC)"' >> $@ ++ echo set CXX_FOR_TARGET '"$(CXX)"' >> $@ + + CLEANFILES = *.o *.so *.log *.sum *.ltrace site.bak setval.tmp site.exp env.exp + diff --git a/dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild b/dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild new file mode 100644 index 000000000000..3320d0f4b602 --- /dev/null +++ b/dev-debug/ltrace/ltrace-0.7.91_pre20221216-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +EGIT_COMMIT="5cffc0d2134f697fbac8627ec5b5f0085cd47c8a" + +DESCRIPTION="trace library calls made at runtime" +HOMEPAGE="https://gitlab.com/cespedes/ltrace" +SRC_URI="https://gitlab.com/cespedes/${PN}/-/archive/${EGIT_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~mips ppc ~ppc64 ~sparc x86" +IUSE="debug elfutils selinux test unwind" + +REQUIRED_USE="?? ( elfutils unwind )" + +RDEPEND="virtual/libelf:= + elfutils? ( dev-libs/elfutils ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= )" +DEPEND="${RDEPEND} + sys-libs/binutils-libs + test? ( dev-util/dejagnu )" + +# Effectively abandoned upstream. Extremely sensitive to the sandbox, versions +# of core libraries, kernel security settings... +RESTRICT="test" + +S=${WORKDIR}/${PN}-${EGIT_COMMIT} + +PATCHES=( + "${FILESDIR}"/${PN}-0.7.91-debian-patchset-6.4.patch + "${FILESDIR}"/${PN}-0.7.3-CXX-for-tests.patch + "${FILESDIR}"/${PN}-0.7.3-alpha-protos.patch + "${FILESDIR}"/${PN}-0.7.3-ia64.patch + "${FILESDIR}"/${PN}-0.7.3-ia64-pid_t.patch + "${FILESDIR}"/${PN}-0.7.3-musl-host.patch + "${FILESDIR}"/${PN}-0.7.3-print-test-pie.patch + "${FILESDIR}"/${PN}-0.7.91-pid_t.patch + "${FILESDIR}"/${PN}-0.7.91-test-glibc-2.33.patch + "${FILESDIR}"/${PN}-0.7.91-tuple-tests.patch +) + +src_prepare() { + default + + sed -i '/^dist_doc_DATA/d' Makefile.am || die + eautoreconf +} + +src_configure() { + ac_cv_header_selinux_selinux_h=$(usex selinux) \ + ac_cv_lib_selinux_security_get_boolean_active=$(usex selinux) \ + econf \ + --disable-werror \ + $(use_enable debug) \ + $(use_with elfutils) \ + $(use_with unwind libunwind) +} diff --git a/dev-debug/ltrace/ltrace-0.8.1.ebuild b/dev-debug/ltrace/ltrace-0.8.1.ebuild new file mode 100644 index 000000000000..ef3efbf598f0 --- /dev/null +++ b/dev-debug/ltrace/ltrace-0.8.1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="trace library calls made at runtime" +HOMEPAGE="https://gitlab.com/cespedes/ltrace" +SRC_URI="https://gitlab.com/cespedes/${PN}/-/archive/${PV}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~mips ppc ~ppc64 ~sparc x86" +IUSE="debug elfutils selinux test unwind" + +REQUIRED_USE="?? ( elfutils unwind )" + +RDEPEND="virtual/libelf:= + elfutils? ( dev-libs/elfutils ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= )" +DEPEND="${RDEPEND} + sys-libs/binutils-libs + test? ( dev-util/dejagnu )" + +# Effectively abandoned upstream. Extremely sensitive to the sandbox, versions +# of core libraries, kernel security settings... +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-0.7.91-debian-patchset-6.4.patch + "${FILESDIR}"/${PN}-0.7.3-CXX-for-tests.patch + "${FILESDIR}"/${PN}-0.7.3-alpha-protos.patch + "${FILESDIR}"/${PN}-0.7.3-ia64.patch + "${FILESDIR}"/${PN}-0.7.3-ia64-pid_t.patch + "${FILESDIR}"/${PN}-0.7.3-musl-host.patch + "${FILESDIR}"/${PN}-0.7.3-print-test-pie.patch + "${FILESDIR}"/${PN}-0.7.91-pid_t.patch + "${FILESDIR}"/${PN}-0.7.91-tuple-tests.patch +) + +src_prepare() { + default + + sed -i '/^dist_doc_DATA/d' Makefile.am || die + eautoreconf +} + +src_configure() { + ac_cv_header_selinux_selinux_h=$(usex selinux) \ + ac_cv_lib_selinux_security_get_boolean_active=$(usex selinux) \ + econf \ + --disable-werror \ + $(use_enable debug) \ + $(use_with elfutils) \ + $(use_with unwind libunwind) +} diff --git a/dev-debug/ltrace/metadata.xml b/dev-debug/ltrace/metadata.xml new file mode 100644 index 000000000000..16b809002c10 --- /dev/null +++ b/dev-debug/ltrace/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <use> + <flag name="elfutils">Use libdwfl from <pkg>dev-libs/elfutils</pkg> for frame unwinding support</flag> + <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> for frame unwinding support</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/metadata.xml b/dev-debug/metadata.xml new file mode 100644 index 000000000000..1fa12a74d214 --- /dev/null +++ b/dev-debug/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<catmetadata> + <longdescription lang="en"> + Debuggers and debugging-related tools. + </longdescription> + <longdescription lang="de"> + Debugger und Werkzeuge zur Fehlersuche. + </longdescription> + <longdescription lang="pl"> + Debugery i narzędzia związane z debugowaniem. + </longdescription> +</catmetadata> diff --git a/dev-debug/peda/Manifest b/dev-debug/peda/Manifest new file mode 100644 index 000000000000..91865e140d1d --- /dev/null +++ b/dev-debug/peda/Manifest @@ -0,0 +1 @@ +DIST peda-1.2.tar.gz 65331 BLAKE2B 6942b99d714eb1114167b80ba202d86f6dee52cd47c8047b4cb78d4a91f45e1594521440a3318a968e35c5dc56a616393c0837d6f9db5ba41505641a385fb573 SHA512 e69844b8c3a51af96096d97ebfa4a67ac8ff16e4a9e0edb64bbb5e946b1ebeaa56260663718b90145f4191cc25762f3e351a8de92bf9b56f9f1d11389c563c43 diff --git a/dev-debug/peda/files/peda-1.2-gdb_logging.patch b/dev-debug/peda/files/peda-1.2-gdb_logging.patch new file mode 100644 index 000000000000..8abee7df38a4 --- /dev/null +++ b/dev-debug/peda/files/peda-1.2-gdb_logging.patch @@ -0,0 +1,48 @@ +From baaecddc58db23db1b0d85651090b743ddf7899a Mon Sep 17 00:00:00 2001 +From: Nikolaos Chatzikonstantinou <nchatz314@gmail.com> +Date: Thu, 8 Feb 2024 03:51:51 -0500 +Subject: [PATCH] remove deprecated notice +Upstream: https://github.com/longld/peda/pull/176 + +From GDB 12.1+, `set logging on|off` is deprecated, and a notice is +given. See +<https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gdb/NEWS;hb=gdb-12.1-release>. +This patch fixes the issue for the newer gdb versions. +--- a/peda.py ++++ b/peda.py +@@ -108,22 +108,22 @@ def execute_redirect(self, gdb_command, silent=False): + else: + logfd = tmpfile() + logname = logfd.name +- gdb.execute('set logging off') # prevent nested call ++ gdb.execute('set logging enabled off') # prevent nested call + gdb.execute('set height 0') # disable paging + gdb.execute('set logging file %s' % logname) + gdb.execute('set logging overwrite on') + gdb.execute('set logging redirect on') +- gdb.execute('set logging on') ++ gdb.execute('set logging enabled on') + try: + gdb.execute(gdb_command) + gdb.flush() +- gdb.execute('set logging off') ++ gdb.execute('set logging enabled off') + if not silent: + logfd.flush() + result = logfd.read() + logfd.close() + except Exception as e: +- gdb.execute('set logging off') #to be sure ++ gdb.execute('set logging enabled off') #to be sure + if config.Option.get("debug") == "on": + msg('Exception (%s): %s' % (gdb_command, e), "red") + traceback.print_exc() +@@ -6112,7 +6112,7 @@ def complete(self, text, word): + # handle SIGINT / Ctrl-C + def sigint_handler(signal, frame): + warning_msg("Got Ctrl+C / SIGINT!") +- gdb.execute("set logging off") ++ gdb.execute("set logging enabled off") + peda.restore_user_command("all") + raise KeyboardInterrupt + signal.signal(signal.SIGINT, sigint_handler) diff --git a/dev-debug/peda/files/peda-1.2-python3_14.patch b/dev-debug/peda/files/peda-1.2-python3_14.patch new file mode 100644 index 000000000000..5c1b6a9c2d9e --- /dev/null +++ b/dev-debug/peda/files/peda-1.2-python3_14.patch @@ -0,0 +1,438 @@ +From 8a7985f971b255931ea38ea83bbe736ec07f2e45 Mon Sep 17 00:00:00 2001 +From: punixcorn <ohyunwoods663@gmail.com> +Date: Thu, 4 Jul 2024 04:05:44 +0000 +Subject: [PATCH 1/6] SyntaxWarning: invalid escape sequence #177 fixed +Upstream: https://github.com/longld/peda/pull/179 + +--- a/peda.py ++++ b/peda.py +@@ -18,7 +18,6 @@ + import signal + import traceback + import codecs +- + # point to absolute path of peda.py + PEDAFILE = os.path.abspath(os.path.expanduser(__file__)) + if os.path.islink(PEDAFILE): +@@ -26,7 +25,7 @@ + sys.path.insert(0, os.path.dirname(PEDAFILE) + "/lib/") + + # Use six library to provide Python 2/3 compatibility +-import six ++#import six + from six.moves import range + from six.moves import input + try: +@@ -35,7 +34,6 @@ + import pickle + + +- + from skeleton import * + from shellcode import * + from utils import * +@@ -148,10 +146,10 @@ def parse_and_eval(self, exp): + if "$"+r not in exp and "e"+r not in exp and "r"+r not in exp: + exp = exp.replace(r, "$%s" % r) + +- p = re.compile("(.*)\[(.*)\]") # DWORD PTR [esi+eax*1] ++ p = re.compile(r"(.*)\[(.*)\]") # DWORD PTR [esi+eax*1] + matches = p.search(exp) + if not matches: +- p = re.compile("(.*).s:(0x.*)") # DWORD PTR ds:0xdeadbeef ++ p = re.compile(r"(.*).s:(0x.*)") # DWORD PTR ds:0xdeadbeef + matches = p.search(exp) + + if matches: +@@ -370,12 +368,12 @@ def getfile(self): + result = None + out = self.execute_redirect('info files') + if out and '"' in out: +- p = re.compile(".*exec file:\s*`(.*)'") ++ p = re.compile(r".*exec file:\s*`(.*)'") + m = p.search(out) + if m: + result = m.group(1) + else: # stripped file, get symbol file +- p = re.compile("Symbols from \"([^\"]*)") ++ p = re.compile(r"Symbols from \"([^\"]*)") + m = p.search(out) + if m: + result = m.group(1) +@@ -547,11 +545,11 @@ def get_breakpoint(self, num): + + lines = out.splitlines()[1:] + # breakpoint regex +- p = re.compile("^(\d*)\s*(.*breakpoint)\s*(keep|del)\s*(y|n)\s*(0x[^ ]*)\s*(.*)") ++ p = re.compile(r"^(\d*)\s*(.*breakpoint)\s*(keep|del)\s*(y|n)\s*(0x[^ ]*)\s*(.*)") + m = p.match(lines[0]) + if not m: + # catchpoint/watchpoint regex +- p = re.compile("^(\d*)\s*(.*point)\s*(keep|del)\s*(y|n)\s*(.*)") ++ p = re.compile(r"^(\d*)\s*(.*point)\s*(keep|del)\s*(y|n)\s*(.*)") + m = p.match(lines[0]) + if not m: + return None +@@ -564,7 +562,7 @@ def get_breakpoint(self, num): + disp = True if disp == "keep" else False + enb = True if enb == "y" else False + addr = to_int(addr) +- m = re.match("in.*at(.*:\d*)", what) ++ m = re.match(r"in.*at(.*:\d*)", what) + if m: + what = m.group(1) + else: +@@ -593,7 +591,7 @@ def get_breakpoints(self): + + bplist = [] + for line in out.splitlines(): +- m = re.match("^(\d*).*", line) ++ m = re.match(r"^(\d*).*", line) + if m and to_int(m.group(1)): + bplist += [to_int(m.group(1))] + +@@ -625,7 +623,7 @@ def save_breakpoints(self, filename): + try: + fd = open(filename, "w") + for (num, type, disp, enb, addr, what, commands) in bplist: +- m = re.match("(.*)point", type) ++ m = re.match(r"(.*)point", type) + if m: + cmd = m.group(1).split()[-1] + else: +@@ -786,7 +784,7 @@ def prev_inst(self, address, count=1): + if len(lines) > count and "(bad)" not in " ".join(lines): + for line in lines[-count-1:-1]: + (addr, code) = line.split(":", 1) +- addr = re.search("(0x[^ ]*)", addr).group(1) ++ addr = re.search(r"(0x[^ ]*)", addr).group(1) + result += [(to_int(addr), code)] + return result + return None +@@ -807,7 +805,7 @@ def current_inst(self, address): + return None + + (addr, code) = out.split(":", 1) +- addr = re.search("(0x[^ ]*)", addr).group(1) ++ addr = re.search(r"(0x[^ ]*)", addr).group(1) + addr = to_int(addr) + code = code.strip() + +@@ -833,7 +831,7 @@ def next_inst(self, address, count=1): + lines = code.strip().splitlines() + for i in range(1, count+1): + (addr, code) = lines[i].split(":", 1) +- addr = re.search("(0x[^ ]*)", addr).group(1) ++ addr = re.search(r"(0x[^ ]*)", addr).group(1) + result += [(to_int(addr), code)] + return result + +@@ -913,9 +911,9 @@ def xrefs(self, search="", filename=None): + out = self.execute_redirect("x/i 0x%x" % addr) + if out: + line = out +- p = re.compile("\s*(0x[^ ]*).*?:\s*([^ ]*)\s*(.*)") ++ p = re.compile(r"\s*(0x[^ ]*).*?:\s*([^ ]*)\s*(.*)") + else: +- p = re.compile("(.*?)\s*<.*?>\s*([^ ]*)\s*(.*)") ++ p = re.compile(r"(.*?)\s*<.*?>\s*([^ ]*)\s*(.*)") + + m = p.search(line) + if m: +@@ -934,7 +932,7 @@ def _get_function_args_32(self, code, argc=None): + """ + if not argc: + argc = 0 +- p = re.compile(".*mov.*\[esp(.*)\],") ++ p = re.compile(r".*mov.*\[esp(.*)\],") + matches = p.findall(code) + if matches: + l = len(matches) +@@ -966,11 +964,11 @@ def _get_function_args_64(self, code, argc=None): + + # just retrieve max 6 args + arg_order = ["rdi", "rsi", "rdx", "rcx", "r8", "r9"] +- p = re.compile(":\s*([^ ]*)\s*(.*),") ++ p = re.compile(r":\s*([^ ]*)\s*(.*),") + matches = p.findall(code) + regs = [r for (_, r) in matches] + p = re.compile(("di|si|dx|cx|r8|r9")) +- m = p.findall(" ".join(regs)) ++ m = p.findall(r" ".join(regs)) + m = list(set(m)) # uniqify + argc = 0 + if "si" in m and "di" not in m: # dirty fix +@@ -1106,14 +1104,14 @@ def stepuntil(self, inst, mapname=None, depth=None): + current_instruction = "End of execution" + break + +- p = re.compile(".*?(0x[^ :]*)") ++ p = re.compile(r".*?(0x[^ :]*)") + addr = p.search(current_instruction).group(1) + addr = to_int(addr) + if addr is None: + break + +- #p = re.compile(".*?:\s*([^ ]*)") +- p = re.compile(".*?:\s*(.*)") ++ #p = re.compile(r".*?:\s*([^ ]*)") ++ p = re.compile(r".*?:\s*(.*)") + code = p.match(current_instruction).group(1) + found = 0 + for i in inst.replace(",", " ").split(): +@@ -1220,10 +1218,10 @@ def eval_target(self, inst): + inst = inst.strip() + opcode = inst.split(":\t")[-1].split()[0] + # this regex includes x86_64 RIP relateive address reference +- p = re.compile(".*?:\s*[^ ]*\s*(.* PTR ).*(0x[^ ]*)") ++ p = re.compile(r".*?:\s*[^ ]*\s*(.* PTR ).*(0x[^ ]*)") + m = p.search(inst) + if not m: +- p = re.compile(".*?:\s.*\s(0x[^ ]*|\w+)") ++ p = re.compile(r".*?:\s.*\s(0x[^ ]*|\w+)") + m = p.search(inst) + if m: + target = m.group(1) +@@ -1232,7 +1230,7 @@ def eval_target(self, inst): + target = None + else: + if "]" in m.group(2): # e.g DWORD PTR [ebx+0xc] +- p = re.compile(".*?:\s*[^ ]*\s*(.* PTR ).*\[(.*)\]") ++ p = re.compile(r".*?:\s*[^ ]*\s*(.* PTR ).*\[(.*)\]") + m = p.search(inst) + target = self.parse_and_eval("%s[%s]" % (m.group(1), m.group(2).strip())) + +@@ -1427,7 +1425,7 @@ def _get_offline_maps(): + def _get_allmaps_osx(pid, remote=False): + maps = [] + #_DATA 00007fff77975000-00007fff77976000 [ 4K] rw-/rw- SM=COW /usr/lib/system/libremovefile.dylib +- pattern = re.compile("([^\n]*)\s* ([0-9a-f][^-\s]*)-([^\s]*) \[.*\]\s([^/]*).* (.*)") ++ pattern = re.compile(r"([^\n]*)\s* ([0-9a-f][^-\s]*)-([^\s]*) \[.*\]\s([^/]*).* (.*)") + + if remote: # remote target, not yet supported + return maps +@@ -1452,7 +1450,7 @@ def _get_allmaps_freebsd(pid, remote=False): + maps = [] + mpath = "/proc/%s/map" % pid + # 0x8048000 0x8049000 1 0 0xc36afdd0 r-x 1 0 0x1000 COW NC vnode /path/to/file NCH -1 +- pattern = re.compile("0x([0-9a-f]*) 0x([0-9a-f]*)(?: [^ ]*){3} ([rwx-]*)(?: [^ ]*){6} ([^ ]*)") ++ pattern = re.compile(r"0x([0-9a-f]*) 0x([0-9a-f]*)(?: [^ ]*){3} ([rwx-]*)(?: [^ ]*){6} ([^ ]*)") + + if remote: # remote target, not yet supported + return maps +@@ -1479,7 +1477,7 @@ def _get_allmaps_linux(pid, remote=False): + maps = [] + mpath = "/proc/%s/maps" % pid + #00400000-0040b000 r-xp 00000000 08:02 538840 /path/to/file +- pattern = re.compile("([0-9a-f]*)-([0-9a-f]*) ([rwxps-]*)(?: [^ ]*){3} *(.*)") ++ pattern = re.compile(r"([0-9a-f]*)-([0-9a-f]*) ([rwxps-]*)(?: [^ ]*){3} *(.*)") + + if remote: # remote target + tmp = tmpfile() +@@ -2093,7 +2091,7 @@ def examine_data(value, bits=32): + if value >= start and value < end: + if type == "code": + out = self.get_disasm(value) +- p = re.compile(".*?0x[^ ]*?\s(.*)") ++ p = re.compile(r".*?0x[^ ]*?\s(.*)") + m = p.search(out) + result = (to_hex(value), "code", m.group(1)) + else: # rodata address +@@ -2111,7 +2109,7 @@ def examine_data(value, bits=32): + out = examine_data(value, bits) + result = (to_hex(value), "rodata", out.split(":", 1)[1].strip()) + else: +- p = re.compile(".*?0x[^ ]*?\s(.*)") ++ p = re.compile(r".*?0x[^ ]*?\s(.*)") + m = p.search(out) + result = (to_hex(value), "code", m.group(1)) + +@@ -2211,7 +2209,7 @@ def elfentry(self): + - entry address (Int) + """ + out = self.execute_redirect("info files") +- p = re.compile("Entry point: ([^\s]*)") ++ p = re.compile(r"Entry point: ([^\s]*)") + if out: + m = p.search(out) + if m: +@@ -2239,7 +2237,7 @@ def elfheader(self, name=None): + if not out: + return {} + +- p = re.compile("\s*(0x[^-]*)->(0x[^ ]*) at (0x[^:]*):\s*([^ ]*)\s*(.*)") ++ p = re.compile(r"\s*(0x[^-]*)->(0x[^ ]*) at (0x[^:]*):\s*([^ ]*)\s*(.*)") + matches = p.findall(out) + + for (start, end, offset, hname, attr) in matches: +@@ -2313,7 +2311,7 @@ def elfsymbols(self, pattern=None): + symname += "@plt" + out = self.execute_redirect("info functions %s" % symname) + if not out: continue +- m = re.findall(".*(0x[^ ]*)\s*%s" % re.escape(symname), out) ++ m = re.findall(r".*(0x[^ ]*)\s*%s" % re.escape(symname), out) + for addr in m: + addr = to_int(addr) + if self.is_address(addr, binmap): +@@ -2390,7 +2388,7 @@ def main_entry(self): + if refs: + inst = self.prev_inst(refs[0][0]) + if inst: +- addr = re.search(".*(0x.*)", inst[0][1]) ++ addr = re.search(r".*(0x.*)", inst[0][1]) + if addr: + return to_int(addr.group(1)) + return None +@@ -2413,7 +2411,7 @@ def readelf_header(self, filename, name=None): + out = execute_external_command("%s -W -S %s" % (config.READELF, filename)) + if not out: + return {} +- p = re.compile(".*\[.*\] (\.[^ ]*) [^0-9]* ([^ ]*) [^ ]* ([^ ]*)(.*)") ++ p = re.compile(r".*\[.*\] (\.[^ ]*) [^0-9]* ([^ ]*) [^ ]* ([^ ]*)(.*)") + matches = p.findall(out) + if not matches: + return result +@@ -2471,7 +2469,7 @@ def _elfheader_solib_all(): + if not out: + return None + +- p = re.compile("[^\n]*\s*(0x[^ ]*) - (0x[^ ]*) is (\.[^ ]*) in (.*)") ++ p = re.compile(r"[^\n]*\s*(0x[^ ]*) - (0x[^ ]*) is (\.[^ ]*) in (.*)") + soheaders = p.findall(out) + + result = [] +@@ -2678,7 +2676,7 @@ def decode_hex_escape(str_): + blen = gadget[-1][0] - gadget[0][0] + 1 + bytes = v[:2*blen] + asmcode_rs = "; ".join([c for _, c in gadget]) +- if re.search(re.escape(asmcode).replace("\ ",".*").replace("\?",".*"), asmcode_rs)\ ++ if re.search(re.escape(asmcode).replace(r"\ ",".*").replace(r"\?",".*"), asmcode_rs)\ + and a not in result: + result[a] = (bytes, asmcode_rs) + result = list(result.items()) +@@ -2688,7 +2686,7 @@ def decode_hex_escape(str_): + asmcode = self.execute_redirect("disassemble 0x%x, 0x%x" % (a, a+(len(v)//2))) + if asmcode: + asmcode = "\n".join(asmcode.splitlines()[1:-1]) +- matches = re.findall(".*:([^\n]*)", asmcode) ++ matches = re.findall(r".*:([^\n]*)", asmcode) + result += [(a, (v, ";".join(matches).strip()))] + + return result +@@ -2829,7 +2827,7 @@ def search_jmpcall(self, start, end, regname=None): + if regname is None: + regname = "" + regname = regname.lower() +- pattern = re.compile(b'|'.join(JMPCALL).replace(b' ', b'\ ')) ++ pattern = re.compile(r'|'.join(JMPCALL).replace(r' ', r'\ ')) + mem = self.dumpmem(start, end) + found = pattern.finditer(mem) + (arch, bits) = self.getarch() +@@ -3411,7 +3409,7 @@ def xprint(self, *arg): + """ + text = "" + exp = " ".join(list(arg)) +- m = re.search(".*\[(.*)\]|.*?s:(0x[^ ]*)", exp) ++ m = re.search(r".*\[(.*)\]|.*?s:(0x[^ ]*)", exp) + if m: + addr = peda.parse_and_eval(m.group(1)) + if to_int(addr): +@@ -3516,7 +3514,7 @@ def procinfo(self, *arg): + fdlist = os.listdir("/proc/%d/fd" % pid) + for fd in fdlist: + rpath = os.readlink("/proc/%d/fd/%s" % (pid, fd)) +- sock = re.search("socket:\[(.*)\]", rpath) ++ sock = re.search(r"socket:\[(.*)\]", rpath) + if sock: + spath = execute_external_command("netstat -aen | grep %s" % sock.group(1)) + if spath: +@@ -3526,11 +3524,11 @@ def procinfo(self, *arg): + # uid/gid, pid, ppid + info["pid"] = pid + status = open("/proc/%d/status" % pid).read() +- ppid = re.search("PPid:\s*([^\s]*)", status).group(1) ++ ppid = re.search(r"PPid:\s*([^\s]*)", status).group(1) + info["ppid"] = to_int(ppid) if ppid else -1 +- uid = re.search("Uid:\s*([^\n]*)", status).group(1) ++ uid = re.search(r"Uid:\s*([^\n]*)", status).group(1) + info["uid"] = [to_int(id) for id in uid.split()] +- gid = re.search("Gid:\s*([^\n]*)", status).group(1) ++ gid = re.search(r"Gid:\s*([^\n]*)", status).group(1) + info["gid"] = [to_int(id) for id in gid.split()] + + for opt in options: +@@ -4122,7 +4120,7 @@ def traceinst(self, *arg): + prev_depth = peda.backtrace_depth(peda.getreg("sp")) + logfd = open(logname, "w") + +- p = re.compile(".*?:\s*[^ ]*\s*([^,]*),(.*)") ++ p = re.compile(r".*?:\s*[^ ]*\s*([^,]*),(.*)") + while count: + result = peda.stepuntil(",".join(instlist), mapname, prev_depth) + if result is None: +@@ -4134,7 +4132,7 @@ def traceinst(self, *arg): + + # special case for JUMP inst + prev_code = "" +- if re.search("j[^m]", code.split(":\t")[-1].split()[0]): ++ if re.search(r"j[^m]", code.split(":\t")[-1].split()[0]): + prev_insts = peda.prev_inst(peda.getreg("pc")) + if prev_insts: + prev_code = "0x%x:%s" % prev_insts[0] +@@ -4143,7 +4141,7 @@ def traceinst(self, *arg): + text = "%s%s%s" % (" "*(prev_depth-1), " dep:%02d " % (prev_depth-1), code.strip()) + msg(text, teefd=logfd) + +- if re.search("call", code.split(":\t")[-1].split()[0]): ++ if re.search(r"call", code.split(":\t")[-1].split()[0]): + args = peda.get_function_args() + if args: + for (i, a) in enumerate(args): + +From 6b185589187a4ca7271be518780cfddbabb36b27 Mon Sep 17 00:00:00 2001 +From: potato <103060805+punixcorn@users.noreply.github.com> +Date: Sun, 7 Jul 2024 16:34:42 +0000 +Subject: [PATCH 5/6] fix invalid escape sequence errors + +in lib/utils.py and lib/nasm.py +--- a/lib/nasm.py ++++ b/lib/nasm.py +@@ -82,7 +82,7 @@ def nasm2shellcode(asmcode): + return "" + + shellcode = [] +- pattern = re.compile("([0-9A-F]{8})\s*([^\s]*)\s*(.*)") ++ pattern = re.compile(r"([0-9A-F]{8})\s*([^\s]*)\s*(.*)") + + matches = pattern.findall(asmcode) + for line in asmcode.splitlines(): +--- a/lib/utils.py ++++ b/lib/utils.py +@@ -523,7 +523,7 @@ def format_disasm_code(code, nearby=None): + result += line + "\n" + else: + color = style = None +- m = re.search(".*(0x[^ ]*).*:\s*([^ ]*)", line) ++ m = re.search(r".*(0x[^ ]*).*:\s*([^ ]*)", line) + if not m: # failed to parse + result += line + "\n" + continue +@@ -540,7 +540,7 @@ def format_disasm_code(code, nearby=None): + break + + prefix = line.split(":\t")[0] +- addr = re.search("(0x[^\s]*)", prefix) ++ addr = re.search(r"(0x[^\s]*)", prefix) + if addr: + addr = to_int(addr.group(1)) + else: +@@ -589,7 +589,7 @@ def cyclic_pattern_charset(charset_type=None): + charset[2] = "sn()" + charset[2] + + if charset_type == 2: # maximum type +- charset += ['!"#$%&\()*+,-./:;<=>?@[]^_{|}~'] # string.punctuation ++ charset += [r'!"#$%&\()*+,-./:;<=>?@[]^_{|}~'] # string.punctuation + + mixed_charset = mixed = '' + k = 0 + diff --git a/dev-debug/peda/metadata.xml b/dev-debug/peda/metadata.xml new file mode 100644 index 000000000000..5984318cfe25 --- /dev/null +++ b/dev-debug/peda/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>mario.haustein@hrz.tu-chemnitz.de</email> + <name>Mario Haustein</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/peda/peda-1.2-r1.ebuild b/dev-debug/peda/peda-1.2-r1.ebuild new file mode 100644 index 000000000000..745417c6dfd7 --- /dev/null +++ b/dev-debug/peda/peda-1.2-r1.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit python-single-r1 wrapper + +DESCRIPTION="Python Exploit Development Assistance for GDB" +HOMEPAGE="https://github.com/longld/peda" + +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/longld/peda" +else + SRC_URI="https://github.com/longld/peda/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 x86" +fi + +LICENSE="CC-BY-NC-SA-3.0" +SLOT="0" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + ') +" + +PATCHES=( + "${FILESDIR}/${P}-gdb_logging.patch" + "${FILESDIR}/${P}-python3_14.patch" +) + +src_prepare() { + default + + # File was remove in upstream patch ${P}-python3_14.patch. To keep the + # patch file size low, we remove this file directly instead via the patch. + rm lib/six.py || die +} + +src_install() { + insinto /usr/share/${PN} + doins -r lib/ *.py + + python_optimize "${ED}"/usr/share/${PN} + + make_wrapper "gdb-peda" \ + "gdb -x \"${EPREFIX}/usr/share/${PN}/peda.py\"" || die + + dodoc README{,.md} +} + +pkg_postinst() { + einfo "\nUsage:" + einfo " ~$ gdb-peda <program>\n" +} diff --git a/dev-debug/peda/peda-9999.ebuild b/dev-debug/peda/peda-9999.ebuild new file mode 100644 index 000000000000..25cd9d7b3489 --- /dev/null +++ b/dev-debug/peda/peda-9999.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit python-single-r1 wrapper + +DESCRIPTION="Python Exploit Development Assistance for GDB" +HOMEPAGE="https://github.com/longld/peda" + +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/longld/peda" +else + SRC_URI="https://github.com/longld/peda/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi + +LICENSE="CC-BY-NC-SA-3.0" +SLOT="0" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + ') +" + +src_install() { + insinto /usr/share/${PN} + doins -r lib/ *.py + + python_optimize "${ED}"/usr/share/${PN} + + make_wrapper "gdb-peda" \ + "gdb -x \"${EPREFIX}/usr/share/${PN}/peda.py\"" || die + + dodoc README{,.md} +} + +pkg_postinst() { + einfo "\nUsage:" + einfo " ~$ gdb-peda <program>\n" +} diff --git a/dev-debug/pwndbg/Manifest b/dev-debug/pwndbg/Manifest new file mode 100644 index 000000000000..eb71fbcd948a --- /dev/null +++ b/dev-debug/pwndbg/Manifest @@ -0,0 +1,4 @@ +DIST pwndbg-20250418.tar.gz 9022280 BLAKE2B 8cc3cede9abc024e485737c0c38c525456e489eb12beb908bf9bd44fbb33ed1b27a206237452b7bc741fc569a61874cc134725f90fd04d6e46723704a9fb466e SHA512 34afa5ee756f405f662f494d47a0cc324ad193f9083ef371c9946681ec58e0ce6c1a5097b3f3b88ab58beb7941317e9a6a0dc0ee643834fc90ccac2f07576de7 +DIST pwndbg-20250530.tar.gz 11924779 BLAKE2B ad372272008d3227c4ba6668745532602242ecfb0359bc10368cc55e8a9d443d923c39e3130f615b9d80c2d8a18e40837965d02dcf034f583f5ce54e398aa6b4 SHA512 10bb330f8a5c15eb82ab1f4767dd67146fa8dfe2b8b1f62190f46cdc54fbe1109d9e987c4f7848ea3e9844c1be6cb78f9e74e1ca59d1620b802d0a1d789bd290 +DIST pwndbg-20251010.tar.gz 24007425 BLAKE2B 7213c974d9219dbac7222bff60b5ba92f7c49be57844deda47ad0ef316c1e11516d0f5facf0596d8cabb6ccd409f0f95ba024f7fa218f965eae206913794fa28 SHA512 21ae4b9538cb0109d6a7ce3269deec6436e6316459fd31cf025f5d23167155c0171a9a5007feea95123df8375dc13c9c70e2b79029c561353566e31b16e4a351 +DIST pwndbg-20251020.tar.gz 24013152 BLAKE2B 50de4937ee7f13330d76f110b84853445c8600e0b5da78be581341c00c6e22f05738e3490b6d91d5bf2e8d91d37b47fd1812dde402c717e8e7833dda4d583390 SHA512 0c3137962e6df4e67601e72443bf67a9bb9400cad0ece0736ccf06394b4080c3c27f5755cb63a1e46d8be9504f0a62aa9c15c831817c2f6046fea0e880c68b6f diff --git a/dev-debug/pwndbg/files/pwndbg-20250418-no-docs.patch b/dev-debug/pwndbg/files/pwndbg-20250418-no-docs.patch new file mode 100644 index 000000000000..c456c1384818 --- /dev/null +++ b/dev-debug/pwndbg/files/pwndbg-20250418-no-docs.patch @@ -0,0 +1,22 @@ +commit 73685a31c372d44ea90f44cdddeea23d135f1c67 +Author: Mario Haustein <mario.haustein@hrz.tu-chemnitz.de> +Date: Sun May 11 16:25:56 2025 +0200 +Upstream: https://github.com/pwndbg/pwndbg/pull/2973 +Bug: https://bugs.gentoo.org/954386 + + Don't install `docs/` directory into site packages directory + +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -126,9 +126,11 @@ builtins-ignorelist = [ + + [tool.hatch.build.targets.sdist] + include = ["pwndbg"] ++exclude = ["docs"] + + [tool.hatch.build.targets.wheel] + include = ["pwndbg"] ++exclude = ["docs"] + + [build-system] + requires = ["hatchling"] diff --git a/dev-debug/pwndbg/metadata.xml b/dev-debug/pwndbg/metadata.xml new file mode 100644 index 000000000000..63265e38136e --- /dev/null +++ b/dev-debug/pwndbg/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>mario.haustein@hrz.tu-chemnitz.de</email> + <name>Mario Haustein</name> + </maintainer> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <longdescription> + pwndbg is a GDB plug-in that makes debugging with GDB suck less, with a + focus on features needed by low-level software developers, hardware + hackers, reverse-engineers and exploit developers. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild b/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild new file mode 100644 index 000000000000..6d1a95f91eef --- /dev/null +++ b/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +DISTUTILS_SINGLE_IMPL=1 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 wrapper + +DESCRIPTION="A GDB plug-in that makes debugging with GDB suck less" +HOMEPAGE="https://github.com/pwndbg/pwndbg" + +if [[ ${PV} == "99999999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/pwndbg/pwndbg" +else + MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}" + SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64 x86" + S="${WORKDIR}/${PN}-${MY_PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + ~dev-python/gdb-pt-dump-0.0.0_p20240401[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + >=dev-libs/capstone-5.0.3[python,${PYTHON_USEDEP}] + >=dev-python/psutil-5.9.8[${PYTHON_USEDEP}] + >=dev-python/pycparser-2.22[${PYTHON_USEDEP}] + >=dev-python/pyelftools-0.29[${PYTHON_USEDEP}] + >=dev-python/pygments-2.18.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.3[${PYTHON_USEDEP}] + >=dev-python/rich-13.7.1[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}] + >=dev-util/pwntools-4.14.0[${PYTHON_USEDEP}] + >=dev-util/ROPgadget-7.3[${PYTHON_USEDEP}] + >=dev-util/unicorn-2.1.3[python,${PYTHON_USEDEP}] + ') +" + +# Tests are architectur-specific (precompiled binaries) +RESTRICT="test" + +PATCHES=( + "${FILESDIR}/${P}-no-docs.patch" +) + +src_install() { + distutils-r1_src_install + + insinto /usr/share/${PN} + doins gdbinit.py + + # Signal pwndbg not to create it's own python venv (Bug #918705). + # See: https://github.com/pwndbg/pwndbg/commit/139b7542cd9567eaff32bd713df971b6ac5b81de + touch "${ED}/usr/share/${PN}/.skip-venv" || die + + python_optimize "${ED}"/usr/share/${PN} + + make_wrapper "pwndbg" \ + "gdb -x \"${EPREFIX}/usr/share/${PN}/gdbinit.py\"" || die + + dodoc {README,DEVELOPING,FEATURES}.md + dodoc -r docs +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + einfo "\nUsage:" + einfo " ~$ pwndbg <program>" + ewarn "\nWARNING!!!" + ewarn "Some pwndbg commands only works with libc debug symbols.\n" + ewarn "See also:" + ewarn " * https://github.com/pentoo/pentoo-overlay/issues/521#issuecomment-548975884" + ewarn " * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html" + ewarn " * https://wiki.gentoo.org/wiki/Debugging" + fi +} diff --git a/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild b/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild new file mode 100644 index 000000000000..b2cfef919c06 --- /dev/null +++ b/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +DISTUTILS_SINGLE_IMPL=1 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 wrapper + +DESCRIPTION="A GDB plug-in that makes debugging with GDB suck less" +HOMEPAGE="https://github.com/pwndbg/pwndbg" + +if [[ ${PV} == "99999999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/pwndbg/pwndbg" +else + MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}" + SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" + S="${WORKDIR}/${PN}-${MY_PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + ~dev-python/gdb-pt-dump-0.0.0_p20240401[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + ~dev-libs/capstone-6.0.0_alpha4[python,${PYTHON_USEDEP}] + >=dev-python/psutil-6.1.1[${PYTHON_USEDEP}] + >=dev-python/pycparser-2.22[${PYTHON_USEDEP}] + >=dev-python/pyelftools-0.29[${PYTHON_USEDEP}] + >=dev-python/pygments-2.18.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.3[${PYTHON_USEDEP}] + >=dev-python/rich-13.7.1[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}] + >=dev-util/pwntools-4.14.0[${PYTHON_USEDEP}] + >=dev-util/ROPgadget-7.3[${PYTHON_USEDEP}] + >=dev-util/unicorn-2.1.3[python,${PYTHON_USEDEP}] + ') +" + +# Tests are architectur-specific (precompiled binaries) +RESTRICT="test" + +src_install() { + distutils-r1_src_install + + insinto /usr/share/${PN} + doins gdbinit.py + + # Signal pwndbg not to create it's own python venv (Bug #918705). + # See: https://github.com/pwndbg/pwndbg/commit/139b7542cd9567eaff32bd713df971b6ac5b81de + touch "${ED}/usr/share/${PN}/.skip-venv" || die + + python_optimize "${ED}"/usr/share/${PN} + + make_wrapper "pwndbg" \ + "gdb -x \"${EPREFIX}/usr/share/${PN}/gdbinit.py\"" || die + + dodoc README.md + dodoc -r docs +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + einfo "\nUsage:" + einfo " ~$ pwndbg <program>" + ewarn "\nWARNING!!!" + ewarn "Some pwndbg commands only works with libc debug symbols.\n" + ewarn "See also:" + ewarn " * https://github.com/pentoo/pentoo-overlay/issues/521#issuecomment-548975884" + ewarn " * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html" + ewarn " * https://wiki.gentoo.org/wiki/Debugging" + fi +} diff --git a/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild b/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild new file mode 100644 index 000000000000..2767f63e6fdc --- /dev/null +++ b/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +DISTUTILS_SINGLE_IMPL=1 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="A GDB plug-in that makes debugging with GDB suck less" +HOMEPAGE="https://github.com/pwndbg/pwndbg" + +if [[ ${PV} == "99999999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/pwndbg/pwndbg" +else + MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}" + SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" + S="${WORKDIR}/${PN}-${MY_PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + ~dev-python/gdb-pt-dump-0.0.0_p20240401[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + >=dev-libs/capstone-6.0.0_alpha5[python,${PYTHON_USEDEP}] + >=dev-python/psutil-7.0.0[${PYTHON_USEDEP}] + >=dev-python/pycparser-2.23[${PYTHON_USEDEP}] + >=dev-python/pyelftools-0.32[${PYTHON_USEDEP}] + >=dev-python/pygments-2.19.2[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.5[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}] + >=dev-util/pwntools-4.14.1[${PYTHON_USEDEP}] + >=dev-util/ROPgadget-7.6[${PYTHON_USEDEP}] + >=dev-util/unicorn-2.1.4[python,${PYTHON_USEDEP}] + ') +" + +# Tests are architectur-specific (precompiled binaries) +RESTRICT="test" + +src_install() { + distutils-r1_src_install + + insinto /usr/share/${PN} + doins gdbinit.py + + python_optimize "${ED}"/usr/share/${PN} + + dodoc README.md + dodoc -r docs +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + einfo "\nUsage:" + einfo " ~$ pwndbg <program>" + ewarn "\nWARNING!!!" + ewarn "Some pwndbg commands only works with libc debug symbols.\n" + ewarn "See also:" + ewarn " * https://github.com/pentoo/pentoo-overlay/issues/521#issuecomment-548975884" + ewarn " * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html" + ewarn " * https://wiki.gentoo.org/wiki/Debugging" + fi +} diff --git a/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild b/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild new file mode 100644 index 000000000000..2767f63e6fdc --- /dev/null +++ b/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +DISTUTILS_SINGLE_IMPL=1 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="A GDB plug-in that makes debugging with GDB suck less" +HOMEPAGE="https://github.com/pwndbg/pwndbg" + +if [[ ${PV} == "99999999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/pwndbg/pwndbg" +else + MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}" + SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" + S="${WORKDIR}/${PN}-${MY_PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + ~dev-python/gdb-pt-dump-0.0.0_p20240401[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + >=dev-libs/capstone-6.0.0_alpha5[python,${PYTHON_USEDEP}] + >=dev-python/psutil-7.0.0[${PYTHON_USEDEP}] + >=dev-python/pycparser-2.23[${PYTHON_USEDEP}] + >=dev-python/pyelftools-0.32[${PYTHON_USEDEP}] + >=dev-python/pygments-2.19.2[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.5[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}] + >=dev-util/pwntools-4.14.1[${PYTHON_USEDEP}] + >=dev-util/ROPgadget-7.6[${PYTHON_USEDEP}] + >=dev-util/unicorn-2.1.4[python,${PYTHON_USEDEP}] + ') +" + +# Tests are architectur-specific (precompiled binaries) +RESTRICT="test" + +src_install() { + distutils-r1_src_install + + insinto /usr/share/${PN} + doins gdbinit.py + + python_optimize "${ED}"/usr/share/${PN} + + dodoc README.md + dodoc -r docs +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + einfo "\nUsage:" + einfo " ~$ pwndbg <program>" + ewarn "\nWARNING!!!" + ewarn "Some pwndbg commands only works with libc debug symbols.\n" + ewarn "See also:" + ewarn " * https://github.com/pentoo/pentoo-overlay/issues/521#issuecomment-548975884" + ewarn " * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html" + ewarn " * https://wiki.gentoo.org/wiki/Debugging" + fi +} diff --git a/dev-debug/pwndbg/pwndbg-99999999.ebuild b/dev-debug/pwndbg/pwndbg-99999999.ebuild new file mode 100644 index 000000000000..2767f63e6fdc --- /dev/null +++ b/dev-debug/pwndbg/pwndbg-99999999.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +DISTUTILS_SINGLE_IMPL=1 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 + +DESCRIPTION="A GDB plug-in that makes debugging with GDB suck less" +HOMEPAGE="https://github.com/pwndbg/pwndbg" + +if [[ ${PV} == "99999999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/pwndbg/pwndbg" +else + MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}" + SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" + S="${WORKDIR}/${PN}-${MY_PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}] + ~dev-python/gdb-pt-dump-0.0.0_p20240401[${PYTHON_SINGLE_USEDEP}] + $(python_gen_cond_dep ' + >=dev-libs/capstone-6.0.0_alpha5[python,${PYTHON_USEDEP}] + >=dev-python/psutil-7.0.0[${PYTHON_USEDEP}] + >=dev-python/pycparser-2.23[${PYTHON_USEDEP}] + >=dev-python/pyelftools-0.32[${PYTHON_USEDEP}] + >=dev-python/pygments-2.19.2[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.5[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}] + >=dev-util/pwntools-4.14.1[${PYTHON_USEDEP}] + >=dev-util/ROPgadget-7.6[${PYTHON_USEDEP}] + >=dev-util/unicorn-2.1.4[python,${PYTHON_USEDEP}] + ') +" + +# Tests are architectur-specific (precompiled binaries) +RESTRICT="test" + +src_install() { + distutils-r1_src_install + + insinto /usr/share/${PN} + doins gdbinit.py + + python_optimize "${ED}"/usr/share/${PN} + + dodoc README.md + dodoc -r docs +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + einfo "\nUsage:" + einfo " ~$ pwndbg <program>" + ewarn "\nWARNING!!!" + ewarn "Some pwndbg commands only works with libc debug symbols.\n" + ewarn "See also:" + ewarn " * https://github.com/pentoo/pentoo-overlay/issues/521#issuecomment-548975884" + ewarn " * https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html" + ewarn " * https://wiki.gentoo.org/wiki/Debugging" + fi +} diff --git a/dev-debug/rr/Manifest b/dev-debug/rr/Manifest new file mode 100644 index 000000000000..6358f318d756 --- /dev/null +++ b/dev-debug/rr/Manifest @@ -0,0 +1 @@ +DIST mozilla-rr-5.9.0.tar.gz 1801696 BLAKE2B b87d0a33201a513a692e8deb20ada38f235ce7a3e41dd806d0dba9a1a73f2c3dbf71d7f95b7cb0b284c7e38a4a19ea58f9ddef31d2e9b92efc686b24a8e551e7 SHA512 796d9b0b64e3993dfc14cf488e5e598b1de4828da415b1f97435598d62c1c133fc268d7838601275a00f59f05bf53d0bb796380418f4cb6cdfdda2c50207f996 diff --git a/dev-debug/rr/files/rr-5.7.0-no-force-lto.patch b/dev-debug/rr/files/rr-5.7.0-no-force-lto.patch new file mode 100644 index 000000000000..f9665f435f4c --- /dev/null +++ b/dev-debug/rr/files/rr-5.7.0-no-force-lto.patch @@ -0,0 +1,23 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -118,7 +118,6 @@ if(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL "debug") + set(RR_FLAGS "${RR_FLAGS_DEBUG} -g3 ") + elseif(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL "release") + # CMake itself will add optimization flags +- set(RR_FLAGS "${RR_FLAGS_RELEASE} -g3 -flto") + endif() + + set(LINKER_FLAGS "") +@@ -675,12 +674,6 @@ endif() + + # Add -flto option to linking step if release + if(LOWERCASE_CMAKE_BUILD_TYPE STREQUAL "release") +- CHECK_C_COMPILER_FLAG("-flto=auto" SUPPORTS_LTO_AUTO) +- if(SUPPORTS_LTO_AUTO) +- set(RR_MAIN_LINKER_FLAGS "${RR_MAIN_LINKER_FLAGS} -flto=auto") +- else() +- set(RR_MAIN_LINKER_FLAGS "${RR_MAIN_LINKER_FLAGS} -flto") +- endif() + endif() + + if(LIBRT) diff --git a/dev-debug/rr/files/rr-5.9.0-glibc-2.42-termio.patch b/dev-debug/rr/files/rr-5.9.0-glibc-2.42-termio.patch new file mode 100644 index 000000000000..adad86158e98 --- /dev/null +++ b/dev-debug/rr/files/rr-5.9.0-glibc-2.42-termio.patch @@ -0,0 +1,20 @@ +https://github.com/rr-debugger/rr/commit/6251648873b9e1ed23536beebbaa5d6fead3d5be + +From 6251648873b9e1ed23536beebbaa5d6fead3d5be Mon Sep 17 00:00:00 2001 +From: Robert O'Callahan <robert@ocallahan.org> +Date: Tue, 29 Jul 2025 23:05:21 +1200 +Subject: [PATCH] Stop checking struct sizes against glibc `termio` since that + has been removed. + +Resolves #3995. +--- a/src/kernel_abi.h ++++ b/src/kernel_abi.h +@@ -750,7 +750,6 @@ struct BaseArch : public wordsize, + unsigned char c_line; + unsigned char c_cc[8]; + }; +- RR_VERIFY_TYPE(termio); + + struct seccomp_notif_sizes { + uint16_t seccomp_notif; + diff --git a/dev-debug/rr/files/rr-5.9.0-zen-workaround-service.patch b/dev-debug/rr/files/rr-5.9.0-zen-workaround-service.patch new file mode 100644 index 000000000000..b0b90a317092 --- /dev/null +++ b/dev-debug/rr/files/rr-5.9.0-zen-workaround-service.patch @@ -0,0 +1,14 @@ +We install zen_workaround.py as rr-zen_workaround.py. +--- a/scripts/zen_workaround.service ++++ b/scripts/zen_workaround.service +@@ -15,8 +15,8 @@ + Description = Startup script for rr zen workaround + + [Service] +-# Step to actually run `zen_workaround.py`. +-ExecStart =+/usr/share/zen_workaround/zen_workaround.py ++# Step to actually run `rr-zen_workaround.py`. ++ExecStart =+rr-zen_workaround.py + + # Only run this once, report it as "(active)" even after we've exited. + Type = oneshot diff --git a/dev-debug/rr/metadata.xml b/dev-debug/rr/metadata.xml new file mode 100644 index 000000000000..e460adeab06d --- /dev/null +++ b/dev-debug/rr/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + <name>Gentoo Toolchain Project</name> + </maintainer> + <maintainer type="person"> + <email>lu_zero@gentoo.org</email> + <name>Luca Barbato</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/rr/rr-5.9.0-r1.ebuild b/dev-debug/rr/rr-5.9.0-r1.ebuild new file mode 100644 index 000000000000..eb1d270295ca --- /dev/null +++ b/dev-debug/rr/rr-5.9.0-r1.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +CMAKE_BUILD_TYPE=Release + +inherit cmake linux-info python-single-r1 systemd + +DESCRIPTION="Record and Replay Framework" +HOMEPAGE="https://rr-project.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/rr-debugger/rr" + inherit git-r3 +else + SRC_URI="https://github.com/rr-debugger/${PN}/archive/${PV}.tar.gz -> mozilla-${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +# rr itself is MIT and BSD-2, but there's various bits under third-party too. +LICENSE="MIT BSD-2 GPL-2 ZLIB" +SLOT="0" +IUSE="multilib test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + ${PYTHON_DEPS} + app-arch/zstd:= + dev-libs/capnproto:= + virtual/zlib:= +" +RDEPEND=" + ${DEPEND} + dev-debug/gdb[xml] +" +# Add all the deps needed only at build/test time. +DEPEND+=" + test? ( + $(python_gen_cond_dep ' + dev-python/pexpect[${PYTHON_USEDEP}] + ') + dev-debug/gdb[xml] + )" + +QA_FLAGS_IGNORED=" + usr/lib.*/rr/librrpage.so + usr/lib.*/rr/librrpage_32.so +" + +RESTRICT="test" # toolchain and kernel version dependent + +PATCHES=( + "${FILESDIR}"/${PN}-5.7.0-no-force-lto.patch + "${FILESDIR}"/${PN}-5.9.0-zen-workaround-service.patch + "${FILESDIR}"/${PN}-5.9.0-glibc-2.42-termio.patch +) + +pkg_setup() { + if use kernel_linux; then + CONFIG_CHECK="SECCOMP" + + if use amd64 ; then + CONFIG_CHECK+=" ~X86_MSR" + WARNING_X86_MSR="X86_MSR is needed for rr-zen_workaround.py (AMD Zen CPUs)" + fi + + linux-info_pkg_setup + fi + python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + sed -i 's:-Werror::' CMakeLists.txt || die # bug #609192 +} + +src_test() { + if has usersandbox ${FEATURES} ; then + ewarn "Test suite fails under FEATURES=usersandbox (bug #632394). Skipping." + return 0 + fi + + cmake_src_test +} + +src_configure() { + local mycmakeargs=( + # TODO: Could wire up bpf but USE=bpf feels wrong for that + # as only introduced in 5.9.0 (e7d9e8fd023461feb01f5d2c7936fcf07df8ce05) which + # says it's not "suitable for wide use at this point". + -DBUILD_TESTS=$(usex test) + -Ddisable32bit=$(usex !multilib) # bug #636786 + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # Upstream's CMake avoids stripping librrpreload at least, and + # Fedora avoids stripping all libraries. Treat it like Valgrind + # and play it safe. + dostrip -x "/usr/$(get_libdir)/rr" + + python_fix_shebang "${ED}"/usr/bin/rr-collect-symbols.py + python_newscript scripts/zen_workaround.py rr-zen_workaround.py + systemd_newunit scripts/zen_workaround.service rr-zen_workaround.service +} diff --git a/dev-debug/rr/rr-9999.ebuild b/dev-debug/rr/rr-9999.ebuild new file mode 100644 index 000000000000..da4d43687437 --- /dev/null +++ b/dev-debug/rr/rr-9999.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +CMAKE_BUILD_TYPE=Release + +inherit cmake linux-info python-single-r1 systemd + +DESCRIPTION="Record and Replay Framework" +HOMEPAGE="https://rr-project.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/rr-debugger/rr" + inherit git-r3 +else + SRC_URI="https://github.com/rr-debugger/${PN}/archive/${PV}.tar.gz -> mozilla-${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +# rr itself is MIT and BSD-2, but there's various bits under third-party too. +LICENSE="MIT BSD-2 GPL-2 ZLIB" +SLOT="0" +IUSE="multilib test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + ${PYTHON_DEPS} + app-arch/zstd:= + dev-libs/capnproto:= + virtual/zlib:= +" +RDEPEND=" + ${DEPEND} + dev-debug/gdb[xml] +" +# Add all the deps needed only at build/test time. +DEPEND+=" + test? ( + $(python_gen_cond_dep ' + dev-python/pexpect[${PYTHON_USEDEP}] + ') + dev-debug/gdb[xml] + )" + +QA_FLAGS_IGNORED=" + usr/lib.*/rr/librrpage.so + usr/lib.*/rr/librrpage_32.so +" + +RESTRICT="test" # toolchain and kernel version dependent + +PATCHES=( + "${FILESDIR}"/${PN}-5.7.0-no-force-lto.patch + "${FILESDIR}"/${PN}-5.9.0-zen-workaround-service.patch +) + +pkg_setup() { + if use kernel_linux; then + CONFIG_CHECK="SECCOMP" + + if use amd64 ; then + CONFIG_CHECK+=" ~X86_MSR" + WARNING_X86_MSR="X86_MSR is needed for rr-zen_workaround.py (AMD Zen CPUs)" + fi + + linux-info_pkg_setup + fi + python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + sed -i 's:-Werror::' CMakeLists.txt || die # bug #609192 +} + +src_test() { + if has usersandbox ${FEATURES} ; then + ewarn "Test suite fails under FEATURES=usersandbox (bug #632394). Skipping." + return 0 + fi + + cmake_src_test +} + +src_configure() { + local mycmakeargs=( + # TODO: Could wire up bpf but USE=bpf feels wrong for that + # as only introduced in 5.9.0 (e7d9e8fd023461feb01f5d2c7936fcf07df8ce05) which + # says it's not "suitable for wide use at this point". + -DBUILD_TESTS=$(usex test) + -Ddisable32bit=$(usex !multilib) # bug #636786 + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # Upstream's CMake avoids stripping librrpreload at least, and + # Fedora avoids stripping all libraries. Treat it like Valgrind + # and play it safe. + dostrip -x "/usr/$(get_libdir)/rr" + + python_fix_shebang "${ED}"/usr/bin/rr-collect-symbols.py + python_newscript scripts/zen_workaround.py rr-zen_workaround.py + systemd_newunit scripts/zen_workaround.service rr-zen_workaround.service +} diff --git a/dev-debug/scap-driver/Manifest b/dev-debug/scap-driver/Manifest new file mode 100644 index 000000000000..84c27ad4f85d --- /dev/null +++ b/dev-debug/scap-driver/Manifest @@ -0,0 +1 @@ +DIST falcosecurity-libs-0.20.0.tar.gz 4545190 BLAKE2B 93a074ab6451c16c7ad58498ac580f0476339e7dee65112e56142307f79966c43b69c71234a784aff03f47ec2e37e838e797beb4b36e9c105db88cf32cad135e SHA512 b5ef481bda92a29b7b409baee25dabd0b766e4bbcac762740635f99b36cd823a6d98f541817fd03b1a86a1385d3fe24888b33b84dc3486cd9f8d00e5384eb705 diff --git a/dev-debug/scap-driver/files/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch b/dev-debug/scap-driver/files/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch new file mode 100644 index 000000000000..f0c16d176d12 --- /dev/null +++ b/dev-debug/scap-driver/files/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch @@ -0,0 +1,39 @@ +Patch from: +https://github.com/falcosecurity/libs/commit/7f01ec89c565fcb45ade833b1312ae69637bc4ec + +From: Federico Di Pierro <nierro92@gmail.com> +Date: Fri, 28 Mar 2025 08:35:23 +0100 +Subject: [PATCH] fix(driver): fix driver and bpf makefile for linux 6.13. + +Signed-off-by: Federico Di Pierro <nierro92@gmail.com> +--- + driver/Makefile.in | 2 +- + driver/bpf/Makefile | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/driver/Makefile.in b/driver/Makefile.in +index 7b1fdc2dba..ec60103d0d 100644 +--- a/driver/Makefile.in ++++ b/driver/Makefile.in +@@ -29,7 +29,7 @@ install: all + + else + +-KERNELDIR ?= $(CURDIR) ++KERNELDIR ?= $(realpath $(objtree)) + # + # Get the path of the module sources + # +diff --git a/driver/bpf/Makefile b/driver/bpf/Makefile +index 58d1b11165..c94647c608 100644 +--- a/driver/bpf/Makefile ++++ b/driver/bpf/Makefile +@@ -28,7 +28,7 @@ clean: + + else + +-KERNELDIR ?= $(CURDIR) ++KERNELDIR ?= $(realpath $(objtree)) + # + # Get the path of the module sources + # diff --git a/dev-debug/scap-driver/files/libs-0.20.0-properly-use-LD.patch b/dev-debug/scap-driver/files/libs-0.20.0-properly-use-LD.patch new file mode 100644 index 000000000000..79aad2c91cf9 --- /dev/null +++ b/dev-debug/scap-driver/files/libs-0.20.0-properly-use-LD.patch @@ -0,0 +1,24 @@ +Properly use an injected LD for linking. This is necessary for kernels +built with clang & LTO, otherwise the configuration tests fall back to +using ld.bfd and fail to build with: "ld: unrecognised emulation mode: llvm". +Bug: https://bugs.gentoo.org/968857 + +--- libs-0.20.0/driver/configure/Makefile.inc.in ++++ libs-0.20.0/driver/configure/Makefile.inc.in +@@ -3,7 +3,7 @@ MODULE_MAKEFILE_DIR := $(shell dirname $ + # Run the module build.sh (wrapper for make) script with an empty environment, + # but pass PATH, KERNELDIR and eventually (if set) CC and KBUILD_MODPOST_WARN. + # The latter ones are used by driverkit build templates. +-HAS_@CONFIGURE_MODULE@ := $(shell env -i CC="$(CC)" KBUILD_MODPOST_WARN="$(KBUILD_MODPOST_WARN)" PATH="$(PATH)" KERNELDIR="$(KERNELDIR)" sh $(MODULE_MAKEFILE_DIR)/build.sh ; echo $$?) ++HAS_@CONFIGURE_MODULE@ := $(shell env -i CC="$(CC)" LD="$(LD)" KBUILD_MODPOST_WARN="$(KBUILD_MODPOST_WARN)" PATH="$(PATH)" KERNELDIR="$(KERNELDIR)" sh $(MODULE_MAKEFILE_DIR)/build.sh ; echo $$?) + + ifeq ($(HAS_@CONFIGURE_MODULE@),0) + $(info [configure-kmod] Setting HAS_@CONFIGURE_MODULE@ flag) +--- libs-0.20.0/driver/configure/build.sh ++++ libs-0.20.0/driver/configure/build.sh +@@ -10,4 +10,4 @@ + SCRIPT=$(readlink -f "$0") + SCRIPT_DIR=$(dirname ${SCRIPT}) + +-make CC="${CC}" -C ${SCRIPT_DIR} > ${SCRIPT_DIR}/build.log 2>&1 ++make CC="${CC}" "${LD}" -C ${SCRIPT_DIR} > ${SCRIPT_DIR}/build.log 2>&1 diff --git a/dev-debug/scap-driver/metadata.xml b/dev-debug/scap-driver/metadata.xml new file mode 100644 index 000000000000..f76957f1a8a7 --- /dev/null +++ b/dev-debug/scap-driver/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>holger@applied-asynchrony.com</email> + <name>Holger Hoffstätte</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/scap-driver/scap-driver-0.20.0.ebuild b/dev-debug/scap-driver/scap-driver-0.20.0.ebuild new file mode 100644 index 000000000000..444172b824d1 --- /dev/null +++ b/dev-debug/scap-driver/scap-driver-0.20.0.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake linux-mod-r1 + +DESCRIPTION="Kernel module for dev-debug/sysdig" +HOMEPAGE="https://www.sysdig.com/" +SRC_URI="https://github.com/falcosecurity/libs/archive/${PV}.tar.gz -> falcosecurity-libs-${PV}.tar.gz" +S="${WORKDIR}/libs-${PV}" + +LICENSE="Apache-2.0 GPL-2 MIT" +SLOT="0" +KEYWORDS="amd64 ~arm64 ~x86" + +BDEPEND=" + dev-libs/uthash + virtual/zlib:= + virtual/libelf:= +" + +CONFIG_CHECK="HAVE_SYSCALL_TRACEPOINTS ~TRACEPOINTS" + +# We need to specify the driver version manually since we do not use a git tree. +# This version can be found as git tag on the same commit as the libs version. +DRIVER_VERSION="8.0.0+driver" + +PATCHES=( + "${FILESDIR}"/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch + "${FILESDIR}"/libs-0.20.0-properly-use-LD.patch +) + +src_configure() { + local mycmakeargs=( + # we will use linux-mod, so in order to make it through the cmake setup + # just pretend to use bundled deps and then override only what we need. + -DUSE_BUNDLED_DEPS=ON + -DUSE_BUNDLED_LIBELF=OFF + -DUSE_BUNDLED_UTHASH=OFF + -DUSE_BUNDLED_ZLIB=OFF + -DCREATE_TEST_TARGETS=OFF + -DDRIVER_VERSION="${DRIVER_VERSION}" + ) + + cmake_src_configure +} + +src_compile() { + local modlist=( scap=:"${BUILD_DIR}"/driver/src ) + local modargs=( KERNELDIR="${KV_OUT_DIR}" ) + + linux-mod-r1_src_compile +} diff --git a/dev-debug/strace/Manifest b/dev-debug/strace/Manifest new file mode 100644 index 000000000000..412bec54bd26 --- /dev/null +++ b/dev-debug/strace/Manifest @@ -0,0 +1,4 @@ +DIST strace-6.19.tar.xz 2743524 BLAKE2B f46ff7788bfebef06af467cac1554fa2bfdb44397f635f04bd039ad6cf8b2339eece99a4d9cbfa2c747eb243a750e6efa446d550a83a2746c178e6a4857270db SHA512 d8088eef80f8007e0cae0e0a342cd171447cade8e2433f55b2592b33c704e4dcb5016c00104e536e858cf7d5ea5d2e4320073a2691b0bfb1a7ff87d932fac197 +DIST strace-6.19.tar.xz.asc 833 BLAKE2B e79d60b763e813d09cf1062b62edaa3be8c4b012d2d6b5c80b4b3de6fa97fd5d47ab6ff25ab232534d3dafddd709e63d7ca2eb6a140b4e95b48e753e66e23834 SHA512 953bd7819692d39f3fc71cc98600c4fdf3aa1ea4ba847a0d6d66cf5f83825e2f5e3424b172d62b91505ee80d85a732f226356692f02cc25f4c6905d0a6ee5990 +DIST strace-7.0.tar.xz 2764808 BLAKE2B dbf95b95742e274350955fc5e59f6c3f05ca8e029e5ecdd823dbe5ae4a1c8a971d115838e122d6a3d05cd7e017f7c6891776ce26821370ac9adc1e90bc8fd9fc SHA512 52a2d1a32caf622cdd7bb471b9e215bbb1ed33c9dd2afc1bb2d4bc69b68c01e6850223753ec7fbade33d33537268632a30cd15ffad37c7eb63e803e47a2fe020 +DIST strace-7.0.tar.xz.asc 833 BLAKE2B 048782b2235f9f3007b3cef2565e794cefa58fdb0d5e576e38692f442e1c5656599beb7130fb6010a83c46bad90a7f5a6085966877a91a214f1b8ff28c326d90 SHA512 c003187bf2f6f068de200af2e23000998edd07cc10774d88b2d659419d08464b997b5ad141e858adcf47f236decdddd2e7cf1d0e383e5586b8c8bee280c2dc17 diff --git a/dev-debug/strace/files/strace-6.5-static.patch b/dev-debug/strace/files/strace-6.5-static.patch new file mode 100644 index 000000000000..67e4b05ca856 --- /dev/null +++ b/dev-debug/strace/files/strace-6.5-static.patch @@ -0,0 +1,178 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -54,6 +54,15 @@ AC_SUBST([STRACE_MANPAGE_DATE], [strace_manpage_date]) + AC_DEFINE([SLM_MANPAGE_DATE], "[slm_manpage_date]", [Date]) + AC_SUBST([SLM_MANPAGE_DATE], [slm_manpage_date]) + ++AC_ARG_ENABLE([static], ++ [AS_HELP_STRING([--enable-static], ++ [link strace statically])], ++ [], [enable_static=no]) ++if test "$enable_static" = "yes"; then ++ # Add -pthread since strace wants -lrt for timer_create, and -lrt uses -lpthread. ++ LDFLAGS="$LDFLAGS -pthread -static" ++fi ++ + AC_C_BIGENDIAN + + dnl arch-specific default for --enable-gcc-Werror +--- a/m4/st_libdw.m4 ++++ b/m4/st_libdw.m4 +@@ -8,7 +8,6 @@ + AC_DEFUN([st_ARG_LIBDW], [dnl + + : ${libdw_CPPFLAGS=} +-: ${libdw_CFLAGS=} + : ${libdw_LDFLAGS=} + : ${libdw_LIBS=} + +@@ -34,48 +33,14 @@ AC_DEFUN([st_LIBDW], [dnl + have_libdw= + + AS_IF([test "x$with_libdw" != xno && test "x$use_unwinder" = x], +- [saved_CPPFLAGS="$CPPFLAGS" +- saved_CFLAGS="$CFLAGS" +- CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS" +- CFLAGS="$CFLAGS $libdw_CFLAGS" +- +- AC_CHECK_HEADERS([elfutils/libdwfl.h], +- [AC_CHECK_LIB([dw], [dwfl_linux_proc_attach], +- [libdw_LIBS="-ldw $libdw_LIBS" +- AC_CACHE_CHECK([for elfutils version], +- [st_cv_ELFUTILS_VERSION], +- [[st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION | +- $CPP $CPPFLAGS -P -imacros elfutils/version.h - | +- grep '^[0-9]')" +- test -n "$st_cv_ELFUTILS_VERSION" || +- st_cv_ELFUTILS_VERSION=0 +- ]] +- ) +- AS_IF([test "$st_cv_ELFUTILS_VERSION" -ge 164], +- [have_libdw=yes], +- [AS_IF([test "x$with_libdw" = xyes], +- [AC_MSG_ERROR([elfutils version >= 164 is required for stack tracing support])], +- [AC_MSG_WARN([elfutils version >= 164 is required for stack tracing support])] +- ) +- ] +- ) +- ], +- [AS_IF([test "x$with_libdw" = xyes], +- [AC_MSG_FAILURE([failed to find dwfl_linux_proc_attach in libdw])], +- ) +- ], +- [$libdw_LDFLAGS $libdw_LIBS] +- ) +- ], +- [AS_IF([test "x$with_libdw" = xyes], +- [AC_MSG_FAILURE([failed to find elfutils/libdwfl.h])] +- ) +- ] +- ) +- +- CFLAGS="$saved_CFLAGS" +- CPPFLAGS="$saved_CPPFLAGS" +- ] ++ [if test "$enable_static" = "yes"; then ++ PKG_CHECK_MODULES_STATIC([LIBDW], [libdw >= 0.164]) ++ else ++ PKG_CHECK_MODULES([LIBDW], [libdw >= 0.164]) ++ fi ++ have_libdw=yes ++ libdw_CPPFLAGS="$LIBDW_CFLAGS" ++ libdw_LIBS="$LIBDW_LIBS"] + ) + + AS_IF([test "x$have_libdw" = xyes], +@@ -84,7 +49,6 @@ AS_IF([test "x$have_libdw" = xyes], + [Whether to use libdw for stack tracing] + ) + AC_SUBST(libdw_CPPFLAGS) +- AC_SUBST(libdw_CFLAGS) + AC_SUBST(libdw_LDFLAGS) + AC_SUBST(libdw_LIBS) + ] +--- a/m4/st_libunwind.m4 ++++ b/m4/st_libunwind.m4 +@@ -28,64 +28,14 @@ AC_ARG_WITH([libunwind], + AC_DEFUN([st_LIBUNWIND], [dnl + + AS_IF([test "x$with_libunwind" != xno && test "x$use_unwinder" = x], +- [saved_CPPFLAGS="$CPPFLAGS" +- CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS" +- +- AC_CHECK_HEADERS([libunwind-ptrace.h], +- [saved_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS $libunwind_LDFLAGS" +- +- AC_CHECK_LIB([unwind], [backtrace], +- [libunwind_LIBS="-lunwind $libunwind_LIBS" +- +- AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic]) +- saved_LIBS="$LIBS" +- LIBS="-lunwind-generic $libunwind_LIBS $LIBS" +- +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]], +- [[return !unw_create_addr_space(0, 0)]]) +- ], +- [AC_MSG_RESULT([yes]) +- libunwind_LIBS="-lunwind-generic $libunwind_LIBS" +- +- AC_CHECK_LIB([unwind-ptrace], [_UPT_create], +- [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS" +- use_unwinder=libunwind +- ], +- [if test "x$with_libunwind" != xcheck; then +- AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace]) +- fi +- ], +- [$libunwind_LIBS] +- ) +- ], +- [AC_MSG_RESULT([no]) +- if test "x$with_libunwind" != xcheck; then +- AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic]) +- fi +- ] +- ) +- +- LIBS="$saved_LIBS" +- ], +- [if test "x$with_libunwind" != xcheck; then +- AC_MSG_FAILURE([failed to find libunwind]) +- fi +- ], +- [$libunwind_LIBS] +- ) +- +- LDFLAGS="$saved_LDFLAGS" +- ], +- [if test "x$with_libunwind" != xcheck; then +- AC_MSG_FAILURE([failed to find libunwind-ptrace.h]) +- fi +- ] +- ) +- +- CPPFLAGS="$saved_CPPFLAGS" +- ] ++ [if test "$enable_static" = "yes"; then ++ PKG_CHECK_MODULES_STATIC([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace]) ++ else ++ PKG_CHECK_MODULES([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace]) ++ fi ++ use_unwinder="libunwind" ++ libunwind_CPPFLAGS="$LIBUNWIND_CFLAGS" ++ libunwind_LIBS="$LIBUNWIND_LIBS"] + ) + + if test "x$use_unwinder" = xlibunwind; then +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -417,7 +417,6 @@ libstrace_a_SOURCES += unwind.c unwind.h + if USE_LIBDW + libstrace_a_SOURCES += unwind-libdw.c + strace_CPPFLAGS += $(libdw_CPPFLAGS) +-strace_CFLAGS += $(libdw_CFLAGS) + strace_LDFLAGS += $(libdw_LDFLAGS) + strace_LDADD += $(libdw_LIBS) + endif diff --git a/dev-debug/strace/metadata.xml b/dev-debug/strace/metadata.xml new file mode 100644 index 000000000000..a85d95d23552 --- /dev/null +++ b/dev-debug/strace/metadata.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> + </maintainer> + <use> + <flag name="aio"> + Enable <pkg>dev-libs/libaio</pkg> support for tracing Asynchronous I/O operations + </flag> + <flag name="elfutils"> + Enable stack backtraces (-k flag) via <pkg>dev-libs/elfutils</pkg> + </flag> + <flag name="ncurses"> + Make color support available via <pkg>sys-libs/ncurses</pkg>. + At runtime, if enabled, defaults to 'auto', but can be + disabled with --color never. + </flag> + <flag name="unwind"> + Enable stack backtraces (-k flag) via <pkg>sys-libs/libunwind</pkg> + </flag> + </use> + <upstream> + <remote-id type="cpe">cpe:/a:strace_project:strace</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/strace/strace-6.19.ebuild b/dev-debug/strace/strace-6.19.ebuild new file mode 100644 index 000000000000..559d09c1bc4e --- /dev/null +++ b/dev-debug/strace/strace-6.19.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edo flag-o-matic toolchain-funcs verify-sig + +DESCRIPTION="Useful diagnostic, instructional, and debugging tool" +HOMEPAGE="https://strace.io/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/strace/strace.git" + inherit git-r3 +else + SRC_URI=" + https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) + " + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc + +LICENSE="LGPL-2.1+ test? ( GPL-2+ )" +SLOT="0" +IUSE="aio perl selinux static test unwind elfutils" +RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( unwind elfutils )" + +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 ) +" +LIB_DEPEND=" + unwind? ( sys-libs/libunwind[static-libs(+)] ) + elfutils? ( dev-libs/elfutils[static-libs(+)] ) + selinux? ( sys-libs/libselinux[static-libs(+)] ) +" +# strace only uses the header from libaio to decode structs +DEPEND=" + static? ( ${LIB_DEPEND} ) + aio? ( >=dev-libs/libaio-0.3.106 ) +" +RDEPEND=" + !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) + perl? ( dev-lang/perl ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.5-static.patch" +) + +src_prepare() { + default + + if [[ ! -e configure ]] ; then + # git generation + sed /autoreconf/d -i bootstrap || die + edo ./bootstrap + [[ ! -e CREDITS ]] && cp CREDITS{.in,} + fi + + eautoreconf + + # Stub out the -k test since it's known to be flaky. bug #545812 + sed -i '1iexit 77' tests*/strace-k.test || die +} + +src_configure() { + # Set up the default build settings, and then use the names strace expects. + tc-export_build_env BUILD_{CC,CPP} + local v bv + for v in CC CPP {C,CPP,LD}FLAGS ; do + bv="BUILD_${v}" + export "${v}_FOR_BUILD=${!bv}" + done + + filter-lfs-flags # configure handles this sanely + + export ac_cv_header_libaio_h=$(usex aio) + use elibc_musl && export ac_cv_header_stdc=no + + local myeconfargs=( + --disable-gcc-Werror + + # Don't require mpers support on non-multilib systems. #649560 + --enable-mpers=check + + # We don't want to pin to exact linux-headers versions (bug #950309) + --enable-bundled=yes + + $(use_enable static) + $(use_with unwind libunwind) + $(use_with elfutils libdw) + $(use_with selinux libselinux) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + if has usersandbox ${FEATURES} ; then + # bug #643044 + ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." + return 0 + fi + + default +} + +src_install() { + default + + if use perl ; then + exeinto /usr/bin + doexe src/strace-graph + fi + + dodoc CREDITS +} diff --git a/dev-debug/strace/strace-7.0-r1.ebuild b/dev-debug/strace/strace-7.0-r1.ebuild new file mode 100644 index 000000000000..81359e48de5f --- /dev/null +++ b/dev-debug/strace/strace-7.0-r1.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edo flag-o-matic toolchain-funcs verify-sig + +DESCRIPTION="Useful diagnostic, instructional, and debugging tool" +HOMEPAGE="https://strace.io/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/strace/strace.git" + inherit git-r3 +else + SRC_URI=" + https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc + +LICENSE="LGPL-2.1+ test? ( GPL-2+ )" +SLOT="0" +IUSE="aio ncurses perl selinux static test unwind elfutils" +RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( unwind elfutils )" + +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 ) +" +STATIC_DEPEND=" + elfutils? ( dev-libs/elfutils[static-libs(+)] ) + ncurses? ( sys-libs/ncurses[static-libs(+)] ) + selinux? ( sys-libs/libselinux[static-libs(+)] ) + unwind? ( sys-libs/libunwind[static-libs(+)] ) +" +LIB_DEPEND=" + elfutils? ( dev-libs/elfutils ) + ncurses? ( sys-libs/ncurses:= ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= ) +" +# strace only uses the header from libaio to decode structs +DEPEND=" + static? ( ${STATIC_DEPEND} ) + !static? ( ${LIB_DEPEND} ) + aio? ( >=dev-libs/libaio-0.3.106 ) +" +RDEPEND=" + !static? ( ${LIB_DEPEND} ) + perl? ( dev-lang/perl ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.5-static.patch" +) + +src_prepare() { + default + + if [[ ! -e configure ]] ; then + # git generation + sed /autoreconf/d -i bootstrap || die + edo ./bootstrap + [[ ! -e CREDITS ]] && cp CREDITS{.in,} + fi + + eautoreconf + + # Stub out the -k test since it's known to be flaky. bug #545812 + sed -i '1iexit 77' tests*/strace-k.test || die +} + +src_configure() { + # Set up the default build settings, and then use the names strace expects. + tc-export_build_env BUILD_{CC,CPP} + local v bv + for v in CC CPP {C,CPP,LD}FLAGS ; do + bv="BUILD_${v}" + export "${v}_FOR_BUILD=${!bv}" + done + + filter-lfs-flags # configure handles this sanely + + export ac_cv_header_libaio_h=$(usex aio) + export ac_cv_header_termcap_h=$(usex ncurses) + use elibc_musl && export ac_cv_header_stdc=no + + local myeconfargs=( + --disable-gcc-Werror + + # Don't require mpers support on non-multilib systems. #649560 + --enable-mpers=check + + # We don't want to pin to exact linux-headers versions (bug #950309) + --enable-bundled=yes + + $(use_enable static) + $(use_with unwind libunwind) + $(use_with elfutils libdw) + $(use_with selinux libselinux) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + if has usersandbox ${FEATURES} ; then + # bug #643044 + ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." + return 0 + fi + + default +} + +src_install() { + default + + if use perl ; then + exeinto /usr/bin + doexe src/strace-graph + fi + + dodoc CREDITS +} diff --git a/dev-debug/strace/strace-9999.ebuild b/dev-debug/strace/strace-9999.ebuild new file mode 100644 index 000000000000..81359e48de5f --- /dev/null +++ b/dev-debug/strace/strace-9999.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edo flag-o-matic toolchain-funcs verify-sig + +DESCRIPTION="Useful diagnostic, instructional, and debugging tool" +HOMEPAGE="https://strace.io/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/strace/strace.git" + inherit git-r3 +else + SRC_URI=" + https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz + verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc + +LICENSE="LGPL-2.1+ test? ( GPL-2+ )" +SLOT="0" +IUSE="aio ncurses perl selinux static test unwind elfutils" +RESTRICT="!test? ( test )" +REQUIRED_USE="?? ( unwind elfutils )" + +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-strace-20251130 ) +" +STATIC_DEPEND=" + elfutils? ( dev-libs/elfutils[static-libs(+)] ) + ncurses? ( sys-libs/ncurses[static-libs(+)] ) + selinux? ( sys-libs/libselinux[static-libs(+)] ) + unwind? ( sys-libs/libunwind[static-libs(+)] ) +" +LIB_DEPEND=" + elfutils? ( dev-libs/elfutils ) + ncurses? ( sys-libs/ncurses:= ) + selinux? ( sys-libs/libselinux ) + unwind? ( sys-libs/libunwind:= ) +" +# strace only uses the header from libaio to decode structs +DEPEND=" + static? ( ${STATIC_DEPEND} ) + !static? ( ${LIB_DEPEND} ) + aio? ( >=dev-libs/libaio-0.3.106 ) +" +RDEPEND=" + !static? ( ${LIB_DEPEND} ) + perl? ( dev-lang/perl ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.5-static.patch" +) + +src_prepare() { + default + + if [[ ! -e configure ]] ; then + # git generation + sed /autoreconf/d -i bootstrap || die + edo ./bootstrap + [[ ! -e CREDITS ]] && cp CREDITS{.in,} + fi + + eautoreconf + + # Stub out the -k test since it's known to be flaky. bug #545812 + sed -i '1iexit 77' tests*/strace-k.test || die +} + +src_configure() { + # Set up the default build settings, and then use the names strace expects. + tc-export_build_env BUILD_{CC,CPP} + local v bv + for v in CC CPP {C,CPP,LD}FLAGS ; do + bv="BUILD_${v}" + export "${v}_FOR_BUILD=${!bv}" + done + + filter-lfs-flags # configure handles this sanely + + export ac_cv_header_libaio_h=$(usex aio) + export ac_cv_header_termcap_h=$(usex ncurses) + use elibc_musl && export ac_cv_header_stdc=no + + local myeconfargs=( + --disable-gcc-Werror + + # Don't require mpers support on non-multilib systems. #649560 + --enable-mpers=check + + # We don't want to pin to exact linux-headers versions (bug #950309) + --enable-bundled=yes + + $(use_enable static) + $(use_with unwind libunwind) + $(use_with elfutils libdw) + $(use_with selinux libselinux) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + if has usersandbox ${FEATURES} ; then + # bug #643044 + ewarn "Test suite is known to fail with FEATURES=usersandbox -- skipping ..." + return 0 + fi + + default +} + +src_install() { + default + + if use perl ; then + exeinto /usr/bin + doexe src/strace-graph + fi + + dodoc CREDITS +} diff --git a/dev-debug/sysdig/Manifest b/dev-debug/sysdig/Manifest new file mode 100644 index 000000000000..8c80b43fae88 --- /dev/null +++ b/dev-debug/sysdig/Manifest @@ -0,0 +1,2 @@ +DIST falcosecurity-libs-0.20.0.tar.gz 4545190 BLAKE2B 93a074ab6451c16c7ad58498ac580f0476339e7dee65112e56142307f79966c43b69c71234a784aff03f47ec2e37e838e797beb4b36e9c105db88cf32cad135e SHA512 b5ef481bda92a29b7b409baee25dabd0b766e4bbcac762740635f99b36cd823a6d98f541817fd03b1a86a1385d3fe24888b33b84dc3486cd9f8d00e5384eb705 +DIST sysdig-0.40.1.tar.gz 68296332 BLAKE2B 17ed9154d1e955dc18700ab764f0fce11461bea9b6970e8661761269d4f0bbb786ddd8a4cc4c806121a52d0d486080fc231f2447dc69d26d41fa582c1dabda41 SHA512 a50372192ea8708d19ede0550659a2f7ea6b535b419d649ae9b52e32f9c71576f0a3e3ab85dcc8d23f792dff078f15eca1435a1e402e3d98aba7eefc1920989e diff --git a/dev-debug/sysdig/files/0.38.1-scap-loader.patch b/dev-debug/sysdig/files/0.38.1-scap-loader.patch new file mode 100644 index 000000000000..1f350948b37a --- /dev/null +++ b/dev-debug/sysdig/files/0.38.1-scap-loader.patch @@ -0,0 +1,32 @@ + +Sanitize the scap loader script to not attempt driver downloads or compilation +by default, which would not work anyway as sysdig does not host prebuilt modules +for Gentoo. + +Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com> + +--- sysdig-0.38.0/scripts/scap-driver-loader.in~ 2024-06-17 11:14:55.000000000 +0200 ++++ sysdig-0.38.0/scripts/scap-driver-loader.in 2024-06-17 11:14:55.000000000 +0200 +@@ -662,8 +662,8 @@ print_usage() { + echo "Options:" + echo " --help show brief help" + echo " --clean try to remove an already present driver installation" +- echo " --compile try to compile the driver locally (default true)" +- echo " --download try to download a prebuilt driver (default true)" ++ echo " --compile try to compile the driver locally (default false)" ++ echo " --download try to download a prebuilt driver (default false)" + echo " --source-only skip execution and allow sourcing in another script" + echo "" + echo "Environment variables:" +@@ -770,11 +770,6 @@ while test $# -gt 0; do + esac + done + +-if [ -z "$has_opts" ]; then +- ENABLE_COMPILE="yes" +- ENABLE_DOWNLOAD="yes" +-fi +- + if [ -z "$source_only" ]; then + echo "* Running scap-driver-loader for: driver version=${DRIVER_VERSION}, arch=${ARCH}, kernel release=${KERNEL_RELEASE}, kernel version=${KERNEL_VERSION}" + diff --git a/dev-debug/sysdig/files/libs-0.20.0-fix-INET6_ADDRSTRLEN-buffer-size.patch b/dev-debug/sysdig/files/libs-0.20.0-fix-INET6_ADDRSTRLEN-buffer-size.patch new file mode 100644 index 000000000000..f2ea81289e0f --- /dev/null +++ b/dev-debug/sysdig/files/libs-0.20.0-fix-INET6_ADDRSTRLEN-buffer-size.patch @@ -0,0 +1,54 @@ +Backported patch from: https://github.com/falcosecurity/libs/pull/2574 + +glibc-2.42 added __inet_ntop_chk fortification, which started to fail: + +*** buffer overflow detected ***: terminated +Program received signal SIGABRT, Aborted. +0x00007ffff629b0dc in __pthread_kill_implementation () from /lib64/libc.so.6 +(gdb) bt +#0 0x00007ffff629b0dc in __pthread_kill_implementation () from /lib64/libc.so.6 +#1 0x00007ffff6242572 in raise () from /lib64/libc.so.6 +#2 0x00007ffff6229f3b in abort () from /lib64/libc.so.6 +#3 0x00007ffff622b148 in __libc_message_impl.cold () from /lib64/libc.so.6 +#4 0x00007ffff6327337 in __fortify_fail () from /lib64/libc.so.6 +#5 0x00007ffff6326c92 in __chk_fail () from /lib64/libc.so.6 +#6 0x00007ffff6327a62 in __inet_ntop_chk () from /lib64/libc.so.6 +#7 0x000055555569da3d in inet_ntop (__af=10, __src=0x555555ee0800, __dst=0x7fffffff4f90 "\260P\377\377\377\177", __dst_size=100) at /usr/include/bits/inet-fortified.h:36 +#8 ipv6tuple_to_string[abi:cxx11](ipv6tuple*, bool) (tuple=0x555555ee0800, resolve=false) at /tmp/portage/dev-debug/sysdig-0.40.1/work/libs-0.20.0/userspace/libsinsp/utils.cpp:1110 + +Pass a target buffer size appropriate for IPv addresses. + +--- libs-0.20.0/userspace/libsinsp/utils.cpp ++++ libs-0.20.0-new/userspace/libsinsp/utils.cpp +@@ -1089,13 +1089,13 @@ std::string ipv4tuple_to_string(ipv4tupl + } + + std::string ipv6serveraddr_to_string(ipv6serverinfo* addr, bool resolve) { +- char address[100]; +- char buf[200]; ++ char address[INET6_ADDRSTRLEN]; + +- if(NULL == inet_ntop(AF_INET6, addr->m_ip.m_b, address, 100)) { ++ if(NULL == inet_ntop(AF_INET6, addr->m_ip.m_b, address, INET6_ADDRSTRLEN)) { + return std::string(); + } + ++ char buf[200]; + snprintf(buf, + 200, + "%s:%s", +@@ -1107,12 +1107,12 @@ std::string ipv6serveraddr_to_string(ipv + + std::string ipv6tuple_to_string(ipv6tuple* tuple, bool resolve) { + char source_address[INET6_ADDRSTRLEN]; +- if(NULL == inet_ntop(AF_INET6, tuple->m_fields.m_sip.m_b, source_address, 100)) { ++ if(NULL == inet_ntop(AF_INET6, tuple->m_fields.m_sip.m_b, source_address, INET6_ADDRSTRLEN)) { + return std::string(); + } + + char destination_address[INET6_ADDRSTRLEN]; +- if(NULL == inet_ntop(AF_INET6, tuple->m_fields.m_dip.m_b, destination_address, 100)) { ++ if(NULL == inet_ntop(AF_INET6, tuple->m_fields.m_dip.m_b, destination_address, INET6_ADDRSTRLEN)) { + return std::string(); + } + diff --git a/dev-debug/sysdig/files/libs-0.20.0-fix-buffer-overrun-reading-sockets-from-procfs.patch b/dev-debug/sysdig/files/libs-0.20.0-fix-buffer-overrun-reading-sockets-from-procfs.patch new file mode 100644 index 000000000000..238cd12ac540 --- /dev/null +++ b/dev-debug/sysdig/files/libs-0.20.0-fix-buffer-overrun-reading-sockets-from-procfs.patch @@ -0,0 +1,35 @@ +Patch from: +https://github.com/falcosecurity/libs/commit/de3f4cac9233682eae63c63377c82efb649679f5 + +From de3f4cac9233682eae63c63377c82efb649679f5 Mon Sep 17 00:00:00 2001 +From: Shane Lawrence <shane@lawrence.dev> +Date: Thu, 20 Feb 2025 14:55:41 +0000 +Subject: [PATCH] Fix buffer overrun reading sockets from procfs. + +Signed-off-by: Shane Lawrence <shane@lawrence.dev> +--- + userspace/libscap/linux/scap_fds.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/userspace/libscap/linux/scap_fds.c b/userspace/libscap/linux/scap_fds.c +index f98ac3f32f..73e99ca428 100644 +--- a/userspace/libscap/linux/scap_fds.c ++++ b/userspace/libscap/linux/scap_fds.c +@@ -766,7 +766,7 @@ int32_t scap_fd_read_ipv4_sockets_from_proc_fs(const char *dir, + break; + } + +- while(*scan_pos == ' ' && scan_pos < scan_end) { ++ while(scan_pos < scan_end && *scan_pos == ' ') { + scan_pos++; + } + +@@ -974,7 +974,7 @@ int32_t scap_fd_read_ipv6_sockets_from_proc_fs(char *dir, + break; + } + +- while(*scan_pos == ' ' && scan_pos < scan_end) { ++ while(scan_pos < scan_end && *scan_pos == ' ') { + scan_pos++; + } + diff --git a/dev-debug/sysdig/files/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch b/dev-debug/sysdig/files/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch new file mode 100644 index 000000000000..f0c16d176d12 --- /dev/null +++ b/dev-debug/sysdig/files/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch @@ -0,0 +1,39 @@ +Patch from: +https://github.com/falcosecurity/libs/commit/7f01ec89c565fcb45ade833b1312ae69637bc4ec + +From: Federico Di Pierro <nierro92@gmail.com> +Date: Fri, 28 Mar 2025 08:35:23 +0100 +Subject: [PATCH] fix(driver): fix driver and bpf makefile for linux 6.13. + +Signed-off-by: Federico Di Pierro <nierro92@gmail.com> +--- + driver/Makefile.in | 2 +- + driver/bpf/Makefile | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/driver/Makefile.in b/driver/Makefile.in +index 7b1fdc2dba..ec60103d0d 100644 +--- a/driver/Makefile.in ++++ b/driver/Makefile.in +@@ -29,7 +29,7 @@ install: all + + else + +-KERNELDIR ?= $(CURDIR) ++KERNELDIR ?= $(realpath $(objtree)) + # + # Get the path of the module sources + # +diff --git a/driver/bpf/Makefile b/driver/bpf/Makefile +index 58d1b11165..c94647c608 100644 +--- a/driver/bpf/Makefile ++++ b/driver/bpf/Makefile +@@ -28,7 +28,7 @@ clean: + + else + +-KERNELDIR ?= $(CURDIR) ++KERNELDIR ?= $(realpath $(objtree)) + # + # Get the path of the module sources + # diff --git a/dev-debug/sysdig/metadata.xml b/dev-debug/sysdig/metadata.xml new file mode 100644 index 000000000000..8c8cf93b9e02 --- /dev/null +++ b/dev-debug/sysdig/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>holger@applied-asynchrony.com</email> + <name>Holger Hoffstätte</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <use> + <flag name="bpf">Enable the BPF probe as alternative event source + to <pkg>dev-debug/scap-driver</pkg>.</flag> + <flag name="modules">Build kernel modules needed for tracing local + events. Disable this only if you intend to use sysdig purely + to work with dumpfiles.</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/sysdig/sysdig-0.40.1-r1.ebuild b/dev-debug/sysdig/sysdig-0.40.1-r1.ebuild new file mode 100644 index 000000000000..aefc4494bab5 --- /dev/null +++ b/dev-debug/sysdig/sysdig-0.40.1-r1.ebuild @@ -0,0 +1,172 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1,3,4} luajit ) + +inherit bash-completion-r1 cmake flag-o-matic linux-info lua-single + +DESCRIPTION="A system exploration and troubleshooting tool" +HOMEPAGE="https://www.sysdig.com/" + +# The version of falcosecurity-libs required by sysdig as source tree +LIBS_VERSION="0.20.0" +LIBS="falcosecurity-libs-${LIBS_VERSION}" + +SRC_URI="https://github.com/draios/sysdig/archive/${PV}.tar.gz -> ${P}.tar.gz + https://github.com/falcosecurity/libs/archive/${LIBS_VERSION}.tar.gz -> ${LIBS}.tar.gz" + +# The driver version as found in cmake/modules/driver.cmake or alternatively +# as git tag on the $LIBS_VERSION of falcosecurity-libs. +DRIVER_VERSION="8.0.0+driver" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 ~x86" +IUSE="bpf +modules" +REQUIRED_USE="${LUA_REQUIRED_USE}" + +RDEPEND="${LUA_DEPS} + dev-cpp/abseil-cpp:= + dev-cpp/tbb:= + dev-cpp/yaml-cpp:= + dev-libs/jsoncpp:= + dev-libs/libb64:= + bpf? ( >=dev-libs/libbpf-1.1:= ) + dev-libs/protobuf:= + dev-libs/re2:= + dev-libs/uthash + net-libs/grpc:= + net-misc/curl + sys-libs/ncurses:= + virtual/zlib:= + virtual/libelf:=" + +DEPEND="${RDEPEND} + dev-cpp/nlohmann_json + dev-cpp/valijson + virtual/os-headers" + +BDEPEND="bpf? ( + dev-util/bpftool + llvm-core/clang:*[llvm_targets_BPF] + )" + +# pin the driver to the falcosecurity-libs version +PDEPEND="modules? ( =dev-debug/scap-driver-${LIBS_VERSION}* )" + +PATCHES=( + "${FILESDIR}/0.38.1-scap-loader.patch" +) + +pkg_pretend() { + if use bpf; then + local CONFIG_CHECK=" + ~BPF + ~BPF_EVENTS + ~BPF_JIT + ~BPF_SYSCALL + ~FTRACE_SYSCALLS + ~HAVE_EBPF_JIT + " + check_extra_config + fi +} + +src_prepare() { + # manually apply patches to falcosecurity-libs + pushd "${WORKDIR}/libs-${LIBS_VERSION}" + eapply "${FILESDIR}/libs-0.20.0-fix-buffer-overrun-reading-sockets-from-procfs.patch" || die + eapply "${FILESDIR}/libs-0.20.0-fix-driver-and-bpf-makefile-for-kernel-6.13.patch" || die + eapply "${FILESDIR}/libs-0.20.0-fix-INET6_ADDRSTRLEN-buffer-size.patch" || die + popd + + # do not build with debugging info + sed -i -e 's/-ggdb//g' CMakeLists.txt "${WORKDIR}"/libs-${LIBS_VERSION}/cmake/modules/CompilerFlags.cmake || die + + # fix the driver version + sed -i -e 's/0.0.0-local/${DRIVER_VERSION}/g' cmake/modules/driver.cmake || die + + cmake_src_prepare +} + +src_configure() { + # known problems with strict aliasing: + # https://github.com/falcosecurity/libs/issues/1964 + append-flags -fno-strict-aliasing + + local mycmakeargs=( + # do not build the kernel driver + -DBUILD_DRIVER=OFF + -DENABLE_DKMS=OFF + + # disable all test targets + -DCREATE_TEST_TARGETS=OFF + + # libscap examples are not installed or really useful + -DBUILD_LIBSCAP_EXAMPLES=OFF + + # do not build internal libs as shared + -DBUILD_SHARED_LIBS=OFF + + # build modern BPF probe depending on USE + -DBUILD_SYSDIG_MODERN_BPF=$(usex bpf) + + # set driver location/version + -DDRIVER_SOURCE_DIR="${WORKDIR}"/libs-${LIBS_VERSION}/driver + -DDRIVER_VERSION=${DRIVER_VERSION} + + # point sysdig to the libs tree + -DUSE_BUNDLED_FALCOSECURITY_LIBS=ON + -DFALCOSECURITY_LIBS_SOURCE_DIR="${WORKDIR}"/libs-${LIBS_VERSION} + + # explicitly set sysdig version - required for some reason + -DSYSDIG_VERSION=${PV} + + # do not use bundled dependencies for sysdig + -DUSE_BUNDLED_DEPS=OFF + + # do not use bundled dependencies for falcosecurity-libs + -DUSE_BUNDLED_B64=OFF + -DUSE_BUNDLED_JSONCPP=OFF + -DUSE_BUNDLED_RE2=OFF + -DUSE_BUNDLED_TBB=OFF + -DUSE_BUNDLED_VALIJSON=OFF + + # set valijson include path to prevent downloading + -DVALIJSON_INCLUDE="${ESYSROOT}"/usr/include + + # enable chisels + -DWITH_CHISEL=ON + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # remove driver headers + rm -r "${ED}"/usr/src || die + + # remove libscap/libsinsp headers & libs (see #938187) + rm -r "${ED}"/usr/include/sysdig || die + rm -r "${ED}"/usr/$(get_libdir) || die + + # move bashcomp to the proper location + dobashcomp "${ED}"/usr/etc/bash_completion.d/sysdig || die + rm -r "${ED}"/usr/etc || die +} + +pkg_postinst() { + if use bpf; then + elog + elog "You have enabled the 'modern BPF' probe." + elog "This eBPF-based event source is an alternative to the traditional" + elog "scap kernel module." + elog + elog "To use it, start sysdig/csysdig with '--modern-bpf'." + elog + fi +} diff --git a/dev-debug/systemtap/Manifest b/dev-debug/systemtap/Manifest new file mode 100644 index 000000000000..a2051e8f85e7 --- /dev/null +++ b/dev-debug/systemtap/Manifest @@ -0,0 +1,3 @@ +DIST systemtap-5.3.tar.gz 6604029 BLAKE2B 063a73f41bbcc3a23ea2d98ff5e3562a87aea0c78fc915f223d59a32dc763fabdf324fe820aa0e969728eeeb8cd0264fd7e3dcc7ac5d81d005aa9c81e19ea604 SHA512 b252cd00a7ddab53f19d30129834b205ce8e90ccc5422444c1d188b765c122da712f5ca73092c425aef7430888c75ebfebbe3bfd87d6df8761338a1135abda89 +DIST systemtap-5.4.tar.gz 6615758 BLAKE2B b2c3add6afcdd824d8253ee5e83837983519ffff69ff76c75abdefa64ae93128dc030b4632fe585e3b099edd635f22b6325811e704655ce57b3d460ced583af7 SHA512 5869fe3735e44be65ba7895a46b4ea66fcdcc21ed2ab0673c62d822730553837f816d82fd78eeca4bfe6f17fdeaa12eb2f94c0b0b7ebb8c495c961f0b6935785 +DIST systemtap-5.4.tar.gz.asc 228 BLAKE2B 7153476f92199eef753cd85343a4ef8fed449eacf1708c8429fa0e0511bbac959c41a5b50690837810d14b7938c87326b70e0ab6fd321af25d2b86f9c7cbd8a9 SHA512 63da7b5e8a71c942af05c0d1b18a6f99f79403c6e1f5424382067ba27c75da7bebe02df501b1c7bb602d6cb98857fe02d15fb72535a33885acbd332c8e1508ea diff --git a/dev-debug/systemtap/files/systemtap-3.1-ia64.patch b/dev-debug/systemtap/files/systemtap-3.1-ia64.patch new file mode 100644 index 000000000000..832bfc1a47f9 --- /dev/null +++ b/dev-debug/systemtap/files/systemtap-3.1-ia64.patch @@ -0,0 +1,33 @@ +Workaround build failure on ia64 + +Avoid 'o' constraint to allow gcc to select register operand. +That way instruction selector can satisfy all constraints +for PROBE2 macro. + +Reported-by: Émeric Maschino +Bug: https://bugs.gentoo.org/510134 +--- a/cache.cxx ++++ b/cache.cxx +@@ -8,2 +8,10 @@ + ++#ifdef __ia64__ ++// Default is: nor ++// We disable 'o' because gcc fails to select register ++// constraint for second instruction in 'add_script_to_cache' ++// https://bugs.gentoo.org/510134 ++# define STAP_SDT_ARG_CONSTRAINT nr ++#endif ++ + #include "config.h" +--- a/staprun/mainloop.c ++++ b/staprun/mainloop.c +@@ -1 +1,9 @@ ++#ifdef __ia64__ ++// Default is: nor ++// We disable 'o' because gcc fails to select register ++// constraint for second instruction in 'add_script_to_cache' ++// https://bugs.gentoo.org/510134 ++# define STAP_SDT_ARG_CONSTRAINT nr ++#endif ++ + /* -*- linux-c -*- diff --git a/dev-debug/systemtap/metadata.xml b/dev-debug/systemtap/metadata.xml new file mode 100644 index 000000000000..c113517f235c --- /dev/null +++ b/dev-debug/systemtap/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>swegener@gentoo.org</email> + </maintainer> + <use> + <flag name="debuginfod">Enable debuginfod support via <pkg>dev-libs/elfutils</pkg> libdebuginfod</flag> + <flag name="dtrace-symlink"> + Provide /usr/bin/dtrace symlink pointing to /usr/bin/stap-dtrace. + This prevents coinstallation with <pkg>dev-debug/dtrace</pkg>. + </flag> + <flag name="libvirt">Support probing of libvirt domains.</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/systemtap/systemtap-5.3-r1.ebuild b/dev-debug/systemtap/systemtap-5.3-r1.ebuild new file mode 100644 index 000000000000..2216988c3879 --- /dev/null +++ b/dev-debug/systemtap/systemtap-5.3-r1.ebuild @@ -0,0 +1,163 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit autotools flag-o-matic linux-info python-single-r1 toolchain-funcs + +DESCRIPTION="Linux trace/probe tool" +HOMEPAGE="https://sourceware.org/systemtap/ https://sourceware.org/systemtap/wiki" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://sourceware.org/git/systemtap.git" + inherit git-r3 +else + SRC_URI="https://sourceware.org/ftp/${PN}/releases/${P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debuginfod dtrace-symlink libvirt selinux sqlite +ssl test zeroconf" + +CDEPEND=" + ${PYTHON_DEPS} + + dev-libs/boost:= + >=dev-libs/elfutils-0.142[debuginfod?] + dev-libs/json-c:= + sys-libs/ncurses:= + sys-libs/readline:= + + libvirt? ( >=app-emulation/libvirt-1.0.2 ) + selinux? ( sys-libs/libselinux ) + sqlite? ( dev-db/sqlite:3 ) + ssl? ( + dev-libs/nspr + dev-libs/nss + ) + zeroconf? ( net-dns/avahi ) +" +DEPEND=" + ${CDEPEND} + app-alternatives/cpio + app-text/xmlto + >=sys-devel/gettext-0.18.2 + + libvirt? ( dev-libs/libxml2:= ) +" +RDEPEND=" + ${CDEPEND} + acct-group/stapdev + acct-group/stapsys + acct-group/stapusr +" +# which: https://sourceware.org/PR32106 +BDEPEND=" + $(python_gen_cond_dep 'dev-python/setuptools[${PYTHON_USEDEP}]') + test? ( + dev-util/dejagnu + || ( + net-analyzer/netcat + net-analyzer/openbsd-netcat + ) + sys-apps/which + ) +" + +CONFIG_CHECK="~KPROBES ~RELAY ~DEBUG_FS" +ERROR_KPROBES="${PN} requires support for KProbes Instrumentation (KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes'." +ERROR_RELAY="${PN} works with support for user space relay support (RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)'." +ERROR_DEBUG_FS="${PN} works best with support for Debug Filesystem (DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem'." + +DOCS="AUTHORS HACKING NEWS README" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +# bug #935333, bug #923597, and so on; needs work to get passing on Gentoo. +RESTRICT="!test? ( test ) test" +PATCHES=( + "${FILESDIR}/${PN}-3.1-ia64.patch" +) + +pkg_setup() { + linux-info_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + python_fix_shebang . + + sed -i \ + -e 's#$(INSTALL_DATA) $(srcdir)/stap-exporter.options "$(DESTDIR)$(sysconfdir)/sysconfig/stap-exporter"##g' \ + stap-exporter/Makefile.am || die "Failed to modify stap-exporter Makefile.am" + sed -i \ + -e '\#^EnvironmentFile=-/etc/sysconfig/stap-exporter#d' \ + -e 's#$PORT $KEEPALIVE $SCRIPTS $OPTIONS#--port 9900 --keepalive 300#g' \ + stap-exporter/stap-exporter.service || die "Failed to adapt stap-exporter.service" + + default + eautoreconf +} + +src_configure() { + local myeconfargs=( + --cache-file="${S}"/config.cache + --disable-docs + --disable-grapher + --disable-refdocs + --disable-server + --disable-Werror + # Our toolchain sets this for us already and adding in + # -D_FORTIFY_SOURCE=2 breaks builds w/ no optimisation. + # This option (at least as of 4.5) doesn't pass -fno* etc, + # it just doesn't _add_ options, which is good. If it changes + # to actually pass -fno-stack-protector and friends, we'll + # need to change course. Forcing =2 also has problems for + # setting it to 3. + # bug #794667. + --disable-ssp + --enable-pie + --with-python3 + --without-java + --without-openssl + --without-python2-probes + --without-rpm + $(use_enable libvirt virt) + $(use_enable sqlite) + $(use_with debuginfod) + $(use_with zeroconf avahi) + $(use_with ssl nss) + $(use_with selinux) + ) + + # Use bash because of bashisms with brace expansion in Makefile.am + # https://sourceware.org/PR32105 + CONFIG_SHELL="${BROOT}"/bin/bash PYTHON3="${PYTHON}" econf "${myeconfargs[@]}" +} + +src_test() { + # TODO: Install tests like dev-debug/dtrace[test-install] and + # e.g. Fedora does. + ( + strip-flags + filter-flags '-fcf-protection=*' + filter-flags '-fdiagnostics-color=*' '-fdiagnostics-urls=*' + filter-flags '-g*' + filter-lto + tc-ld-force-bfd + emake -Onone -k check CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" + ) +} + +src_install() { + default + rm -rf "${D}/$(python_get_sitedir)"/*.egg-info || die + python_optimize + + # Avoid file collision with dev-debug/dtrace + mv "${ED}"/usr/bin/dtrace "${ED}"/usr/bin/stap-dtrace || die + + if use dtrace-symlink ; then + dosym stap-dtrace /usr/bin/dtrace + fi +} diff --git a/dev-debug/systemtap/systemtap-5.4.ebuild b/dev-debug/systemtap/systemtap-5.4.ebuild new file mode 100644 index 000000000000..780eaba05d9f --- /dev/null +++ b/dev-debug/systemtap/systemtap-5.4.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/fche.asc +inherit autotools flag-o-matic linux-info python-single-r1 toolchain-funcs + +DESCRIPTION="Linux trace/probe tool" +HOMEPAGE="https://sourceware.org/systemtap/ https://sourceware.org/systemtap/wiki" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://sourceware.org/git/systemtap.git" + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://sourceware.org/ftp/${PN}/releases/${P}.tar.gz + verify-sig? ( https://sourceware.org/ftp/${PN}/releases/${P}.tar.gz.asc ) + " + + KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-fche )" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debuginfod dtrace-symlink libvirt selinux sqlite +ssl test zeroconf" + +CDEPEND=" + ${PYTHON_DEPS} + + dev-libs/boost:= + >=dev-libs/elfutils-0.142[debuginfod?] + dev-libs/json-c:= + sys-libs/ncurses:= + sys-libs/readline:= + + libvirt? ( >=app-emulation/libvirt-1.0.2 ) + selinux? ( sys-libs/libselinux ) + sqlite? ( dev-db/sqlite:3 ) + ssl? ( + dev-libs/nspr + dev-libs/nss + ) + zeroconf? ( net-dns/avahi ) +" +DEPEND=" + ${CDEPEND} + app-alternatives/cpio + app-text/xmlto + >=sys-devel/gettext-0.18.2 + + libvirt? ( dev-libs/libxml2:= ) +" +RDEPEND=" + ${CDEPEND} + acct-group/stapdev + acct-group/stapsys + acct-group/stapusr +" +# which: https://sourceware.org/PR32106 +BDEPEND+=" + $(python_gen_cond_dep 'dev-python/setuptools[${PYTHON_USEDEP}]') + test? ( + dev-util/dejagnu + || ( + net-analyzer/netcat + net-analyzer/openbsd-netcat + ) + sys-apps/which + ) +" + +CONFIG_CHECK="~KPROBES ~RELAY ~DEBUG_FS" +ERROR_KPROBES="${PN} requires support for KProbes Instrumentation (KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes'." +ERROR_RELAY="${PN} works with support for user space relay support (RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)'." +ERROR_DEBUG_FS="${PN} works best with support for Debug Filesystem (DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem'." + +DOCS="AUTHORS HACKING NEWS README" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +# bug #935333, bug #923597, and so on; needs work to get passing on Gentoo. +RESTRICT="!test? ( test ) test" +PATCHES=( + "${FILESDIR}/${PN}-3.1-ia64.patch" +) + +pkg_setup() { + linux-info_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + python_fix_shebang . + + sed -i \ + -e 's#$(INSTALL_DATA) $(srcdir)/stap-exporter.options "$(DESTDIR)$(sysconfdir)/sysconfig/stap-exporter"##g' \ + stap-exporter/Makefile.am || die "Failed to modify stap-exporter Makefile.am" + sed -i \ + -e '\#^EnvironmentFile=-/etc/sysconfig/stap-exporter#d' \ + -e 's#$PORT $KEEPALIVE $SCRIPTS $OPTIONS#--port 9900 --keepalive 300#g' \ + stap-exporter/stap-exporter.service || die "Failed to adapt stap-exporter.service" + + default + eautoreconf +} + +src_configure() { + local myeconfargs=( + --cache-file="${S}"/config.cache + --disable-docs + --disable-grapher + --disable-refdocs + --disable-server + --disable-Werror + # Our toolchain sets this for us already and adding in + # -D_FORTIFY_SOURCE=2 breaks builds w/ no optimisation. + # This option (at least as of 4.5) doesn't pass -fno* etc, + # it just doesn't _add_ options, which is good. If it changes + # to actually pass -fno-stack-protector and friends, we'll + # need to change course. Forcing =2 also has problems for + # setting it to 3. + # bug #794667. + --disable-ssp + --enable-pie + --with-python3 + --without-java + --without-openssl + --without-python2-probes + --without-rpm + $(use_enable libvirt virt) + $(use_enable sqlite) + $(use_with debuginfod) + $(use_with zeroconf avahi) + $(use_with ssl nss) + $(use_with selinux) + ) + + # Use bash because of bashisms with brace expansion in Makefile.am + # https://sourceware.org/PR32105 + CONFIG_SHELL="${BROOT}"/bin/bash PYTHON3="${PYTHON}" econf "${myeconfargs[@]}" +} + +src_test() { + # TODO: Install tests like dev-debug/dtrace[test-install] and + # e.g. Fedora does. + ( + strip-flags + filter-flags '-fcf-protection=*' + filter-flags '-fdiagnostics-color=*' '-fdiagnostics-urls=*' + filter-flags '-g*' + filter-lto + tc-ld-force-bfd + emake -Onone -k check CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" + ) +} + +src_install() { + default + rm -rf "${D}/$(python_get_sitedir)"/*.egg-info || die + python_optimize + + # Avoid file collision with dev-debug/dtrace + mv "${ED}"/usr/bin/dtrace "${ED}"/usr/bin/stap-dtrace || die + mv "${ED}"/usr/share/man/man1/dtrace.1 "${ED}"/usr/share/man/man1/stap-dtrace.1 || die + + if use dtrace-symlink ; then + dosym stap-dtrace /usr/bin/dtrace + newman - dtrace.1 <<<".so stap-dtrace.1" + fi +} diff --git a/dev-debug/systemtap/systemtap-9999.ebuild b/dev-debug/systemtap/systemtap-9999.ebuild new file mode 100644 index 000000000000..105c374669c6 --- /dev/null +++ b/dev-debug/systemtap/systemtap-9999.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/fche.asc +inherit autotools flag-o-matic linux-info python-single-r1 toolchain-funcs + +DESCRIPTION="Linux trace/probe tool" +HOMEPAGE="https://sourceware.org/systemtap/ https://sourceware.org/systemtap/wiki" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://sourceware.org/git/systemtap.git" + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://sourceware.org/ftp/${PN}/releases/${P}.tar.gz + verify-sig? ( https://sourceware.org/ftp/${PN}/releases/${P}.tar.gz.asc ) + " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-fche )" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debuginfod dtrace-symlink libvirt selinux sqlite +ssl test zeroconf" + +CDEPEND=" + ${PYTHON_DEPS} + + dev-libs/boost:= + >=dev-libs/elfutils-0.142[debuginfod?] + dev-libs/json-c:= + sys-libs/ncurses:= + sys-libs/readline:= + + libvirt? ( >=app-emulation/libvirt-1.0.2 ) + selinux? ( sys-libs/libselinux ) + sqlite? ( dev-db/sqlite:3 ) + ssl? ( + dev-libs/nspr + dev-libs/nss + ) + zeroconf? ( net-dns/avahi ) +" +DEPEND=" + ${CDEPEND} + app-alternatives/cpio + app-text/xmlto + >=sys-devel/gettext-0.18.2 + + libvirt? ( dev-libs/libxml2:= ) +" +RDEPEND=" + ${CDEPEND} + acct-group/stapdev + acct-group/stapsys + acct-group/stapusr +" +# which: https://sourceware.org/PR32106 +BDEPEND+=" + $(python_gen_cond_dep 'dev-python/setuptools[${PYTHON_USEDEP}]') + test? ( + dev-util/dejagnu + || ( + net-analyzer/netcat + net-analyzer/openbsd-netcat + ) + sys-apps/which + ) +" + +CONFIG_CHECK="~KPROBES ~RELAY ~DEBUG_FS" +ERROR_KPROBES="${PN} requires support for KProbes Instrumentation (KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes'." +ERROR_RELAY="${PN} works with support for user space relay support (RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)'." +ERROR_DEBUG_FS="${PN} works best with support for Debug Filesystem (DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem'." + +DOCS="AUTHORS HACKING NEWS README" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +# bug #935333, bug #923597, and so on; needs work to get passing on Gentoo. +RESTRICT="!test? ( test ) test" +PATCHES=( + "${FILESDIR}/${PN}-3.1-ia64.patch" +) + +pkg_setup() { + linux-info_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + python_fix_shebang . + + sed -i \ + -e 's#$(INSTALL_DATA) $(srcdir)/stap-exporter.options "$(DESTDIR)$(sysconfdir)/sysconfig/stap-exporter"##g' \ + stap-exporter/Makefile.am || die "Failed to modify stap-exporter Makefile.am" + sed -i \ + -e '\#^EnvironmentFile=-/etc/sysconfig/stap-exporter#d' \ + -e 's#$PORT $KEEPALIVE $SCRIPTS $OPTIONS#--port 9900 --keepalive 300#g' \ + stap-exporter/stap-exporter.service || die "Failed to adapt stap-exporter.service" + + default + eautoreconf +} + +src_configure() { + local myeconfargs=( + --cache-file="${S}"/config.cache + --disable-docs + --disable-grapher + --disable-refdocs + --disable-server + --disable-Werror + # Our toolchain sets this for us already and adding in + # -D_FORTIFY_SOURCE=2 breaks builds w/ no optimisation. + # This option (at least as of 4.5) doesn't pass -fno* etc, + # it just doesn't _add_ options, which is good. If it changes + # to actually pass -fno-stack-protector and friends, we'll + # need to change course. Forcing =2 also has problems for + # setting it to 3. + # bug #794667. + --disable-ssp + --enable-pie + --with-python3 + --without-java + --without-openssl + --without-python2-probes + --without-rpm + $(use_enable libvirt virt) + $(use_enable sqlite) + $(use_with debuginfod) + $(use_with zeroconf avahi) + $(use_with ssl nss) + $(use_with selinux) + ) + + # Use bash because of bashisms with brace expansion in Makefile.am + # https://sourceware.org/PR32105 + CONFIG_SHELL="${BROOT}"/bin/bash PYTHON3="${PYTHON}" econf "${myeconfargs[@]}" +} + +src_test() { + # TODO: Install tests like dev-debug/dtrace[test-install] and + # e.g. Fedora does. + ( + strip-flags + filter-flags '-fcf-protection=*' + filter-flags '-fdiagnostics-color=*' '-fdiagnostics-urls=*' + filter-flags '-g*' + filter-lto + tc-ld-force-bfd + emake -Onone -k check CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" + ) +} + +src_install() { + default + rm -rf "${D}/$(python_get_sitedir)"/*.egg-info || die + python_optimize + + # Avoid file collision with dev-debug/dtrace + mv "${ED}"/usr/bin/dtrace "${ED}"/usr/bin/stap-dtrace || die + mv "${ED}"/usr/share/man/man1/dtrace.1 "${ED}"/usr/share/man/man1/stap-dtrace.1 || die + + if use dtrace-symlink ; then + dosym stap-dtrace /usr/bin/dtrace + newman - dtrace.1 <<<".so stap-dtrace.1" + fi +} diff --git a/dev-debug/ugdb/Manifest b/dev-debug/ugdb/Manifest new file mode 100644 index 000000000000..88aefcfe9ad1 --- /dev/null +++ b/dev-debug/ugdb/Manifest @@ -0,0 +1,142 @@ +DIST addr2line-0.24.2.crate 39015 BLAKE2B 57186d6b957542cd71a0aa19f1355dfaabe6efa19b853c42f306494728b03d1e3183efdb2d2c7734a3e2347cd83a985d004f50c097e06b7520bd152310532e9b SHA512 39cbec3c920ffc0f37584afb55e1cfe4f182e4415319a4e9bfe842360f102f7b9315f6171c0cf71ba0337123903e604096cd573fe98698a26c8eebc2376d965b +DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423 +DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69 +DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077 +DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191 +DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671 +DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9 +DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c +DIST backtrace-0.3.74.crate 88516 BLAKE2B 594b537f3860560bc790d04d72a91ea25bbf5f2494b9c43377129a8021c02d9c16471a223e518889775a816c45513b14bf097c453846b62302a58b59753a5fcb SHA512 00cb2be0626f0bf6ec8b8f525bb129d3ac74c386c5e46ee0f343edb78c863222521f8132876057a5a1facacf40792dea51f2f20e986b35f3a85bca3dcf5c1520 +DIST base64-0.8.0.crate 33091 BLAKE2B 9e72a457841f532956b684a30906924756fd791da2b1fbe6cd0ff4c418738f6eeea15d1a8379e6e033d0acec17736c78c4b01dd352dd5e9d59fd230be91235eb SHA512 7ce30633e5fa48cf0103ec66183192ecfec03a64b8147f42e5fd4dc9bb0d2e7885c19f7aadb130d306b8fbef6798b97199a1ab65b7c19a08b6d35d2e076d518d +DIST bincode-1.3.3.crate 28958 BLAKE2B ea01d2efd8149ecba5e240ed989268b683d542a5f369902d316a4fd1ae4b8edd94e2d4a8cbff0e96646eb29facb04a84b249d74f0781dc3d29c8797ac975aa9f SHA512 49e39d71214dbb623a18e3852f6f2f2a5c3f951b64107d66c8adaa95a442a3283fba978bca41b126c9879b12833b945f478d2c77d35482b3577fc1a894e8e5f3 +DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 +DIST bumpalo-3.17.0.crate 91975 BLAKE2B b0aca1d64373425384eddcdf8d60dc977058a3d1570451de944ce48aacdb984e73a29ab64fb5b23413582d57a8e32ad8155f6a1479eb00f804afe9d8a9d9e163 SHA512 b2acfb463aa705b9c6a9555858b84f565234110988c880cdb761ab8dc87892ee5d22e65fa935d2cfef9d58869fec0ab64d810b26bf122fdd89b454b6ce65ea1f +DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f +DIST cc-1.2.16.crate 103847 BLAKE2B 795261a0b910ad03a4d959a587164b317e1a7c462474c50620aaba5fe2f83a577dcc0f3d79f46fd8c743609a49dc87eaf1d44de8fe566638e4a8c24cfeac0e62 SHA512 f4de8d45740af7380dd976c5666832a25cc98a6c8d35bbc97a9cb5ab6a142fcdeece836a8ac1344d263a7b01f5e94128c2c2e1c22fc41bb5cb66537fe3b88bf2 +DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST chrono-0.4.40.crate 229824 BLAKE2B adf06e469c3294ce5899d602c42e6d25d63c7e8518530b365e926e402488eff6dd6f00abbaa4bcb693d4d2f406e8d2c71f2067ab09c2ce96867a09268231faa9 SHA512 345542dba10aff787c0bbe17e0ad1be7b279fe2b58763aca289ecd2e79ee1c518f9bd007ca3d89080191f272611776bc368cce9b25206b96bdbd710201cd0f3f +DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8 +DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a +DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266 +DIST derive_more-0.14.1.crate 17165 BLAKE2B b7c90d96fa74dbbd5af6f82ab0bece3841bf5f7e08bf7622cd0e32a22ddf1f25f8b48f42a1387eb18a00e7816d876a445357eb594011eedc1b15cddab018c42e SHA512 703951b04d07f90225b08f3688c2afa1d78511c82433d4430827592c5c5cab3b442c914420c533e91c929caad02044586d3f81a6e74bc32c12b9d75b2345e13e +DIST either-1.15.0.crate 20114 BLAKE2B 2f87cb6408b1e1a15ea19d930cfca3948d867d268c8ff18cbaf39dcb7f7fdc628811575ec87a7728940dfb2c26775995a3165ab9c17dd42880d56569b22c6f88 SHA512 d70c34d903e8e5088fd065a6da6673eadb569a20af183fa9bd6418940b37c8c2a777c44dbdab1b9960890cba5cb7464b805667ac42f4e05499ddcd4277d24e3f +DIST flate2-1.1.0.crate 110650 BLAKE2B 1245a0050ac2f6c966b0c869f772c24544206e1e29ac7bfbd1bb20aff20151f50332e3f2bfcc3edcabdde706b4ac9180e393e4944216183f7319c3b09bf5bc12 SHA512 7f240d413aeead2fd15c0b4cab1ea45b99987c185968ccc22778ecc7e08ff32ad6fd44abcf763a7c708f5bb7c43b325aaaeb30ea9bcea2b0917c9f7542bbcbdb +DIST flexi_logger-0.11.5.crate 38282 BLAKE2B 4f93d2d88e45d492a085f0769ca2cb13107e04e27951021ba26f4b60ea95cfa06331630f28277a5d45d197acf97e6aaeae3ed43f7ae27cf7df6d2cf5685bc6db SHA512 21e429b36551bb64e6170d13fe44011e5e3ddffdac69be85c92d35fd715b02f7c86a7113985f128c5f027969702d193388e7256adc18ab0fdb6ca802e63732bd +DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 +DIST fuchsia-cprng-0.1.1.crate 2950 BLAKE2B 8519407ab5d1f04d03cc946a07050db4dd7bc70e03894e35b9e66910a3be11224084a86ba45103fdec845e94b7ba4defbd7c5217b035a0796c0c4a94b9562cd7 SHA512 ea9f5beb0dfcb023c22cfc2b37ce52dfcf3a2cbbed0f79ffffc332878858386805c65dce8469a431002367562d857a6c064e075688540c27fcb4056a110059d2 +DIST gimli-0.31.1.crate 279515 BLAKE2B c8924ce351af5b8f96ef757a189f7a9be14533c024d496c62037cd4eda790b3f6282cd3013ba82ecc83082acab1b60ea80b83e0fd5f8eeb381fd7f9df88ce0ee SHA512 b9c8c11547dc7420fe936b9f32a4f5ccf3bb68d1d9f39dedffd40d631360f6e032e719d858668826f1099b8a262e8096aa7ae1f6d7d3d7aaf47934d832715949 +DIST glob-0.3.2.crate 22359 BLAKE2B 564b72e2738cce5311aee12d8d6147631cb571f7b96d8d3823098d3dd449bcc23ffed5a6584f8979402bef95536b0e73fe9772f273295a0079782b9f7d88d19f SHA512 d15389441e337e3fab9c30102fe7b4b1b3e68d8cbb5d14162d2fd7e7d01a9812b2d6d6d2a24a60116418be41e2075e70becd6994c13b34365d512521e8debb02 +DIST heck-0.3.3.crate 10260 BLAKE2B dc756738081d855583f239908f671e9b5dde72ebfb577f6387b1a169817a03332464cf67071708a4c4f06b1ecb222118e8c719073ccdec1c0f938e5ef378b13f SHA512 b3498e033f44e03206421e565efec5b21d13107b60d35e4476331c44e6effd75c81f7678f2452c822eefd581209a2ffefd2034779cca2d8b4fac4583bbbf777f +DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a +DIST iana-time-zone-0.1.61.crate 27685 BLAKE2B 2091f0bdbfae3f63ff846e27136d9779a2d65f85cef899ea3ab0ff7c987329e6a584cf49c57de566f08e0277bd4981ac3db30ea0cec6a6757ed50d96e2c6583f SHA512 d16c67f435606334042c3a286350db46ff3409f142c0782509b136150b4069aafff0dc5c2ecfb7519dd8d105b9a2e6649df2a7bec33ee3966dc94034c9d5a1c4 +DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2 +DIST itertools-0.5.10.crate 64674 BLAKE2B eb3472697f5810c8b7002a776ecbdd3f337625afd4e42b73f437716e2be53e62ce6cc9d6255c9ffd57c03e6b48f82acff3172647d9fc1b70e355a080ca8c002e SHA512 0976d710c6940f93759c9a6552197a9254040a719570a837d5336030ac1cf0e8d3aae308b18eacdc887b5677eeab0a43f36a4bb66656abf149b4f5f2f1d9f352 +DIST itoa-1.0.15.crate 11231 BLAKE2B 17c261baf95bff2f6cf0dbc33ab78ebbab0cf5dc56aeb7f8977377af868deb5957918f1763c2fe8c080e931489ea89ebcc16b3ebd976eeeb7663ff74989a1071 SHA512 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42 +DIST js-sys-0.3.77.crate 55538 BLAKE2B 8a4c04a8e93bf5dab63784a24320a314cc5cb629df788e116c452857b8c049c6bf357f3bf8f35086eaa81bc2d7f0954001addfd0577d845844871ee138e81bc6 SHA512 d9370ed6ea892bd51ea181630ca661c348f82d575381aa4c8b529113dfcab6687f4d19bceecad7e1b28ebaca74d405862150a5b5ee2d5d55efdaf98eed1ab255 +DIST json-0.11.15.crate 46802 BLAKE2B 65821da44c781ff044bbc24a5c1128b37c87e20e683cb6d579e0901264c49ce036d853de23a8ad8868e923df948ae71b07d7732612fc03275714ee847d5661d0 SHA512 50e1b0439ae12eab28a3dbc5a6d224a337143d428277160d6176fcef8e9edb9466376fe4570b8f66d43719c97925be37bd538724b7713d471592372d2c74030b +DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f +DIST libc-0.2.170.crate 760076 BLAKE2B 5deb440e04b0614cf5ec5a379d66b0f05f6f3eec1268742eb9052081408ec5da5f5185e63de59f3751506541321c618fd623d7b46b1892d360b86b6e250a4c4c SHA512 b716f1a76b208c5b84692fa3084c14dbfdb4a92b86c0e01215de04dc34c6e581e5f1c4561994c65a828838d5fa232efe93c3935faf5f83c8af127a5996f1f9d3 +DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707 +DIST log-0.4.26.crate 47022 BLAKE2B 529ce84cc92d1258327e148e1fff16cf4cba1d53f311353a15814856ad12d48f654aac5d4c6356a45439858a2f1938bdb7df582a1d62bf75b9380f2cf784caf0 SHA512 d85f3cb8bf90893d59b3174785295616d719c8d2078c04fa3e131c3f3cf84b73c75b932348df70b7eab2aedf261b27e6544f051696eb5c287fb461d1ee699ec1 +DIST matrixmultiply-0.1.15.crate 17024 BLAKE2B 3fa946e9dc2fb81c4efcee80aefc7ef6b90be7c8c05e28065c21bfb670c46736296a3196a04b578e969c337fd997cda8c53013368ddb30c0dde3da137bd3d0ab SHA512 5df51a43b0cf037d3199791f9d9bbc9816d3d88f7c4c4d909de190cd860160fc9783acf0948f26eb8c0c175f0f46259164bac47daa5daa7aba48e4a7d156ec4d +DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2 +DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f +DIST miniz_oxide-0.8.5.crate 62237 BLAKE2B 6afb3df5938ce0427fa8f61b0962b04ebb8baf76f304dc9c1b6d89b685be89c4bcc241a3cc54fbaff73a4607e58803bb6eb1689c817ac1302476db7a01d12abe SHA512 a82e36fdec6d77876c00bc4d03f2d8d90be898091a7c2f474e1b0c21142df2f362d5bcde407ec6bb48be982b22e2bc7fb23572c8aacb2b063ac20149b4564251 +DIST ndarray-0.8.4.crate 118100 BLAKE2B 77a2948fe12561fff8d779b355628f92ee3a65e1737ac920a4466f6cdab36d1f4838db05bbea8249bcbed953ecb0d5fa92c5b91c66ff448a14dfc3c2b2ae5ed7 SHA512 60ad92a8b333e01d29de01cf88554afa73fc9742757d72beb0867499675d6b9b3b72f21c43ed7fc0daadb0682d5de9a01ac725cf355b820c6e01d59b5a8f4933 +DIST nix-0.17.0.crate 195654 BLAKE2B 6857f84b3deb5800fe3167efd226f042bbcbbc61a4153ce59f69fb544616842c3f6d4566444201c669c6235d1d7577302e5404399f4937f1c0bbbd17fd47ef71 SHA512 3f2bc4f0e9dcb9753535aec9d626ad8126f0a9ea18f73760ba72be0f35d82542c659b4c443783010de133a318f423a16f71cd1f1dd5b5a1f4f71ff7bda247b63 +DIST nix-0.24.3.crate 266843 BLAKE2B 1eb1667a60d07c4541a0cb0cf0bed2c7c5256411028becdb229febd0f6215e8e176d3bf691f3bad2fc64841209bf364ff8345a3e92afb2bf8d3705fd734c8ef5 SHA512 6ecda3a14ce00002265e46a066b443cd3c092a306e25d9206b74ae31b8468fd5105b597ff1e7097588bbb6ef5e52fa48ebad908303b61db53361b525f44c13ad +DIST nom-2.2.1.crate 95289 BLAKE2B 1f5ae66f897499f3a24d89b133cecfde5f38b80a05da4dcd4cdbd87cce6f37a690ebd624c0c190c77338afae74e25cbbc9b1f2fc765ec474eb8798372d11ed4f SHA512 f628351d0c9d4346aed3406777bb87d34a53be739b98712f80e17fc31598a75d165f81870f2e633599190ae1be850147502b5b7855bc184fddaa2dabd3314377 +DIST num-complex-0.1.44.crate 18974 BLAKE2B 49d0f7333411fca4396803106af6b864a7ef4db5906567ccc95a8c43d31e04b8ebc647fd52cb64f4649fcd79a900736bf90a50a20df87e102c17b2c0b233219b SHA512 771d654a9c7e3c5963b7e869089dec453cb72bc633492c2b13aef9bc86efb526e18223dce4e58c63d0091cc81a51f2a93578f62923226c8ff6328a748aaa7a2c +DIST num-traits-0.1.43.crate 7659 BLAKE2B 313221a4364b18eb29e2d4c480209766c56b1ca2587a0ab8f668c71cfdefcd733d64be1430bea1846a77f075a26137fbe71f2f4d9be79688374cdbe9e0274ba4 SHA512 35ee0a41f8ae33b1e6656935585f540956a8155045992e7b488b9fdbcf0eb9c9adc90ed8128d45f248b9ac583114cf518c4c7de719b8c6627b29f2fbbac91f17 +DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956 +DIST numtoa-0.1.0.crate 8999 BLAKE2B 6a8cbf17458227fa87bdd6a35404e09afc092a1ea45d68c6c035e08a9d344fdb356b1bc7b52239dd6354ed9094e9338ccac599542bd7f0caf167ab8d17ad5fa7 SHA512 41b5c774048592c5867fba217c85d4ece4540e0f3ab0eea7dd1a6af340ba46dae42bbca62ea7fe3afdb258660f39a3d3082264c99dea67d3d1ae178d00a01354 +DIST object-0.36.7.crate 329938 BLAKE2B 0b02cf2f44e99002909b38125edada1a259feae59fd0e5ef52001755b6878cac710c87c60fbafdbe405281e039f68572ea3d8093d16128899090fd70df7f2fa8 SHA512 dd69172349ecf51fd2351d32cc4453760ca1d15e854a1cf5ed99112032901a54b4645b24163b946deed11f81d3e3035e1a5afd8bff20f335dbd05eceab073478 +DIST once_cell-1.20.3.crate 33456 BLAKE2B b16081751a1b6649d0235fe9cef3fd0a9023d4f6980521933e4a411282458050ca27c1a8aa01d5237d424fa279219b5713da21d8900eccc3100d19c37d24b7a2 SHA512 3ede903f232d6ced73aa74c6b2e2ec306012517eac684db253913df4656515d087d1aff9f437a58fdeecb77cedf8a5960d6772d72bf1f1f19f1ce3fe54bc72dd +DIST onig-3.2.2.crate 36111 BLAKE2B 341a2885ba62b86bba884c4a9205c4c3715f7be9a541fc0da808f70eaf41054dbcc8346ec05b01d3b2b1dc87e321abbb0f47f2599f1e174bbecd53c67eefab48 SHA512 4878efcf7e76428a1c0857e2f454049ea74756fdf2c6bfb98da4edbe3c632c1c1acf717861436ecc48d935bff7191b7aac325b6c67b1c37ec4150ff936212b08 +DIST onig_sys-68.2.1.crate 652394 BLAKE2B c991384e6a90ef65d6e894868a0eb3cd75c085f2facf9955bf9c17a95e86ce600787920b60edebd336a64c4fe4ab37c6ebcf3994040ba9c166bd656fed525d59 SHA512 ced01ee3400fc6e612674f9417f065ec8ed5f8375778d6f33ac6bd52bbb356775e77d4ed7e1606291ee50e193188265edfcd2642179ba424b66e409537925645 +DIST parse_int-0.5.0.crate 3173 BLAKE2B ecefcde60969d04989ffac987c2ea4091c0d208fd805597c60e5f227c96c7e8d23b62d132dc7975e8259af3e21b001641827052be0a25a1ca7ef15a369949a0c SHA512 72e34f0a57273f769797b859fc6123bfbcf52b00fdbcc81795b177f46cb01db030c0452599894e52181b5c73a548ee4666d0eb58d11b9682daa692c76b21eb6d +DIST pkg-config-0.3.32.crate 21370 BLAKE2B 74ded191f066bc223739b3d4afec58f23de57566e7604e3dd62001d9a095a7b6a3633fdb01fdc46960c8134a694d6bf097d9ecec62b38c4f14acafbbabd6e893 SHA512 59569110185fa665f76a13e884a67ad1578c55246abacfc18cb9f037b2d2d9ec3f2078a3adfe5cc82a451892c9ad55f918ee01362a741f57dc9ff6846a4e32e5 +DIST plist-0.2.4.crate 20553 BLAKE2B 48800a884b764dc478baa54b9c20ca040a82665513845ccecf4268b9a5117722abe9fcdeeee022cf39c7d203bb8778bc70b2936c107f710ed1fac78805c43498 SHA512 73be6b2bc9c47125187d0dab0b0cc72ceed66bf7adc62d95357416caa42d00d9e34275a0a998ff8eaee03167a33a572a6d8bc759e9ac8aba32488d2fa7735045 +DIST proc-macro2-0.4.30.crate 34731 BLAKE2B 0a27a06151b54e4ba50f08803a5de44d9c7702ed72cab1b775408696057246e3336dee3a61560886cb24fc4cf582339c8bde7d9211e4e0524f2c719b774339be SHA512 73a8de3f1d76a8baf2d45afc1497bba8c0cbf231bf9b6750b9cee2473f492d5f3957ac149998da720acc8287c96d604971b51dcdfa629523bbdd97c297856ac0 +DIST proc-macro2-1.0.94.crate 52391 BLAKE2B c50986bb34468379e22215c6572c2b722f54381c02258fcba6805eef0166e4bb591d20b94b9084b5d68972df8ef12476ce0d1081588cf80dad3c4ffffa347660 SHA512 3fc4552187d4130f0fdb415f94e625c156a1fdc6cc955fda8a68b49983ac8a83b897f43d1caa130c4f0932fbd9651140b7670601faa2b9b936947c3fd89f7769 +DIST quote-0.6.13.crate 17475 BLAKE2B 985287f3e619c46b052e704c6da78565fe5d8e4f9a0d503aa0e8818f595fbef32a437d67228c35cd02d817ee3e19efc03e75239013a87a79553bb252f15c8ac5 SHA512 bafa9ba42ea6ff2d6df652384485c58327de6eaea2832423eedd8ef8b4aace673c23b70f1f22106515ac13d7f625cb8b1a5e8c4388c1701ea3cd86fb9ac3056e +DIST quote-1.0.39.crate 31206 BLAKE2B d7a29f7a39350831e664bf39fa4674e6f0ec7b1d1219e2939d3e070c2546b8b231a00e6e052709a5d3448da71701da69ee6952bbc787c76db1f7cb5eff8c3b6b SHA512 3ed328321f2781c00f6c3d163ab41d46a5ed4290aedcc6be6ff275a2fd7d56dc48b3452b167dc713b7883886d485e6f983bd0acad7191ce3f3c3a7c709d27770 +DIST rand-0.3.23.crate 11318 BLAKE2B 5ad9b187fcdfc515c606a73bd1e9aa3215e367659c35a013c9d4d0f80f9832331dfb971ca370a627c0a2afe2b8860514740e00b1d7572e221a557b5570cff6ff SHA512 a4f46fb7dfe39677dfc112eeb56fb3c28cec4cdaaf95f336f2a494f0b2b30fdf22ceb9ea956f90e13c7ffe711a68aef9fc1a80d9a911d93221ae263c243fb2c3 +DIST rand-0.4.6.crate 76401 BLAKE2B 5593ad2d7fb8214d917e2eb734f5eee548f48fd699c9fccc0de9c0c6ee49803a426492a25fda2ffcf844169e2bca00709d4dcd9ceede72a4667ec431f5502fda SHA512 a91c6da7188b426bf9cb832892ee2af87c4cd65fad505c34e9c63343da71efe8c0c67b75c405dca5345317b7940d1d0fc0b20be85afd6b3089203e5698d86f0a +DIST rand_core-0.3.1.crate 15483 BLAKE2B 2e09b3b3306514c29bd7588498e79be7353de656d8cdeeb4dfc6a1ad092f15a861c2ac20591ff71f7f60d986de9a09c860de4a9f06799f04e736b31bc70a5fbe SHA512 5a7ae601124502bede760fd3179c2b28059ebc3b5983bfcb6b8fa62fb58df95cedc1aeb2734e792d894dfa4620801c13c29702f9cbee64243121575d4b6b9114 +DIST rand_core-0.4.2.crate 20243 BLAKE2B 22fee5e44127eee047ad8abcd9dd828befd0feee77ee9a0bcd4dd42174b1e650f2a19f1f3b39fde937e58c17afaabf7231e2aabf214c2eb22edf3f85b73f6eec SHA512 f7ae3b690e2cc1fbf2707ee04b752bc5472433f737ab581f9872f7c5660966bc6be45f0c5d2cd8771105df6d4a9d206c55f5cc6ffc1693b46e1ae03a2883b028 +DIST raw_tty-0.1.0.crate 3840 BLAKE2B 69b0850ae7428bbb908ee34ec923d14fff30f55b62c25b74eff14aae3de0bf4a9cc2262e0da2e692b560d876c61d57f02b516c705107126e7a3af6779525a76c SHA512 82fc438cc88e1f9435c3a3bff66c2f0426ca534f6eb17862047cc6b0f4cfb35dbb0924f1e99eadf09da0abb95f9edfeb26438e270b49763f6bed237fd1437687 +DIST rawpointer-0.1.0.crate 5821 BLAKE2B 222b9ea245d95904918f7b8c89abc420a960ba2b48f4b9e80a78d5ae3fece5bb5b1ec24d0d37e3973d83c445c6bc2312c4191c256a6a0fde7b0f7e6d0005ba10 SHA512 c5316d4db8167f381bb842d5b7b5b01bf5bde24f6a61afa90d4d9c027e276e23fd53b4ceaae031caeb7cffe7fa9a0d87c1f43bb9b3c1d046161c081b1ac4f2c0 +DIST rdrand-0.4.0.crate 6456 BLAKE2B 330ee64d998a0358f95a3dce50b3e1bbda531a3b613db7e5ba4038a1cf7191b60be3a0f33416e05380c41040704ce52727928915e9d2f4565d39984d1c86fcd6 SHA512 6476275d124bee28747191471e8d8f321a3b1c148c1f2a7ece4175f5244a7de90afe5f99d2eba5244d886b92e38232398864bf90e6d434b09494533942c8d894 +DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27 +DIST redox_termios-0.1.3.crate 3240 BLAKE2B 3aa7360c9e982faf433b527605fab4cc01f74eac5f1f4698b5c7f43e5a7645fcddb39bd639c8f6935fb82db5a065630ee788fd8b111cca80be15db1a08d0b3fe SHA512 a221afea8eb1c7efe848e270a6ad5b65a97af945b4f64d3aa5346f5a61a9daaac1993446ddd78c1923b798e1659518856d7260d9d30651d91897850b0a1950d8 +DIST regex-1.11.1.crate 254170 BLAKE2B 5cf41012fc2ba8a006c0eb4a922cbbf1614bf300be361c9e2d98956a9a5e9b140e37bea09132fab7bfb633d4439158723624bcf45e8c619c4061b399253c1b82 SHA512 d065f6dc405771518260425f39a5eaaf8cab62e78c91ceed3b3994a9a121674d2484cadaaf816bdad89c87a40550d57b66a3d9de6618a7119a658301ce7e67d8 +DIST regex-automata-0.4.9.crate 618525 BLAKE2B ee3fc41c8c445be4c1aa3e5b19a3e61efd641b1a24e7a1ed55f837c1fba9c816272cb4645c13232b66b170bc7c413802928beb22e3891500141ad4ede65b60b0 SHA512 40bde0ec91cc27bc0c3fa237a37ecee5a1f023dbe006a999c5888f8f578ee2c4c64d9edfe1827546cea8e92ca3c10f8b4d494d81f3d0422b40d90bca9cf598d2 +DIST regex-syntax-0.4.2.crate 126234 BLAKE2B 874339260fc870fcbb8bb982629cfe1b5789877eb3db13181a73a4295b567a2466b3fc17433b890c0a7986ac3640382bd28c155abfec126b650d2a1c99003b3d SHA512 9b37814ab8bf8ba9d0ad125ea4038f505a0d232084faacbc4fa4126afefb3b8bdee03bfb55ee6f29c518a28f25021a31a8eb35d69999c48c739b1c30c2dba98d +DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8 +DIST ropey-1.6.1.crate 119463 BLAKE2B a0d02ada75d96381b02715ddf28ceff9dc6ce718054d11eef5710d0b044d42c4d324cb136e69719806b0441be47c2d94f67eb5668aad344806f31a9f96c36974 SHA512 2c7d4379fd3c8058d25e746a830357f1e0740bcab99da58274b2ac54c17999d166768f4c366c85fbf56507841a2526c5a0a69290ccf3f9879c0df39204b094b3 +DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8 +DIST rustc_version-0.2.3.crate 10210 BLAKE2B 1f707d1c66d907c9b1d2ef6d0bc6bc9c89990a7b922a6dfc2041865940ff3854c4d0e1daf558279fd5871af5818d4000457a32c949104f46538312fbf730443b SHA512 01fa7a758dcaa4f15c18628a0d5ee5adde5ade96a8b7dde0908e39e27b290d1e9adb20d44e2adcd379341d2d4a0c34a80dc12553a3bb4efa4758988f28989779 +DIST rustversion-1.0.20.crate 20666 BLAKE2B 49fabcf276fe3f59b4a1c2e8a07364ba59c5ba4e0a33fe4150ce2eb93c6da42d32ad4d4a197baf6616c1cd703d34fcf5a90186c5467c1656388d55e7962d01a3 SHA512 250be168a4ee64f4b85d78658706659122d5fbbc748f321fe2b9baf48c547de4f0004c87882642645994b7798077c514a44e06b73784a800d04e4cc673aa8906 +DIST ryu-1.0.20.crate 48738 BLAKE2B b126085448cb58639a7b5867fe313dcaabaf19df478f67fcb6cf15b8e881a21e641878345e0bf1fea7d24b56b921e667fd26a39cb81fca7ea02585332068263f SHA512 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384 +DIST safemem-0.2.0.crate 6450 BLAKE2B 44598e47fa6185ec0890b4ba6d0e7b5f52f8892875741c3819559dfa61491736d4326fa1713916ca41d6daac72829ad31d0905f2e339a069a987d9715f340795 SHA512 71901f472668572e849504a8a830d4dd9a742729b0158d2c6865a5ad86e65cae8b5bb83707240ba03a7a74c610ace87f8b59bde68998d2bd66c19849aec4fc8a +DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c +DIST semver-0.9.0.crate 17344 BLAKE2B ae782bc78f29e45577de8574ee58959c70b54bb0b6f45a5a7b09cc4d358d9a0a80bbefc6e0f2a330e2b55adfbbe5c1f64f4ec9bb94c4adf7bb3e4fc9c142db6c SHA512 03a2ea563456f812c301721c3572370fe4934a22db60079da0dd6ffa33fa789e5e2436ef09e62fc35e0b742b06fabc290992c74eed80419a353c9de9449928dc +DIST semver-parser-0.7.0.crate 10268 BLAKE2B e46b7cf9d292f8fc54561fca4df8534dc96f6be920a5c869c405ddb31b9d1a18eab0799207113cf4910a52cc0df5017ab1bc1883a7c3787ebf2d60f09ac0ab4f SHA512 17320468ec6b9862d595f358d70c09ac6e09db7885fe0ead7a1e596f79350a6306e8bfde5bbd6512008a7c5454da1c7ae55fe1e3bc1c1ff02ac9df54c0a6121f +DIST serde-1.0.218.crate 78968 BLAKE2B af7f366a1aaaeb9b5f6f22e7398a30ea486aa3391ccab9a11435d45f7eba10796ce671556b771dbfd8b914563949c54b4a4f14fe447a549e879636339fa8f128 SHA512 35ffd8556287fa270beb90539c1641912d8fb233c53c4017f1f65a483b2dc340385458b9a869b7142b4d514bcc87c25e69c9370b3867e463be887bdebd19ead8 +DIST serde_derive-1.0.218.crate 57782 BLAKE2B b2244847b41f1aa396352bcea886d6a28d13ede23ae6ceb813143849cc107b3fe0cf054687d9f35bbb9db4e95c619422d9710532fcfffff291280cbe3649a433 SHA512 e89c076b0aa22ad74010f5b6a60397b9b78b59ca50a9660b29ceb1fd608cab820c47e787e450da306062c0cea1ade7142a7d4626a77aa0ae486096c130442cde +DIST serde_json-1.0.140.crate 154852 BLAKE2B 733aecfb88fc37de37b60fdd33a45fecc2bf0ac2165b81bdb12665de7e26633836160e927be5d538eb2056a799e85ca4a1008cbd30af23b72a594643c6015f22 SHA512 bafa26fd43ba30cbf73572b8203292b1f275995636e9dfc3d47954939453fe4ecf0c60f25d2af1ec16c7cb0e7ce3b96cc07507d1b53b7db566fe7cb2624f0e12 +DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a +DIST smallvec-1.14.0.crate 35561 BLAKE2B aa8ee61800a6d13eda5acb4e9dc03543160849479a96a72c50ab38013b23e9593a665773b455a09777038edd436d7a35b501f6d4a0e16ff49544be60345a1e50 SHA512 90de38f208f551cdbf4980fda2314dee57d4e2bbf769a01c47bc849189e9243474932052faa92fe0ca59ecc9c5d1ed84091ef87f724343d38ebbbf710ba232be +DIST str_indices-0.4.4.crate 19480 BLAKE2B 23657f3b9dde27948aa6450c374a4da00d6da449cc66df88438e56013b2a085e9099dff51e100dcc9aec2c4eb61356b7296636954afbd801842c20b0bbc2bb5b SHA512 8f7882a38c443a4f319aa2b009d32160ae2b7488cae1beb50ee5106ccf584c9f4a3cbba0829a1bcaea6d707bfd6986d99decd21bbd4fe89e8dc15412cfa4879e +DIST strsim-0.8.0.crate 9309 BLAKE2B 40a8be506c43ee1ffe006ddc7dee98c3d418bdd205d57b78f5d1e4c9312feb57e1eaf952e02d92d4e0932db240c6fba45beb06ea8c4fc6de1cf1faa8b6a3a939 SHA512 1d55a8d946cd55f5f37d06aea536549ded95739fa58c0f2da285a0041154c181f663682bdcac643aa198b3e762d694a04f058db985c62ebe22b5c16327ba6d34 +DIST structopt-0.2.18.crate 26373 BLAKE2B 88a5570ac97493e4324fecd2e93851ea162de3bea583eaa0b4d4d4879bf11b1ee0bc69a7ba67c2599c05efe38c5967058b58c6458f3a830aece831958477d820 SHA512 fafa9cea1a99950d1ef8bde53ab5a18daabd5cf131f3c2bacf25786f057b2d0169fe6f5d6e96761a74b6e9cf72a9d6b7dfee53edfe0018a19260ee66ba9b5f97 +DIST structopt-derive-0.2.18.crate 13088 BLAKE2B 022ecef6b8a341bec3f557b1f4c961d2e4a0555e3528abe9dab635f7476b48ccd0cc75e8f0bb9fb02de676742e36eb62eecb01851cd929ccae56da3128965c0a SHA512 b3bb2a2c1b28aa275ae25d60ca0a3878b715293950748fdd4ce5c791bc5e7fbf066db3bf4678b7a6fb3a61b2b2703ff14503f87db3659281c7b201b427c59965 +DIST syn-0.15.44.crate 184212 BLAKE2B b735040d69d10b30c94de2e8f776d25ff5ec427e79a7371345a9bb694d50c4f3ab848ed30166c683aa88f5f73f7361dda2a74880d21882975485fabe5bf65d33 SHA512 c6c9b5887425e1e5fab905e477fcea41bba191693c471cf26922a9dfdd59ed957155a399406cc3723933a869565e7295183dabedfc34e3e2a20874ba94c7ead7 +DIST syn-2.0.99.crate 297762 BLAKE2B bf21147201b59235423dff51de5b652eee6f132d7fe173806e10aa702b09519be10325cf6102612a9def458c3f7bb3f353bef352a1f3252cc757454cc71a129f SHA512 d11d53f2482b23633dc9296bd9eafa152b899e8e9393c2bee6ffe9feb77fb112bf693f41a531bd5de896834a75eb23351daa00e32475166a69881d5bb0dbed95 +DIST syntect-2.1.0.crate 665726 BLAKE2B 66a597d84a777b51aeff6fb97c2b66ae1e7ba1909787bb883e0e4c80e615ab773a9018167166d5ca3d9127cda39505c98a11bcb92c9d02398372480183bbaa9d SHA512 e672de4ba1016d3fdc0977c77dbd3ac3d43bbe3e51e492305f7e8b886d67c1fe8ba872850f8caacee5d35405454c32e931a224984450bc55dfc1f5414cd8f214 +DIST termion-1.5.6.crate 22677 BLAKE2B b918dc82bfa370bb9662bace34211bc7afa03a042dbd25f4456a7e3859521d4f32ab755780e58070f29eb7903f3b4f8129eb9447cda953b9190f9df3b7eb3aea SHA512 228b6fa7e2f280d6bfc7cef77e7a1d0d8f597178e66af0bde1b1fb6553857b511ba8a6786165815aac6d8a082fd37191f4ea35a47f1e1182f7f2c6086eb34a8c +DIST textwrap-0.11.0.crate 17322 BLAKE2B 257428908342774593bbd3528fcdae710712ff54e8a711393a24356d8ba0e16e466a4b20c05f942c48ca76b3b5b5aaa90ec202f782cad892caa8b71ccf124da6 SHA512 f5c0fe4f28ff1a3a0931e8e235b5157a45f67967985bcc752418c5ec3481fca44a8ae4800088889b37e8cd0533f53d3c456d5ffd19b767b3f83a87b49a2e209a +DIST time-0.1.45.crate 28911 BLAKE2B d43e2431752881f6885d572017f461b304d07ee5ef0d8b4898e62b47c8154268839c3bf69b141159090cfc0d90bd0113d6084fe99ea1f2b1e20668528ce21112 SHA512 e643fb8649f3efdaa1b0b6abc6a140d55ac550a55cad99d0cce9415dc51e155fb1ea240953eeaba5dc47ec73c49ab7f2962af79c693436289de0eb3ff60985ee +DIST toml-0.4.10.crate 47534 BLAKE2B 853aee7f7d9261d2d0daa755e6c158e2b3a173a6e9d8d96cd0d78d75f2ecb1eea341cb8be8b3df9ef1ec34129b77e4f45b4aa849e8c33e6a1f07a3f832993a4f SHA512 15bc40159478207d204e46ff2459dd3146d8f5508f07399f310ec8266190df8a1375e860fc8a7b3fb372b01e9d0f65eaecdc1b896ac2a921070ce76fde82f160 +DIST ugdb-0.1.12.tar.gz 596600 BLAKE2B b8c31807cd227532df59fca4a6545948c3a13e6e40ea875e4aaaa7a30ab795854829006cc325e1544e3c4830898fb05a1226c4549e7cf42a652eb4e7e6a970be SHA512 69e4813b0f4afa1993cb84ff156a6c0ccafb6f8c10ad0c77e592fe93f3c0e843ac034b6e82ad2719483f1c896cfee20fa95c1f4cf6be0895124f77316991b258 +DIST unicode-ident-1.0.18.crate 47743 BLAKE2B 517ab42a847020515b2b871844d0571ea672340f89a762631a791eac18935ac122122fa5566e58b99ab47de179eadb5298e8ff1d05b123c4e93b7fa989c8e31f SHA512 d11f89fb696f9e2953c96a40b5478832651b268c83b9c7a700b07e768e795d6e8dc346597d1226df21219d36866768d1f640bd8edb68db8bd3d5d437b2bfd324 +DIST unicode-segmentation-1.12.0.crate 106323 BLAKE2B 268b60aff6694434f05afb7e2b8187eeccdceb77460f8ce2ac0f84d470f8a4e03182ce3f7906177cd2f00f989273a7e69061a763006245f0876bf21b15076804 SHA512 55eebfe5e9972b39d7c0011d80eb5f517d636de37870999119a3d8f064f21f67b66a5ba9761d562738b05f220e21d56b5be7bbd9cc51662994e40dd67c38f946 +DIST unicode-width-0.1.14.crate 271615 BLAKE2B dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e SHA512 3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb +DIST unicode-xid-0.1.0.crate 16000 BLAKE2B 159004a7bbb7476b39e982b51dbf615717095fd5946536e757653aa941bbf1b774f331db744ecc33bb2ead4b0a6d254fde86cfd6cd8b83ab9983fa89928eddbe SHA512 cc5343e2166938322cfd7c73f1f918f2a9c46846ac0ef55933d1e44cdfaf6f7da2b7ff18b68e356c47b6d8ba5565eda0db42c347dcbde830683f341ac2b1849d +DIST unix_socket-0.5.0.crate 12261 BLAKE2B 833c47f6359554cb76cbac50ed91380a2dbe406f75e6b366a29a807f6981973fc84560ce83f8483743ad31bc0c53d8be40f215f7cf0822b7405195bee474e79b SHA512 dcd3589f042491540a69176dde6944710deea7317ed0de6912725686473ca15b34dda0a67490252bc8ef5c1ffdf7aecd7b76aa81a27a34b3c4870305c89412e5 +DIST unsegen-0.3.1.crate 260915 BLAKE2B e0cfe8a87451cd083f6e17e5d1dabe437eb465366d9354809899f0e63d924c423834abcbf596fab62b13aee8e9f3d2618d71d6fab62a27a2709a30d65f48b994 SHA512 4c77b1045b9343d1cfe7d97e5dce58b58211ec167b8c64235041c4afe2d444ab8335c10f5b4788b21c65fd5fe7b1cdb8054e90891ab220716d381bcbdade23ca +DIST unsegen_jsonviewer-0.3.0.crate 31294 BLAKE2B c0093ba7b29da640673a28017b6797d9e71cee07c6498609374d6908831bfd22152e67ec534b32a635329255538e1d365f02af57a76da54ba5b16dd6286066cd SHA512 49e7ba4d5832bac05a8a6b808d0e0232d13ccc7d554ca646f408ed75347c783c11dfbb316bb4fd3c43c7e4f47b843ed00c4a581d2756047dfb381138f488fa1f +DIST unsegen_pager-0.3.0.crate 77968 BLAKE2B 7564baf62fca181dcb388bfa1445ceae486c51f91d9d72b6612bd6964c9ebe8f1726b51975f0fce61951cb4a542edbc966e20dd0c2665918e7cd5874d0be1783 SHA512 01fae6db45abfabb0194149837e345ebfd60e31ca25b55eab076aa4397dc37ebe5157053fde1ffe99e249381d33563ce57a1c9b814cebfe55edfd98767ad6a28 +DIST unsegen_signals-0.3.0.crate 3009 BLAKE2B 7b0db5c250074f72d731d219f0f14f0b93e22ad3e0d27d5521f468730ca19a554d6b0a941900740684d6418cbb366ccf73cb78463bcf7a64f4c536dac0896c24 SHA512 93ba0a5fcdf2d8fb1acba534654fe6d1a775ca037f6561314fc650d1800f21b3839bdc74bab160229609088cd84e7bdfdc51c60f5d42a213ef16983a7210eb9b +DIST unsegen_terminal-0.3.2.crate 30271 BLAKE2B d2928bcc784740724853c38fc0b80adca2cdb5dec9d81cb28213240d8a39403be59bb507ce937a291d1a343964c808e749d6398862d5f8167bc852b8933a58ac SHA512 54657dbd5ff296af9a6406b792fb7fd7046638e62c1421461a58f95fe4c4c3a971c890d4fc52add216591978ec32b486d4a2f9019c5876d62cc20644d0d16889 +DIST utf8parse-0.1.1.crate 13995 BLAKE2B 6b1de4afdb2837a76637de72f6e6a81e73aa683d8da04ebc94cf7ee3c542845d2244e721840511ee2725320f2f882722e2bea67914435131d7af1ab29291d1eb SHA512 543d4daddce8248b181deb1c3952ca15303d78616480b23af163ca6253a059b5ce9494652839a051c48a47816c3dd719465bbe5bb7930db676a16bcdac47c517 +DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9 +DIST void-1.0.2.crate 2356 BLAKE2B 41578fb5507f94e7d135f9595cec107ed00a926f4968df8b59792d1676ba5b6980cd67310f820fc37a9c14ebe43a171833fa8dfc09eac5dd42f2ebe808632a83 SHA512 1cc7d282600dc0164d7e410aa895d5dc99de1174991549c6733c94cc2027026517f66797751d737869eae58c560fa26edbf43f36b3015eb2fd99828fe40e0aa1 +DIST vte-0.3.3.crate 2397439 BLAKE2B 213fccf5b1f09b2d23bca57be2abec0a3580ab01864c51dd364676f5c66decc5184ef15f0e484f9a94e892f118863655f4b2ed2a340a47276b3fe7b4db901dec SHA512 5e00e8409ef21edb5aa6fbe482785fd5969dd17a6695f82328c4ae12ea8622712dc3473f33832fdfe0cc2395411431fd47842e86e35022149d5e958c4e5f8fe9 +DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad +DIST wasi-0.10.0+wasi-snapshot-preview1.crate 26964 BLAKE2B 525db01649a5981ee82ad80a1a4bab9baffd235262452675619f36a1b454017a74593c53c129f8c30b865994bbe30ef19cebaad9d245ccf54b9b07ef70d5d8ec SHA512 88e2da617f50d9ebfb1e0c5857321fb86b5ee88ae8a8d199d3cc092e0f39688a2cb68503f7c6bb09dd6bc50a9a03597a1eb2e032150fbd0d0b8afa02ad771c88 +DIST wasm-bindgen-0.2.100.crate 48288 BLAKE2B 8fc4f71c7d6cef15f131a9bdbb50e3eaf9f3894a5b6c1d73876824efb731b46e8c3449947893103f23bc15cad228a1b8bcccd45ada20df53b3f3dde6e419c184 SHA512 2a8ea7ec669efe10f5701dc3b2bf496e33afa70c31dbc65fda5191c9c28ddde54fa38bb168a41b0319a4ff0bb5ccd897ce51ccd7e523e647b3544fb390f8a4e3 +DIST wasm-bindgen-backend-0.2.100.crate 32111 BLAKE2B 6bbbef709753e22230176121388a95fdb8f4dd32e0755dce5bf6c1127c54a236af292f319d14b5cd97bdb310fee65288e8f404921b83693e287164cf9d589a2e SHA512 a2ee30c1185644f989af6be34e93149a791c05125de24c0ff91c320f683f6f5d939fe42b8ca09d629096388a39256469f8b96a6e35722ccfdbe8d978c9a51770 +DIST wasm-bindgen-macro-0.2.100.crate 9663 BLAKE2B b8a3fc6b3571f8caf106a9e9f3d9cc48b86096d714c5d0208f03d44d47003b3b26441b5cd68bcd49a8c05758bc1b984e460fb62ab439ff2d68c72766ce20358f SHA512 a1942f838eff5fd54406b573d81fe18f262df48a19535245b1a46cb31db2a022746e861d72e5286c632969d15d416655460d3865309c4947cd3d7965dead5c42 +DIST wasm-bindgen-macro-support-0.2.100.crate 26243 BLAKE2B c18e35978b62dd2822ba8a4f6955cd5154b2a0d81b8e8032c2f8bda42c1c25f74a13f3e1c3a7bf47a823de2517a237e6a1aef18b189bf1f2b934123c58d1eb34 SHA512 0d03eaeda37c9c6ae06c0fa96e872b54780c4cf545b621c730dcc113dd59a8cb6333c5e3818f51365f71913b9669d8a870a06e70729722d03c07a49cff8a4fdf +DIST wasm-bindgen-shared-0.2.100.crate 8570 BLAKE2B 886fa72cae891d4c2311e12e28f0a7bde9bcaca893603afa3428a402726b3b2bcdb6cb7dca6fdf983bd8fac5f049f0543537f2161318769b43c7eebfc906df27 SHA512 3fca8ddd1c6b2f66f70f6608c9b341822603f1c0dd71d47d27c6be8fe3f2c88598619946627720734b48cf999cafd0c63a08af5db28ea78a1538d2165a5fba61 +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9 +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36 +DIST windows-link-0.1.0.crate 6153 BLAKE2B 51b34d4e9eefc3d389a205f1cc654b142641c562b036775504fc923ea83702ef9d2bf8909ce439af7f76aabb486405b91c25861510a92c2f8aaf05944912a2ab SHA512 c7e7b6e67b8041534f8bbf36567fc627b54b46bb407743864fd34113e2f30b7ecf4aa6c04ec328ef1b3cdbebe13ce8f9a2c31520d51e1c32732bfce2a1ff015c +DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061 +DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f +DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5 +DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b +DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822 +DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f +DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96 +DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb +DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd +DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7 +DIST xml-rs-0.7.0.crate 50980 BLAKE2B 3d0427660327002248823c8b565f83214035d5b58273ff6adbb38b764c1d03d84418769e70bb15bc5dbd986eadbd8d1776dfba175dfb24f04d5e66e5f6209a03 SHA512 8763f37faa24bf5a460f068f16458d5e3f8f5cc8a698202e7db792d61edf580afdd80d6b02d168fa021d28049a48e5a583e346e9608872704e9beb6b3f345bf7 +DIST yaml-rust-0.4.5.crate 47783 BLAKE2B 3e888c5cc7afb43eaf3aaab2b6f47b86df164a66eb54d4e166b965cc84b1e06cd17bd992a0d6ee175d9a73a76e2b44a13167246383ed054afcf3cc1710b309cb SHA512 7621dc8dfd5e7d4a7a8805b2a7e8319b63b852367655f2359d4e3e8fec6c4fad52d75c46ce1161e4c674eac0780b757ce9d34e664e304d8d2beec7afa0363ea0 diff --git a/dev-debug/ugdb/metadata.xml b/dev-debug/ugdb/metadata.xml new file mode 100644 index 000000000000..f390aa828259 --- /dev/null +++ b/dev-debug/ugdb/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>pascal.jaeger@leimstift.de</email> + <name>Pascal Jaeger</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/ugdb/ugdb-0.1.12.ebuild b/dev-debug/ugdb/ugdb-0.1.12.ebuild new file mode 100644 index 000000000000..48751791f8c6 --- /dev/null +++ b/dev-debug/ugdb/ugdb-0.1.12.ebuild @@ -0,0 +1,175 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Autogenerated by pycargoebuild 0.15.1 + +EAPI=8 + +CRATES=" + addr2line@0.24.2 + adler2@2.0.0 + aho-corasick@1.1.3 + android-tzdata@0.1.1 + android_system_properties@0.1.5 + ansi_term@0.12.1 + atty@0.2.14 + autocfg@1.4.0 + backtrace@0.3.74 + base64@0.8.0 + bincode@1.3.3 + bitflags@1.3.2 + bumpalo@3.17.0 + byteorder@1.5.0 + cc@1.2.16 + cfg-if@0.1.10 + cfg-if@1.0.0 + chrono@0.4.40 + clap@2.34.0 + core-foundation-sys@0.8.7 + crc32fast@1.4.2 + derive_more@0.14.1 + either@1.15.0 + flate2@1.1.0 + flexi_logger@0.11.5 + fnv@1.0.7 + fuchsia-cprng@0.1.1 + gimli@0.31.1 + glob@0.3.2 + heck@0.3.3 + hermit-abi@0.1.19 + iana-time-zone-haiku@0.1.2 + iana-time-zone@0.1.61 + itertools@0.5.10 + itoa@1.0.15 + js-sys@0.3.77 + json@0.11.15 + lazy_static@1.5.0 + libc@0.2.170 + linked-hash-map@0.5.6 + log@0.4.26 + matrixmultiply@0.1.15 + memchr@2.7.4 + memoffset@0.6.5 + miniz_oxide@0.8.5 + ndarray@0.8.4 + nix@0.17.0 + nix@0.24.3 + nom@2.2.1 + num-complex@0.1.44 + num-traits@0.1.43 + num-traits@0.2.19 + numtoa@0.1.0 + object@0.36.7 + once_cell@1.20.3 + onig@3.2.2 + onig_sys@68.2.1 + parse_int@0.5.0 + pkg-config@0.3.32 + plist@0.2.4 + proc-macro2@0.4.30 + proc-macro2@1.0.94 + quote@0.6.13 + quote@1.0.39 + rand@0.3.23 + rand@0.4.6 + rand_core@0.3.1 + rand_core@0.4.2 + raw_tty@0.1.0 + rawpointer@0.1.0 + rdrand@0.4.0 + redox_syscall@0.2.16 + redox_termios@0.1.3 + regex-automata@0.4.9 + regex-syntax@0.4.2 + regex-syntax@0.8.5 + regex@1.11.1 + ropey@1.6.1 + rustc-demangle@0.1.24 + rustc_version@0.2.3 + rustversion@1.0.20 + ryu@1.0.20 + safemem@0.2.0 + same-file@1.0.6 + semver-parser@0.7.0 + semver@0.9.0 + serde@1.0.218 + serde_derive@1.0.218 + serde_json@1.0.140 + shlex@1.3.0 + smallvec@1.14.0 + str_indices@0.4.4 + strsim@0.8.0 + structopt-derive@0.2.18 + structopt@0.2.18 + syn@0.15.44 + syn@2.0.99 + syntect@2.1.0 + termion@1.5.6 + textwrap@0.11.0 + time@0.1.45 + toml@0.4.10 + unicode-ident@1.0.18 + unicode-segmentation@1.12.0 + unicode-width@0.1.14 + unicode-xid@0.1.0 + unix_socket@0.5.0 + unsegen@0.3.1 + unsegen_jsonviewer@0.3.0 + unsegen_pager@0.3.0 + unsegen_signals@0.3.0 + unsegen_terminal@0.3.2 + utf8parse@0.1.1 + vec_map@0.8.2 + void@1.0.2 + vte@0.3.3 + walkdir@2.5.0 + wasi@0.10.0+wasi-snapshot-preview1 + wasm-bindgen-backend@0.2.100 + wasm-bindgen-macro-support@0.2.100 + wasm-bindgen-macro@0.2.100 + wasm-bindgen-shared@0.2.100 + wasm-bindgen@0.2.100 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.9 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + windows-core@0.52.0 + windows-link@0.1.0 + windows-sys@0.59.0 + windows-targets@0.52.6 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_msvc@0.52.6 + windows_i686_gnu@0.52.6 + windows_i686_gnullvm@0.52.6 + windows_i686_msvc@0.52.6 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_msvc@0.52.6 + xml-rs@0.7.0 + yaml-rust@0.4.5 +" + +inherit cargo flag-o-matic + +DESCRIPTION="An alternative TUI for gdb" +HOMEPAGE="https://github.com/ftilde/ugdb" +SRC_URI=" + https://github.com/ftilde/ugdb/archive/${PV}.tar.gz -> ${P}.tar.gz + ${CARGO_CRATE_URIS} +" + +LICENSE="MIT" +# Dependent crate licenses +LICENSE+=" + ISC MIT Unicode-3.0 + || ( Apache-2.0 Boost-1.0 ) +" +SLOT="0" +KEYWORDS="~amd64" + +QA_FLAGS_IGNORED="/usr/bin/ugdb" + +src_configure() { + append-cflags "-std=gnu17" # bug 943665 + default +} diff --git a/dev-debug/valgrind/Manifest b/dev-debug/valgrind/Manifest new file mode 100644 index 000000000000..2498da3b451a --- /dev/null +++ b/dev-debug/valgrind/Manifest @@ -0,0 +1,8 @@ +DIST valgrind-3.26.0-patches-1.tar.xz 8092 BLAKE2B e2e4874ddd9129128153fc2ad0a35e6ecf4f81662c416257624600750c80cf959ff41ab5de06d47a841d640d9dfa0bb965f067d8c08d815931c6dd02c5fcd0bf SHA512 d55f283b834d3be572b4b2cdbdc11a15975162333052bbf77b3b7a0c29b170d332427d4ce24b2790aacabe737f02ef6ad4f2898ca625378631513fb60aaaba58 +DIST valgrind-3.26.0.tar.bz2 17182495 BLAKE2B 55e066b49e122f65df0c7129f25613f2d64fef6b4a7da59f42280e1a5a4086db84d033b8fca714b7ec8da506dbc71e8814f68f5b3d302c7373dbce8dac905b03 SHA512 80ebf9197be602fdd4aad0e9277e6ef2fd25ede9cecb6e6d159f6f062c13f62ad907c6b6e7000e82b3404d8b4f9e7bf15813f60d9fed414c7b713a4280c82898 +DIST valgrind-3.26.0.tar.bz2.asc 228 BLAKE2B 7ee59c96f5929e2de3478c062208e5fcf645e86f0894cb9b6330bb320b518f2e55e432ab31c813c623208216859ddcfcb673417c5a2be3982f2a9d23f4dcd698 SHA512 ecae4158c64bc4ff9c6c5859f41d8a724c5207b5dbac75772d64c23baf78a280159b1b954a16ac73993eb19c39e1fcb3bd0c946c0e18209f3cb8f3d9238d6071 +DIST valgrind-3.27.0-patches-1.tar.xz 1908 BLAKE2B c897cd70b2c27479ab51446f6d2c6e156f7a92f852720ad514a21dc5e37210da3b7ce250463b7b091794b143c840258efad8649bb133167acb8faa547074809f SHA512 f3e3108d4f4d4d614606e2d0232814035be9d9412d1209232ad2b22bf3fe3efcb1b49fe71856fe091924fe7732759b022627dc4a400cf20353c15301ff5eaf0e +DIST valgrind-3.27.0.tar.bz2 17294027 BLAKE2B 0b996f238e4cbe6c6b42e07677c658b995bbf90d5a4c00c6d4a0fdb651d28644e90dcd40e3e715f74417cadbea60c34cc897428d61574103c2da70f4abcac63f SHA512 a171d95426835604a426e77b3745a05ab1557972fceb513e2caa76e71192c9763fe4c2190249a2312ae3a94511ee2aefa9a926858c11a724b8d95f497b083cf3 +DIST valgrind-3.27.0.tar.bz2.asc 228 BLAKE2B 9b150d2c28799548b6a23e40d4e80846959c0ae40872fe0616c257dcdf9d622fc09ce900b08d54ad24dd74a4577f6a6aabd93c53f23f235020f66ee15f61df8b SHA512 3481d16e0170ed636c49b7527803efed9dce2cdbbfad80cfd2ef708d849954a3a7ee0db5df971653a7a8f896f3618ffd947911c5e8eed36e3f21a5d83cec518b +DIST valgrind-3.27.1.tar.bz2 17372682 BLAKE2B c161e0b08127ff361d19327d81428312a69f61ea088ccd83fd564c65b2508228bbe7e23bcdbce535e053623c73d8ebb92b8a56e418708e9b65fe2f03554a229e SHA512 4522e345fe31bc10478f21ab261cf7b3e509d80fe98fd0c7c9778ac9a9f90e1d8fa6e54a37c2e23114c01c95131035103fc1e78661710d7f45f5d564a31c1015 +DIST valgrind-3.27.1.tar.bz2.asc 228 BLAKE2B 4a443bde25564246f297bf27d138460cbf02f6bfe4978046380a851d4c25324b35c1ab139711952c741bb31f1561599da97e27e4d08e346797b30ef704008d71 SHA512 9281f43808d776b35dd39df010d8036929506e0fc933e7a66459b0c182febaaff663f5cecc1a0499d420fa7b91fee5ddf5642fbf727753690fdd72a24f6e8769 diff --git a/dev-debug/valgrind/files/valgrind-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch b/dev-debug/valgrind/files/valgrind-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch new file mode 100644 index 000000000000..44176658df74 --- /dev/null +++ b/dev-debug/valgrind/files/valgrind-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch @@ -0,0 +1,22 @@ +From beab8d9f8d65230567270331017184c8762faa42 Mon Sep 17 00:00:00 2001 +From: Matt Turner <mattst88@gmail.com> +Date: Mon, 4 Nov 2019 09:12:16 -0800 +Subject: [PATCH] Build ldst_multiple test with -fno-pie + +Bug: https://bugs.gentoo.org/685070 +--- + none/tests/ppc32/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am +index 11697c99a..222efd3f2 100644 +--- a/none/tests/ppc32/Makefile.am ++++ b/none/tests/ppc32/Makefile.am +@@ -156,3 +156,4 @@ test_isa_2_07_part2_LDADD = -lm + test_tm_LDADD = -lm + test_touch_tm_LDADD = -lm + ++ldst_multiple_CFLAGS = $(AM_CFLAGS) -fno-pie +-- +2.23.0 + diff --git a/dev-debug/valgrind/files/valgrind-3.21.0-glibc-2.34-suppressions.patch b/dev-debug/valgrind/files/valgrind-3.21.0-glibc-2.34-suppressions.patch new file mode 100644 index 000000000000..c4111326cfa2 --- /dev/null +++ b/dev-debug/valgrind/files/valgrind-3.21.0-glibc-2.34-suppressions.patch @@ -0,0 +1,197 @@ +commit e04914e10126d3a8de13302e958bbfd5e83a6637 +Author: Romain Geissler <romain.geissler@amadeus.com> +Date: Mon Jan 30 16:09:47 2023 +0000 + + Fragile temporary fix for https://bugs.kde.org/show_bug.cgi?id=464671: avoid using @GLIBC_VERSION@ with our recent toolchains. + + This is fragile as it might a bit too many things (especially ld*.so, which maybe shall be written "ld-linux-*.so" to be a bit more robust) + and also it doesn't work for glibc < 2.34. + + Ideally something similar to GLIBC_LIBC_PATH shall be introduced for ld.so and libdl.so, so that + it covers both glibc < 2.34 and glibc >= 2.34. + +--- a/glibc-2.X.supp.in ++++ b/glibc-2.X.supp.in +@@ -39,74 +39,74 @@ + { + dl-hack3-cond-1 + Memcheck:Cond +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* + } + { + dl-hack3-cond-2 + Memcheck:Cond +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/libc-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* ++ obj:@GLIBC_LIBC_PATH@ + } + { + dl-hack3-cond-3 + Memcheck:Cond +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/libc-@GLIBC_VERSION@*.so* +- obj:*/lib*/libc-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ + } + { + dl-hack3-cond-4 + Memcheck:Cond +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/libdl-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* ++ obj:@GLIBC_LIBC_PATH@ + } + + { + dl-hack4-64bit-addr-1 + Memcheck:Addr8 +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* + } + { + dl-hack4-64bit-addr-2 + Memcheck:Addr8 +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/libc-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* ++ obj:@GLIBC_LIBC_PATH@ + } + { + dl-hack4-64bit-addr-3 + Memcheck:Addr8 +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so* +- obj:*/lib*/libdl-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so* ++ obj:*/lib*/ld*.so* ++ obj:@GLIBC_LIBC_PATH@ + } + + { + dl-hack5-32bit-addr-1 + Memcheck:Addr4 +- obj:*/lib*/ld-@GLIBC_VERSION@*.so +- obj:*/lib*/ld-@GLIBC_VERSION@*.so +- obj:*/lib*/ld-@GLIBC_VERSION@*.so ++ obj:*/lib*/ld*.so ++ obj:*/lib*/ld*.so ++ obj:*/lib*/ld*.so + } + { + dl-hack5-32bit-addr-3 + Memcheck:Addr4 +- obj:*/lib*/ld-@GLIBC_VERSION@*.so +- obj:*/lib*/ld-@GLIBC_VERSION@*.so +- obj:*/lib*/libdl-@GLIBC_VERSION@*.so* ++ obj:*/lib*/ld*.so ++ obj:*/lib*/ld*.so ++ obj:@GLIBC_LIBC_PATH@ + } + { + dl-hack5-32bit-addr-4 + Memcheck:Addr4 +- obj:*/lib*/ld-@GLIBC_VERSION@*.so +- obj:*/lib*/libdl-@GLIBC_VERSION@*.so* +- obj:*/lib*/ld-@GLIBC_VERSION@*.so ++ obj:*/lib*/ld*.so ++ obj:@GLIBC_LIBC_PATH@ ++ obj:*/lib*/ld*.so + } + + +@@ -124,7 +124,7 @@ + glibc-2.5.x-on-SUSE-10.2-(PPC)-2a + Memcheck:Cond + fun:index +- obj:*ld-@GLIBC_VERSION@.*.so ++ obj:*/lib*/ld*.so* + } + { + glibc-2.5.x-on-SuSE-10.2-(PPC)-2b +@@ -136,7 +136,7 @@ + glibc-2.5.5-on-SuSE-10.2-(PPC)-2c + Memcheck:Addr4 + fun:index +- obj:*ld-@GLIBC_VERSION@.*.so ++ obj:*/lib*/ld*.so* + } + { + glibc-2.3.5-on-SuSE-10.1-(PPC)-3 +@@ -149,9 +149,9 @@ + { + glibc-@GLIBC_VERSION@-on-SUSE-10.3-(x86) + Memcheck:Addr4 +- obj:*/lib/ld-@GLIBC_VERSION@*.so +- obj:*/lib/ld-@GLIBC_VERSION@*.so +- obj:*/lib/ld-@GLIBC_VERSION@*.so ++ obj:*/lib/ld*.so ++ obj:*/lib/ld*.so ++ obj:*/lib/ld*.so + } + + { +@@ -168,9 +168,9 @@ + Memcheck:Param + socketcall.sendto(msg) + fun:__sendto_nocancel +- obj:/*libc-@GLIBC_VERSION@*.so +- obj:/*libc-@GLIBC_VERSION@*.so +- obj:/*libc-@GLIBC_VERSION@*.so ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ + } + { + glibc24-64bit-padding-1c +@@ -180,7 +180,7 @@ + fun:__nscd_get_map_ref + fun:nscd_get*_r + fun:*nscd* +- obj:/*libc-@GLIBC_VERSION@*.so ++ obj:@GLIBC_LIBC_PATH@ + } + + +@@ -199,18 +199,18 @@ + Memcheck:Param + socketcall.sendto(msg) + fun:send +- obj:/*libc-@GLIBC_VERSION@*.so +- obj:/*libc-@GLIBC_VERSION@*.so +- obj:/*libc-@GLIBC_VERSION@*.so ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ + } + { + X11-64bit-padding-4b + Memcheck:Param + socketcall.send(msg) + fun:send +- obj:/*libc-@GLIBC_VERSION@*.so +- obj:/*libc-@GLIBC_VERSION@*.so +- obj:/*libc-@GLIBC_VERSION@*.so ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ ++ obj:@GLIBC_LIBC_PATH@ + } + + ##----------------------------------------------------------------------## diff --git a/dev-debug/valgrind/files/valgrind-3.26.0-gcc16.patch b/dev-debug/valgrind/files/valgrind-3.26.0-gcc16.patch new file mode 100644 index 000000000000..4b9521456909 --- /dev/null +++ b/dev-debug/valgrind/files/valgrind-3.26.0-gcc16.patch @@ -0,0 +1,21 @@ +Small backport(ish) of https://sourceware.org/git/?p=valgrind.git;a=commit;h=51c5973d9d1f096b9472df75638f2a53324fafed +--- a/configure.ac ++++ b/configure.ac +@@ -2591,7 +2591,7 @@ AC_GCC_WARNING_SUBST_NO([unused-result], [FLAG_W_NO_UNUSED_RESULT]) + AC_GCC_WARNING_SUBST_NO([infinite-recursion], [FLAG_W_NO_INFINITE_RECURSION]) + AC_GCC_WARNING_SUBST_NO([deprecated], [FLAG_W_NO_DEPRECATED]) + # OK for 32 and 64 bit +-AC_GCC_WARNING_SUBST_NO([alloc-size-larger-than=18446744073709551615], [FLAG_W_NO_ALLOC_SIZE_LARGER_THAN]) ++AC_GCC_WARNING_SUBST([alloc-size-larger-than=18446744073709551616], [FLAG_W_NO_ALLOC_SIZE_LARGER_THAN]) + AC_GCC_WARNING_SUBST_NO([alloc-size], [FLAG_W_NO_ALLOC_SIZE]) + + AC_GCC_WARNING_SUBST([write-strings], [FLAG_W_WRITE_STRINGS]) +@@ -2610,7 +2610,7 @@ AC_GCC_WARNING_SUBST([implicit-fallthrough=2], [FLAG_W_IMPLICIT_FALLTHROUGH]) + AC_DEFUN([AC_GXX_WARNING_SUBST_NO],[ + AC_MSG_CHECKING([if g++ accepts -W$1]) + safe_CXXFLAGS=$CXXFLAGS +- CXXFLAGS="-W$1 -Werror" ++ CXXFLAGS="-W$1 -Wno-$1 -Werror" + AC_LANG_PUSH(C++) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[;]])], [ + AC_SUBST([$2], [-Wno-$1]) diff --git a/dev-debug/valgrind/files/valgrind-3.7.0-respect-flags.patch b/dev-debug/valgrind/files/valgrind-3.7.0-respect-flags.patch new file mode 100644 index 000000000000..860e09c86ed3 --- /dev/null +++ b/dev-debug/valgrind/files/valgrind-3.7.0-respect-flags.patch @@ -0,0 +1,13 @@ +diff -Naur valgrind-3.7.0.orig//mpi/Makefile.am valgrind-3.7.0/mpi/Makefile.am +--- valgrind-3.7.0.orig//mpi/Makefile.am 2011-10-26 17:24:23.000000000 -0400 ++++ valgrind-3.7.0/mpi/Makefile.am 2011-11-10 16:03:14.000000000 -0500 +@@ -7,9 +7,6 @@ + CC = $(MPI_CC) + DEFS = + DEFAULT_INCLUDES = +-CPPFLAGS = +-CFLAGS = +-LDFLAGS = + + EXTRA_DIST = \ + mpiwrap_type_test.c diff --git a/dev-debug/valgrind/metadata.xml b/dev-debug/valgrind/metadata.xml new file mode 100644 index 000000000000..9fb531a356b2 --- /dev/null +++ b/dev-debug/valgrind/metadata.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>toolchain@gentoo.org</email> + <name>Gentoo Toolchain Project</name> + </maintainer> + <longdescription> + Valgrind is a GPL'd tool to help you find memory-management problems + in your programs. When a program is run under Valgrind's supervision, + all reads and writes of memory are checked, and calls to + malloc/new/free/delete are intercepted. As a result, Valgrind can + detect problems such as + + - Use of uninitialised memory + - Reading/writing memory after it has been free'd + - Reading/writing off the end of malloc'd blocks + - Reading/writing inappropriate areas on the stack + - Memory leaks -- where pointers to malloc'd blocks are lost forever + - Passing of uninitialised and/or unaddressible memory to system calls + - Mismatched use of malloc/new/new [] vs free/delete/delete [] + - Some abuses of the POSIX Pthreads API + </longdescription> + <upstream> + <remote-id type="cpe">cpe:/a:valgrind:valgrind</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-debug/valgrind/valgrind-3.26.0.ebuild b/dev-debug/valgrind/valgrind-3.26.0.ebuild new file mode 100644 index 000000000000..1c45634d1490 --- /dev/null +++ b/dev-debug/valgrind/valgrind-3.26.0.ebuild @@ -0,0 +1,204 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The Valgrind upstream maintainer also maintains it in Fedora and will +# backport fixes there which haven't yet made it into a release. Keep an eye +# on it for fixes we should cherry-pick too: +# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide +# +# Also check the ${PV}_STABLE branch upstream for backports. + +inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="https://valgrind.org" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI=" + https://sourceware.org/git/${PN}.git + https://git.sr.ht/~sourceware/valgrind + " + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc + inherit verify-sig + + MY_P="${P/_rc/.RC}" + MY_P="${MY_P%%_p*}" + VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}" + SRC_URI=" + https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 + verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) + " + # Rollups of backports on ${PV}_STABLE branch upstream. This branch + # is usually announced on the mailing list and distros are encouraged + # to pull from it regularly. + if [[ ${PV} == *_p* ]] ; then + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" + fi + + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="-* amd64 arm arm64 ppc ppc64 ~riscv x86 ~x64-macos ~x64-solaris" + fi +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" +if [[ ${PV} == 9999 ]] ; then + # Needed for man pages + BDEPEND+=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )" +fi + +PATCHES=( + # Respect CFLAGS, LDFLAGS + "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch + "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch + "${FILESDIR}"/${P}-gcc16.patch +) + +QA_CONFIG_IMPL_DECL_SKIP+=( + # "checking if gcc accepts nested functions" but clang cannot handle good + # errors and reports both "function definition is not allowed here" and + # -Wimplicit-function-declaration. bug #900396 + foo + # FreeBSD function, bug #932822 + aio_readv +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} + fi + + default +} + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + if [[ ${CHOST} == *-solaris* ]] ; then + # upstream doesn't support this, but we don't build with + # Sun/Oracle ld, we have a GNU toolchain, so get some things + # working the Linux/GNU way + find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ + sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die + cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in + fi + + if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then + PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) + fi + + default + + eautoreconf +} + +src_configure() { + local myconf=( + --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load + ) + + tc-is-lto && myconf+=( --enable-lto ) + lto-guarantee-fat + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. + # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it + # -fstack-protector-strong See -fstack-protector (bug #620402) + # -m64 -mx32 for multilib-portage, bug #398825 + # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -fstack-protector-all + filter-flags -fstack-protector-strong + filter-flags -m64 -mx32 + filter-flags -fsanitize -fsanitize=* + filter-flags -fharden-control-flow-redundancy + append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) + filter-lto + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf+=("--enable-only64bit") + fi + + # Force bitness on darwin, bug #306467 + use x64-macos && myconf+=("--enable-only64bit") + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf+=("--without-mpicc") + fi + + econf "${myconf[@]}" +} + +src_test() { + # fxsave.o, tronical.o have textrels + # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 + emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check +} + +src_install() { + if [[ ${PV} == 9999 ]]; then + # TODO: Could do HTML docs too with 'all-docs' + emake -C docs man-pages FAQ.txt + mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" + fi + + default + + dodoc FAQ.txt + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + strip-lto-bytecode + + # See README_PACKAGERS + dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/214065" + elog "https://bugs.gentoo.org/274771" + elog "https://bugs.gentoo.org/388703" +} diff --git a/dev-debug/valgrind/valgrind-3.26.0_p1.ebuild b/dev-debug/valgrind/valgrind-3.26.0_p1.ebuild new file mode 100644 index 000000000000..3280daff3f83 --- /dev/null +++ b/dev-debug/valgrind/valgrind-3.26.0_p1.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The Valgrind upstream maintainer also maintains it in Fedora and will +# backport fixes there which haven't yet made it into a release. Keep an eye +# on it for fixes we should cherry-pick too: +# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide +# +# Also check the ${PV}_STABLE branch upstream for backports. + +inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="https://valgrind.org" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI=" + https://sourceware.org/git/${PN}.git + https://git.sr.ht/~sourceware/valgrind + " + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc + inherit verify-sig + + MY_P="${P/_rc/.RC}" + MY_P="${MY_P%%_p*}" + VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}" + SRC_URI=" + https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 + verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) + " + # Rollups of backports on ${PV}_STABLE branch upstream. This branch + # is usually announced on the mailing list and distros are encouraged + # to pull from it regularly. + if [[ ${PV} == *_p* ]] ; then + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" + fi + + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="-* amd64 ~arm arm64 ppc ppc64 ~riscv x86 ~x64-macos ~x64-solaris" + fi +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" +if [[ ${PV} == 9999 ]] ; then + # Needed for man pages + BDEPEND+=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )" +fi + +PATCHES=( + # Respect CFLAGS, LDFLAGS + "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch + "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch +) + +QA_CONFIG_IMPL_DECL_SKIP+=( + # "checking if gcc accepts nested functions" but clang cannot handle good + # errors and reports both "function definition is not allowed here" and + # -Wimplicit-function-declaration. bug #900396 + foo + # FreeBSD function, bug #932822 + aio_readv +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} + fi + + default +} + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + if [[ ${CHOST} == *-solaris* ]] ; then + # upstream doesn't support this, but we don't build with + # Sun/Oracle ld, we have a GNU toolchain, so get some things + # working the Linux/GNU way + find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ + sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die + cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in + fi + + if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then + PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) + fi + + default + + eautoreconf +} + +src_configure() { + local myconf=( + --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load + ) + + tc-is-lto && myconf+=( --enable-lto ) + lto-guarantee-fat + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. + # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it + # -fstack-protector-strong See -fstack-protector (bug #620402) + # -m64 -mx32 for multilib-portage, bug #398825 + # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -fstack-protector-all + filter-flags -fstack-protector-strong + filter-flags -m64 -mx32 + filter-flags -fsanitize -fsanitize=* + filter-flags -fharden-control-flow-redundancy + append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) + filter-lto + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf+=("--enable-only64bit") + fi + + # Force bitness on darwin, bug #306467 + use x64-macos && myconf+=("--enable-only64bit") + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf+=("--without-mpicc") + fi + + econf "${myconf[@]}" +} + +src_test() { + # fxsave.o, tronical.o have textrels + # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 + emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check +} + +src_install() { + if [[ ${PV} == 9999 ]]; then + # TODO: Could do HTML docs too with 'all-docs' + emake -C docs man-pages FAQ.txt + mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" + fi + + default + + dodoc FAQ.txt + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + strip-lto-bytecode + + # See README_PACKAGERS + dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/214065" + elog "https://bugs.gentoo.org/274771" + elog "https://bugs.gentoo.org/388703" +} diff --git a/dev-debug/valgrind/valgrind-3.27.0.ebuild b/dev-debug/valgrind/valgrind-3.27.0.ebuild new file mode 100644 index 000000000000..d9ec37366300 --- /dev/null +++ b/dev-debug/valgrind/valgrind-3.27.0.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The Valgrind upstream maintainer also maintains it in Fedora and will +# backport fixes there which haven't yet made it into a release. Keep an eye +# on it for fixes we should cherry-pick too: +# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide +# +# Also check the ${PV}_STABLE branch upstream for backports. + +inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="https://valgrind.org" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI=" + https://sourceware.org/git/${PN}.git + https://git.sr.ht/~sourceware/valgrind + " + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc + inherit verify-sig + + MY_P="${P/_rc/.RC}" + MY_P="${MY_P%%_p*}" + VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}" + SRC_URI=" + https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 + verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) + " + # Rollups of backports on ${PV}_STABLE branch upstream. This branch + # is usually announced on the mailing list and distros are encouraged + # to pull from it regularly. + if [[ ${PV} == *_p* ]] ; then + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" + fi + + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos ~x64-solaris" + fi +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" +if [[ ${PV} == 9999 ]] ; then + # Needed for man pages + BDEPEND+=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )" +fi + +PATCHES=( + # Respect CFLAGS, LDFLAGS + "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch + "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch +) + +QA_CONFIG_IMPL_DECL_SKIP+=( + # "checking if gcc accepts nested functions" but clang cannot handle good + # errors and reports both "function definition is not allowed here" and + # -Wimplicit-function-declaration. bug #900396 + foo + # FreeBSD function, bug #932822 + aio_readv +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} + fi + + default +} + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + if [[ ${CHOST} == *-solaris* ]] ; then + # upstream doesn't support this, but we don't build with + # Sun/Oracle ld, we have a GNU toolchain, so get some things + # working the Linux/GNU way + find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ + sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die + cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in + fi + + if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then + PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) + fi + + default + + eautoreconf +} + +src_configure() { + local myconf=( + --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load + ) + + tc-is-lto && myconf+=( --enable-lto ) + lto-guarantee-fat + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. + # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it + # -fstack-protector-strong See -fstack-protector (bug #620402) + # -m64 -mx32 for multilib-portage, bug #398825 + # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -fstack-protector-all + filter-flags -fstack-protector-strong + filter-flags -m64 -mx32 + filter-flags -fsanitize -fsanitize=* + filter-flags -fharden-control-flow-redundancy + append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) + filter-lto + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf+=("--enable-only64bit") + fi + + # Force bitness on darwin, bug #306467 + use x64-macos && myconf+=("--enable-only64bit") + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf+=("--without-mpicc") + fi + + econf "${myconf[@]}" +} + +src_test() { + # fxsave.o, tronical.o have textrels + # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 + emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check +} + +src_install() { + if [[ ${PV} == 9999 ]]; then + # TODO: Could do HTML docs too with 'all-docs' + emake -C docs man-pages FAQ.txt + mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" + fi + + default + + dodoc FAQ.txt + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + strip-lto-bytecode + + # See README_PACKAGERS + dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/214065" + elog "https://bugs.gentoo.org/274771" + elog "https://bugs.gentoo.org/388703" +} diff --git a/dev-debug/valgrind/valgrind-3.27.0_p1.ebuild b/dev-debug/valgrind/valgrind-3.27.0_p1.ebuild new file mode 100644 index 000000000000..d9ec37366300 --- /dev/null +++ b/dev-debug/valgrind/valgrind-3.27.0_p1.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The Valgrind upstream maintainer also maintains it in Fedora and will +# backport fixes there which haven't yet made it into a release. Keep an eye +# on it for fixes we should cherry-pick too: +# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide +# +# Also check the ${PV}_STABLE branch upstream for backports. + +inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="https://valgrind.org" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI=" + https://sourceware.org/git/${PN}.git + https://git.sr.ht/~sourceware/valgrind + " + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc + inherit verify-sig + + MY_P="${P/_rc/.RC}" + MY_P="${MY_P%%_p*}" + VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}" + SRC_URI=" + https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 + verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) + " + # Rollups of backports on ${PV}_STABLE branch upstream. This branch + # is usually announced on the mailing list and distros are encouraged + # to pull from it regularly. + if [[ ${PV} == *_p* ]] ; then + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" + fi + + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos ~x64-solaris" + fi +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" +if [[ ${PV} == 9999 ]] ; then + # Needed for man pages + BDEPEND+=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )" +fi + +PATCHES=( + # Respect CFLAGS, LDFLAGS + "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch + "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch +) + +QA_CONFIG_IMPL_DECL_SKIP+=( + # "checking if gcc accepts nested functions" but clang cannot handle good + # errors and reports both "function definition is not allowed here" and + # -Wimplicit-function-declaration. bug #900396 + foo + # FreeBSD function, bug #932822 + aio_readv +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} + fi + + default +} + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + if [[ ${CHOST} == *-solaris* ]] ; then + # upstream doesn't support this, but we don't build with + # Sun/Oracle ld, we have a GNU toolchain, so get some things + # working the Linux/GNU way + find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ + sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die + cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in + fi + + if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then + PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) + fi + + default + + eautoreconf +} + +src_configure() { + local myconf=( + --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load + ) + + tc-is-lto && myconf+=( --enable-lto ) + lto-guarantee-fat + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. + # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it + # -fstack-protector-strong See -fstack-protector (bug #620402) + # -m64 -mx32 for multilib-portage, bug #398825 + # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -fstack-protector-all + filter-flags -fstack-protector-strong + filter-flags -m64 -mx32 + filter-flags -fsanitize -fsanitize=* + filter-flags -fharden-control-flow-redundancy + append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) + filter-lto + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf+=("--enable-only64bit") + fi + + # Force bitness on darwin, bug #306467 + use x64-macos && myconf+=("--enable-only64bit") + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf+=("--without-mpicc") + fi + + econf "${myconf[@]}" +} + +src_test() { + # fxsave.o, tronical.o have textrels + # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 + emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check +} + +src_install() { + if [[ ${PV} == 9999 ]]; then + # TODO: Could do HTML docs too with 'all-docs' + emake -C docs man-pages FAQ.txt + mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" + fi + + default + + dodoc FAQ.txt + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + strip-lto-bytecode + + # See README_PACKAGERS + dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/214065" + elog "https://bugs.gentoo.org/274771" + elog "https://bugs.gentoo.org/388703" +} diff --git a/dev-debug/valgrind/valgrind-3.27.1.ebuild b/dev-debug/valgrind/valgrind-3.27.1.ebuild new file mode 100644 index 000000000000..d9ec37366300 --- /dev/null +++ b/dev-debug/valgrind/valgrind-3.27.1.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The Valgrind upstream maintainer also maintains it in Fedora and will +# backport fixes there which haven't yet made it into a release. Keep an eye +# on it for fixes we should cherry-pick too: +# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide +# +# Also check the ${PV}_STABLE branch upstream for backports. + +inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="https://valgrind.org" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI=" + https://sourceware.org/git/${PN}.git + https://git.sr.ht/~sourceware/valgrind + " + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc + inherit verify-sig + + MY_P="${P/_rc/.RC}" + MY_P="${MY_P%%_p*}" + VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}" + SRC_URI=" + https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 + verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) + " + # Rollups of backports on ${PV}_STABLE branch upstream. This branch + # is usually announced on the mailing list and distros are encouraged + # to pull from it regularly. + if [[ ${PV} == *_p* ]] ; then + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" + fi + + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos ~x64-solaris" + fi +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" +if [[ ${PV} == 9999 ]] ; then + # Needed for man pages + BDEPEND+=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )" +fi + +PATCHES=( + # Respect CFLAGS, LDFLAGS + "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch + "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch +) + +QA_CONFIG_IMPL_DECL_SKIP+=( + # "checking if gcc accepts nested functions" but clang cannot handle good + # errors and reports both "function definition is not allowed here" and + # -Wimplicit-function-declaration. bug #900396 + foo + # FreeBSD function, bug #932822 + aio_readv +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} + fi + + default +} + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + if [[ ${CHOST} == *-solaris* ]] ; then + # upstream doesn't support this, but we don't build with + # Sun/Oracle ld, we have a GNU toolchain, so get some things + # working the Linux/GNU way + find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ + sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die + cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in + fi + + if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then + PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) + fi + + default + + eautoreconf +} + +src_configure() { + local myconf=( + --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load + ) + + tc-is-lto && myconf+=( --enable-lto ) + lto-guarantee-fat + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. + # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it + # -fstack-protector-strong See -fstack-protector (bug #620402) + # -m64 -mx32 for multilib-portage, bug #398825 + # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -fstack-protector-all + filter-flags -fstack-protector-strong + filter-flags -m64 -mx32 + filter-flags -fsanitize -fsanitize=* + filter-flags -fharden-control-flow-redundancy + append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) + filter-lto + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf+=("--enable-only64bit") + fi + + # Force bitness on darwin, bug #306467 + use x64-macos && myconf+=("--enable-only64bit") + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf+=("--without-mpicc") + fi + + econf "${myconf[@]}" +} + +src_test() { + # fxsave.o, tronical.o have textrels + # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 + emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check +} + +src_install() { + if [[ ${PV} == 9999 ]]; then + # TODO: Could do HTML docs too with 'all-docs' + emake -C docs man-pages FAQ.txt + mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" + fi + + default + + dodoc FAQ.txt + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + strip-lto-bytecode + + # See README_PACKAGERS + dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/214065" + elog "https://bugs.gentoo.org/274771" + elog "https://bugs.gentoo.org/388703" +} diff --git a/dev-debug/valgrind/valgrind-9999.ebuild b/dev-debug/valgrind/valgrind-9999.ebuild new file mode 100644 index 000000000000..e0233e6d293b --- /dev/null +++ b/dev-debug/valgrind/valgrind-9999.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# The Valgrind upstream maintainer also maintains it in Fedora and will +# backport fixes there which haven't yet made it into a release. Keep an eye +# on it for fixes we should cherry-pick too: +# https://src.fedoraproject.org/rpms/valgrind/tree/rawhide +# +# Also check the ${PV}_STABLE branch upstream for backports. + +inherit autotools dot-a flag-o-matic toolchain-funcs multilib pax-utils + +DESCRIPTION="An open-source memory debugger for GNU/Linux" +HOMEPAGE="https://valgrind.org" + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI=" + https://sourceware.org/git/${PN}.git + https://git.sr.ht/~sourceware/valgrind + " + inherit git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/valgrind.asc + inherit verify-sig + + MY_P="${P/_rc/.RC}" + MY_P="${MY_P%%_p*}" + VALGRIND_PATCH_TARBALL="${MY_P}-patches-${PV##*_p}" + SRC_URI=" + https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2 + verify-sig? ( https://sourceware.org/pub/valgrind/${MY_P}.tar.bz2.asc ) + " + # Rollups of backports on ${PV}_STABLE branch upstream. This branch + # is usually announced on the mailing list and distros are encouraged + # to pull from it regularly. + if [[ ${PV} == *_p* ]] ; then + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${VALGRIND_PATCH_TARBALL}.tar.xz" + fi + + S="${WORKDIR}"/${MY_P} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos ~x64-solaris" + fi +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="mpi" + +DEPEND="mpi? ( virtual/mpi )" +RDEPEND="${DEPEND}" +if [[ ${PV} == 9999 ]] ; then + # Needed for man pages + BDEPEND+=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + " +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-valgrind-20251018 )" +fi + +PATCHES=( + # Respect CFLAGS, LDFLAGS + "${FILESDIR}"/${PN}-3.7.0-respect-flags.patch + "${FILESDIR}"/${PN}-3.15.0-Build-ldst_multiple-test-with-fno-pie.patch + "${FILESDIR}"/${PN}-3.21.0-glibc-2.34-suppressions.patch +) + +QA_CONFIG_IMPL_DECL_SKIP+=( + # "checking if gcc accepts nested functions" but clang cannot handle good + # errors and reports both "function definition is not allowed here" and + # -Wimplicit-function-declaration. bug #900396 + foo + # FreeBSD function, bug #932822 + aio_readv +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + elif use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.bz2{,.asc} + fi + + default +} + +src_prepare() { + # Correct hard coded doc location + sed -i -e "s:doc/valgrind:doc/${PF}:" docs/Makefile.am || die + + # Don't force multiarch stuff on OSX, bug #306467 + sed -i -e 's:-arch \(i386\|x86_64\)::g' Makefile.all.am || die + + if [[ ${CHOST} == *-solaris* ]] ; then + # upstream doesn't support this, but we don't build with + # Sun/Oracle ld, we have a GNU toolchain, so get some things + # working the Linux/GNU way + find "${S}" -name "Makefile.am" -o -name "Makefile.tool.am" | xargs \ + sed -i -e 's:-M,/usr/lib/ld/map.noexstk:-z,noexecstack:' || die + cp "${S}"/coregrind/link_tool_exe_{linux,solaris}.in + fi + + if [[ ${PV} != 9999 && -d "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ]] ; then + PATCHES+=( "${WORKDIR}"/${VALGRIND_PATCH_TARBALL} ) + fi + + default + + eautoreconf +} + +src_configure() { + local myconf=( + --with-gdbscripts-dir="${EPREFIX}"/usr/share/gdb/auto-load + ) + + tc-is-lto && myconf+=( --enable-lto ) + lto-guarantee-fat + + # Respect ar, bug #468114 + tc-export AR + + # -fomit-frame-pointer "Assembler messages: Error: junk `8' after expression" + # while compiling insn_sse.c in none/tests/x86 + # -fstack-protector more undefined references to __guard and __stack_smash_handler + # because valgrind doesn't link to glibc (bug #114347) + # -fstack-protector-all Fails same way as -fstack-protector/-fstack-protector-strong. + # Note: -fstack-protector-explicit is a no-op for Valgrind, no need to strip it + # -fstack-protector-strong See -fstack-protector (bug #620402) + # -m64 -mx32 for multilib-portage, bug #398825 + # -fharden-control-flow-redundancy: breaks runtime ('jump to the invalid address stated on the next line') + filter-flags -fomit-frame-pointer + filter-flags -fstack-protector + filter-flags -fstack-protector-all + filter-flags -fstack-protector-strong + filter-flags -m64 -mx32 + filter-flags -fsanitize -fsanitize=* + filter-flags -fharden-control-flow-redundancy + append-cflags $(test-flags-CC -fno-harden-control-flow-redundancy) + filter-lto + + if use amd64 || use ppc64; then + ! has_multilib_profile && myconf+=("--enable-only64bit") + fi + + # Force bitness on darwin, bug #306467 + use x64-macos && myconf+=("--enable-only64bit") + + # Don't use mpicc unless the user asked for it (bug #258832) + if ! use mpi; then + myconf+=("--without-mpicc") + fi + + econf "${myconf[@]}" +} + +src_test() { + # fxsave.o, tronical.o have textrels + # -fno-strict-aliasing: https://bugs.kde.org/show_bug.cgi?id=486093 + emake CFLAGS="${CFLAGS} -fno-strict-aliasing" LDFLAGS="${LDFLAGS} -Wl,-z,notext" check +} + +src_install() { + if [[ ${PV} == 9999 ]]; then + # TODO: Could do HTML docs too with 'all-docs' + emake -C docs man-pages FAQ.txt + mv docs/FAQ.txt . || die "Couldn't move FAQ.txt" + fi + + default + + dodoc FAQ.txt + + pax-mark m "${ED}"/usr/$(get_libdir)/valgrind/*-*-linux + + strip-lto-bytecode + + # See README_PACKAGERS + dostrip -x /usr/libexec/valgrind/vgpreload* /usr/$(get_libdir)/valgrind/* + + if [[ ${CHOST} == *-darwin* ]] ; then + # fix install_names on shared libraries, can't turn them into bundles, + # as dyld won't load them any more then, bug #306467 + local l + for l in "${ED}"/usr/lib/valgrind/*.so ; do + install_name_tool -id "${EPREFIX}"/usr/lib/valgrind/${l##*/} "${l}" + done + fi +} + +pkg_postinst() { + elog "Valgrind will not work if libc (e.g. glibc) does not have debug symbols." + elog "To fix this you can add splitdebug to FEATURES in make.conf" + elog "and remerge glibc. See:" + elog "https://bugs.gentoo.org/214065" + elog "https://bugs.gentoo.org/274771" + elog "https://bugs.gentoo.org/388703" +} |
