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! -