[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