rstudio: 1.3.959 -> 1.3.1056

This commit is contained in:
Tim Biermann 2020-07-16 06:07:03 +00:00
parent acfb65700a
commit c777657eeb
Signed by: tb
GPG Key ID: 42F8B4E30B673606
2 changed files with 2 additions and 115 deletions

View File

@ -4,14 +4,12 @@
# Depends on: ant boost hyphen libevent mathjax openjdk8 pandoc-bin qtwebengine r
name=rstudio
version=1.3.959
version=1.3.1056
release=1
source=(https://github.com/rstudio/rstudio/archive/v$version/$name-$version.tar.gz
# https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-mathematics/rstudio/files
rstudio-1.2.5042-boost-1.73.0.patch
# https://github.com/rstudio/rstudio/commit/60dd6e3cd349cc208e33a12635378a1e338f8efc.patch
r-nosave.patch)
rstudio-1.2.5042-boost-1.73.0.patch)
git=(https://github.com/rstudio/rstudio.git)
build() {
@ -21,11 +19,6 @@ build() {
patch -Np1 -d $name-$version -i $SRC/rstudio-1.2.5042-boost-1.73.0.patch
sed -i 's/2009-12/2009-19/g' $name-$version/src/cpp/r/session/REmbeddedPosix.cpp
sed -i 's/PBC/Inc./g' $name-$version/src/cpp/r/config.h.in
sed -i 's/PBC/Inc./g' $name-$version/src/cpp/r/session/REmbeddedPosix.cpp
patch -Np1 -d $name-$version -i $SRC/r-nosave.patch
pushd $name-$version/dependencies/common
install -d pandoc
ln -sfT /usr/share/myspell/dicts dictionaries

View File

@ -1,106 +0,0 @@
From 71b1a935762efd24a79de193662450de5a89f67e Mon Sep 17 00:00:00 2001
From: Jonathan McPherson <jonathan@rstudio.com>
Date: Tue, 14 Jan 2020 12:53:20 -0800
Subject: [PATCH] use R_NoSave over R_Slave for R 4.0+
---
src/cpp/r/CMakeLists.txt | 12 ++++++++++++
src/cpp/r/config.h.in | 8 +++++++-
src/cpp/r/session/REmbeddedPosix.cpp | 20 ++++++++++++++------
3 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/src/cpp/r/CMakeLists.txt b/src/cpp/r/CMakeLists.txt
index 6984ae309c..29784b8b67 100644
--- a/src/cpp/r/CMakeLists.txt
+++ b/src/cpp/r/CMakeLists.txt
@@ -15,6 +15,18 @@
project (R)
+# find the version of R in play
+find_package(LibR REQUIRED)
+execute_process(
+ COMMAND "${LIBR_EXECUTABLE}" "--vanilla" "--slave" "-e" "cat(as.character(getRversion()))"
+ OUTPUT_VARIABLE LIBR_VERSION)
+
+# parse and save the R version to a variable
+string(REPLACE "." ";" R_VERSION_LIST "${LIBR_VERSION}")
+list(GET R_VERSION_LIST 0 R_VERSION_MAJOR)
+list(GET R_VERSION_LIST 1 R_VERSION_MINOR)
+list(GET R_VERSION_LIST 2 R_VERSION_PATCH)
+
# include files
file(GLOB_RECURSE R_HEADER_FILES "*.h*")
diff --git a/src/cpp/r/config.h.in b/src/cpp/r/config.h.in
index 6ba67c8e09..00bc8b6191 100644
--- a/src/cpp/r/config.h.in
+++ b/src/cpp/r/config.h.in
@@ -1,7 +1,7 @@
/*
* config.h.in
*
- * Copyright (C) 2009-12 by RStudio, Inc.
+ * Copyright (C) 2009-20 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
@@ -16,4 +16,10 @@
#cmakedefine PANGO_CAIRO_FOUND
+// Important: These variables represent the version of R found during
+// compile/link time, NOT the version of R present at runtime.
+#define R_VERSION_MAJOR ${R_VERSION_MAJOR}
+#define R_VERSION_MINOR ${R_VERSION_MINOR}
+#define R_VERSION_PATCH ${R_VERSION_PATCH}
+
diff --git a/src/cpp/r/session/REmbeddedPosix.cpp b/src/cpp/r/session/REmbeddedPosix.cpp
index ac71b94522..73e2e2ce7f 100644
--- a/src/cpp/r/session/REmbeddedPosix.cpp
+++ b/src/cpp/r/session/REmbeddedPosix.cpp
@@ -1,7 +1,7 @@
/*
* REmbeddedPosix.cpp
*
- * Copyright (C) 2009-19 by RStudio, Inc.
+ * Copyright (C) 2009-20 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
@@ -38,6 +38,8 @@ extern "C" void (*ptr_R_ProcessEvents)(void);
extern "C" typedef void (*ptr_QuartzCocoa_SetupEventLoop)(int, unsigned long);
#endif
+#include "config.h"
+
extern int R_running_as_main_program; // from unix/system.c
using namespace rstudio::core;
@@ -103,14 +105,20 @@ void runEmbeddedR(const core::FilePath& /*rHome*/, // ignored on posix
//
structRstart rp;
Rstart Rp = &rp;
- R_DefParams(Rp) ;
- Rp->R_Slave = FALSE ;
+ R_DefParams(Rp);
+#if R_VERSION_MAJOR > 3
+ // R 4.0 and above use --no-echo to suppress output
+ Rp->R_NoEcho = FALSE;
+#else
+ // R 3.x and below use --slave
+ Rp->R_Slave = FALSE;
+#endif
Rp->R_Quiet = quiet ? TRUE : FALSE;
- Rp->R_Interactive = TRUE ;
- Rp->SaveAction = defaultSaveAction ;
+ Rp->R_Interactive = TRUE;
+ Rp->SaveAction = defaultSaveAction;
Rp->RestoreAction = SA_NORESTORE; // handled within initialize()
Rp->LoadInitFile = loadInitFile ? TRUE : FALSE;
- R_SetParams(Rp) ;
+ R_SetParams(Rp);
// redirect console
R_Interactive = TRUE; // should have also been set by call to Rf_initialize_R