1{ lib
2, buildPythonPackage
3, setuptools
4, cachetools
5, decorator
6, fetchFromGitHub
7, future
8, nose
9, pysmt
10, pythonOlder
11, pytestCheckHook
12, six
13, z3
14}:
15
16buildPythonPackage rec {
17 pname = "claripy";
18 version = "9.2.25";
19 format = "pyproject";
20
21 disabled = pythonOlder "3.8";
22
23 src = fetchFromGitHub {
24 owner = "angr";
25 repo = pname;
26 rev = "v${version}";
27 hash = "sha256-zDc7TlMtheekLHUuZS7gFieaWRrs+iD/9ko6ECdHiks=";
28 };
29
30 nativeBuildInputs = [
31 setuptools
32 ];
33
34 propagatedBuildInputs = [
35 cachetools
36 decorator
37 future
38 pysmt
39 z3
40 ];
41
42 checkInputs = [
43 nose
44 pytestCheckHook
45 six
46 ];
47
48 postPatch = ''
49 # Use upstream z3 implementation
50 substituteInPlace setup.cfg \
51 --replace "z3-solver == 4.10.2.0" ""
52 '';
53
54 pythonImportsCheck = [
55 "claripy"
56 ];
57
58 meta = with lib; {
59 description = "Python abstraction layer for constraint solvers";
60 homepage = "https://github.com/angr/claripy";
61 license = with licenses; [ bsd2 ];
62 maintainers = with maintainers; [ fab ];
63 };
64}