Added a fix for larger R versions
authorSebastien Fabbro <bicatali@gentoo.org>
Thu, 15 Apr 2010 21:58:10 +0000 (21:58 +0000)
committerSebastien Fabbro <bicatali@gentoo.org>
Thu, 15 Apr 2010 21:58:10 +0000 (21:58 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

dev-python/rpy/ChangeLog
dev-python/rpy/Manifest
dev-python/rpy/files/rpy-1.0.2-R210.patch [new file with mode: 0644]
dev-python/rpy/rpy-1.0.2-r1.ebuild

index 51fd892f9c3d8a63f2a4bcea1be2c5287c65917d..0412b73ee0e1bfaec700348de9e175c5b4b4ff76 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-python/rpy
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/rpy/ChangeLog,v 1.35 2009/12/14 17:50:57 bicatali Exp $
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/rpy/ChangeLog,v 1.36 2010/04/15 21:58:10 bicatali Exp $
+
+  15 Apr 2010; Sébastien Fabbro <bicatali@gentoo.org> rpy-1.0.2-r1.ebuild,
+  +files/rpy-1.0.2-R210.patch:
+  Added a fix for larger R versions
 
 *rpy-2.0.8 (14 Dec 2009)
 
index f75b29ab03b8e95f674576c56e1f149e8b3ccb2b..f1981689490d3772cb5bcbf5a65634853bca8b02 100644 (file)
@@ -1,3 +1,7 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX rpy-1.0.2-R210.patch 11053 RMD160 943de29b65a75ae58e3773338a4163dc5b1e761e SHA1 9183b16eeee6b1791fe610f6d3adc4dc058117ae SHA256 a36a0f83eead2f97e94502262d23aacdcd6accf56605998b6f1eade5ca67e8e6
 AUX rpy-1.0.2-R28.patch 335 RMD160 e1389f09e34fa99ce69318dd0cf6f9e33656317d SHA1 367f77a2bac17303065b50f7935aed44fa5f2552 SHA256 ca274cf2127fd19569785053da2342dbf51dfb6593817c9ab8d121e144858198
 AUX rpy-1.0.2-rpymodule-R-2.7.patch 415 RMD160 f5ec70233673a983aff8433e56ad5907a614d41f SHA1 8efea983db9544528cd396436d5475b23ab59319 SHA256 939d08f700a73d4c982aaa1725da6049f2680a94d06b988f6727c2321f49cd63
 AUX rpy-1.0_rc3-version-detect.patch 592 RMD160 536d493f0ad469c6c6508ef0860e92c98d71a948 SHA1 5d7959378426c1dbe76a5dab94f9f423ad56d60c SHA256 ab156087a1b8a631630c0dec0362fcfb1e6d8ca8e2deadc4447dbcc6047e44ad
@@ -6,8 +10,15 @@ AUX rpy-testfiles.patch 2854 RMD160 e94af532950604f5efb68125239d0b938dd58231 SHA
 DIST rpy-1.0.2.tar.gz 85458 RMD160 2814eb406ff167826df1bd2983035ac8d0968b40 SHA1 c3307c3a895c1ddcb3b4c67a6759f164cb2f667e SHA256 bae91fff8f4ee754b70d14d4f6e1f2c64c026c97eff75c3bc84c725d6de03d30
 DIST rpy2-2.0.6.tar.gz 115531 RMD160 e4a7e9faadd3476510e7740997a9fd5a3cc46287 SHA1 e671c6ff563fad8d387954b7f5a6b284ac5e8d9a SHA256 69ceadeae10df93f06d1ba4229b28e29d28ba86b018c09298686cd126d4cd8f4
 DIST rpy2-2.0.8.tar.gz 116142 RMD160 d36d4a212ee740dcdd737223275714f2a84e1347 SHA1 69ac087fb3541ebc9de42e65d19051c3808ac233 SHA256 3ae9c037c6a80bc159a1e456e914412bc6fd69733b7c53cee22bb17ec9aedb3c
-EBUILD rpy-1.0.2-r1.ebuild 1412 RMD160 5f9bcabf93c6fd27d04d7d7727caa5786cf860b0 SHA1 796d30cd3b901c8335acffade1a1458d28979b02 SHA256 3c0bb0698900d104837b52e19f0cf733ff573d352d1929948b9fa9d1bc24bee5
+EBUILD rpy-1.0.2-r1.ebuild 1450 RMD160 d3a0ce5bffb6ffd6b6730a7d2776dee6a3e1c260 SHA1 f10ecbdbdc583a09797790fc467c7977d2ccfe50 SHA256 a8c7a7116a8ea23f8732d58c22a422cf5980ae75c81b49af2d608144b374c9da
 EBUILD rpy-2.0.6.ebuild 845 RMD160 43f1415e80a9da062904453db16a0aa989abad14 SHA1 45337e9e526eb1c463c68d4c9bbc116094d9babf SHA256 1da1b6a35164bdc6b36af27798750ac73cd8b22da547548a0503e96865772675
 EBUILD rpy-2.0.8.ebuild 872 RMD160 4a2256cda7e206dfa3695ee4f82f2c38b9356616 SHA1 1b643855d12d387c34b46378059622a67f7ed300 SHA256 65c2a5eda932dc4d7650c2f3c41345ab8743119583943a4e48cfeec5f281bc00
-MISC ChangeLog 5977 RMD160 aef8cd6906c886f7518cb37e972cadcefae99e84 SHA1 0b28a0685b9de340ed90cabd6ca5f234fa965072 SHA256 d12effb088514753792e1604bae6dcef91bc4fcbfbc581eac13944e0f0466754
+MISC ChangeLog 6121 RMD160 7d749fc385ef30c7b89ec4ac579b575cd8c1ef75 SHA1 1944ccf06448f00abe60febab733f9d111f7dd0f SHA256 d0bf74bb71f6a50f65704b6c41eb85dbe1f0390b73fd8d0ba2b9dc3622291cf0
 MISC metadata.xml 435 RMD160 b9de7bdc77c1d92f1ef787aa0891092ab37c38e8 SHA1 bb74a8f3c611f3f406b6343acb349d05e9765ad3 SHA256 cfbeb2f702e55ef46bef1a51dd78b7ceae7724a5ab5ccfd2daa65554e1a553de
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.14 (GNU/Linux)
+
+iEYEARECAAYFAkvHlvkACgkQ1ycZbhPLE2DDCACfXD8KyS1t4lOdDw9plvE2DHMA
+55kAoJXBg/nZaiZfaCNcz5KZXMgnD9Cg
+=tUou
+-----END PGP SIGNATURE-----
diff --git a/dev-python/rpy/files/rpy-1.0.2-R210.patch b/dev-python/rpy/files/rpy-1.0.2-R210.patch
new file mode 100644 (file)
index 0000000..1c85889
--- /dev/null
@@ -0,0 +1,540 @@
+--- rpy-1.0.2.orig/examples/faithful.dat       1970-01-01 01:00:00.000000000 +0100
++++ rpy-1.0.2/examples/faithful.dat    2010-04-15 17:44:06.000000000 +0100
+@@ -0,0 +1,273 @@
++"eruptions" "waiting"
++3.6 79
++1.8 54
++3.333 74
++2.283 62
++4.533 85
++2.883 55
++4.7 88
++3.6 85
++1.95 51
++4.35 85
++1.833 54
++3.917 84
++4.2 78
++1.75 47
++4.7 83
++2.167 52
++1.75 62
++4.8 84
++1.6 52
++4.25 79
++1.8 51
++1.75 47
++3.45 78
++3.067 69
++4.533 74
++3.6 83
++1.967 55
++4.083 76
++3.85 78
++4.433 79
++4.3 73
++4.467 77
++3.367 66
++4.033 80
++3.833 74
++2.017 52
++1.867 48
++4.833 80
++1.833 59
++4.783 90
++4.35 80
++1.883 58
++4.567 84
++1.75 58
++4.533 73
++3.317 83
++3.833 64
++2.1 53
++4.633 82
++2 59
++4.8 75
++4.716 90
++1.833 54
++4.833 80
++1.733 54
++4.883 83
++3.717 71
++1.667 64
++4.567 77
++4.317 81
++2.233 59
++4.5 84
++1.75 48
++4.8 82
++1.817 60
++4.4 92
++4.167 78
++4.7 78
++2.067 65
++4.7 73
++4.033 82
++1.967 56
++4.5 79
++4 71
++1.983 62
++5.067 76
++2.017 60
++4.567 78
++3.883 76
++3.6 83
++4.133 75
++4.333 82
++4.1 70
++2.633 65
++4.067 73
++4.933 88
++3.95 76
++4.517 80
++2.167 48
++4 86
++2.2 60
++4.333 90
++1.867 50
++4.817 78
++1.833 63
++4.3 72
++4.667 84
++3.75 75
++1.867 51
++4.9 82
++2.483 62
++4.367 88
++2.1 49
++4.5 83
++4.05 81
++1.867 47
++4.7 84
++1.783 52
++4.85 86
++3.683 81
++4.733 75
++2.3 59
++4.9 89
++4.417 79
++1.7 59
++4.633 81
++2.317 50
++4.6 85
++1.817 59
++4.417 87
++2.617 53
++4.067 69
++4.25 77
++1.967 56
++4.6 88
++3.767 81
++1.917 45
++4.5 82
++2.267 55
++4.65 90
++1.867 45
++4.167 83
++2.8 56
++4.333 89
++1.833 46
++4.383 82
++1.883 51
++4.933 86
++2.033 53
++3.733 79
++4.233 81
++2.233 60
++4.533 82
++4.817 77
++4.333 76
++1.983 59
++4.633 80
++2.017 49
++5.1 96
++1.8 53
++5.033 77
++4 77
++2.4 65
++4.6 81
++3.567 71
++4 70
++4.5 81
++4.083 93
++1.8 53
++3.967 89
++2.2 45
++4.15 86
++2 58
++3.833 78
++3.5 66
++4.583 76
++2.367 63
++5 88
++1.933 52
++4.617 93
++1.917 49
++2.083 57
++4.583 77
++3.333 68
++4.167 81
++4.333 81
++4.5 73
++2.417 50
++4 85
++4.167 74
++1.883 55
++4.583 77
++4.25 83
++3.767 83
++2.033 51
++4.433 78
++4.083 84
++1.833 46
++4.417 83
++2.183 55
++4.8 81
++1.833 57
++4.8 76
++4.1 84
++3.966 77
++4.233 81
++3.5 87
++4.366 77
++2.25 51
++4.667 78
++2.1 60
++4.35 82
++4.133 91
++1.867 53
++4.6 78
++1.783 46
++4.367 77
++3.85 84
++1.933 49
++4.5 83
++2.383 71
++4.7 80
++1.867 49
++3.833 75
++3.417 64
++4.233 76
++2.4 53
++4.8 94
++2 55
++4.15 76
++1.867 50
++4.267 82
++1.75 54
++4.483 75
++4 78
++4.117 79
++4.083 78
++4.267 78
++3.917 70
++4.55 79
++4.083 70
++2.417 54
++4.183 86
++2.217 50
++4.45 90
++1.883 54
++1.85 54
++4.283 77
++3.95 79
++2.333 64
++4.15 75
++2.35 47
++4.933 86
++2.9 63
++4.583 85
++3.833 82
++2.083 57
++4.367 82
++2.133 67
++4.35 74
++2.2 54
++4.45 83
++3.567 73
++4.5 73
++4.15 88
++3.817 80
++3.917 71
++4.45 83
++2 56
++4.283 79
++4.767 78
++4.533 84
++1.85 58
++4.25 83
++1.983 43
++2.25 60
++4.75 75
++4.117 81
++2.15 46
++4.417 90
++1.817 46
++4.467 74
+--- rpy-1.0.2.orig/examples/nnet.py    1970-01-01 01:00:00.000000000 +0100
++++ rpy-1.0.4/examples/nnet.py 2010-04-15 17:44:06.000000000 +0100
+@@ -0,0 +1,29 @@
++from rpy import *
++
++# avoid automatic conversion
++set_default_mode(NO_CONVERSION)
++
++
++r.library("nnet")
++model = r("Fxy~x+y")
++
++df = r.data_frame(x = r.c(0,2,5,10,15)
++                   ,y = r.c(0,2,5,8,10)
++                   ,Fxy = r.c(0,2,5,8,10))
++
++NNModel = r.nnet(model, data = df
++                  , size =10, decay =1e-3
++                  , lineout=True, skip=True
++                  , maxit=1000, Hess =True)
++
++XG = r.expand_grid(x = r.seq(0,7,1), y = r.seq(0,7,1))
++x = r.seq(0,7,1)
++y = r.seq(0,7,1)
++
++
++# turn automatic conversion back on
++set_default_mode(BASIC_CONVERSION)
++
++fit = r.predict(NNModel,XG)
++print fit
++
+--- rpy-1.0.2/PKG-INFO 2008-04-10 17:54:36.000000000 +0100
++++ rpy-1.0.4.orig/PKG-INFO    1970-01-01 01:00:00.000000000 +0100
+@@ -1,13 +0,0 @@
+-Metadata-Version: 1.0
+-Name: rpy
+-Version: 1.0.2
+-Summary: Python interface to the R language
+-Home-page: http://rpy.sourceforge.net
+-Author: Gregory R. Warnes
+-Author-email: warnes@bst.rochester.edu
+-License: GPL
+-Description: RPy provides a robust Python interface to the R
+-        programming language.  It can manage all kinds of R objects and can
+-        execute arbitrary R functions. All the errors from the R language are
+-        converted to Python exceptions.
+-Platform: UNKNOWN
+--- rpy-1.0.2.orig/rpy.py      2008-01-02 17:57:09.000000000 +0000
++++ rpy-1.0.2/rpy.py   2010-04-15 17:44:06.000000000 +0100
+@@ -16,7 +16,7 @@
+ #
+ #  High level module for managing the lookup of R objects.
+ #
+-#  $Id: rpy-1.0.2-R210.patch,v 1.1 2010/04/15 21:58:10 bicatali Exp $
++#  $Id: rpy-1.0.2-R210.patch,v 1.1 2010/04/15 21:58:10 bicatali Exp $
+ #
+ #
+ from __future__ import nested_scopes
+@@ -139,6 +139,7 @@
+ 
+ # Version
+ from rpy_version import rpy_version
++__version__ = rpy_version
+ 
+ # Symbolic names for conversion modes
+ TOP_CONVERSION = 4
+@@ -332,7 +333,7 @@
+         self.print_(helpobj)
+ 
+     def __repr__(self):
+-        Rver = self.__getitem__('R_version_string')
++        Rver = self.__getitem__('R.version.string')
+         return "RPy version %s [%s]" % (rpy_version, Rver)
+ 
+     def __str__(self):
+--- rpy-1.0.2.orig/rpy_tools.py        2010-04-15 17:53:14.000000000 +0100
++++ rpy-1.0.2/rpy_tools.py     2010-04-15 17:44:06.000000000 +0100
+@@ -97,8 +97,7 @@
+     if stat or len(output)<=0:
+       raise RuntimeError("Couldn't execute the R interpreter" +
+                          " `%s'.\n" % rexec )
+-    # edd 05 Apr 2006  version = re.search("R +([0-9]\.[0-9]\.[0-9])", output)
+-    version = re.search(" version ([0-9]\.[0-9]\.[0-9])", output)
++    version = re.search(" +([0-9]+\.[0-9]+\.[0-9]+)", output)
+     if not version:
+       raise RuntimeError("Couldn't obtain version number from output\n"
+                                "of `R --version'.\n")
+@@ -143,3 +142,20 @@
+                        % PYTHON_DIR )
+     
+   return PYTHON_DIR
++
++def get_R_LAPACK_LIB_FLAGS(RHOME=get_R_HOME()):
++  """
++  Determine the necessary link arguments for lapack 
++  """
++  rexec = os.path.join(RHOME, 'bin', 'R')
++  stat, output = getstatusoutput('"%s" CMD config LAPACK_LIBS' % rexec )
++  if stat or len(output)<=0:
++    raise RuntimeError("Couldn't execute the R interpreter" +
++                       " `%s'.\n" % rexec )
++  
++  LAPACK_LIB_FLAGS = output.strip()
++  if not LAPACK_LIB_FLAGS:
++    raise RuntimeError("Couldn't obtain LAPACK_LIBS information from output\n"
++                       "of `R CMD config LAPACK_LIBS'.\n")
++  
++  return LAPACK_LIB_FLAGS
+--- rpy-1.0.2.orig/rpy_version.py      2008-04-03 14:51:23.000000000 +0100
++++ rpy-1.0.2/rpy_version.py   2010-04-15 17:44:06.000000000 +0100
+@@ -1 +1 @@
+-rpy_version = "1.0.2"
++rpy_version = "1.0.3"
+--- rpy-1.0.2.orig/setup.py    2007-11-27 02:06:32.000000000 +0000
++++ rpy-1.0.2/setup.py 2010-04-15 17:44:06.000000000 +0100
+@@ -30,13 +30,14 @@
+ See the files INSTALL.UNIX and INSTALL.WINDOWS for more details.
+ """
+ 
+-DEBUG=True
++DEBUG=False
+ 
+-import os, os.path, sys, shutil
++import os, os.path, sys, shutil, re
+ from distutils.core import setup, Extension
+ from distutils.sysconfig import *
+ from distutils.errors import *
+ import rpy_tools
++
+ if sys.platform=="win32":
+     import rpy_wintools
+ 
+@@ -66,6 +67,15 @@
+ #if sys.platform=="win32":
+ #    rpy_wintools.CreatePythonWinLib()
+ 
++# On Mac OS X ("darwin") it is necessary to change the symlink
++#   /Library/Frameworks/R.framework/Versions/Current
++# to point to the current version of R in
++#  /Library/Frameworks/R.framework/Versions/X.Y
++# for that version of R to execute.  So, we need to store the original
++# symlink here so we can restore it when we are done
++if sys.platform=="darwin":
++  darwin_original_version = os.readlink("/Library/Frameworks/R.framework/Versions/Current")
++
+ modules = []
+ for RHOME in RHOMES:
+    
+@@ -76,7 +86,7 @@
+         get_config_vars()['OPT'] = '-g -Wall'
+     else:
+         # to avoid strict prototypes errors from R includes
+-        get_config_vars()['OPT'] = '-DNDEBUG -g -O3 -Wall'
++        get_config_vars()['OPT'] = '-DNDEBUG -O3 -Wall'
+ 
+     # get the Python version
+     if sys.version[:3] >= '2.2':
+@@ -87,6 +97,16 @@
+         UNDEF = []
+ 
+     # configure the R paths
++    #if sys.platform=="darwin":
++    #  version = 
++    #  if os.symlink("/Library/Frameworks/R.framework/Versions/Current")
++    #  if RHOME.endswith('/'):
++    #    RHOME = RHOME[:-1]
++    #  print "RHOME=",os.path.join(os.path.dirname(RHOME),
++    #                              os.readlink(RHOME) )
++    #  sys.exit()
++      
++    
+     RVERSION = rpy_tools.get_R_VERSION(RHOME, force_exec=True)
+     RVER     = rpy_tools.get_R_VERSION_CODE(RVERSION)
+ 
+@@ -130,22 +150,21 @@
+         library_dirs= r_libs
+         runtime_libs = r_libs
+         extra_compile_args=[]
+-    elif sys.platform=='osf1V5':
+-        include_dirs = [ os.path.join(RHOME.strip(), 'include'), 
+-                         'src' ]
+-        libraries=['R','Rlapack']
+-        library_dirs = r_libs
+-        runtime_libs = r_libs
+-        extra_compile_args=["-shared"]
+-        source_files = source_files + ["src/setenv.c"]
++        
+     else: # unix-like systems, this is known to work for Linux and Solaris
+         include_dirs = [ os.path.join(RHOME.strip(), 'include'), 
+                          'src', '/usr/share/R/include' ]
+-        libraries=['R','Rlapack']
++
+         library_dirs = r_libs
+         runtime_libs = r_libs
+         extra_compile_args=["-shared"]
+         source_files = source_files + ["src/setenv.c"]
++        
++        libraries=['R']
++          
++        # Ask R to tell us how to properly link against lapack
++        extra_compile_args += [ rpy_tools.get_R_LAPACK_LIB_FLAGS( RHOME ) ]
++
+ 
+     # Discover which array packages are present
+     try: 
+--- rpy-1.0.2.orig/src/io.c    2008-01-02 17:34:22.000000000 +0000
++++ rpy-1.0.2/src/io.c 2010-04-15 17:44:06.000000000 +0100
+@@ -130,7 +130,7 @@
+     PyErr_Clear();
+     return 0;
+   }
+-  snprintf(buf, len, "%s", PyString_AsString(input_data));
++  snprintf( (char*) buf, len, "%s", PyString_AsString(input_data));
+   Py_DECREF(input_data);
+   return 1;
+ }
+--- rpy-1.0.2.orig/src/RPy.h   2010-04-15 17:52:52.000000000 +0100
++++ rpy-1.0.4/src/RPy.h        2010-04-15 17:44:06.000000000 +0100
+@@ -52,6 +52,13 @@
+ #include <Rdefines.h>
+ #include <Rinternals.h>
+ #include <Rversion.h>
++
++#if (R_VERSION >= R_Version(2,4,0)) 
++#include <Rembedded.h>
++#endif
++
++
++
+ #undef _POSIX_C_SOURCE
+ #include <Python.h>
+ #include <R_ext/Rdynload.h>
+@@ -74,9 +81,8 @@
+ #  endif
+ #endif  /* _WIN32 */
+ 
+-#if R_VERSION < 133120
+-#include <Rdevices.h> /* must follow Graphics.h */
+-#endif
++#include <Rembedded.h> /* must follow Graphics.h */
++
+ 
+ /* Missing definitions from Rinterface.h or RStartup.h */
+ # define CleanEd              Rf_CleanEd
+--- rpy-1.0.2.orig/src/rpymodule.c     2010-04-15 17:52:33.000000000 +0100
++++ rpy-1.0.4/src/rpymodule.c  2010-04-15 17:44:06.000000000 +0100
+@@ -1772,13 +1772,15 @@
+ 
+ void r_finalize(void)
+ {
++#if (R_VERSION < R_Version(2,4,0)) 
+     unsigned char buf[1024];
+     char * tmpdir;
++#endif
+ 
+     R_dot_Last();           
+     R_RunExitFinalizers();  
+     CleanEd();              
+-#if (R_VERSION >= R_Version(2,7,0)) 
++#if (R_VERSION >= R_Version(2,7,0))
+     Rf_KillAllDevices();
+ #else
+     KillAllDevices();
index 4be15fa4c80169ebfec554211057d7818417dce6..aadbc010a552707a29906e53e9a98180b1bd8762 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/rpy/rpy-1.0.2-r1.ebuild,v 1.6 2008/10/27 10:33:45 bicatali Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/rpy/rpy-1.0.2-r1.ebuild,v 1.7 2010/04/15 21:58:10 bicatali Exp $
 
 inherit distutils eutils
 
@@ -24,6 +24,7 @@ src_unpack() {
        epatch "${FILESDIR}"/${PN}-testfiles.patch
        epatch "${FILESDIR}"/${P}-rpymodule-R-2.7.patch
        epatch "${FILESDIR}"/${P}-R28.patch
+       epatch "${FILESDIR}"/${P}-R210.patch
        # this module should exist only if R was built with USE=lapack
        if [[ ! -e /usr/$(get_libdir)/R/lib/libRlapack.so ]]; then
                sed -i \