1{ lib 2, buildPythonPackage 3, isPy3k 4, fetchPypi 5, wrapQtAppsHook 6 7# propagates 8, pyasn1 9, pyasn1-modules 10, cxxfilt 11, msgpack 12, pycparser 13 14# extras: gui 15, pyqt5 16, pyqtwebengine 17 18# knobs 19, withGui ? false 20}: 21 22buildPythonPackage rec { 23 pname = "vivisect"; 24 version = "1.0.8"; 25 26 src = fetchPypi { 27 inherit pname version; 28 sha256 = "sha256-Y8y6sAQJa9baPPdhtuR9Jv1tJkNWJsS1hJ1lknkHWU4="; 29 }; 30 31 postPatch = '' 32 substituteInPlace setup.py \ 33 --replace 'cxxfilt>=0.2.1,<0.3.0' 'cxxfilt' 34 ''; 35 36 nativeBuildInputs = [ 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 = "Pure python disassembler, debugger, emulator, and static analysis framework"; 66 homepage = "https://github.com/vivisect/vivisect"; 67 license = licenses.asl20; 68 maintainers = teams.determinatesystems.members; 69 }; 70}