Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Aug 2023 08:40:17 GMT
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org
Subject:   git: 8e04bdc72dc1 - 2023Q3 - devel/RStudio: Fix bug that RStudio-server didn't have /usr/local/bin in PATH
Message-ID:  <202308290840.37T8eHoY084218@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch 2023Q3 has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8e04bdc72dc12204468b207a2e2ec4c0198a9014

commit 8e04bdc72dc12204468b207a2e2ec4c0198a9014
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-08-29 08:37:27 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-08-29 08:40:15 +0000

    devel/RStudio: Fix bug that RStudio-server didn't have /usr/local/bin in PATH
    
    This was previously fixed in post-install but the previous fix
    relied on the other path that changed, which eroded this fix.
    
    The new fix adds /usr/local/bin to PATH in the C++ code.
    
    (cherry picked from commit 9884a43067a47d9f4088306ad29d1ec373b25eee)
---
 devel/RStudio/Makefile                             | 12 +++++------
 .../patch-src_cpp_session_modules_SessionGit.cpp   | 24 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/devel/RStudio/Makefile b/devel/RStudio/Makefile
index dcc39863ecb0..a6df10b46383 100644
--- a/devel/RStudio/Makefile
+++ b/devel/RStudio/Makefile
@@ -4,7 +4,7 @@
 PORTNAME=	RStudio
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2022.12.0+353
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	devel math java
 MASTER_SITES=	https://s3.amazonaws.com/rstudio-buildtools/dictionaries/:dictionaries \
 		https://s3.amazonaws.com/rstudio-buildtools/:buildtools
@@ -117,6 +117,10 @@ post-patch:
 	@${REINPLACE_CMD} -e ' \
 		s|<condition property="node.bin" value="../../../$${node.dir}/bin/node">|<condition property="node.bin" value="${LOCALBASE}/bin/node">|' \
 		${WRKSRC}/src/gwt/build.xml
+	# add $PREFIX/bin to PATH for the server daemon
+.if ${FLAVOR:U} == server
+	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' ${WRKSRC}/src/cpp/session/modules/SessionGit.cpp
+.endif
 
 pre-build:
 	@${CP} ${FILESDIR}/global-setenv.h ${WRKSRC}/src/cpp/desktop/
@@ -143,12 +147,6 @@ post-install:
 	# 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
-	# Add $LOCALBASE/bin to PATH to allow RStudio-server to run gmake (R_HOME/etc/Renviron.site is installed, see https://stat.ethz.ch/R-manual/R-devel/library/base/html/Startup.html)
-.if ${FLAVOR:U} == server
-	#@${MKDIR} ${STAGEDIR}${LOCALBASE}/lib/R/etc
-	#@${ECHO} "PATH=\"${LOCALBASE}/bin:\$$PATH\"" > ${STAGEDIR}${LOCALBASE}/lib/R/etc/Renviron.site # it should be this way, but this fails: https://github.com/rstudio/rstudio/issues/9815
-	@${LN} -s ${LOCALBASE}/bin/${GMAKE} ${STAGEDIR}${PREFIX}/lib/rstudio-server/bin/postback/${GMAKE} # hack, should be as above, but at least gmake is in the path now
-.endif
 	# 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}
 
diff --git a/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp b/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp
new file mode 100644
index 000000000000..c72a605a439a
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp
@@ -0,0 +1,24 @@
+- add path %%PREFIX%%/bin to PATH so that gmake and cmake executable would be found
+
+--- src/cpp/session/modules/SessionGit.cpp.orig	2023-08-29 01:47:30 UTC
++++ src/cpp/session/modules/SessionGit.cpp
+@@ -130,6 +130,9 @@ core::system::ProcessOptions procOptions()
+    FilePath postbackDir = session::options().rpostbackPath().getParent();
+    core::system::addToPath(&childEnv, postbackDir.getAbsolutePath());
+ 
++   // add $PREFIX/bin to path
++   core::system::addToPath(&childEnv, "%%PREFIX%%/bin");
++
+    options.workingDir = projects::projectContext().directory();
+ 
+ #ifdef _WIN32
+@@ -3370,6 +3373,9 @@ core::Error initialize()
+    }
+ 
+    core::system::addToPath(postbackDir.getAbsolutePath());
++
++   // add $PREFIX/bin to path
++   core::system::addToPath("%%PREFIX%%/bin");
+ 
+    // add suspend/resume handler
+    addSuspendHandler(SuspendHandler(boost::bind(onSuspend, _2), onResume));



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308290840.37T8eHoY084218>