[119608] trunk/dports/kde/rkward

mk at macports.org mk at macports.org
Fri May 2 03:57:29 PDT 2014


Revision: 119608
          https://trac.macports.org/changeset/119608
Author:   mk at macports.org
Date:     2014-05-02 03:57:29 -0700 (Fri, 02 May 2014)
Log Message:
-----------
rkward: update according to #32837

Modified Paths:
--------------
    trunk/dports/kde/rkward/Portfile

Added Paths:
-----------
    trunk/dports/kde/rkward/files/
    trunk/dports/kde/rkward/files/patch-rkward-rbackend-rkstructuregetter.cpp.diff

Modified: trunk/dports/kde/rkward/Portfile
===================================================================
--- trunk/dports/kde/rkward/Portfile	2014-05-02 09:55:17 UTC (rev 119607)
+++ trunk/dports/kde/rkward/Portfile	2014-05-02 10:57:29 UTC (rev 119608)
@@ -2,15 +2,17 @@
 # $Id$
 
 PortSystem          1.0
+PortGroup           cmake 1.0
 fetch.type          svn
-svn.url             http://svn.code.sf.net/p/rkward/code/branches/release_branches/rkward_0.6.1
+name                rkward
+version             0.6.1
+revision            2
+svn.url             http://svn.code.sf.net/p/rkward/code/branches/release_branches/rkward_${version}
 svn.revision        4635
-worksrcdir          ${workpath}/rkward_0.6.1
+patchfiles          patch-rkward-rbackend-rkstructuregetter.cpp.diff
+worksrcdir          ${name}_${version}
 
-name                rkward
 conflicts           rkward-devel
-version             0.6.1
-revision            1
 categories          kde kde4 math science
 maintainers         hhu.de:meik.michalke
 license             GPL-2
@@ -24,45 +26,27 @@
 
 homepage            http://rkward.sourceforge.net
 
-master_sites        https://sourceforge.net/projects/rkward/files/Current_Stable_Releases
-
-PortGroup           cmake 1.0
-
 depends_lib         port:kdelibs4 \
                     port:kate \
+                    port:okular \
                     port:R
 
-# add port:okular once the graphics device is fully functional
-# this needs port:poppler with +qt4 +quartz varaints which cannot be
-# specified with depends_lib-append
-variant okular description {Add okular for nice PDF handling} {
-        depends_lib-append port:okular
-}
-
-if {${configure.compiler} == "clang"} {
-        # force the use of gcc 4.8 to be able to link with R-framework
-        depends_lib-append   port:gcc48
-        configure.compiler   macports-gcc-4.8
-        configure.objc       /usr/bin/gcc
-        configure.env-append "OBJCXX=${configure.objc}"
-}
-
 post-extract {
-        # creates the build dir if it doesn't exist
-        # this won't return errors if directory is already there
-        file mkdir ${worksrcdir}/build
+        file mkdir ${worksrcpath}/build
 }
 
-configure.dir       ${worksrcdir}/build
+configure.dir       ${worksrcpath}/build
 configure.args-append \
         -DNO_R_XML=1 \
         -DRKVERSION_NUMBER=${version} \
         -DBUNDLE_INSTALL_DIR=${applications_dir} \
-        -DR_EXECUTABLE=${prefix}/Library/Frameworks/R.framework/Resources/R
-# work around moved Qt include dir
-if { ![file exists ${prefix}/include/Qt/qglobal.h] && [file exists ${prefix}/include/QtCore/qglobal.h] } {
-        configure.args-append -DQT_QT_INCLUDE_DIR=${prefix}/include/QtCore
+        -DR_EXECUTABLE=${frameworks_dir}/R.framework/Resources/R
+
+variant debug description {Add full debugging support} {
+        depends_lib-append port:valgrind
 }
-configure.cmd       cmake ..
 
-build.dir           ${worksrcdir}/build
+configure.post_args ..
+
+build.dir           ${worksrcpath}/build
+

Added: trunk/dports/kde/rkward/files/patch-rkward-rbackend-rkstructuregetter.cpp.diff
===================================================================
--- trunk/dports/kde/rkward/files/patch-rkward-rbackend-rkstructuregetter.cpp.diff	                        (rev 0)
+++ trunk/dports/kde/rkward/files/patch-rkward-rbackend-rkstructuregetter.cpp.diff	2014-05-02 10:57:29 UTC (rev 119608)
@@ -0,0 +1,47 @@
+Index: rkward/rbackend/rkstructuregetter.cpp
+===================================================================
+--- rkward/rbackend/rkstructuregetter.cpp	(revision 4653)
++++ rkward/rbackend/rkstructuregetter.cpp	(revision 4660)
+@@ -193,22 +193,33 @@
+ 
+ 	// get classes
+ 	SEXP classes_s;
++	QStringList classes;
+ 
+ 	if ((TYPEOF (value) == LANGSXP) || (TYPEOF (value) == SYMSXP)) {	// if it's a call, we should NEVER send it through eval
+-		extern SEXP R_data_class (SEXP, Rboolean);
+-		classes_s = R_data_class (value, (Rboolean) 0);
++		// stripped down and adjusted from R_data_class
++		PROTECT (classes_s = Rf_getAttrib (value, R_ClassSymbol));
++		if (Rf_length (classes_s)) classes = RKRSupport::SEXPToStringList(classes_s);
++		UNPROTECT (1);
++		if (classes.isEmpty ()) {
++			if (TYPEOF (value) == LANGSXP) {
++				SEXP symb = PROTECT (CAR (value));
++				QString cl;
++				if (TYPEOF (symb) == SYMSXP) cl = CHAR (PRINTNAME (symb));
++				UNPROTECT (1);
++				if ((cl != "if") && (cl != "while") && (cl != "for") && (cl != "=") && (cl != "<-") && (cl != "(") && (cl != "{")) cl = "call";
++				classes = QStringList (cl);
++			} else {
++				classes = QStringList ("name");
++			}
++		}
+ 
+ 		REPROTECT (value = Rf_coerceVector (value, EXPRSXP), value_index);	// make sure the object is safe for everything to come
+-
+-		PROTECT (classes_s);
+ 	} else {
+-		classes_s = RKRSupport::callSimpleFun (class_fun, value, baseenv);
+-		PROTECT (classes_s);
++		PROTECT (classes_s = RKRSupport::callSimpleFun (class_fun, value, baseenv));
++		classes = RKRSupport::SEXPToStringList (classes_s);
++		UNPROTECT (1);
+ 	}
+ 
+-	QStringList classes = RKRSupport::SEXPToStringList (classes_s);
+-	UNPROTECT (1);	/* classes_s */
+-
+ 	// store classes
+ 	RData *classdata = new RData;
+ 	classdata->setData (classes);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140502/6a338c8e/attachment-0001.html>


More information about the macports-changes mailing list