diff --git a/devel/RStudio/Makefile b/devel/RStudio/Makefile
index 98d2d41af71e..d0067d59bdae 100644
--- a/devel/RStudio/Makefile
+++ b/devel/RStudio/Makefile
@@ -1,132 +1,141 @@
# This port opens too many files during build, more than the default setting.
# Its build is known to succeed with MAX_FILES_RStudio=4096 and MAX_FILES_RStudio_server=4096 in poudriere.conf
PORTNAME= RStudio
DISTVERSIONPREFIX= v
-DISTVERSION= 1.3.1093
-PORTREVISION= 2
+DISTVERSION= 1.4.1717
CATEGORIES= devel math java
MASTER_SITES= https://s3.amazonaws.com/rstudio-buildtools/dictionaries/:dictionaries \
https://s3.amazonaws.com/rstudio-buildtools/:buildtools
DISTFILES= core-dictionaries.zip:dictionaries \
gin-${GIN_VERSION}.zip:buildtools \
gwt-${GWT_VERSION}.zip:buildtools \
mathjax-27.zip:buildtools
MAINTAINER= yuri@FreeBSD.org
COMMENT= Integrated development environment (IDE) for R
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN_i386= [ERROR] Line 101: Failed to resolve 'org.rstudio.studio.client.workbench.views.vcs.common.diff.LineActionButtonRenderer.GrayResources' via deferred binding
BUILD_DEPENDS= ant:devel/apache-ant \
${LOCALBASE}/include/sys/sysinfo.h:devel/libsysinfo \
+ node:www/node \
pandoc:textproc/hs-pandoc \
R-cran-rstudioapi>0:devel/R-cran-rstudioapi
LIB_DEPENDS= libR.so:math/R \
libboost_thread.so:devel/boost-libs \
libinotify.so:devel/libinotify \
- libuuid.so:misc/e2fsprogs-libuuid
+ libsoci_core.so:databases/soci \
+ libuuid.so:misc/e2fsprogs-libuuid \
+ libyaml-cpp.so:devel/yaml-cpp
FLAVORS= desktop server
FLAVOR?= ${FLAVORS:[1]}
server_PKGNAMESUFFIX= -server
-USES= cmake fortran localbase:ldflags pkgconfig ssl
+USES= cmake fortran localbase:ldflags pgsql pkgconfig sqlite ssl
USE_JAVA= yes
JAVA_VERSION= 8
JAVA_BUILD= yes
USE_GITHUB= yes
GH_PROJECT= ${PORTNAME:tl}
GH_TUPLE= rstudio:r2d3:v0.2.0:r2d3/dependencies/common/r2d3 \
rstudio:rmarkdown:aed26ac:rmarkdown/dependencies/common/rmarkdown \
rstudio:rsconnect:03c379b:rsconnect/dependencies/common/rsconnect \
trestletech:plumber:v0.4.6:plumber/dependencies/common/plumber
CMAKE_ARGS= -DFREEBSD_RSTUDIO_VERSION:STRING=${PORTVERSION} \
-DFREEBSD_LIBDIR:STRING=${PREFIX}/lib
CMAKE_ARGS+= -DQT_QMAKE_EXECUTABLE:STRING=${QMAKE}
CMAKE_ARGS+= -DRSTUDIO_BOOST_SIGNALS_VERSION=2
CMAKE_ARGS+= -DFREEBSD_PORT_VERSION:STRING=${DISTVERSION}
+CMAKE_ARGS+= -DFREEBSD_LOCALBASE:STRING=${LOCALBASE} # SOCI package is looked up here, see patch patch-src_cpp_CMakeLists.txt
+CMAKE_ON= RSTUDIO_USE_SYSTEM_YAML_CPP \
+ RSTUDIO_USE_SYSTEM_SOCI
MAKE_ENV= HOME=${WRKDIR} \
JAVA_HOME=${JAVA_HOME} \
PATH=${JAVA_HOME}/bin:${PATH} \
ANT_OPTS="-Duser.home=${WRKDIR}"
GWT_VERSION= 2.8.1
GIN_VERSION= 2.1.2
.if ${FLAVOR:U} == desktop
DEPRECATED= Uses EOL Python 2.7 via www/qt5-webengine
EXPIRATION_DATE=2021-06-23
COMMENT+= (desktop UI version)
USES+= desktop-file-utils qt:5 shared-mime-info
USE_QT= core dbus declarative gui location network opengl printsupport quickcontrols sensors \
sql svg webchannel webengine webkit widgets xml xmlpatterns buildtools_build qmake_build
CMAKE_ARGS+= -DRSTUDIO_TARGET=Desktop
INSTALL_SUBDIR= ${PORTNAME:tl}
EXECUTABLE= ${PORTNAME:tl}
.endif
.if ${FLAVOR:U} == server
COMMENT+= (web UI version)
CMAKE_ARGS+= -DRSTUDIO_TARGET=Server
+LDFLAGS+= -linotify
INSTALL_SUBDIR= ${PORTNAME:tl}-server
EXECUTABLE= rserver
USER= nobody
SUB_LIST= USER=${USER}
USE_RC_SUBR= ${PORTNAME:tl}-server
.endif
post-extract:
- @${MKDIR} ${WRKSRC}/dependencies/common/dictionaries && ${MV} ${WRKDIR}/en_* ${WRKSRC}/dependencies/common/dictionaries/
- @${MV} ${WRKDIR}/mathjax-* ${WRKSRC}/dependencies/common/
+ @${MKDIR} ${WRKSRC}/dependencies/dictionaries && ${MV} ${WRKDIR}/en_* ${WRKSRC}/dependencies/dictionaries/
+ @${MV} ${WRKDIR}/mathjax-* ${WRKSRC}/dependencies/
@${MKDIR} ${WRKSRC}/src/gwt/lib/gwt && ${MV} ${WRKDIR}/gwt-${GWT_VERSION} ${WRKSRC}/src/gwt/lib/gwt/${GWT_VERSION}
@${MKDIR} ${WRKSRC}/src/gwt/lib/gin/${GIN_VERSION} && ${MV} ${WRKDIR}/*.jar ${WRKSRC}/src/gwt/lib/gin/${GIN_VERSION}/
post-patch:
@${REINPLACE_CMD} -e ' \
s|target_link_libraries(rstudio|target_link_libraries(rstudio procstat|; \
s|get_filename_component|#get_filename_component|; \
s|set(CMAKE_PREFIX_PATH "$${QT_BIN_DIR}//..//lib//cmake")|set(CMAKE_PREFIX_PATH "${LOCALBASE}/lib/cmake")|; \
s|/usr/share/|${PREFIX}/share/|g' \
${WRKSRC}/src/cpp/desktop/CMakeLists.txt
@${REINPLACE_CMD} -e ' \
s|||' \
${WRKSRC}/src/gwt/build.xml
- @${REINPLACE_CMD} -e '\
+ @${REINPLACE_CMD} -e ' \
s|rHomePaths.push_back|//rHomePaths.push_back|; \
s|//rHomePaths.push_back(FilePath("/usr/local/lib/|rHomePaths.push_back(FilePath("${PREFIX}/lib/|' \
${WRKSRC}/src/cpp/core/r_util/RVersionsPosix.cpp
+ @${REINPLACE_CMD} -e ' \
+ s|||' \
+ ${WRKSRC}/src/gwt/build.xml
pre-build:
@${CP} ${FILESDIR}/global-setenv.h ${WRKSRC}/src/cpp/desktop/
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/src/cpp/desktop/global-setenv.h
post-install:
@(echo "#!/bin/sh"; \
echo ""; \
echo "if ! [ -d /proc/curproc ]; then"; \
echo " echo \"${PORTNAME} needs /proc to be mounted as procfs\" >&2"; \
echo " exit 1"; \
echo "fi"; \
echo ""; \
echo "# workaround for the problem that RStudio passes /lib with LD_LIBRARY_PATH that causes the /lib/libgcc_s.so.1 conflict with gcc"; \
echo "LD_PRELOAD=${PREFIX}/lib/gcc${GCC_DEFAULT}/libgcc_s.so JAVA_HOME=${JAVA_HOME} ${PREFIX}/lib/${INSTALL_SUBDIR}/bin/${EXECUTABLE} \"$$"@"\"" \
) > ${STAGEDIR}${PREFIX}/bin/${EXECUTABLE}
@${CHMOD} +x ${STAGEDIR}${PREFIX}/bin/${EXECUTABLE}
.if ${FLAVOR:U} == desktop
${REINPLACE_CMD} -e 's|^Exec=.*/rstudio|Exec=${PREFIX}/bin/${EXECUTABLE}|' ${STAGEDIR}${PREFIX}/share/applications/${EXECUTABLE}.desktop
.endif
.if ${FLAVOR:U} == server
${RM} ${STAGEDIR}${LOCALBASE}/lib/${INSTALL_SUBDIR}/bin/rstudio-server # not compatible with FreeBSD
.endif
# Some functions expect the pandoc symlink.
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/${INSTALL_SUBDIR}/bin/pandoc
@cd ${STAGEDIR}${PREFIX}/lib/${INSTALL_SUBDIR}/bin/pandoc && ${LN} -s ../../../../bin/pandoc
# There is a variability in .js file names due to use of random numbers, so we use the automatic plist.
@${SETENV} ${CO_ENV} ${SH} ${SCRIPTSDIR}/check-stagedir.sh makeplist | ${GREP} -v ^\/ | ${SED} -e 's|%%WWWDIR%%|www/rstudio| ; s|%%CMAKE_BUILD_TYPE%%|${CMAKE_BUILD_TYPE:tl}|' > ${TMPPLIST}
.include
diff --git a/devel/RStudio/distinfo b/devel/RStudio/distinfo
index ae70277ac122..caf142ce08d5 100644
--- a/devel/RStudio/distinfo
+++ b/devel/RStudio/distinfo
@@ -1,19 +1,19 @@
-TIMESTAMP = 1600502392
+TIMESTAMP = 1623197060
SHA256 (core-dictionaries.zip) = 4341a9630efb9dcf7f215c324136407f3b3d6003e1c96f2e5e1f9f14d5787494
SIZE (core-dictionaries.zip) = 876339
SHA256 (gin-2.1.2.zip) = b98e704164f54be596779696a3fcd11be5785c9907a99ec535ff6e9525ad5f9a
SIZE (gin-2.1.2.zip) = 1341053
SHA256 (gwt-2.8.1.zip) = 0b7af89fdadb4ec51cdb400ace94637d6fe9ffa401b168e2c3d372392a00a0a7
SIZE (gwt-2.8.1.zip) = 95650299
SHA256 (mathjax-27.zip) = c56cbaa6c4ce03c1fcbaeb2b5ea3c312d2fb7626a360254770cbcb88fb204176
SIZE (mathjax-27.zip) = 3285230
-SHA256 (RStudio-rstudio-v1.3.1093_GH0.tar.gz) = af8dc5e71ee934043856938af2e2065d1f1efef08aba37962ed03f6ccb8201bb
-SIZE (RStudio-rstudio-v1.3.1093_GH0.tar.gz) = 89554292
+SHA256 (RStudio-rstudio-v1.4.1717_GH0.tar.gz) = 3af234180fd7cef451aef40faac2c7b52860f14a322244c1c7aede029814d261
+SIZE (RStudio-rstudio-v1.4.1717_GH0.tar.gz) = 96928031
SHA256 (rstudio-r2d3-v0.2.0_GH0.tar.gz) = 6355a7632134c8c9487056019a9c458db2c98d10388cf66b018d5461d0a947af
SIZE (rstudio-r2d3-v0.2.0_GH0.tar.gz) = 21977747
SHA256 (rstudio-rmarkdown-aed26ac_GH0.tar.gz) = b6f6f48dd9930514204739d8957c2737f0b1d110aebf9f89fa31de10598cb29b
SIZE (rstudio-rmarkdown-aed26ac_GH0.tar.gz) = 2087615
SHA256 (rstudio-rsconnect-03c379b_GH0.tar.gz) = d24b6ee49f32f650f6d10bbfc7b2f61aee258f2fbf45a43c006f9e0a726bcea6
SIZE (rstudio-rsconnect-03c379b_GH0.tar.gz) = 220711
SHA256 (trestletech-plumber-v0.4.6_GH0.tar.gz) = 7bcbfdf5a8a2e3a051d2c673ac5ac51a483ed888afe73116cba7741dbb5f63a6
SIZE (trestletech-plumber-v0.4.6_GH0.tar.gz) = 83332
diff --git a/devel/RStudio/files/patch-CMakeGlobals.txt b/devel/RStudio/files/patch-CMakeGlobals.txt
index fa4da3d5e013..60af3c7c1151 100644
--- a/devel/RStudio/files/patch-CMakeGlobals.txt
+++ b/devel/RStudio/files/patch-CMakeGlobals.txt
@@ -1,19 +1,37 @@
---- CMakeGlobals.txt.orig 2020-01-23 23:30:24 UTC
+--- CMakeGlobals.txt.orig 2021-05-24 22:22:25 UTC
+++ CMakeGlobals.txt
-@@ -84,7 +84,7 @@ endif()
+@@ -118,7 +118,7 @@ endif()
# record git revision hash (cache it since we don't use this in development
# mode and we don't want it to force rebuilds there)
-if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSTUDIO_GIT_REVISION_HASH)
+if(FALSE AND NOT RSTUDIO_SESSION_WIN32 AND NOT RSTUDIO_GIT_REVISION_HASH)
find_program(GIT_EXECUTABLE git)
if(GIT_EXECUTABLE)
execute_process(
-@@ -95,6 +95,7 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSTUDIO_GIT_REVIS
+@@ -129,6 +129,7 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSTUDIO_GIT_REVIS
SET(RSTUDIO_GIT_REVISION_HASH "${RSTUDIO_GIT_REVISION_HASH}" CACHE STRING "Git Revision Hash")
endif()
endif()
+SET(RSTUDIO_VERSION "${FREEBSD_RSTUDIO_VERSION}" CACHE STRING "FreeBSD RStudio version")
# record these from Jenkins if available
if("$ENV{GIT_COMMIT}" STREQUAL "")
+@@ -238,14 +239,14 @@ else()
+ endif()
+
+ # if the install prefix is /usr/local then tweak as appropriate
+-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
++if(TRUE OR NOT DEFINED CMAKE_INSTALL_PREFIX) # force to set deeper CMAKE_INSTALL_PREFIX because many files are installed into its root
+ if(APPLE)
+ set(CMAKE_INSTALL_PREFIX "/Applications")
+ elseif(UNIX)
+ if(RSTUDIO_DESKTOP)
+- set(CMAKE_INSTALL_PREFIX "/usr/local/lib/rstudio")
++ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib/rstudio")
+ else()
+- set(CMAKE_INSTALL_PREFIX "/usr/local/lib/rstudio-server")
++ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib/rstudio-server")
+ endif()
+ endif()
+ endif()
diff --git a/devel/RStudio/files/patch-src_cpp_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_CMakeLists.txt
new file mode 100644
index 000000000000..6754f2c1a030
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_CMakeLists.txt
@@ -0,0 +1,18 @@
+--- src/cpp/CMakeLists.txt.orig 2021-05-24 22:22:25 UTC
++++ src/cpp/CMakeLists.txt
+@@ -433,11 +433,11 @@ endif()
+ if(UNIX)
+ set(SOCI_LIBRARY_DIR "${RSTUDIO_TOOLS_SOCI}/build/lib")
+ if(NOT APPLE AND RSTUDIO_USE_SYSTEM_SOCI)
+- set(SOCI_LIBRARY_DIR "/usr/lib")
++ set(SOCI_LIBRARY_DIR "${FREEBSD_LOCALBASE}/lib")
+ endif()
+- find_library(SOCI_CORE_LIB NAMES "libsoci_core.a" "soci_core" PATHS "${SOCI_LIBRARY_DIR}" NO_DEFAULT_PATH)
+- find_library(SOCI_SQLITE_LIB NAMES "libsoci_sqlite3.a" "soci_sqlite3" PATHS "${SOCI_LIBRARY_DIR}" NO_DEFAULT_PATH)
+- find_library(SOCI_POSTGRESQL_LIB NAMES "libsoci_postgresql.a" "soci_postgresql" PATHS "${SOCI_LIBRARY_DIR}" NO_DEFAULT_PATH)
++ find_library(SOCI_CORE_LIB NAMES "libsoci_core.so" "soci_core" PATHS "${SOCI_LIBRARY_DIR}" NO_DEFAULT_PATH)
++ find_library(SOCI_SQLITE_LIB NAMES "libsoci_sqlite3.so" "soci_sqlite3" PATHS "${SOCI_LIBRARY_DIR}" NO_DEFAULT_PATH)
++ find_library(SOCI_POSTGRESQL_LIB NAMES "libsoci_postgresql.so" "soci_postgresql" PATHS "${SOCI_LIBRARY_DIR}" NO_DEFAULT_PATH)
+ find_library(DL_LIB "dl")
+ find_library(SQLITE_LIB "sqlite3")
+ get_filename_component(SQLITE_LIB "${SQLITE_LIB}" REALPATH)
diff --git a/devel/RStudio/files/patch-src_cpp_core_system_PosixSystem.cpp b/devel/RStudio/files/patch-src_cpp_core_system_PosixSystem.cpp
index 5f0def0c79fb..c5632b95d384 100644
--- a/devel/RStudio/files/patch-src_cpp_core_system_PosixSystem.cpp
+++ b/devel/RStudio/files/patch-src_cpp_core_system_PosixSystem.cpp
@@ -1,102 +1,93 @@
- one of the patches is a workaround for access to /proc/{pid}/fd : https://github.com/rstudio/rstudio/issues/8912
---- src/cpp/core/system/PosixSystem.cpp.orig 2020-09-17 18:16:48 UTC
+--- src/cpp/core/system/PosixSystem.cpp.orig 2021-05-24 22:22:25 UTC
+++ src/cpp/core/system/PosixSystem.cpp
-@@ -40,20 +40,25 @@
+@@ -41,20 +41,25 @@
- #include
+ #include
-#ifdef __APPLE__
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include
#include
#include
#include
#endif
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include
#include
#include
#include
#endif
+#if defined(__FreeBSD__)
+#include
+#include
+#endif
+
#include
#include
#include
-@@ -575,6 +580,7 @@ Error getOpenFds(std::vector* pFds)
+@@ -560,6 +565,7 @@ Error getOpenFds(std::vector* pFds)
#ifndef __APPLE__
Error getOpenFds(pid_t pid, std::vector* pFds)
{
+#if !defined(__FreeBSD__)
std::string pidStr = safe_convert::numberToString(pid);
boost::format fmt("/proc/%1%/fd");
FilePath filePath(boost::str(fmt % pidStr));
-@@ -601,6 +607,7 @@ Error getOpenFds(pid_t pid, std::vector* pFd
+@@ -586,6 +592,7 @@ Error getOpenFds(pid_t pid, std::vector* pFd
pFds->push_back(fd.get());
}
}
+#endif
return Success();
}
-@@ -922,7 +929,7 @@ Error executablePath(const char * argv0,
+@@ -911,7 +918,7 @@ Error executablePath(const char * argv0,
#elif defined(HAVE_PROCSELF)
- executablePath = std::string("/proc/self/exe");
+ executablePath = std::string("/proc/curproc/file");
#else
-@@ -1431,7 +1438,7 @@ Error osResourceLimit(ResourceLimit limit, int* pLimit
+@@ -1420,7 +1427,7 @@ Error osResourceLimit(ResourceLimit limit, int* pLimit
case CpuLimit:
*pLimit = RLIMIT_CPU;
break;
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
case NiceLimit:
*pLimit = RLIMIT_NICE;
break;
-@@ -1504,7 +1511,7 @@ Error systemInformation(SysInfo* pSysInfo)
+@@ -1493,7 +1500,7 @@ Error systemInformation(SysInfo* pSysInfo)
{
pSysInfo->cores = boost::thread::hardware_concurrency();
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
struct sysinfo info;
if (::sysinfo(&info) == -1)
return systemError(errno, ERROR_LOCATION);
-@@ -1944,7 +1951,7 @@ Error restrictCoreDumps()
+@@ -1897,7 +1904,7 @@ Error restrictCoreDumps()
return error;
// no ptrace core dumps permitted
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
int res = ::prctl(PR_SET_DUMPABLE, 0);
if (res == -1)
return systemError(errno, ERROR_LOCATION);
-@@ -1955,7 +1962,7 @@ Error restrictCoreDumps()
-
- Error enableCoreDumps()
- {
--#ifndef __APPLE__
-+#if !defined(__APPLE__) && !defined(__FreeBSD__)
- int res = ::prctl(PR_SET_DUMPABLE, 1);
- if (res == -1)
- return systemError(errno, ERROR_LOCATION);
-@@ -1981,7 +1988,7 @@ void printCoreDumpable(const std::string& context)
+@@ -1928,7 +1935,7 @@ void printCoreDumpable(const std::string& context)
ostr << " hard limit: " << rLimitHard << std::endl;
// ptrace
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
int dumpable = ::prctl(PR_GET_DUMPABLE, nullptr, nullptr, nullptr, nullptr);
if (dumpable == -1)
LOG_ERROR(systemError(errno, ERROR_LOCATION));
diff --git a/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp b/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp
index 5b17bed329d5..f41019b204b7 100644
--- a/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp
+++ b/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp
@@ -1,28 +1,28 @@
---- src/cpp/desktop/DesktopMain.cpp.orig 2020-05-18 18:11:10 UTC
+--- src/cpp/desktop/DesktopMain.cpp.orig 2021-05-24 22:22:25 UTC
+++ src/cpp/desktop/DesktopMain.cpp
-@@ -47,6 +47,8 @@
+@@ -49,6 +49,8 @@
#include "DesktopActivationOverlay.hpp"
#include "DesktopSessionServersOverlay.hpp"
+#include "global-setenv.h"
+
#ifdef _WIN32
#include
#include
-@@ -372,7 +374,7 @@ QString inferDefaultRenderingEngine()
+@@ -349,7 +351,7 @@ QString inferDefaultRenderingEngineMac()
- #endif
+ #endif /* Q_OS_MAC */
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
- QString inferDefaultRenderingEngine()
+ QString inferDefaultRenderingEngineLinux()
{
-@@ -461,6 +463,7 @@ std::string getSessionUrl()
+@@ -477,6 +479,7 @@ std::string getSessionUrl()
int main(int argc, char* argv[])
{
+ GLOBAL_SETENV
core::system::initHook();
try
diff --git a/devel/RStudio/files/patch-src_cpp_desktop_DesktopWebView.cpp b/devel/RStudio/files/patch-src_cpp_desktop_DesktopWebView.cpp
deleted file mode 100644
index df00a6e0924c..000000000000
--- a/devel/RStudio/files/patch-src_cpp_desktop_DesktopWebView.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
---- src/cpp/desktop/DesktopWebView.cpp.orig 2020-01-23 23:30:24 UTC
-+++ src/cpp/desktop/DesktopWebView.cpp
-@@ -272,7 +272,7 @@ void WebView::contextMenuEvent(QContextMenuEvent* even
-
- case QWebEngineContextMenuData::MediaTypeAudio:
-
--#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
-+#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) && !defined(__FreeBSD__) // FreeBSD stayed with qt5-webengine-5.9.5_14 while Qt advanced to 5.12.0
- if (data.mediaFlags().testFlag(QWebEngineContextMenuData::MediaPaused))
- menu->addAction(label(tr("&Play")), [&]() { triggerPageAction(QWebEnginePage::ToggleMediaPlayPause); });
- else
-@@ -289,7 +289,7 @@ void WebView::contextMenuEvent(QContextMenuEvent* even
-
- case QWebEngineContextMenuData::MediaTypeVideo:
-
--#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
-+#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) && !defined(__FreeBSD__) // FreeBSD stayed with qt5-webengine-5.9.5_14 while Qt advanced to 5.12.0
- if (data.mediaFlags().testFlag(QWebEngineContextMenuData::MediaPaused))
- menu->addAction(label(tr("&Play")), [&]() { triggerPageAction(QWebEnginePage::ToggleMediaPlayPause); });
- else
-@@ -347,7 +347,7 @@ void WebView::contextMenuEvent(QContextMenuEvent* even
- menu->addAction(selectAll);
- }
-
--#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)
-+#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) && !defined(__FreeBSD__) // FreeBSD stayed with qt5-webengine-5.9.5_14 while Qt advanced to 5.12.0
- menu->addSeparator();
- menu->addAction(label(tr("&Reload")), [&]() { triggerPageAction(QWebEnginePage::Reload); });
- menu->addAction(label(tr("I&nspect element")), [&]() {
diff --git a/devel/RStudio/files/patch-src_cpp_diagnostics_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_diagnostics_CMakeLists.txt
index 4dba9a09bf82..bc626e6d8585 100644
--- a/devel/RStudio/files/patch-src_cpp_diagnostics_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_diagnostics_CMakeLists.txt
@@ -1,10 +1,10 @@
---- src/cpp/diagnostics/CMakeLists.txt.orig 2020-01-23 23:30:24 UTC
+--- src/cpp/diagnostics/CMakeLists.txt.orig 2021-05-24 22:22:25 UTC
+++ src/cpp/diagnostics/CMakeLists.txt
@@ -57,6 +57,7 @@ add_stripped_executable(diagnostics
# set link dependencies
target_link_libraries(diagnostics
rstudio-core
+ procstat
)
+
if(NOT RSTUDIO_SESSION_WIN32)
- install(TARGETS diagnostics DESTINATION ${RSTUDIO_INSTALL_BIN})
diff --git a/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt
index b599ff51d262..167552275470 100644
--- a/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt
@@ -1,12 +1,12 @@
---- src/cpp/server/CMakeLists.txt.orig 2020-01-23 23:30:24 UTC
+--- src/cpp/server/CMakeLists.txt.orig 2021-05-24 22:22:25 UTC
+++ src/cpp/server/CMakeLists.txt
-@@ -156,6 +156,9 @@ include_directories(
+@@ -137,6 +137,9 @@ include_directories(
# define executable
- add_stripped_executable(rserver ${SERVER_SOURCE_FILES} ${SERVER_HEADER_FILES})
+ add_stripped_executable(rserver ServerMain.cpp ${SERVER_SOURCE_FILES} ${SERVER_HEADER_FILES})
+# additional libraries
+target_link_libraries(rserver -L${FREEBSD_LIBDIR} -linotify)
+
# set link dependencies
target_link_libraries(rserver
rstudio-core
diff --git a/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt
index defef341e58e..a0ed7d4a0034 100644
--- a/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt
@@ -1,105 +1,124 @@
---- src/cpp/session/CMakeLists.txt.orig 2020-05-18 18:11:10 UTC
+--- src/cpp/session/CMakeLists.txt.orig 2021-05-24 22:22:25 UTC
+++ 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)")
+@@ -24,7 +24,7 @@ set(PANDOC_VERSION "2.11.4" CACHE INTERNAL "Pandoc ver
+ if(WIN32)
+ set(RSTUDIO_DEPENDENCIES_DICTIONARIES_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/dictionaries")
+ set(RSTUDIO_DEPENDENCIES_MATHJAX_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/mathjax-27")
+- set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc/${PANDOC_VERSION}")
++ #set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc/${PANDOC_VERSION}")
+ else()
+
+ # indirection to help build machine find these libraries?
+@@ -40,17 +40,18 @@ else()
+ set(RSTUDIO_DEPENDENCIES_MATHJAX_DIR "${RSTUDIO_DEPENDENCIES_DIR}/mathjax-27")
+ endif()
+
+- if(EXISTS "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
+- set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
+- else()
+- set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_DIR}/pandoc/${PANDOC_VERSION}")
+- endif()
++ #if(EXISTS "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
++ # set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_TOOLS_ROOT}/pandoc/${PANDOC_VERSION}")
++ #else()
++ # set(RSTUDIO_DEPENDENCIES_PANDOC_DIR "${RSTUDIO_DEPENDENCIES_DIR}/pandoc/${PANDOC_VERSION}")
++ #endif()
+
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})
-@@ -38,19 +38,19 @@ foreach(PKG ${RSTUDIO_EMBEDDED_PACKAGES})
+ foreach(DEP "${RSTUDIO_DEPENDENCIES_DICTIONARIES_DIR}"
+ "${RSTUDIO_DEPENDENCIES_MATHJAX_DIR}"
+- "${RSTUDIO_DEPENDENCIES_PANDOC_DIR}")
++ #"${RSTUDIO_DEPENDENCIES_PANDOC_DIR}"
++)
+ if(NOT EXISTS "${DEP}")
+ message(FATAL_ERROR "${DEP} not found (re-run install-dependencies script to install")
+ endif()
+@@ -65,19 +66,19 @@ foreach(PKG ${RSTUDIO_EMBEDDED_PACKAGES})
endforeach()
# verify libclang is installed (Windows only)
-if(WIN32)
- set(LIBCLANG_VERSION "5.0.2")
- set(LIBCLANG_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/libclang/${LIBCLANG_VERSION}")
- if(NOT EXISTS "${LIBCLANG_DIR}")
- message(FATAL_ERROR "libclang ${LIBCLANG_VERSION} not found (re-run install-dependencies script to install)")
- endif()
+#if(WIN32)
+# set(LIBCLANG_VERSION "5.0.2")
+# set(LIBCLANG_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/libclang/${LIBCLANG_VERSION}")
+# if(NOT EXISTS "${LIBCLANG_DIR}")
+# message(FATAL_ERROR "libclang ${LIBCLANG_VERSION} not found (re-run install-dependencies script to install)")
+# endif()
+#
+# set(LIBCLANG_HEADERS_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/libclang/builtin-headers")
+# if(NOT EXISTS "${LIBCLANG_HEADERS_DIR}")
+# message(FATAL_ERROR "libclang builtin-headers not found (re-run install-dependencies script to install)")
+# endif()
+#endif()
- set(LIBCLANG_HEADERS_DIR "${RSTUDIO_DEPENDENCIES_DIR}/common/libclang/builtin-headers")
- if(NOT EXISTS "${LIBCLANG_HEADERS_DIR}")
- message(FATAL_ERROR "libclang builtin-headers not found (re-run install-dependencies script to install)")
- endif()
-endif()
-
# include files
file(GLOB_RECURSE SESSION_HEADER_FILES "*.h*")
-@@ -391,6 +391,9 @@ endif()
- # define executable
- add_stripped_executable(rsession ${SESSION_SOURCE_FILES} ${SESSION_HEADER_FILES})
+@@ -444,6 +445,9 @@ add_stripped_executable(
+ ${SESSION_SOURCE_FILES}
+ ${SESSION_HEADER_FILES})
+# additional libraries
+target_link_libraries(rsession -L${FREEBSD_LIBDIR} -linotify -lprocstat)
+
# skip libR RPATH at development time
if(RSTUDIO_DEVELOPMENT OR RSTUDIO_RUN_IN_PLACE)
set_target_properties(rsession PROPERTIES SKIP_BUILD_RPATH TRUE)
-@@ -519,11 +522,11 @@ if (NOT RSTUDIO_SESSION_WIN32)
- # install pandoc
- set(PANDOC_VERSION "2.7.3" CACHE INTERNAL "Pandoc version")
+@@ -579,10 +583,10 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNAT
+ DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
-- set(PANDOC_BIN "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc/${PANDOC_VERSION}")
-- file(GLOB PANDOC_FILES "${PANDOC_BIN}/pandoc*")
+ # install pandoc
+- file(GLOB PANDOC_FILES "${RSTUDIO_DEPENDENCIES_PANDOC_DIR}/pandoc*")
- install(FILES ${PANDOC_FILES}
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-- DESTINATION ${RSTUDIO_INSTALL_BIN}/pandoc)
-+ #set(PANDOC_BIN "${RSTUDIO_DEPENDENCIES_DIR}/common/pandoc/${PANDOC_VERSION}")
-+ #file(GLOB PANDOC_FILES "${PANDOC_BIN}/pandoc*")
+- DESTINATION "${RSTUDIO_INSTALL_BIN}/pandoc")
++ #file(GLOB PANDOC_FILES "${RSTUDIO_DEPENDENCIES_PANDOC_DIR}/pandoc*")
+ #install(FILES ${PANDOC_FILES}
+ # PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-+ # DESTINATION ${RSTUDIO_INSTALL_BIN}/pandoc)
++ # DESTINATION "${RSTUDIO_INSTALL_BIN}/pandoc")
# install embedded packages
foreach(PKG ${RSTUDIO_EMBEDDED_PACKAGES})
-@@ -558,18 +561,18 @@ if (NOT RSTUDIO_SESSION_WIN32)
- DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/resources)
+@@ -622,18 +626,18 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNAT
+ DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/resources)
# install libclang
- if(WIN32)
- file(GLOB LIBCLANG_32_FILES "${LIBCLANG_DIR}/x86/*")
- install(PROGRAMS ${LIBCLANG_32_FILES}
- DESTINATION ${RSTUDIO_INSTALL_BIN}/rsclang/x86)
- file(GLOB LIBCLANG_64_FILES "${LIBCLANG_DIR}/x86_64/*")
- install(PROGRAMS ${LIBCLANG_64_FILES}
- DESTINATION ${RSTUDIO_INSTALL_BIN}/rsclang/x86_64)
-
- # install libclang builtin-headers
- install(DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/libclang/builtin-headers"
- DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources/libclang")
- endif()
+# if(WIN32)
+# file(GLOB LIBCLANG_32_FILES "${LIBCLANG_DIR}/x86/*")
+# install(PROGRAMS ${LIBCLANG_32_FILES}
+# DESTINATION ${RSTUDIO_INSTALL_BIN}/rsclang/x86)
+# file(GLOB LIBCLANG_64_FILES "${LIBCLANG_DIR}/x86_64/*")
+# install(PROGRAMS ${LIBCLANG_64_FILES}
+# DESTINATION ${RSTUDIO_INSTALL_BIN}/rsclang/x86_64)
+#
+# # install libclang builtin-headers
+# install(DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/libclang/builtin-headers"
+# DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources/libclang")
+# endif()
# install winpty on windows
if(WIN32)
diff --git a/devel/RStudio/files/patch-src_cpp_session_postback_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_session_postback_CMakeLists.txt
index 9c0bd05ab04e..3ec99eb75845 100644
--- a/devel/RStudio/files/patch-src_cpp_session_postback_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_session_postback_CMakeLists.txt
@@ -1,10 +1,10 @@
---- src/cpp/session/postback/CMakeLists.txt.orig 2020-01-23 23:30:24 UTC
+--- src/cpp/session/postback/CMakeLists.txt.orig 2021-05-24 22:22:25 UTC
+++ src/cpp/session/postback/CMakeLists.txt
-@@ -36,6 +36,7 @@ add_executable(rpostback ${POSTBACK_SOURCE_FILES} ${PO
+@@ -36,6 +36,7 @@ add_stripped_executable(rpostback ${POSTBACK_SOURCE_FI
# set link dependencies
target_link_libraries(rpostback
rstudio-core
+ procstat
+ ${CRASHPAD_LIBRARIES}
)
- if (RSTUDIO_SERVER)
diff --git a/devel/RStudio/files/patch-src_cpp_shared__core_system_PosixSystem.cpp b/devel/RStudio/files/patch-src_cpp_shared__core_system_PosixSystem.cpp
new file mode 100644
index 000000000000..6a304d8a4651
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_shared__core_system_PosixSystem.cpp
@@ -0,0 +1,23 @@
+--- src/cpp/shared_core/system/PosixSystem.cpp.orig 2021-06-09 01:52:44 UTC
++++ src/cpp/shared_core/system/PosixSystem.cpp
+@@ -29,8 +29,10 @@
+ #include
+ #include
+ #include
++#include // for sa_family_t
++#include // for struct sockaddr
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include
+ #endif
+
+@@ -80,7 +82,7 @@ Error restorePrivilegesImpl(uid_t in_uid)
+
+ Error enableCoreDumps()
+ {
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ int res = ::prctl(PR_SET_DUMPABLE, 1);
+ if (res == -1)
+ return systemError(errno, ERROR_LOCATION);
diff --git a/devel/RStudio/files/patch-src_cpp_shared__core_system_User.cpp b/devel/RStudio/files/patch-src_cpp_shared__core_system_User.cpp
deleted file mode 100644
index dc2aacfdae43..000000000000
--- a/devel/RStudio/files/patch-src_cpp_shared__core_system_User.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-- Workaround for https://github.com/rstudio/rstudio/issues/8908
-
---- src/cpp/shared_core/system/User.cpp.orig 2021-02-05 21:40:04 UTC
-+++ src/cpp/shared_core/system/User.cpp
-@@ -64,6 +64,8 @@ struct User::Impl
-
- // Get the maximum size of a passwd for this system.
- long buffSize = ::sysconf(_SC_GETPW_R_SIZE_MAX);
-+ if (buffSize == -1)
-+ buffSize = 4096;
- if (buffSize == 1)
- buffSize = 4096; // some systems return -1, be conservative!
-