summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Haustein <mario.haustein@hrz.tu-chemnitz.de>2023-11-29 19:14:41 +0100
committerSam James <sam@gentoo.org>2023-12-04 08:33:01 +0000
commit646a889ecd781bdaf6176d15f7bb56171bb70389 (patch)
tree1381dc5a8d03269259f98eda42bed412707d8dd8 /dev-util/pwndbg
parentdev-lang/mono: filter LTO unconditionally, force -O2, no strict aliasing (diff)
downloadgentoo-646a889ecd781bdaf6176d15f7bb56171bb70389.tar.gz
gentoo-646a889ecd781bdaf6176d15f7bb56171bb70389.tar.bz2
gentoo-646a889ecd781bdaf6176d15f7bb56171bb70389.zip
dev-util/pwndbg: prevent pwndbg from setting up its own venv
Bug: https://bugs.gentoo.org/918705 Signed-off-by: Mario Haustein <mario.haustein@hrz.tu-chemnitz.de> Thanks-to: Stefan Gloor <code@stefan-gloor.ch> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-util/pwndbg')
-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
2 files changed, 50 insertions, 0 deletions
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