Import math/rstudio, the IDE for R.
ok feinerer@ Works; improvements in-tree to come. RStudio is an integrated development environment (IDE) for R. It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management.
This commit is contained in:
parent
3998996ee2
commit
ab176a8906
102
math/rstudio/Makefile
Normal file
102
math/rstudio/Makefile
Normal file
@ -0,0 +1,102 @@
|
||||
# $OpenBSD: Makefile,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
# XXX: patches/patch-src_cpp_core_r_util_REnvironmentPosix_cpp
|
||||
# must be kept in sync with math/R shlib bumps.
|
||||
|
||||
# Upstream says no more 32-bit support.
|
||||
# Not really an issue because qtwebengine is a bigger problem.
|
||||
ONLY_FOR_ARCHS = ${LP64_ARCHS}
|
||||
|
||||
V = 1.3.959
|
||||
COMMENT = Integrated Development Environment (IDE) for R
|
||||
PKGNAME = rstudio-${V}
|
||||
CATEGORIES = math x11
|
||||
|
||||
HOMEPAGE = https://www.rstudio.com/
|
||||
MAINTAINER = Brian Callahan <bcallah@openbsd.org>
|
||||
|
||||
# AGPLv3 only
|
||||
PERMIT_PACKAGE = Yes
|
||||
|
||||
WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5DBus Qt5Gui Qt5Network
|
||||
WANTLIB += Qt5OpenGL Qt5Positioning Qt5PrintSupport Qt5Qml Qt5Quick
|
||||
WANTLIB += Qt5QuickWidgets Qt5Sensors Qt5Sql Qt5Svg Qt5WebChannel
|
||||
WANTLIB += Qt5WebEngine Qt5WebEngineCore Qt5WebEngineWidgets Qt5Widgets
|
||||
WANTLIB += Qt5Xml Qt5XmlPatterns boost_atomic-mt boost_chrono-mt
|
||||
WANTLIB += boost_date_time-mt boost_filesystem-mt boost_iostreams-mt
|
||||
WANTLIB += boost_program_options-mt boost_random-mt boost_regex-mt
|
||||
WANTLIB += boost_system-mt boost_thread-mt c crypto m pam ssl
|
||||
WANTLIB += util uuid z lib/inotify/inotify
|
||||
|
||||
# XXX: Ports does not permit GH_* and MASTER_SITES together.
|
||||
MASTER_SITES0 = https://github.com/rstudio/rstudio/archive/
|
||||
MASTER_SITES1 = https://s3.amazonaws.com/rstudio-buildtools/dictionaries/
|
||||
MASTER_SITES2 = https://s3.amazonaws.com/rstudio-buildtools/
|
||||
DISTFILES = rstudio-${V}{v${V}}.tar.gz:0 \
|
||||
core-dictionaries.zip:1 \
|
||||
gin-${GIN_VERSION}.zip:2 \
|
||||
gwt-${GWT_VERSION}.zip:2 \
|
||||
mathjax-27.zip:2
|
||||
|
||||
# CMake looks for qmake-qt5 during configure...
|
||||
MODULES = devel/cmake \
|
||||
java \
|
||||
x11/qt5
|
||||
|
||||
MODJAVA_VER = 1.8+
|
||||
|
||||
# Needed for gwt to build all the web pages.
|
||||
# Not sure MODJAVA_BUILD=ant is appropriate here.
|
||||
BUILD_DEPENDS = devel/apache-ant
|
||||
|
||||
LIB_DEPENDS = devel/boost \
|
||||
devel/libinotify \
|
||||
security/openpam \
|
||||
sysutils/e2fsprogs \
|
||||
x11/qt5/qtsensors \
|
||||
x11/qt5/qtsvg \
|
||||
x11/qt5/qtwebengine \
|
||||
x11/qt5/qtxmlpatterns
|
||||
|
||||
RUN_DEPENDS = devel/desktop-file-utils \
|
||||
misc/shared-mime-info \
|
||||
x11/gtk+3,-guic
|
||||
|
||||
CONFIGURE_ARGS = -DBoost_INCLUDE_DIR="${LOCALBASE}/include" \
|
||||
-DQT_QMAKE_EXECUTABLE="${LOCALBASE}/bin/qmake-qt5" \
|
||||
-DQt5WebEngine_DIR="${LOCALBASE}/lib/qt5/cmake/Qt5WebEngine" \
|
||||
-DQt5WebEngineWidgets_DIR="${LOCALBASE}/lib/qt5/cmake/Qt5WebEngineWidgets" \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-L${LOCALBASE}/lib/inotify -linotify -rpath ${LOCALBASE}/lib/inotify"
|
||||
|
||||
NO_TEST = Yes
|
||||
|
||||
WRKDIST = ${WRKDIR}/rstudio-${V}
|
||||
|
||||
GIN_VERSION = 2.1.2
|
||||
GWT_VERSION = 2.8.1
|
||||
|
||||
# Put everything where CMake expects it to be.
|
||||
post-extract:
|
||||
@mkdir -p ${WRKSRC}/dependencies/common/dictionaries
|
||||
@mv ${WRKDIR}/en_* ${WRKSRC}/dependencies/common/dictionaries
|
||||
@mv ${WRKDIR}/mathjax-* ${WRKSRC}/dependencies/common
|
||||
@mkdir -p ${WRKSRC}/src/gwt/lib/gwt
|
||||
@mv ${WRKDIR}/gwt-${GWT_VERSION} ${WRKSRC}/src/gwt/lib/gwt/${GWT_VERSION}
|
||||
@mkdir -p ${WRKSRC}/src/gwt/lib/gin/${GIN_VERSION}
|
||||
@mv ${WRKDIR}/*.jar ${WRKSRC}/src/gwt/lib/gin/${GIN_VERSION}
|
||||
|
||||
# desktop/CMakeLists.txt: too much for manual patching...
|
||||
# core/system/PosixSystem.cpp: Unfortunate, but OpenBSD
|
||||
# does not provide a way to get the path of an executable
|
||||
# at runtime easily.
|
||||
do-gen:
|
||||
sed -i 's,/usr/share,${LOCALBASE}/share,g' \
|
||||
${WRKSRC}/src/cpp/desktop/CMakeLists.txt
|
||||
sed -i 's,LOCALBASE,${LOCALBASE},g' \
|
||||
${WRKSRC}/src/cpp/core/system/PosixSystem.cpp
|
||||
|
||||
# No binary in ${LOCALBASE}/bin by default.
|
||||
post-install:
|
||||
${SUBST_CMD} -c -m 555 ${FILESDIR}/rstudio.sh ${PREFIX}/bin/rstudio
|
||||
|
||||
.include <bsd.port.mk>
|
10
math/rstudio/distinfo
Normal file
10
math/rstudio/distinfo
Normal file
@ -0,0 +1,10 @@
|
||||
SHA256 (core-dictionaries.zip) = Q0GpYw77nc9/IVwyQTZAfzs9YAPhyW8uXh+fFNV4dJQ=
|
||||
SHA256 (gin-2.1.2.zip) = uY5wQWT1S+WWd5aWo/zRG+V4XJkHqZ7FNf9ulSWtX5o=
|
||||
SHA256 (gwt-2.8.1.zip) = C3r4n9rbTsUc20AKzpRjfW/p/6QBsWjiw9NyOSoAoKc=
|
||||
SHA256 (mathjax-27.zip) = xWy6psTOA8H8uusrXqPDEtL7diajYCVHcMvLiPsgQXY=
|
||||
SHA256 (rstudio-1.3.959.tar.gz) = XIn+GOPV6tDnkhyI5ftC7YFoIyOOhBNfXp46Nk01/ME=
|
||||
SIZE (core-dictionaries.zip) = 876339
|
||||
SIZE (gin-2.1.2.zip) = 1341053
|
||||
SIZE (gwt-2.8.1.zip) = 95650299
|
||||
SIZE (mathjax-27.zip) = 3285230
|
||||
SIZE (rstudio-1.3.959.tar.gz) = 89639419
|
3
math/rstudio/files/rstudio.sh
Normal file
3
math/rstudio/files/rstudio.sh
Normal file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
${TRUEPREFIX}/lib/rstudio/bin/rstudio "$@"
|
20
math/rstudio/patches/patch-src_CMakeLists_txt
Normal file
20
math/rstudio/patches/patch-src_CMakeLists_txt
Normal file
@ -0,0 +1,20 @@
|
||||
$OpenBSD: patch-src_CMakeLists_txt,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
Need to build gwt.
|
||||
|
||||
Index: src/CMakeLists.txt
|
||||
--- src/CMakeLists.txt.orig
|
||||
+++ src/CMakeLists.txt
|
||||
@@ -18,11 +18,7 @@ cmake_minimum_required(VERSION 3.4.3)
|
||||
# we've already got it from the 64-bit build), for development mode
|
||||
# (since we'll want to build it incrementally using superdevmode),
|
||||
# or when building monitor only
|
||||
-if ( (NOT RSTUDIO_SESSION_WIN32) AND
|
||||
- (NOT RSTUDIO_DEVELOPMENT) AND
|
||||
- (NOT RSTUDIO_CONFIG_MONITOR_ONLY) )
|
||||
- add_subdirectory(gwt)
|
||||
-endif()
|
||||
+add_subdirectory(gwt)
|
||||
|
||||
add_subdirectory(cpp)
|
||||
|
43
math/rstudio/patches/patch-src_cpp_CMakeLists_txt
Normal file
43
math/rstudio/patches/patch-src_cpp_CMakeLists_txt
Normal file
@ -0,0 +1,43 @@
|
||||
$OpenBSD: patch-src_cpp_CMakeLists_txt,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
We can get away with our older version of Boost.
|
||||
|
||||
Index: src/cpp/CMakeLists.txt
|
||||
--- src/cpp/CMakeLists.txt.orig
|
||||
+++ src/cpp/CMakeLists.txt
|
||||
@@ -190,7 +190,7 @@ endif()
|
||||
|
||||
# default Boost versions
|
||||
if(NOT RSTUDIO_BOOST_REQUESTED_VERSION)
|
||||
- set(RSTUDIO_BOOST_REQUESTED_VERSION 1.69.0)
|
||||
+ set(RSTUDIO_BOOST_REQUESTED_VERSION 1.66.0)
|
||||
endif()
|
||||
|
||||
# disable system boost if we're not using it.
|
||||
@@ -225,7 +225,7 @@ if(UNIX)
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(BOOST_INCLUDEDIR ${RSTUDIO_TOOLS_BOOST}/include)
|
||||
find_package(Boost ${RSTUDIO_BOOST_REQUESTED_VERSION} EXACT REQUIRED)
|
||||
- if(NOT Boost_VERSION LESS 106900)
|
||||
+ if(NOT Boost_VERSION LESS 106600)
|
||||
list(REMOVE_ITEM BOOST_LIBS signals)
|
||||
endif()
|
||||
|
||||
@@ -238,7 +238,7 @@ if(UNIX)
|
||||
else()
|
||||
add_definitions(-DRSTUDIO_BOOST_NAMESPACE=boost)
|
||||
find_package(Boost ${RSTUDIO_BOOST_REQUESTED_VERSION} REQUIRED)
|
||||
- if(NOT Boost_VERSION LESS 106900)
|
||||
+ if(NOT Boost_VERSION LESS 106600)
|
||||
list(REMOVE_ITEM BOOST_LIBS signals)
|
||||
endif()
|
||||
find_package(Boost ${RSTUDIO_BOOST_REQUESTED_VERSION} REQUIRED COMPONENTS ${BOOST_LIBS})
|
||||
@@ -272,7 +272,7 @@ endif()
|
||||
# allow opt-in to using Boost.Signals2
|
||||
# TODO: remove this in RStudio v1.3 and port to signals2
|
||||
if(NOT RSTUDIO_BOOST_SIGNALS_VERSION)
|
||||
- if (Boost_VERSION LESS 106900)
|
||||
+ if (Boost_VERSION LESS 106600)
|
||||
set(RSTUDIO_BOOST_SIGNALS_VERSION 1)
|
||||
else()
|
||||
set(RSTUDIO_BOOST_SIGNALS_VERSION 2)
|
23
math/rstudio/patches/patch-src_cpp_core_CMakeLists_txt
Normal file
23
math/rstudio/patches/patch-src_cpp_core_CMakeLists_txt
Normal file
@ -0,0 +1,23 @@
|
||||
$OpenBSD: patch-src_cpp_core_CMakeLists_txt,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
No -lrt
|
||||
|
||||
Index: src/cpp/core/CMakeLists.txt
|
||||
--- src/cpp/core/CMakeLists.txt.orig
|
||||
+++ src/cpp/core/CMakeLists.txt
|
||||
@@ -163,7 +163,6 @@ if (UNIX)
|
||||
if(NOT APPLE)
|
||||
find_library(UTIL_LIBRARIES util)
|
||||
find_library(UUID_LIBRARIES uuid)
|
||||
- find_library(RT_LIBRARIES rt)
|
||||
endif()
|
||||
find_package(ZLIB REQUIRED QUIET)
|
||||
|
||||
@@ -177,7 +176,6 @@ if (UNIX)
|
||||
${PTHREAD_LIBRARIES}
|
||||
${UTIL_LIBRARIES}
|
||||
${UUID_LIBRARIES}
|
||||
- ${RT_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
${CORE_SERVICES_LIBRARY}
|
||||
)
|
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_core_include_core_http_RequestParser_hpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
has_value() is only found in later Boost versions.
|
||||
|
||||
Index: src/cpp/core/include/core/http/RequestParser.hpp
|
||||
--- src/cpp/core/include/core/http/RequestParser.hpp.orig
|
||||
+++ src/cpp/core/include/core/http/RequestParser.hpp
|
||||
@@ -66,7 +66,7 @@ class RequestParser (public)
|
||||
{
|
||||
InputIterator originalBegin = begin;
|
||||
|
||||
- if (bufferPos_.has_value())
|
||||
+ if (bufferPos_)
|
||||
{
|
||||
if (parsingBody_)
|
||||
{
|
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_core_include_core_r_util_RTokenizer_hpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
wchar_t is Unicode.
|
||||
|
||||
Index: src/cpp/core/include/core/r_util/RTokenizer.hpp
|
||||
--- src/cpp/core/include/core/r_util/RTokenizer.hpp.orig
|
||||
+++ src/cpp/core/include/core/r_util/RTokenizer.hpp
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
// On Linux confirm that wchar_t is Unicode
|
||||
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__STDC_ISO_10646__)
|
||||
- #error "wchar_t is not Unicode"
|
||||
+// #error "wchar_t is not Unicode"
|
||||
#endif
|
||||
|
||||
namespace rstudio {
|
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_core_r_util_REnvironmentPosix_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
XXX: How to sync with R?
|
||||
|
||||
Index: src/cpp/core/r_util/REnvironmentPosix.cpp
|
||||
--- src/cpp/core/r_util/REnvironmentPosix.cpp.orig
|
||||
+++ src/cpp/core/r_util/REnvironmentPosix.cpp
|
||||
@@ -194,7 +194,7 @@ bool detectRLocationsUsingFramework(FilePath* pHomePat
|
||||
// Linux specific
|
||||
#else
|
||||
|
||||
-#define kLibRFileName "libR.so"
|
||||
+#define kLibRFileName "libR.so.37.0"
|
||||
#define kLibraryPathEnvVariable "LD_LIBRARY_PATH"
|
||||
|
||||
FilePath systemDefaultRScript(std::string* pErrMsg)
|
@ -0,0 +1,18 @@
|
||||
$OpenBSD: patch-src_cpp_core_r_util_RSessionContext_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
This is what FreeBSD does.
|
||||
|
||||
Index: src/cpp/core/r_util/RSessionContext.cpp
|
||||
--- src/cpp/core/r_util/RSessionContext.cpp.orig
|
||||
+++ src/cpp/core/r_util/RSessionContext.cpp
|
||||
@@ -186,8 +186,8 @@ bool isSharedPath(const std::string& projectPath,
|
||||
// not shared if we're in any of the groups that own the directory
|
||||
// (note that this checks supplementary group IDs only, so the check
|
||||
// against the primary group ID above is still required)
|
||||
- if (::group_member(st.st_gid))
|
||||
- return false;
|
||||
+// if (::group_member(st.st_gid))
|
||||
+// return false;
|
||||
#endif
|
||||
|
||||
// if we got this far, we likely have access due to project sharing
|
@ -0,0 +1,52 @@
|
||||
$OpenBSD: patch-src_cpp_core_system_PosixChildProcess_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
We're macOS in this scenario.
|
||||
|
||||
Index: src/cpp/core/system/PosixChildProcess.cpp
|
||||
--- src/cpp/core/system/PosixChildProcess.cpp.orig
|
||||
+++ src/cpp/core/system/PosixChildProcess.cpp
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
|
||||
-#ifdef __APPLE__
|
||||
+#if defined(__APPLE__) || defined(__OpenBSD__)
|
||||
#include <util.h>
|
||||
#include <sys/ttycom.h>
|
||||
#include <sys/ioctl.h>
|
||||
@@ -350,7 +350,7 @@ Error ChildProcess::terminate()
|
||||
// special code path for pseudoterminal
|
||||
if (options_.pseudoterminal)
|
||||
{
|
||||
-#ifndef __APPLE__
|
||||
+#if defined(__APPLE__) || defined(__OpenBSD__)
|
||||
// On Linux only do this if dealing with a Terminal-pane process.
|
||||
// This is to reduce scope of this change for 1.1
|
||||
// TODO: review post 1.1
|
||||
@@ -362,7 +362,7 @@ Error ChildProcess::terminate()
|
||||
// require the signal)
|
||||
pImpl_->closeAll(false, ERROR_LOCATION);
|
||||
|
||||
-#ifndef __APPLE__
|
||||
+#if defined(__APPLE__) || defined(__OpenBSD__)
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -945,7 +945,7 @@ AsyncChildProcess::~AsyncChildProcess()
|
||||
|
||||
Error AsyncChildProcess::terminate()
|
||||
{
|
||||
-#ifndef __APPLE__
|
||||
+#if defined(__APPLE__) || defined(__OpenBSD__)
|
||||
// On Linux only do this if dealing with a Terminal-pane process.
|
||||
// This is to reduce scope of this change for 1.1
|
||||
// TODO: review post 1.1
|
||||
@@ -957,7 +957,7 @@ Error AsyncChildProcess::terminate()
|
||||
pAsyncImpl_->finishedStderr_ = true;
|
||||
pAsyncImpl_->finishedStdout_ = true;
|
||||
}
|
||||
-#ifndef __APPLE__
|
||||
+#if defined(__APPLE__) || defined(__OpenBSD__)
|
||||
}
|
||||
#endif
|
||||
return ChildProcess::terminate();
|
@ -0,0 +1,25 @@
|
||||
$OpenBSD: patch-src_cpp_core_system_PosixSched_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
We're macOS in this scenario.
|
||||
|
||||
Index: src/cpp/core/system/PosixSched.cpp
|
||||
--- src/cpp/core/system/PosixSched.cpp.orig
|
||||
+++ src/cpp/core/system/PosixSched.cpp
|
||||
@@ -41,7 +41,7 @@ bool isCpuAffinityEmpty(const CpuAffinity& cpus)
|
||||
|
||||
Error getCpuAffinity(CpuAffinity* pCpus)
|
||||
{
|
||||
-#ifndef __APPLE__
|
||||
+#ifndef __OpenBSD__
|
||||
cpu_set_t cs;
|
||||
CPU_ZERO(&cs);
|
||||
if (::sched_getaffinity(0, sizeof(cs), &cs) == -1)
|
||||
@@ -66,7 +66,7 @@ Error getCpuAffinity(CpuAffinity* pCpus)
|
||||
|
||||
Error setCpuAffinity(const CpuAffinity& cpus)
|
||||
{
|
||||
-#ifndef __APPLE__
|
||||
+#ifndef __OpenBSD__
|
||||
cpu_set_t cs;
|
||||
CPU_ZERO(&cs);
|
||||
|
@ -0,0 +1,97 @@
|
||||
$OpenBSD: patch-src_cpp_core_system_PosixSystem_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
Adapted from FreeBSD.
|
||||
No way to get the path of an executable at runtime.
|
||||
|
||||
Index: src/cpp/core/system/PosixSystem.cpp
|
||||
--- src/cpp/core/system/PosixSystem.cpp.orig
|
||||
+++ src/cpp/core/system/PosixSystem.cpp
|
||||
@@ -47,13 +47,18 @@
|
||||
#include <gsl/gsl>
|
||||
#endif
|
||||
|
||||
-#ifndef __APPLE__
|
||||
+#ifndef __OpenBSD__
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/sysinfo.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
|
||||
+#ifdef __OpenBSD__
|
||||
+#include <netinet/in.h>
|
||||
+#include <dirent.h>
|
||||
+#endif
|
||||
+
|
||||
#include <boost/thread.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
@@ -926,9 +931,8 @@ Error executablePath(const char * argv0,
|
||||
// need to also search the PATH for the exe name in argv[0]
|
||||
//
|
||||
|
||||
- // use argv[0] and initial path
|
||||
- FilePath initialPath = FilePath::initialPath();
|
||||
- executablePath = initialPath.completePath(argv0).getAbsolutePath();
|
||||
+ // XXX: OpenBSD: assume localbase
|
||||
+ executablePath = std::string("LOCALBASE/lib/rstudio/bin/rstudio");
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1405,9 +1409,11 @@ Error osResourceLimit(ResourceLimit limit, int* pLimit
|
||||
{
|
||||
switch(limit)
|
||||
{
|
||||
+#ifndef __OpenBSD__
|
||||
case MemoryLimit:
|
||||
*pLimit = RLIMIT_AS;
|
||||
break;
|
||||
+#endif
|
||||
case FilesLimit:
|
||||
*pLimit = RLIMIT_NOFILE;
|
||||
break;
|
||||
@@ -1426,7 +1432,7 @@ Error osResourceLimit(ResourceLimit limit, int* pLimit
|
||||
case CpuLimit:
|
||||
*pLimit = RLIMIT_CPU;
|
||||
break;
|
||||
-#ifndef __APPLE__
|
||||
+#if !defined(__APPLE__) && !defined(__OpenBSD__)
|
||||
case NiceLimit:
|
||||
*pLimit = RLIMIT_NICE;
|
||||
break;
|
||||
@@ -1499,7 +1505,7 @@ Error systemInformation(SysInfo* pSysInfo)
|
||||
{
|
||||
pSysInfo->cores = boost::thread::hardware_concurrency();
|
||||
|
||||
-#ifndef __APPLE__
|
||||
+#if !defined(__APPLE__) && !defined(__OpenBSD__)
|
||||
struct sysinfo info;
|
||||
if (::sysinfo(&info) == -1)
|
||||
return systemError(errno, ERROR_LOCATION);
|
||||
@@ -1939,7 +1945,7 @@ Error restrictCoreDumps()
|
||||
return error;
|
||||
|
||||
// no ptrace core dumps permitted
|
||||
-#ifndef __APPLE__
|
||||
+#if !defined(__APPLE__) && !defined(__OpenBSD__)
|
||||
int res = ::prctl(PR_SET_DUMPABLE, 0);
|
||||
if (res == -1)
|
||||
return systemError(errno, ERROR_LOCATION);
|
||||
@@ -1950,7 +1956,7 @@ Error restrictCoreDumps()
|
||||
|
||||
Error enableCoreDumps()
|
||||
{
|
||||
-#ifndef __APPLE__
|
||||
+#if !defined(__APPLE__) && !defined(__OpenBSD__)
|
||||
int res = ::prctl(PR_SET_DUMPABLE, 1);
|
||||
if (res == -1)
|
||||
return systemError(errno, ERROR_LOCATION);
|
||||
@@ -1976,7 +1982,7 @@ void printCoreDumpable(const std::string& context)
|
||||
ostr << " hard limit: " << rLimitHard << std::endl;
|
||||
|
||||
// ptrace
|
||||
-#ifndef __APPLE__
|
||||
+#if !defined(__APPLE__) && !defined(__OpenBSD__)
|
||||
int dumpable = ::prctl(PR_GET_DUMPABLE, nullptr, nullptr, nullptr, nullptr);
|
||||
if (dumpable == -1)
|
||||
LOG_ERROR(systemError(errno, ERROR_LOCATION));
|
16
math/rstudio/patches/patch-src_cpp_core_system_PosixUser_cpp
Normal file
16
math/rstudio/patches/patch-src_cpp_core_system_PosixUser_cpp
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_core_system_PosixUser_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
Don't use peercred.
|
||||
|
||||
Index: src/cpp/core/system/PosixUser.cpp
|
||||
--- src/cpp/core/system/PosixUser.cpp.orig
|
||||
+++ src/cpp/core/system/PosixUser.cpp
|
||||
@@ -48,7 +48,7 @@ UserIdentity currentUserIdentity()
|
||||
return userIdentity;
|
||||
}
|
||||
|
||||
-#if defined(HAVE_SO_PEERCRED)
|
||||
+#if defined(HAVE_SO_PEERCRED) && !defined(__OpenBSD__)
|
||||
|
||||
Error socketPeerIdentity(int socket, UserIdentity* pIdentity)
|
||||
{
|
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_core_system_file_monitor_LinuxFileMonitor_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
RStudio requires inotify...
|
||||
|
||||
Index: src/cpp/core/system/file_monitor/LinuxFileMonitor.cpp
|
||||
--- src/cpp/core/system/file_monitor/LinuxFileMonitor.cpp.orig
|
||||
+++ src/cpp/core/system/file_monitor/LinuxFileMonitor.cpp
|
||||
@@ -19,7 +19,7 @@
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
-#include <sys/inotify.h>
|
||||
+#include <inotify/sys/inotify.h>
|
||||
|
||||
#include <set>
|
||||
|
44
math/rstudio/patches/patch-src_cpp_desktop_DesktopMain_cpp
Normal file
44
math/rstudio/patches/patch-src_cpp_desktop_DesktopMain_cpp
Normal file
@ -0,0 +1,44 @@
|
||||
$OpenBSD: patch-src_cpp_desktop_DesktopMain_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
Q_OS_LINUX needlessly excludes the BSDs.
|
||||
has_value() only available in later Boost versions.
|
||||
|
||||
Index: src/cpp/desktop/DesktopMain.cpp
|
||||
--- src/cpp/desktop/DesktopMain.cpp.orig
|
||||
+++ src/cpp/desktop/DesktopMain.cpp
|
||||
@@ -52,7 +52,7 @@
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
|
||||
-#ifdef Q_OS_LINUX
|
||||
+#ifdef Q_OS_UNIX
|
||||
#include <core/system/PosixSystem.hpp>
|
||||
#endif
|
||||
|
||||
@@ -372,7 +372,7 @@ QString inferDefaultRenderingEngine()
|
||||
|
||||
#endif
|
||||
|
||||
-#ifdef Q_OS_LINUX
|
||||
+#ifdef Q_OS_UNIX
|
||||
|
||||
QString inferDefaultRenderingEngine()
|
||||
{
|
||||
@@ -639,7 +639,7 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(Q_OS_LINUX)
|
||||
+#if defined(Q_OS_UNIX)
|
||||
|
||||
static char noSandbox[] = "--no-sandbox";
|
||||
|
||||
@@ -1013,7 +1013,7 @@ int main(int argc, char* argv[])
|
||||
options.cleanUpScratchTempDir();
|
||||
|
||||
boost::optional<SessionServer> pendingReconnect = sessionServers().getPendingSessionServerReconnect();
|
||||
- if (pendingReconnect.has_value())
|
||||
+ if (pendingReconnect)
|
||||
{
|
||||
// we need to reconnect to the specified session server
|
||||
forceSessionServerLaunch = true;
|
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_r_session_REmbeddedPosix_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
R_Slave was renamed R_NoEcho in modern versions of R.
|
||||
|
||||
Index: src/cpp/r/session/REmbeddedPosix.cpp
|
||||
--- src/cpp/r/session/REmbeddedPosix.cpp.orig
|
||||
+++ src/cpp/r/session/REmbeddedPosix.cpp
|
||||
@@ -104,7 +104,7 @@ void runEmbeddedR(const core::FilePath& /*rHome*/,
|
||||
structRstart rp;
|
||||
Rstart Rp = &rp;
|
||||
R_DefParams(Rp) ;
|
||||
- Rp->R_Slave = FALSE ;
|
||||
+ Rp->R_NoEcho = FALSE ;
|
||||
Rp->R_Quiet = quiet ? TRUE : FALSE;
|
||||
Rp->R_Interactive = TRUE ;
|
||||
Rp->SaveAction = defaultSaveAction ;
|
24
math/rstudio/patches/patch-src_cpp_server_CMakeLists_txt
Normal file
24
math/rstudio/patches/patch-src_cpp_server_CMakeLists_txt
Normal file
@ -0,0 +1,24 @@
|
||||
$OpenBSD: patch-src_cpp_server_CMakeLists_txt,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
No -ldl.
|
||||
|
||||
Index: src/cpp/server/CMakeLists.txt
|
||||
--- src/cpp/server/CMakeLists.txt.orig
|
||||
+++ src/cpp/server/CMakeLists.txt
|
||||
@@ -104,12 +104,12 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/server-conf
|
||||
${CMAKE_CURRENT_BINARY_DIR}/server-config.h)
|
||||
|
||||
# required on Fedora for dynamic library-related code to compile
|
||||
-if(NOT APPLE)
|
||||
- find_library(DL_LIBRARIES dl)
|
||||
-endif()
|
||||
+#if(NOT APPLE)
|
||||
+# find_library(DL_LIBRARIES dl)
|
||||
+#endif()
|
||||
|
||||
# include directories and libraries
|
||||
-set(SERVER_SYSTEM_LIBRARIES ${DL_LIBRARIES})
|
||||
+#set(SERVER_SYSTEM_LIBRARIES ${DL_LIBRARIES})
|
||||
|
||||
# handle El Capitan moving OpenSSL away
|
||||
if(APPLE)
|
20
math/rstudio/patches/patch-src_cpp_session_CMakeLists_txt
Normal file
20
math/rstudio/patches/patch-src_cpp_session_CMakeLists_txt
Normal file
@ -0,0 +1,20 @@
|
||||
$OpenBSD: patch-src_cpp_session_CMakeLists_txt,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
No pandoc. Don't need it. Don't try to find it.
|
||||
|
||||
Index: src/cpp/session/CMakeLists.txt
|
||||
--- src/cpp/session/CMakeLists.txt.orig
|
||||
+++ src/cpp/session/CMakeLists.txt
|
||||
@@ -25,9 +25,9 @@ endif()
|
||||
if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/mathjax-27")
|
||||
message(FATAL_ERROR "Mathjax 2.7 not found (re-run install-dependencies script to install)")
|
||||
endif()
|
||||
-if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc")
|
||||
- message(FATAL_ERROR "pandoc not found (re-run install-dependencies script to install)")
|
||||
-endif()
|
||||
+#if(NOT EXISTS "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc")
|
||||
+# message(FATAL_ERROR "pandoc not found (re-run install-dependencies script to install)")
|
||||
+#endif()
|
||||
|
||||
# verify embedded packages are available
|
||||
foreach(PKG ${RSTUDIO_EMBEDDED_PACKAGES})
|
16
math/rstudio/patches/patch-src_cpp_session_SessionMain_cpp
Normal file
16
math/rstudio/patches/patch-src_cpp_session_SessionMain_cpp
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-src_cpp_session_SessionMain_cpp,v 1.1.1.1 2020/07/01 18:10:07 bcallah Exp $
|
||||
|
||||
From FreeBSD.
|
||||
|
||||
Index: src/cpp/session/SessionMain.cpp
|
||||
--- src/cpp/session/SessionMain.cpp.orig
|
||||
+++ src/cpp/session/SessionMain.cpp
|
||||
@@ -1692,7 +1692,7 @@ int main (int argc, char * const argv[])
|
||||
|
||||
// move to own process group
|
||||
#ifndef _WIN32
|
||||
- ::setpgrp();
|
||||
+ ::setpgrp(0, 0);
|
||||
#endif
|
||||
|
||||
// get main thread id (used to distinguish forks which occur
|
4
math/rstudio/pkg/DESCR
Normal file
4
math/rstudio/pkg/DESCR
Normal file
@ -0,0 +1,4 @@
|
||||
RStudio is an integrated development environment (IDE) for R.
|
||||
It includes a console, syntax-highlighting editor that supports direct
|
||||
code execution, as well as tools for plotting, history, debugging and
|
||||
workspace management.
|
1925
math/rstudio/pkg/PLIST
Normal file
1925
math/rstudio/pkg/PLIST
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user