summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/pwntools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/pwntools')
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix35
1 files changed, 26 insertions, 9 deletions
diff --git a/pkgs/development/python-modules/pwntools/default.nix b/pkgs/development/python-modules/pwntools/default.nix
index a24e1d5db13e..b9f71de8e94f 100644
--- a/pkgs/development/python-modules/pwntools/default.nix
+++ b/pkgs/development/python-modules/pwntools/default.nix
@@ -2,14 +2,13 @@
, buildPythonPackage
, debugger
, fetchPypi
-, isPy3k
, Mako
-, makeWrapper
, packaging
, pysocks
, pygments
, ROPGadget
, capstone
+, colored-traceback
, paramiko
, pip
, psutil
@@ -17,28 +16,40 @@
, pyserial
, dateutil
, requests
+, rpyc
, tox
, unicorn
, intervaltree
-, fetchpatch
+, installShellFiles
}:
+let
+ debuggerName = lib.strings.getName debugger;
+in
buildPythonPackage rec {
- version = "4.3.1";
+ version = "4.5.0";
pname = "pwntools";
src = fetchPypi {
inherit pname version;
- sha256 = "12ja913kz8wl4afrmpzxh9fx6j7rcwc2vqzkvfr1fxn42gkqhqf4";
+ sha256 = "sha256-IWHMorSASG/po8ib1whS3xPuoUUlD0tbbWI35DI2SIY=";
};
- # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
- # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
- # the bound here. Check if this is still necessary when updating!
postPatch = ''
+ # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
+ # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
+ # the bound here. Check if this is still necessary when updating!
sed -i 's/unicorn>=1.0.2rc1,<1.0.2rc4/unicorn>=1.0.2rc1/' setup.py
+
+ # Upstream hardcoded the check for the command `gdb-multiarch`;
+ # Forcefully use the provided debugger, as `gdb` (hence `pwndbg`) is built with multiarch in `nixpkgs`.
+ sed -i 's/gdb-multiarch/${debuggerName}/' pwnlib/gdb.py
'';
+ nativeBuildInputs = [
+ installShellFiles
+ ];
+
propagatedBuildInputs = [
Mako
packaging
@@ -46,6 +57,7 @@ buildPythonPackage rec {
pygments
ROPGadget
capstone
+ colored-traceback
paramiko
pip
psutil
@@ -53,6 +65,7 @@ buildPythonPackage rec {
pyserial
dateutil
requests
+ rpyc
tox
unicorn
intervaltree
@@ -60,9 +73,13 @@ buildPythonPackage rec {
doCheck = false; # no setuptools tests for the package
+ postInstall = ''
+ installShellCompletion --bash extra/bash_completion.d/shellcraft
+ '';
+
postFixup = ''
mkdir -p "$out/bin"
- makeWrapper "${debugger}/bin/${lib.strings.getName debugger}" "$out/bin/pwntools-gdb"
+ makeWrapper "${debugger}/bin/${debuggerName}" "$out/bin/pwntools-gdb"
'';
meta = with lib; {