Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / python-modules / r2pipe / default.nix
blob3fbb0fb4042c6e2c18e5200098776915d9eea165
1 { stdenv
2 , lib
3 , python
4 , buildPythonPackage
5 , fetchPypi
6 , radare2
7 , coreutils
8 }:
10 buildPythonPackage rec {
11   pname = "r2pipe";
12   version = "1.5.3";
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}'"
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   '';
28   src = fetchPypi {
29     inherit pname version;
30     sha256 = "8f3708195c8a6e91c5753940fd348cd821df1389d23b889b01b3e88acf407485";
31   };
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   '';
45   meta = with lib; {
46     description = "Interact with radare2";
47     homepage = "https://github.com/radare/radare2-r2pipe";
48     license = licenses.mit;
49     maintainers = with maintainers; [ timokau ];
50   };