1{
2 lib,
3 buildPythonPackage,
4 cxxfilt,
5 fetchPypi,
6 msgpack,
7 pyasn1,
8 pyasn1-modules,
9 pycparser,
10 pyqt5,
11 pyqtwebengine,
12 pythonOlder,
13 withGui ? false,
14 wrapQtAppsHook,
15}:
16
17buildPythonPackage rec {
18 pname = "vivisect";
19 version = "1.1.1";
20 format = "setuptools";
21
22 disabled = pythonOlder "3.6";
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-URRBEZelw4s43zqtb/GrLxIksvrqHbqQWntT9jVonhU=";
27 };
28
29 pythonRelaxDeps = [
30 "cxxfilt"
31 "pyasn1"
32 "pyasn1-modules"
33 ];
34
35 nativeBuildInputs = [
36 wrapQtAppsHook
37 ];
38
39 propagatedBuildInputs = [
40 pyasn1
41 pyasn1-modules
42 cxxfilt
43 msgpack
44 pycparser
45 ] ++ lib.optionals (withGui) passthru.optional-dependencies.gui;
46
47 passthru.optional-dependencies.gui = [
48 pyqt5
49 pyqtwebengine
50 ];
51
52 postFixup = ''
53 wrapQtApp $out/bin/vivbin
54 '';
55
56 # requires another repo for test files
57 doCheck = false;
58
59 pythonImportsCheck = [ "vivisect" ];
60
61 meta = with lib; {
62 description = "Python disassembler, debugger, emulator, and static analysis framework";
63 homepage = "https://github.com/vivisect/vivisect";
64 changelog = "https://github.com/vivisect/vivisect/blob/v${version}/CHANGELOG.rst";
65 license = licenses.asl20;
66 maintainers = [ ];
67 };
68}