summaryrefslogtreecommitdiff
path: root/dev-util/pwndbg
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/pwndbg')
-rw-r--r--dev-util/pwndbg/Manifest5
-rw-r--r--dev-util/pwndbg/files/pwndbg-20230717-no-venv.patch46
-rw-r--r--dev-util/pwndbg/pwndbg-20230717-r1.ebuild (renamed from dev-util/pwndbg/pwndbg-20230717.ebuild)4
-rw-r--r--dev-util/pwndbg/pwndbg-99999999.ebuild35
4 files changed, 69 insertions, 21 deletions
diff --git a/dev-util/pwndbg/Manifest b/dev-util/pwndbg/Manifest
index e7cd85324455..06d4aceb888e 100644
--- a/dev-util/pwndbg/Manifest
+++ b/dev-util/pwndbg/Manifest
@@ -1,5 +1,6 @@
+AUX pwndbg-20230717-no-venv.patch 1623 BLAKE2B abab8d6cec25a8efc8fc6e3b16159b0ace65ed2b11d5dc64686ea09aa5efdfddc4bf704c2fbfb24e4e2fdb542d41b2ac7c1737cd1211717b72bebe50cd075ba5 SHA512 2eb2441fa27e8e3a024bb88731ab81d81370648cc7f8e3f2694809fa64beacfdfcb61a06b7689fa97a3f046775a1d12eaf9310ac3beea44ba28c67175e5e89fb
DIST gdb-pt-dump-ebdc24573a4bf075cf3ab6016add9db6baacf977.tar.gz 385989 BLAKE2B b7582289f83fd0c76b8ef2a04540db979b0f599b6b711e17541e2804b93bcffe6fd611d43101c96644a7324398eea5df02326267b4e201564929de956849b719 SHA512 57701b5fdd4c69be79a451f08fa6d7cbd43a0963cfd7689443676b68ece96154ccb61121d4a770d6e519d3142f99c589df1143b0ff8308547c06fb0e87e187db
DIST pwndbg-20230717.tar.gz 8392017 BLAKE2B e373a7408366090f58385dac8dfcdd13702c475117a35158a1a149d149c9a2cbf5f2702be33aeab537451cfd990b5253e9bc0283fa5ae197c9cceb680e65a724 SHA512 d261ed992327d62b0b3e7cc002d3185435748e27cc2ce0085d438848ef1bdb0b3921ae5c1ce19c25e49d52b10f8340eb67c4e05fc197d2adeb888b47e2c158ba
-EBUILD pwndbg-20230717.ebuild 2500 BLAKE2B 08ff29915156bf644909ac18194ac0fe16497415fda7259704d4f8fe9124b54c0caa2c2e9d9a8ec6801650cc314405048737e8d86670107435525ead7ab960e5 SHA512 3e4580c98f444023bdd76c7db11f4573fe9456e7ad31680dc803dfb11e13e6633015c6e08282bffcb1d82cc957cf4a63bafd75a42d3b33b63373447a799c9a4e
-EBUILD pwndbg-99999999.ebuild 2502 BLAKE2B 552320bf94f7d8167dec7157285acb391e8630ac9d8a3e327b04833430ef382fc3f004a5173b3f2f87bb272b65fe8b10a91e914236e4b96a52f2e35811a0a77f SHA512 936ff3ce1dd2f0325072a6793fc718f28fa0022e1d5dfac7380711d2ba7f518cf4a8e22733ae264e5791a70bdfe79c91bdae44d1ea3f0efb8ae11000f12c832a
+EBUILD pwndbg-20230717-r1.ebuild 2560 BLAKE2B 118323f8a26134d507a987032be439d34c1400dd0f3668af2bfd2cdb631401f11c221214da65940b5068e77feab368c58eb4010874d20f628172909cc9731a08 SHA512 1680f72ba2600cec7f3d94286c573458947ff69a079de4a00bed5391ec9c0a0e236dcd09d3830cdb8123f7b298cc9749ecf39b4530dddad16b71ea5ad0834c42
+EBUILD pwndbg-99999999.ebuild 2392 BLAKE2B 01c6e938ee1908281b0fa448a642fc6ad6883bab188f4e12c3aec664c29cb5d7b3b8663f244058801f27c12221f108e7bdbe8a3e6f87fc84f88bce123ea89d9d SHA512 fb21f5c9f6d3cfb98245b811eb8c9b7eb33f239c94480cf77f04555e3e3358e8cf2e8b856eabb3f1852fea5057f7e68966b373266453ab9ef29cc20d12fab420
MISC metadata.xml 692 BLAKE2B bb74dda183fe35e5873e7cbaa5886dec5beaf082968b16352bcda55f2e14dbdb78ee48d2e0195baa735b0f615b0469f8fd48429c47f4a81d2fc0391cafaade76 SHA512 8a6a9ec3aa03e597d8302a5b1001fbfd569e6efb08157445bedb58ec82b4d7812aad7a852ae3eb0d0f245cbf89c85a357e532855c19e6dbc9d438c16e0bd549d
diff --git a/dev-util/pwndbg/files/pwndbg-20230717-no-venv.patch b/dev-util/pwndbg/files/pwndbg-20230717-no-venv.patch
new file mode 100644
index 000000000000..4011236240f9
--- /dev/null
+++ b/dev-util/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-util/pwndbg/pwndbg-20230717.ebuild b/dev-util/pwndbg/pwndbg-20230717-r1.ebuild
index 8de162e49a85..9cd280c6f445 100644
--- a/dev-util/pwndbg/pwndbg-20230717.ebuild
+++ b/dev-util/pwndbg/pwndbg-20230717-r1.ebuild
@@ -44,6 +44,10 @@ RDEPEND="
>=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
diff --git a/dev-util/pwndbg/pwndbg-99999999.ebuild b/dev-util/pwndbg/pwndbg-99999999.ebuild
index e3e4ca316ffd..aa860fdf8e97 100644
--- a/dev-util/pwndbg/pwndbg-99999999.ebuild
+++ b/dev-util/pwndbg/pwndbg-99999999.ebuild
@@ -3,9 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_USE_PEP517=poetry
+DISTUTILS_SINGLE_IMPL=1
+PYTHON_COMPAT=( python3_{10..11} )
-inherit python-single-r1 wrapper
+inherit distutils-r1 wrapper
DESCRIPTION="A GDB plug-in that makes debugging with GDB suck less"
HOMEPAGE="https://github.com/pwndbg/pwndbg"
@@ -15,21 +17,16 @@ if [[ ${PV} == "99999999" ]]; then
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
- "
+ 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"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
- ${PYTHON_DEPS}
+ ~dev-python/gdb-pt-dump-0.0.0_p20231111[${PYTHON_SINGLE_USEDEP}]
sys-devel/gdb[python,${PYTHON_SINGLE_USEDEP}]
$(python_gen_cond_dep '
>=dev-libs/capstone-5.0_rc4[python,${PYTHON_USEDEP}]
@@ -42,27 +39,27 @@ RDEPEND="
>=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} == *9999 ]]; then
- rm -r gdb-pt-dump/.git || die
- else
+ if [[ ${PV} != 99999999 ]]; then
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() {
+ distutils-r1_src_install
+
insinto /usr/share/${PN}
- doins -r pwndbg/ gdbinit.py # ida_script.py
- doins -r gdb-pt-dump/
+ 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}