ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / development / python-modules / pwntools / default.nix
blobdad2c04b0d6f1f55e2ebdc9df8ec8e8af658230d
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , debugger
5 , fetchPypi
6 , Mako
7 , packaging
8 , pysocks
9 , pygments
10 , ropgadget
11 , capstone
12 , colored-traceback
13 , paramiko
14 , pip
15 , psutil
16 , pyelftools
17 , pyserial
18 , python-dateutil
19 , requests
20 , rpyc
21 , tox
22 , unicorn
23 , intervaltree
24 , installShellFiles
27 let
28   debuggerName = lib.strings.getName debugger;
30 buildPythonPackage rec {
31   version = "4.8.0";
32   pname = "pwntools";
34   src = fetchPypi {
35     inherit pname version;
36     sha256 = "sha256-QgUuLYg3EOTh2gQekWdabXGftOXvLdJFyyhT2hEmkpA=";
37   };
39   postPatch = ''
40     # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
41     # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
42     # the bound here. Check if this is still necessary when updating!
43     sed -i 's/unicorn>=1.0.2rc1,<1.0.2rc4/unicorn>=1.0.2rc1/' setup.py
45     # Upstream hardcoded the check for the command `gdb-multiarch`;
46     # Forcefully use the provided debugger, as `gdb` (hence `pwndbg`) is built with multiarch in `nixpkgs`.
47     sed -i 's/gdb-multiarch/${debuggerName}/' pwnlib/gdb.py
48   '';
50   nativeBuildInputs = [
51     installShellFiles
52   ];
54   propagatedBuildInputs = [
55     Mako
56     packaging
57     pysocks
58     pygments
59     ropgadget
60     capstone
61     colored-traceback
62     paramiko
63     pip
64     psutil
65     pyelftools
66     pyserial
67     python-dateutil
68     requests
69     rpyc
70     tox
71     unicorn
72     intervaltree
73   ];
75   doCheck = false; # no setuptools tests for the package
77   postInstall = ''
78     installShellCompletion --bash extra/bash_completion.d/shellcraft
79   '';
81   postFixup = lib.optionalString (!stdenv.isDarwin) ''
82     mkdir -p "$out/bin"
83     makeWrapper "${debugger}/bin/${debuggerName}" "$out/bin/pwntools-gdb"
84   '';
86   meta = with lib; {
87     homepage = "http://pwntools.com";
88     description = "CTF framework and exploit development library";
89     license = licenses.mit;
90     maintainers = with maintainers; [ bennofs kristoff3r pamplemousse ];
91   };