diff options
Diffstat (limited to 'dev-debug')
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 +} |
