1{ lib
2, buildPythonPackage
3, capstone
4, stdenv
5, fetchpatch
6, fetchPypi
7, setuptools
8}:
9
10buildPythonPackage rec {
11 pname = "capstone";
12 version = lib.getVersion capstone;
13
14 src = capstone.src;
15 sourceRoot = "${capstone.name}/bindings/python";
16
17 postPatch = ''
18 ln -s ${capstone}/lib/libcapstone${stdenv.targetPlatform.extensions.sharedLibrary} prebuilt/
19 ln -s ${capstone}/lib/libcapstone.a prebuilt/
20 substituteInPlace setup.py --replace manylinux1 manylinux2014
21 '';
22
23 propagatedBuildInputs = [ setuptools ];
24
25 checkPhase = ''
26 mv capstone capstone.hidden
27 patchShebangs test_*
28 make check
29 '';
30
31 meta = with lib; {
32 homepage = "http://www.capstone-engine.org/";
33 license = licenses.bsdOriginal;
34 description = "Python bindings for Capstone disassembly engine";
35 maintainers = with maintainers; [ bennofs ris ];
36 # creates a manylinux2014-x86_64 wheel
37 broken = stdenv.isAarch64;
38 };
39}