Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 20.09-beta 51 lines 1.4 kB view raw
1{ stdenv 2, lib 3, python 4, buildPythonPackage 5, fetchPypi 6, radare2 7, coreutils 8}: 9 10buildPythonPackage rec { 11 pname = "r2pipe"; 12 version = "1.4.2"; 13 14 postPatch = let 15 r2lib = "${lib.getOutput "lib" radare2}/lib"; 16 libr_core = "${r2lib}/libr_core${stdenv.hostPlatform.extensions.sharedLibrary}"; 17 in 18 '' 19 # Fix find_library, can be removed after 20 # https://github.com/NixOS/nixpkgs/issues/7307 is resolved. 21 substituteInPlace r2pipe/native.py --replace "find_library('r_core')" "'${libr_core}'" 22 23 # Fix the default r2 executable 24 substituteInPlace r2pipe/open_sync.py --replace "r2e = 'radare2'" "r2e = '${radare2}/bin/radare2'" 25 substituteInPlace r2pipe/open_base.py --replace 'which("radare2")' "'${radare2}/bin/radare2'" 26 ''; 27 28 src = fetchPypi { 29 inherit pname version; 30 sha256 = "4020754e3263ef28d3e74288537847bd8ae5fc1ddd74f34fb262ef1282c4d23c"; 31 }; 32 33 # Tiny sanity check to make sure r2pipe finds radare2 (since r2pipe doesn't 34 # provide its own tests): 35 # Analyze ls with the fastest analysis and do nothing with the result. 36 postCheck = '' 37 ${python.interpreter} <<EOF 38 import r2pipe 39 r2 = r2pipe.open('${coreutils}/bin/ls') 40 r2.cmd('a') 41 r2.quit() 42 EOF 43 ''; 44 45 meta = with stdenv.lib; { 46 description = "Interact with radare2"; 47 homepage = "https://github.com/radare/radare2-r2pipe"; 48 license = licenses.mit; 49 maintainers = with maintainers; [ timokau ]; 50 }; 51}