1{ lib
2, ailment
3, archinfo
4, buildPythonPackage
5, cachetools
6, capstone
7, cffi
8, claripy
9, cle
10, cppheaderparser
11, dpkt
12, fetchFromGitHub
13, GitPython
14, itanium_demangler
15, mulpyplexer
16, nampa
17, networkx
18, progressbar2
19, protobuf
20, psutil
21, pycparser
22, pythonOlder
23, pyvex
24, sqlalchemy
25, rpyc
26, sortedcontainers
27, unicorn
28}:
29
30let
31 # Only the pinned release in setup.py works properly
32 unicorn' = unicorn.overridePythonAttrs (old: rec {
33 pname = "unicorn";
34 version = "1.0.2-rc4";
35 src = fetchFromGitHub {
36 owner = "unicorn-engine";
37 repo = pname;
38 rev = version;
39 sha256 = "17nyccgk7hpc4hab24yn57f1xnmr7kq4px98zbp2bkwcrxny8gwy";
40 };
41 doCheck = false;
42 });
43in
44
45buildPythonPackage rec {
46 pname = "angr";
47 version = "9.0.10576";
48 disabled = pythonOlder "3.6";
49
50 src = fetchFromGitHub {
51 owner = pname;
52 repo = pname;
53 rev = "v${version}";
54 sha256 = "sha256-lRoJZX7HPZE6y7v5AuU1C6sjOIXXefv8M/qPiNQtobw=";
55 };
56
57 propagatedBuildInputs = [
58 ailment
59 archinfo
60 cachetools
61 capstone
62 cffi
63 claripy
64 cle
65 cppheaderparser
66 dpkt
67 GitPython
68 itanium_demangler
69 mulpyplexer
70 nampa
71 networkx
72 progressbar2
73 protobuf
74 psutil
75 sqlalchemy
76 pycparser
77 pyvex
78 sqlalchemy
79 rpyc
80 sortedcontainers
81 unicorn'
82 ];
83
84 # Tests have additional requirements, e.g., pypcode and angr binaries
85 # cle is executing the tests with the angr binaries
86 doCheck = false;
87
88 # See http://angr.io/api-doc/
89 pythonImportsCheck = [
90 "angr"
91 "claripy"
92 "cle"
93 "pyvex"
94 "archinfo"
95 ];
96
97 meta = with lib; {
98 description = "Powerful and user-friendly binary analysis platform";
99 homepage = "https://angr.io/";
100 license = with licenses; [ bsd2 ];
101 maintainers = with maintainers; [ fab ];
102 };
103}