26 buildPythonPackage rec {
27 version = "2.8.6"; # python2 support dropped in 2.9.x
31 inherit version pname;
32 sha256 = "162zki5c1apgv6qbafi7n66y4hgpgp43xag7q75qb6kv99ri6k80";
42 ] ++ (with rPackages; [
43 # packages expected by the test framework
54 # is in upstream's `requires` although it shouldn't be -- this is easier than patching it away
56 ]) ++ extraRPackages ++ rWrapper.recommendedPackages;
59 R # needed at setup time to detect R_HOME (alternatively set R_HOME explicitly)
63 # R_LIBS_SITE is used by the nix r package to point to the installed R libraries.
64 # This patch sets R_LIBS_SITE when rpy2 is imported.
68 substituteInPlace ${ if isPy27 then "rpy/rinterface/__init__.py" else "rpy2/rinterface_lib/embedded.py" } --replace '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE"
71 doPatchelf = false; # fails because of "missing filename"
74 propagatedBuildInputs = [
86 # One remaining test failure caused by different unicode encoding.
87 # https://bitbucket.org/rpy2/rpy2/issues/488
90 ${python.interpreter} -m 'rpy2'
93 # For some reason libreadline.so is not found. Curiously `ldd _rinterface.so | grep readline` shows two readline entries:
94 # libreadline.so.6 => not found
95 # libreadline.so.6 => /nix/store/z2zhmrg6jcrn5iq2779mav0nnq4vm2q6-readline-6.3p08/lib/libreadline.so.6 (0x00007f333ac43000)
96 # There must be a better way to fix this, but I don't know it.
98 patchelf --add-needed ${readline}/lib/libreadline.so "$out/${python.sitePackages}/rpy2/rinterface/"_rinterface*.so
102 homepage = "http://rpy.sourceforge.net/rpy2";
103 description = "Python interface to R";
104 license = lib.licenses.gpl2Plus;
105 platforms = lib.platforms.unix;
106 maintainers = with lib.maintainers; [ joelmo ];