summaryrefslogtreecommitdiff
path: root/dev-debug
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-01-19 07:28:43 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-01-19 07:28:43 +0000
commitf63baf025e2b76cb1ae7aa84acaa8d66aef367a0 (patch)
tree47ad3ee96a64becd266d03687de600a9ca4960df /dev-debug
parent3ee91b49159bb1569a20aa4596e51616147cbdb7 (diff)
downloadbaldeagleos-repo-f63baf025e2b76cb1ae7aa84acaa8d66aef367a0.tar.gz
baldeagleos-repo-f63baf025e2b76cb1ae7aa84acaa8d66aef367a0.tar.xz
baldeagleos-repo-f63baf025e2b76cb1ae7aa84acaa8d66aef367a0.zip
Adding metadata
Diffstat (limited to 'dev-debug')
-rw-r--r--dev-debug/ald/Manifest1
-rw-r--r--dev-debug/ald/ald-0.1.7-r2.ebuild31
-rw-r--r--dev-debug/ald/metadata.xml14
-rw-r--r--dev-debug/ddd/Manifest2
-rw-r--r--dev-debug/ddd/ddd-3.3.12-r5.ebuild85
-rw-r--r--dev-debug/ddd/ddd-3.4.0.ebuild82
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-clang.patch15
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-gcc44.patch10
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-gcc9.patch93
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-gdb-disassembler-bug.patch11
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-man.patch16
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-parallel.patch15
-rw-r--r--dev-debug/ddd/files/ddd-3.3.12-tinfo.patch11
-rw-r--r--dev-debug/ddd/metadata.xml17
-rw-r--r--dev-debug/edb-debugger/Manifest1
-rw-r--r--dev-debug/edb-debugger/edb-debugger-1.3.0-r1.ebuild56
-rw-r--r--dev-debug/edb-debugger/edb-debugger-9999.ebuild50
-rw-r--r--dev-debug/edb-debugger/files/edb-debugger-1.3.0-capstone-5.patch29
-rw-r--r--dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc12.patch88
-rw-r--r--dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc13.patch26
-rw-r--r--dev-debug/edb-debugger/metadata.xml6
-rw-r--r--dev-debug/gef/Manifest2
-rw-r--r--dev-debug/gef/gef-2023.08.ebuild82
-rw-r--r--dev-debug/gef/gef-2024.01.ebuild83
-rw-r--r--dev-debug/gef/gef-9999.ebuild83
-rw-r--r--dev-debug/gef/metadata.xml23
-rw-r--r--dev-debug/kdbg/Manifest2
-rw-r--r--dev-debug/kdbg/files/kdbg-3.0.1-fix-rare-memleak.patch35
-rw-r--r--dev-debug/kdbg/files/kdbg-3.0.1-usable-trace.patch23
-rw-r--r--dev-debug/kdbg/kdbg-3.0.1-r1.ebuild48
-rw-r--r--dev-debug/kdbg/kdbg-3.1.0.ebuild42
-rw-r--r--dev-debug/kdbg/metadata.xml10
-rw-r--r--dev-debug/peda/Manifest1
-rw-r--r--dev-debug/peda/metadata.xml14
-rw-r--r--dev-debug/peda/peda-1.2.ebuild49
-rw-r--r--dev-debug/peda/peda-9999.ebuild49
-rw-r--r--dev-debug/pwndbg/Manifest2
-rw-r--r--dev-debug/pwndbg/files/pwndbg-20230717-no-venv.patch46
-rw-r--r--dev-debug/pwndbg/metadata.xml19
-rw-r--r--dev-debug/pwndbg/pwndbg-20230717-r1.ebuild90
-rw-r--r--dev-debug/pwndbg/pwndbg-99999999.ebuild83
41 files changed, 1445 insertions, 0 deletions
diff --git a/dev-debug/ald/Manifest b/dev-debug/ald/Manifest
new file mode 100644
index 000000000000..6b18c1b6f8e6
--- /dev/null
+++ b/dev-debug/ald/Manifest
@@ -0,0 +1 @@
+DIST ald-0.1.7.tar.gz 665998 BLAKE2B 52cdd01f5927a4fedc2bdd7728cd063aa3b48fda7dd3af36c4b9299b62d7cbd199f2a8ebb06457bf29c62a5024fb158944d82260b4aac77838e4338acdd33a25 SHA512 dbde0929beebe51ef5f77055b5f396630e16fd01ded4210d828f9ce97c676e7863700a98bf02d26e10cc2d8481adf329d8c8cb11c866302361221f072dbf45bf
diff --git a/dev-debug/ald/ald-0.1.7-r2.ebuild b/dev-debug/ald/ald-0.1.7-r2.ebuild
new file mode 100644
index 000000000000..f2aa6a34eec2
--- /dev/null
+++ b/dev-debug/ald/ald-0.1.7-r2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Assembly Language Debugger"
+HOMEPAGE="http://ald.sourceforge.net/"
+SRC_URI="mirror://sourceforge/ald/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86"
+IUSE="debug ncurses"
+
+DEPEND="ncurses? ( sys-libs/ncurses:= )"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ # respect CFLAGS (bug #240268)
+ sed -i -e "/^CFLAGS/d" configure.ac || die 'sed on CFLAGS failed'
+ eapply_user
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable ncurses curses) \
+ $(use_enable debug assert)
+}
diff --git a/dev-debug/ald/metadata.xml b/dev-debug/ald/metadata.xml
new file mode 100644
index 000000000000..6c4bd91590e1
--- /dev/null
+++ b/dev-debug/ald/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>bircoph@gentoo.org</email>
+ <name>Andrew Savchenko</name>
+ </maintainer>
+ <longdescription>
+ Assembly Language Debugger --- a tool for debugging executable programs at the assembly level.
+ It currently runs only on Intel x86 platforms.
+ </longdescription>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-debug/ddd/Manifest b/dev-debug/ddd/Manifest
new file mode 100644
index 000000000000..3409e9cb445f
--- /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.0.tar.gz 5742233 BLAKE2B d67969ce2a9803875d8c22abb0708fae2b3e8ef7ce3e36d0969f60ee2f72251fe96774e2768f1dc57e9973684c07ba02d275a711a7a15af24585d6b1468d8eec SHA512 0498eeeb12da7c7f5e2343da2ec44b68ff2b7b9b6481386a8fb9f2d9ac3a9c7154361fe0be78ce81fd966afbc48ed212f40747d1e3b112109ec16f152c67786a
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..de0f8edcfecf
--- /dev/null
+++ b/dev-debug/ddd/ddd-3.3.12-r5.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools desktop 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 ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux"
+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() {
+ 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.0.ebuild b/dev-debug/ddd/ddd-3.4.0.ebuild
new file mode 100644
index 000000000000..57ef0f7ffdf5
--- /dev/null
+++ b/dev-debug/ddd/ddd-3.4.0.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools desktop 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 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+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}/${PN}-3.3.12-man.patch"
+ "${FILESDIR}/${PN}-3.3.12-tinfo.patch"
+# "${FILESDIR}/${PN}-3.4.0-gcc9.patch"
+ "${FILESDIR}/${PN}-3.3.12-parallel.patch"
+)
+
+DOCS=(
+ AUTHORS CREDITS INSTALL NEWS README TIPS
+ doc/ddd{.pdf,-themes.pdf}
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ 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..2b56a6d931b4
--- /dev/null
+++ b/dev-debug/ddd/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>reavertm@gentoo.org</email>
+ <name>Maciej Mrozowski</name>
+ </maintainer>
+ <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>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-debug/edb-debugger/Manifest b/dev-debug/edb-debugger/Manifest
new file mode 100644
index 000000000000..3b2764138681
--- /dev/null
+++ b/dev-debug/edb-debugger/Manifest
@@ -0,0 +1 @@
+DIST edb-debugger-1.3.0.tgz 618227 BLAKE2B 1650e727851b629d7778c8488a464b6439f2ac4e5a72c0738cfe1ee302538b0d97dcbf9587a1108a82f8f8f4a6bec273e31ad454063f70704ffb48ca8ba5b73f SHA512 9d813bb61cdc7b61b594e63834ffb3999d3e1bb0c7a435095efea9b3b6726369a06c553ba6633df160d9456758ff54d5eee8cfbee6a1304f3a01d09fe2c7a65d
diff --git a/dev-debug/edb-debugger/edb-debugger-1.3.0-r1.ebuild b/dev-debug/edb-debugger/edb-debugger-1.3.0-r1.ebuild
new file mode 100644
index 000000000000..18c5a36f7a6f
--- /dev/null
+++ b/dev-debug/edb-debugger/edb-debugger-1.3.0-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="edb is a cross platform x86/x86-64 debugger, inspired by Ollydbg"
+HOMEPAGE="https://github.com/eteran/edb-debugger"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/eteran/edb-debugger"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/eteran/edb-debugger/releases/download/${PV}/edb-debugger-${PV}.tgz"
+ S="${WORKDIR}"/${PN}
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="graphviz"
+
+RDEPEND="dev-libs/capstone:=
+ dev-libs/double-conversion:=
+ dev-qt/qtconcurrent:5
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtxml:5
+ dev-qt/qtxmlpatterns:5
+ graphviz? ( media-gfx/graphviz )"
+DEPEND="dev-libs/boost
+ ${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc12.patch
+ "${FILESDIR}"/${PN}-1.3.0-capstone-5.patch
+ "${FILESDIR}"/${PN}-1.3.0-gcc13.patch
+)
+
+src_prepare() {
+ # Make the desktop's entries somewhat better
+ sed -i -e 's/GenericName=edb debugger/GenericName=Evan\x27s Debugger/' edb.desktop || die
+ sed -i -e 's/Comment=edb debugger/Comment=edb is a cross platform x86\/x86-64 debugger/' edb.desktop || die
+
+ if ! use graphviz; then
+ sed -i -e '/pkg_check_modules(GRAPHVIZ/d' CMakeLists.txt || die
+ fi
+
+ cmake_src_prepare
+}
diff --git a/dev-debug/edb-debugger/edb-debugger-9999.ebuild b/dev-debug/edb-debugger/edb-debugger-9999.ebuild
new file mode 100644
index 000000000000..7cb7dbf2f7f2
--- /dev/null
+++ b/dev-debug/edb-debugger/edb-debugger-9999.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="edb is a cross platform x86/x86-64 debugger, inspired by Ollydbg"
+HOMEPAGE="https://github.com/eteran/edb-debugger"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/eteran/edb-debugger"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/eteran/edb-debugger/releases/download/${PV}/edb-debugger-${PV}.tgz"
+ S="${WORKDIR}"/${PN}
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="graphviz"
+
+RDEPEND="dev-libs/capstone:=
+ dev-libs/double-conversion:=
+ dev-qt/qtconcurrent:5
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtxml:5
+ dev-qt/qtxmlpatterns:5
+ graphviz? ( media-gfx/graphviz )"
+DEPEND="dev-libs/boost
+ ${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ # Make the desktop's entries somewhat better
+ sed -i -e 's/GenericName=edb debugger/GenericName=Evan\x27s Debugger/' edb.desktop || die
+ sed -i -e 's/Comment=edb debugger/Comment=edb is a cross platform x86\/x86-64 debugger/' edb.desktop || die
+
+ if ! use graphviz; then
+ sed -i -e '/pkg_check_modules(GRAPHVIZ/d' CMakeLists.txt || die
+ fi
+
+ cmake_src_prepare
+}
diff --git a/dev-debug/edb-debugger/files/edb-debugger-1.3.0-capstone-5.patch b/dev-debug/edb-debugger/files/edb-debugger-1.3.0-capstone-5.patch
new file mode 100644
index 000000000000..d900ae335242
--- /dev/null
+++ b/dev-debug/edb-debugger/files/edb-debugger-1.3.0-capstone-5.patch
@@ -0,0 +1,29 @@
+From cb1da3fb1d2e45e279118ee8e68468373b71dbc8 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 13 Sep 2022 17:52:01 +0100
+Subject: [PATCH] Fix build with Capstone 5
+
+Capstone 5 drops X86_INS_VCVTPD2DQX and X86_INS_VCVTPD2PSX from
+x86.h (happened in https://github.com/capstone-engine/capstone/commit/dd91f03fef5102492352756e2adb5972dd79a70f
+but no real explanation).
+
+Given:
+1. these instructions had no wiring up;
+2. other Capstone consumers have done the same
+let's drop based on a macro for the Capstone version.
+
+Bug: https://bugs.gentoo.org/843755
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/src/capstone-edb/Instruction.cpp
++++ b/src/capstone-edb/Instruction.cpp
+@@ -880,8 +880,10 @@ bool is_SIMD_PD(const Operand &operand) {
+ case X86_INS_CVTPD2PI:
+ case X86_INS_CVTPD2PS:
+ case X86_INS_VCVTPD2PS:
++#if CS_API_MAJOR < 5
+ case X86_INS_VCVTPD2DQX: // FIXME: what's this?
+ case X86_INS_VCVTPD2PSX: // FIXME: what's this?
++#endif
+ // case X86_INS_VCVTPD2QQ: // FIXME: Capstone seems to not support it
+ case X86_INS_VCVTPD2UDQ:
+ // case X86_INS_VCVTPD2UQQ: // FIXME: Capstone seems to not support it
diff --git a/dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc12.patch b/dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc12.patch
new file mode 100644
index 000000000000..df037193310f
--- /dev/null
+++ b/dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc12.patch
@@ -0,0 +1,88 @@
+https://github.com/eteran/edb-debugger/commit/da04c339559f82257ff54ea62b1d403ee98c1ba0
+https://bugs.gentoo.org/841839
+
+From da04c339559f82257ff54ea62b1d403ee98c1ba0 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Sat, 2 Apr 2022 22:36:50 +0000
+Subject: [PATCH] Gcc 12 includes fix (#815)
+
+* RegisterViewModelBase.h: add <memory> for unique_ptr
+
+Without the change gcc-12 fails to build edb-debugger as:
+
+ [ 20%] Building CXX object src/CMakeFiles/edb.dir/RegisterViewModelBase.cpp.o
+ In file included from edb-debugger/src/RegisterViewModelBase.cpp:18:
+ edb-debugger/include/RegisterViewModelBase.h:162:14: error:
+ 'unique_ptr' in namespace 'std' does not name a template type
+ 162 | std::unique_ptr<CategoriesHolder> rootItem;
+ | ^~~~~~~~~~
+ edb-debugger/include/RegisterViewModelBase.h:9:1: note:
+ 'std::unique_ptr' is defined in header '<memory>';
+ did you forget to '#include <memory>'?
+ 8 | #include <deque>
+ +++ |+#include <memory>
+
+* State.h: add <memory> for unique_ptr
+
+Without the change gcc-12 fails to build edb-debugger as:
+
+ [ 21%] Building CXX object src/CMakeFiles/edb.dir/State.cpp.o
+ In file included from edb-debugger/src/State.cpp:19:
+ edb-debugger/include/State.h:93:14:
+ error: 'unique_ptr' in namespace 'std' does not name a template type
+ 93 | std::unique_ptr<IState> impl_;
+ | ^~~~~~~~~~
+ edb-debugger/include/State.h:24:1:
+ note: 'std::unique_ptr' is defined in header '<memory>';
+ did you forget to '#include <memory>'?
+ 23 | #include "Types.h"
+ +++ |+#include <memory>
+ 24 |
+
+* IState.h: add <memory> for unique_ptr
+
+Without the change gcc-12 fails to build edb-debugger as:
+
+ [ 69%] Building CXX object plugins/DebuggerCore/CMakeFiles/DebuggerCore.dir/unix/linux/arch/x86-generic/PlatformState.cpp.o
+ In file included from edb-debugger/plugins/DebuggerCore/unix/linux/arch/x86-generic/PlatformState.h:22,
+ from edb-debugger/plugins/DebuggerCore/unix/linux/arch/x86-generic/PlatformState.cpp:19:
+ edb-debugger/include/IState.h:33:22:
+ error: 'unique_ptr' in namespace 'std' does not name a template type
+ 33 | virtual std::unique_ptr<IState> clone() const = 0;
+ | ^~~~~~~~~~
+ edb-debugger/include/IState.h:23:1:
+ note: 'std::unique_ptr' is defined in header '<memory>';
+ did you forget to '#include <memory>'?
+ 22 | #include "Register.h"
+ +++ |+#include <memory>
+ 23 | #include "Types.h"
+--- a/include/IState.h
++++ b/include/IState.h
+@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #ifndef ISTATE_H_20110315_
+ #define ISTATE_H_20110315_
+
++#include <memory>
+ #include "Register.h"
+ #include "Types.h"
+
+--- a/include/RegisterViewModelBase.h
++++ b/include/RegisterViewModelBase.h
+@@ -6,6 +6,7 @@
+ #include "util/Integer.h"
+ #include <QAbstractItemModel>
+ #include <deque>
++#include <memory>
+ #include <vector>
+
+ Q_DECLARE_METATYPE(std::vector<NumberDisplayMode>)
+--- a/include/State.h
++++ b/include/State.h
+@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #ifndef STATE_H_20060715_
+ #define STATE_H_20060715_
+
++#include <memory>
+ #include "API.h"
+ #include "Types.h"
+
diff --git a/dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc13.patch b/dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc13.patch
new file mode 100644
index 000000000000..f30eacc97436
--- /dev/null
+++ b/dev-debug/edb-debugger/files/edb-debugger-1.3.0-gcc13.patch
@@ -0,0 +1,26 @@
+https://github.com/eteran/edb-debugger/pull/837
+
+From 934de81a7799f3e1d210366e0eb5ea86d172ead4 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 15 Apr 2023 10:05:11 +0100
+Subject: [PATCH] Fix build with GCC 13
+
+GCC 13 (as usual for new compiler releases) shuffles around some internal includes so some
+are no longer transitively included.
+
+See https://gnu.org/software/gcc/gcc-13/porting_to.html.
+
+Bug: https://bugs.gentoo.org/897890
+--- a/plugins/DebuggerCore/unix/linux/FeatureDetect.cpp
++++ b/plugins/DebuggerCore/unix/linux/FeatureDetect.cpp
+@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #include "FeatureDetect.h"
+ #include "edb.h"
+
++#include <cstdint>
+ #include <fcntl.h>
+ #include <iomanip>
+ #include <iostream>
+--
+2.40.0
+
diff --git a/dev-debug/edb-debugger/metadata.xml b/dev-debug/edb-debugger/metadata.xml
new file mode 100644
index 000000000000..83d00b14c8d4
--- /dev/null
+++ b/dev-debug/edb-debugger/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-debug/gef/Manifest b/dev-debug/gef/Manifest
new file mode 100644
index 000000000000..ba2a872e5a3b
--- /dev/null
+++ b/dev-debug/gef/Manifest
@@ -0,0 +1,2 @@
+DIST gef-2023.08.tar.gz 230347 BLAKE2B b9b8fed1bdf81fa870583921c4bdd6df2d98112748c939da48acae7e636ec6e22dc751d8ed75e52e72ff0aa04835720293f0e82e99ff614c447f2a614c76e48a SHA512 d3a26826b991db7e8d475da945b16933ce046dd64381f5df60ea0fe310d0325f39b05142de5f75abbbd5693c93ad70ff25e982d0ff3526a6fe66fd7526a359c5
+DIST gef-2024.01.tar.gz 235145 BLAKE2B f5409e592c50dbbe65761e7727f28aa7a96b130449f187e392cc0170707b7cfb2d1bf9e75581dce7dce8ff6d004ffc624d34a46b7ba35ab434a5671662860bdb SHA512 d8dbc308f864e434ea79eaf44e329e11f2cea9836a5dcdc019bd621bbec6792f70e58edd9fd8b3c434dc61a17fbac08394e281530423081beb1cc1192aece79c
diff --git a/dev-debug/gef/gef-2023.08.ebuild b/dev-debug/gef/gef-2023.08.ebuild
new file mode 100644
index 000000000000..6ee4d492a0e7
--- /dev/null
+++ b/dev-debug/gef/gef-2023.08.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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-2024.01.ebuild b/dev-debug/gef/gef-2024.01.ebuild
new file mode 100644
index 000000000000..9d635e8fc81d
--- /dev/null
+++ b/dev-debug/gef/gef-2024.01.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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-9999.ebuild b/dev-debug/gef/gef-9999.ebuild
new file mode 100644
index 000000000000..a64275fdd6c2
--- /dev/null
+++ b/dev-debug/gef/gef-9999.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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-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-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/metadata.xml b/dev-debug/gef/metadata.xml
new file mode 100644
index 000000000000..9d812be424fd
--- /dev/null
+++ b/dev-debug/gef/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <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>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-debug/kdbg/Manifest b/dev-debug/kdbg/Manifest
new file mode 100644
index 000000000000..6c598e48c73d
--- /dev/null
+++ b/dev-debug/kdbg/Manifest
@@ -0,0 +1,2 @@
+DIST kdbg-3.0.1.tar.gz 431143 BLAKE2B 869bf9765650b2a4a2330f99303b51f599df764848ff18442c8c6813421fece2671e5e78a0e8c66a59bd77f06a7f02677ec08a49fb9a28874b92b0f84bf8f74f SHA512 9f3e0073bf37e56fa8ad0c3ae5f0be80331d8963b564ff376aee40c3ccebab5b5a482c31f110fd0f4dd14f9614cff31102d8edf62ffb33f4ae361d24346543ea
+DIST kdbg-3.1.0.tar.gz 444052 BLAKE2B d0083094f8ba3cb374b2df4a20b7697ddae4fb24579e18d883701a5e826e86041a8cdb7bd1919c881bc149c49e764221eb246d98bcebacbffbdb5e0f83264ad6 SHA512 e7da5bb1a4882b031077bd4344c6795b058088eb9a00ef3a2ba9c3d72c0a022bb16822525369ca7bcfb623c775cf73140caa114c1591d37f1d6f6a3b22ae649b
diff --git a/dev-debug/kdbg/files/kdbg-3.0.1-fix-rare-memleak.patch b/dev-debug/kdbg/files/kdbg-3.0.1-fix-rare-memleak.patch
new file mode 100644
index 000000000000..44a2b33623f4
--- /dev/null
+++ b/dev-debug/kdbg/files/kdbg-3.0.1-fix-rare-memleak.patch
@@ -0,0 +1,35 @@
+From 0feb0986f220126177084badf67813ccdbaa996c Mon Sep 17 00:00:00 2001
+From: Daniels Umanovskis <daniels@umanovskis.se>
+Date: Fri, 13 Mar 2020 13:48:19 +0100
+Subject: [PATCH] Fix a rare memory leak in the register display window
+
+---
+ kdbg/regwnd.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kdbg/regwnd.cpp b/kdbg/regwnd.cpp
+index edb0e55..93008f9 100644
+--- a/kdbg/regwnd.cpp
++++ b/kdbg/regwnd.cpp
+@@ -274,11 +274,12 @@ static char* toRaw(const QString& hex, uint& length)
+ static bool littleendian=(*testChar==1);
+
+ length=((hex.length()-2)%2)+((hex.length()-2)/2);
++ if (hex.length()<=2) return 0;
++
+ char* data=new char[length];
+
+ if (littleendian) {
+ uint j=0;
+- if (hex.length()<=2) return 0;
+ for (int i=hex.length()-1; i>=2; ) {
+ if (j%2==0)
+ data[j/2]=hexCharToDigit(hex[i].toLatin1());
+@@ -288,7 +289,6 @@ static char* toRaw(const QString& hex, uint& length)
+ }
+ } else { // big endian
+ uint j=0;
+- if (hex.length()<=2) return 0;
+ for (int i=2; i<hex.length(); ) {
+ if (j%2==0)
+ data[j/2]=hexCharToDigit(hex[i].toLatin1())<<4;
diff --git a/dev-debug/kdbg/files/kdbg-3.0.1-usable-trace.patch b/dev-debug/kdbg/files/kdbg-3.0.1-usable-trace.patch
new file mode 100644
index 000000000000..8336d2d53255
--- /dev/null
+++ b/dev-debug/kdbg/files/kdbg-3.0.1-usable-trace.patch
@@ -0,0 +1,23 @@
+From 8f2add1046c2d23294496bc0bc7c00d18c6aa0a2 Mon Sep 17 00:00:00 2001
+From: Daniels Umanovskis <daniels@umanovskis.se>
+Date: Fri, 13 Mar 2020 16:23:02 +0100
+Subject: [PATCH] Change output for a trace so that trace is actually usable
+ again
+
+---
+ kdbg/debugger.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kdbg/debugger.cpp b/kdbg/debugger.cpp
+index 3751e4c..7d43eb9 100644
+--- a/kdbg/debugger.cpp
++++ b/kdbg/debugger.cpp
+@@ -2225,7 +2225,7 @@ void KDebugger::slotValueEdited(VarTree* expr, const QString& text)
+
+ ExprWnd* wnd = static_cast<ExprWnd*>(expr->treeWidget());
+ TRACE(QString().sprintf("Changing %s to ",
+- wnd->name()) + text);
++ wnd->exprList().join(" ")) + text);
+
+ // determine the lvalue to edit
+ QString lvalue = expr->computeExpr();
diff --git a/dev-debug/kdbg/kdbg-3.0.1-r1.ebuild b/dev-debug/kdbg/kdbg-3.0.1-r1.ebuild
new file mode 100644
index 000000000000..bfa17d373d61
--- /dev/null
+++ b/dev-debug/kdbg/kdbg-3.0.1-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="true"
+KFMIN=5.85.0
+QTMIN=5.15.2
+inherit ecm
+
+DESCRIPTION="Graphical debugger interface"
+HOMEPAGE="https://www.kdbg.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="5"
+KEYWORDS="~amd64 ~riscv ~x86"
+IUSE=""
+
+DEPEND="
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kiconthemes-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+"
+RDEPEND="${DEPEND}
+ dev-debug/gdb
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-rare-memleak.patch
+ "${FILESDIR}"/${P}-usable-trace.patch
+)
+
+src_prepare() {
+ # allow documentation to be handled by eclass
+ mv kdbg/doc . || die
+ sed -i -e '/add_subdirectory(doc)/d' kdbg/CMakeLists.txt || die
+ echo "add_subdirectory ( doc ) " >> CMakeLists.txt || die
+
+ ecm_src_prepare
+}
diff --git a/dev-debug/kdbg/kdbg-3.1.0.ebuild b/dev-debug/kdbg/kdbg-3.1.0.ebuild
new file mode 100644
index 000000000000..f0b0412e4cf4
--- /dev/null
+++ b/dev-debug/kdbg/kdbg-3.1.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="true"
+KFMIN=5.85.0
+QTMIN=5.15.2
+inherit ecm
+
+DESCRIPTION="Graphical debugger interface"
+HOMEPAGE="https://www.kdbg.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="5"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+DEPEND="
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kiconthemes-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+"
+RDEPEND="${DEPEND}
+ dev-debug/gdb
+"
+
+src_prepare() {
+ # allow documentation to be handled by eclass
+ mv kdbg/doc . || die
+ sed -i -e '/add_subdirectory(doc)/d' kdbg/CMakeLists.txt || die
+ echo 'add_subdirectory(doc)' >> CMakeLists.txt || die
+
+ ecm_src_prepare
+}
diff --git a/dev-debug/kdbg/metadata.xml b/dev-debug/kdbg/metadata.xml
new file mode 100644
index 000000000000..96ccf0300196
--- /dev/null
+++ b/dev-debug/kdbg/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
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/metadata.xml b/dev-debug/peda/metadata.xml
new file mode 100644
index 000000000000..73424341778f
--- /dev/null
+++ b/dev-debug/peda/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mario.haustein@hrz.tu-chemnitz.de</email>
+ <name>Mario Haustein</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-debug/peda/peda-1.2.ebuild b/dev-debug/peda/peda-1.2.ebuild
new file mode 100644
index 000000000000..5de9126fab72
--- /dev/null
+++ b/dev-debug/peda/peda-1.2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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/peda/peda-9999.ebuild b/dev-debug/peda/peda-9999.ebuild
new file mode 100644
index 000000000000..5aedaf7ca728
--- /dev/null
+++ b/dev-debug/peda/peda-9999.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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..b489d37a759c
--- /dev/null
+++ b/dev-debug/pwndbg/Manifest
@@ -0,0 +1,2 @@
+DIST gdb-pt-dump-ebdc24573a4bf075cf3ab6016add9db6baacf977.tar.gz 385989 BLAKE2B b7582289f83fd0c76b8ef2a04540db979b0f599b6b711e17541e2804b93bcffe6fd611d43101c96644a7324398eea5df02326267b4e201564929de956849b719 SHA512 57701b5fdd4c69be79a451f08fa6d7cbd43a0963cfd7689443676b68ece96154ccb61121d4a770d6e519d3142f99c589df1143b0ff8308547c06fb0e87e187db
+DIST pwndbg-20230717.tar.gz 8392017 BLAKE2B e373a7408366090f58385dac8dfcdd13702c475117a35158a1a149d149c9a2cbf5f2702be33aeab537451cfd990b5253e9bc0283fa5ae197c9cceb680e65a724 SHA512 d261ed992327d62b0b3e7cc002d3185435748e27cc2ce0085d438848ef1bdb0b3921ae5c1ce19c25e49d52b10f8340eb67c4e05fc197d2adeb888b47e2c158ba
diff --git a/dev-debug/pwndbg/files/pwndbg-20230717-no-venv.patch b/dev-debug/pwndbg/files/pwndbg-20230717-no-venv.patch
new file mode 100644
index 000000000000..4011236240f9
--- /dev/null
+++ b/dev-debug/pwndbg/files/pwndbg-20230717-no-venv.patch
@@ -0,0 +1,46 @@
+From 6a351680675123ccc0d8fb192f28f3c654979c92 Mon Sep 17 00:00:00 2001
+From: Stefan Gloor <code@stefan-gloor.ch>
+Date: Tue, 28 Nov 2023 20:24:26 +0100
+Subject: [PATCH] Use global python packages instead of virtualenv
+Bug: https://bugs.gentoo.org/918705
+
+The upstream install script creates a .venv and installs the
+dependencies there. This patch allows the normal python packages to be
+used.
+
+Signed-off-by: Stefan Gloor <code@stefan-gloor.ch>
+--- a/gdbinit.py
++++ b/gdbinit.py
+@@ -20,29 +20,6 @@ directory, file = path.split(__file__)
+ directory = path.expanduser(directory)
+ directory = path.abspath(directory)
+
+-# Get virtualenv's site-packages path
+-venv_path = os.environ.get("PWNDBG_VENV_PATH")
+-if not venv_path:
+- venv_path = os.path.join(directory, ".venv")
+-
+-if not os.path.exists(venv_path):
+- print(f"Cannot find Pwndbg virtualenv directory: {venv_path}: please re-run setup.sh")
+- sys.exit(1)
+-
+-site_pkgs_path = glob(os.path.join(venv_path, "lib/*/site-packages"))[0]
+-
+-# add virtualenv's site-packages to sys.path and run .pth files
+-site.addsitedir(site_pkgs_path)
+-
+-# remove existing, system-level site-packages from sys.path
+-for site_packages in site.getsitepackages():
+- if site_packages in sys.path:
+- sys.path.remove(site_packages)
+-
+-# Set virtualenv's bin path (needed for utility tools like ropper, pwntools etc)
+-bin_path = os.path.join(venv_path, "bin")
+-os.environ["PATH"] = bin_path + os.pathsep + os.environ.get("PATH")
+-
+ # Add gdb-pt-dump directory to sys.path so it can be imported
+ gdbpt = path.join(directory, "gdb-pt-dump")
+ sys.path.append(directory)
+--
+2.41.0
+
diff --git a/dev-debug/pwndbg/metadata.xml b/dev-debug/pwndbg/metadata.xml
new file mode 100644
index 000000000000..3b224d718c7b
--- /dev/null
+++ b/dev-debug/pwndbg/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <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>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-debug/pwndbg/pwndbg-20230717-r1.ebuild b/dev-debug/pwndbg/pwndbg-20230717-r1.ebuild
new file mode 100644
index 000000000000..1d52631bcdd4
--- /dev/null
+++ b/dev-debug/pwndbg/pwndbg-20230717-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit python-single-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}"
+ GDB_PT_DUMP_COMMIT="ebdc24573a4bf075cf3ab6016add9db6baacf977"
+ SRC_URI="
+ https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/martinradev/gdb-pt-dump/archive/${GDB_PT_DUMP_COMMIT}.tar.gz -> gdb-pt-dump-${GDB_PT_DUMP_COMMIT}.tar.gz
+ "
+ KEYWORDS="amd64 ~arm64 x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ dev-debug/gdb[python,${PYTHON_SINGLE_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-libs/capstone-5.0_rc4[python,${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.9.5[${PYTHON_USEDEP}]
+ >=dev-python/pycparser-2.21[${PYTHON_USEDEP}]
+ >=dev-python/pyelftools-0.29[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.15.1[${PYTHON_USEDEP}]
+ >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.6.1[${PYTHON_USEDEP}]
+ >=dev-util/pwntools-4.10.0[${PYTHON_USEDEP}]
+ >=dev-util/ROPgadget-7.2[${PYTHON_USEDEP}]
+ >=dev-util/unicorn-2.0.1[python,${PYTHON_USEDEP}]
+ ')"
+
+PATCHES=(
+ "${FILESDIR}/${P}-no-venv.patch" # Bug 918705
+)
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]]; then
+ rm -r gdb-pt-dump/.git || die
+ else
+ sed -e "s/__version__ = '\(.*\)'/__version__ = '${PV}'/" \
+ -i pwndbg/lib/version.py || die
+
+ rm -r gdb-pt-dump || die
+ mv "${WORKDIR}/gdb-pt-dump-${GDB_PT_DUMP_COMMIT}" gdb-pt-dump || die
+ fi
+
+ python_fix_shebang "${S}"
+ default
+}
+
+src_install() {
+ insinto /usr/share/${PN}
+ doins -r pwndbg/ gdbinit.py # ida_script.py
+ doins -r gdb-pt-dump/
+
+ python_optimize "${ED}"/usr/share/${PN}
+
+ make_wrapper "pwndbg" \
+ "gdb -x \"${EPREFIX}/usr/share/${PN}/gdbinit.py\"" || die
+
+ dodoc {README,DEVELOPING,FEATURES}.md
+}
+
+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..4d7e54411d28
--- /dev/null
+++ b/dev-debug/pwndbg/pwndbg-99999999.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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_p20231111[${PYTHON_SINGLE_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-libs/capstone-5.0_rc4[python,${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.9.5[${PYTHON_USEDEP}]
+ >=dev-python/pycparser-2.21[${PYTHON_USEDEP}]
+ >=dev-python/pyelftools-0.29[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.15.1[${PYTHON_USEDEP}]
+ >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.6.1[${PYTHON_USEDEP}]
+ >=dev-util/pwntools-4.10.0[${PYTHON_USEDEP}]
+ >=dev-util/ROPgadget-7.2[${PYTHON_USEDEP}]
+ >=dev-util/unicorn-2.0.1[python,${PYTHON_USEDEP}]
+ ')
+"
+
+src_prepare() {
+ if [[ ${PV} != 99999999 ]]; then
+ sed -e "s/__version__ = '\(.*\)'/__version__ = '${PV}'/" \
+ -i pwndbg/lib/version.py || die
+ fi
+
+ default
+}
+
+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
+}
+
+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
+}