1{ lib 2, buildPythonPackage 3, cxxfilt 4, fetchPypi 5, msgpack 6, pyasn1 7, pyasn1-modules 8, pycparser 9, pyqt5 10, pythonRelaxDepsHook 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 pythonRelaxDepsHook 37 wrapQtAppsHook 38 ]; 39 40 propagatedBuildInputs = [ 41 pyasn1 42 pyasn1-modules 43 cxxfilt 44 msgpack 45 pycparser 46 ] ++ lib.optionals (withGui) passthru.optional-dependencies.gui; 47 48 passthru.optional-dependencies.gui = [ 49 pyqt5 50 pyqtwebengine 51 ]; 52 53 postFixup = '' 54 wrapQtApp $out/bin/vivbin 55 ''; 56 57 # requires another repo for test files 58 doCheck = false; 59 60 pythonImportsCheck = [ 61 "vivisect" 62 ]; 63 64 meta = with lib; { 65 description = "Python disassembler, debugger, emulator, and static analysis framework"; 66 homepage = "https://github.com/vivisect/vivisect"; 67 changelog = "https://github.com/vivisect/vivisect/blob/v${version}/CHANGELOG.rst"; 68 license = licenses.asl20; 69 maintainers = [ ]; 70 }; 71}