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 setuptools, 16}: 17 18buildPythonPackage rec { 19 pname = "vivisect"; 20 version = "1.2.1"; 21 pyproject = true; 22 23 disabled = pythonOlder "3.8"; 24 25 src = fetchPypi { 26 inherit pname version; 27 hash = "sha256-zBWrVBub48rYBg7k9CDmgCWPpPz3R38/mtUCM1P3Mpk="; 28 }; 29 30 pythonRelaxDeps = [ 31 "cxxfilt" 32 "msgpack" 33 "pyasn1" 34 "pyasn1-modules" 35 ]; 36 37 build-system = [ setuptools ]; 38 39 nativeBuildInputs = [ 40 wrapQtAppsHook 41 ]; 42 43 dependencies = [ 44 pyasn1 45 pyasn1-modules 46 cxxfilt 47 msgpack 48 pycparser 49 ] ++ lib.optionals (withGui) optional-dependencies.gui; 50 51 optional-dependencies.gui = [ 52 pyqt5 53 pyqtwebengine 54 ]; 55 56 postFixup = '' 57 wrapQtApp $out/bin/vivbin 58 ''; 59 60 # Tests requires another repo for test files 61 doCheck = false; 62 63 pythonImportsCheck = [ "vivisect" ]; 64 65 meta = with lib; { 66 description = "Python disassembler, debugger, emulator, and static analysis framework"; 67 homepage = "https://github.com/vivisect/vivisect"; 68 changelog = "https://github.com/vivisect/vivisect/blob/v${version}/CHANGELOG.rst"; 69 license = licenses.asl20; 70 maintainers = [ ]; 71 }; 72}