git: da2f3f630cf9 - main - devel/RStudio: Revert "feat(create-turbo): apply official-starter transform"

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Wed, 02 Oct 2024 19:38:53 UTC
The branch main has been updated by yuri:

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

commit da2f3f630cf939a640f4c1151a8f0a0fdb1fa0c7
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-10-02 19:37:29 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-10-02 19:38:44 +0000

    devel/RStudio: Revert "feat(create-turbo): apply official-starter transform"
    
    This reverts commit 52c0456dd5ec259ac94ee401db79c7ad3569f914.
    
    I have no idea what lead to this commit into devel/RStudio and
    lang/rust-nightly to be made.
---
 devel/RStudio/Makefile                             |  42 ++++----
 devel/RStudio/distinfo                             |  12 ++-
 devel/RStudio/files/patch-CMakeGlobals.txt         |  46 +++++++++
 devel/RStudio/files/patch-CMakeLists.txt           |  15 +--
 devel/RStudio/files/patch-src_cpp_CMakeLists.txt   |  21 ++--
 .../files/patch-src_cpp_core_CMakeLists.txt        |   4 +-
 .../patch-src_cpp_core_include_core_Thread.hpp     |  12 +++
 ...patch-src_cpp_core_system_PosixChildProcess.cpp |   4 +-
 .../patch-src_cpp_core_system_PosixSystem.cpp      |  12 +--
 ...h-src_cpp_desktop_DesktopDownloadItemHelper.cpp |  15 +++
 .../files/patch-src_cpp_desktop_DesktopMain.cpp    |  28 ++++++
 .../files/patch-src_cpp_server_CMakeLists.txt      |   4 +-
 ...patch-src_cpp_server_auth_ServerAuthHandler.cpp |  26 +++++
 .../files/patch-src_cpp_session_CMakeLists.txt     |  18 ++--
 .../patch-src_cpp_session_SessionHttpMethods.cpp   |   4 +-
 .../files/patch-src_cpp_session_SessionMain.cpp    |   4 +-
 .../patch-src_cpp_session_modules_SessionGit.cpp   |  19 ++--
 ...tch-src_cpp_shared__core_system_PosixSystem.cpp |  14 +++
 lang/rust-nightly/Makefile                         |   6 +-
 lang/rust-nightly/distinfo                         |   6 +-
 ...ustc__target_src_spec_i686__unknown__freebsd.rs |  11 +++
 ...-src_bootstrap_src_core_build__steps_install.rs |   4 +-
 ...src_tools_cargo_src_cargo_sources_git_source.rs |   8 +-
 lang/rust-nightly/files/patch-vendor_cc.rs         | 107 +++++++++++++++++++++
 lang/rust/Makefile                                 |   6 +-
 25 files changed, 355 insertions(+), 93 deletions(-)

diff --git a/devel/RStudio/Makefile b/devel/RStudio/Makefile
index ec7266fdaa73..4f7928153818 100644
--- a/devel/RStudio/Makefile
+++ b/devel/RStudio/Makefile
@@ -3,11 +3,14 @@
 
 PORTNAME=	RStudio
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2024.09.0+375
+DISTVERSION=	2022.12.0+353
+PORTREVISION=	6
 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
@@ -45,8 +48,7 @@ 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 \
-		quarto-dev:quarto:v1.115.0-vsix:quarto/src/gwt/lib/quarto
+		trestletech:plumber:v0.4.6:plumber/dependencies/common/plumber
 
 CMAKE_ARGS=	-DFREEBSD_RSTUDIO_VERSION:STRING=${PORTVERSION} \
 		-DFREEBSD_LIBDIR:STRING=${PREFIX}/lib
@@ -89,40 +91,40 @@ USE_RC_SUBR=	${PORTNAME:tl}-server
 OPTIONS_DEFINE=		WITH_QUARTO
 
 WITH_QUARTO_DESC=	Build with support for Quarto
-WITH_QUARTO_CMAKE_BOOL=	QUARTO_ENABLED
+WITH_QUARTO_CMAKE_BOOL=	FREEBSD_QUARTO_ENABLED
 WITH_QUARTO_BROKEN=	Quarto isn't yet ported
 
 post-extract:
 	@${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}/
+	@${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|</java>|<jvmarg value="-Duser.home=${WRKDIR}"/></java>|' \
-	#	${WRKSRC}/src/gwt/build.xml
+	@${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|</java>|<jvmarg value="-Duser.home=${WRKDIR}"/></java>|' \
+		${WRKSRC}/src/gwt/build.xml
 	@${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|<condition property="node.bin" value="../../../$${node.dir}/bin/node">|<condition property="node.bin" value="${LOCALBASE}/bin/node">|' \
-	#	${WRKSRC}/src/gwt/build.xml
+	@${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/
-	#@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/src/cpp/desktop/global-setenv.h
+	@${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"; \
diff --git a/devel/RStudio/distinfo b/devel/RStudio/distinfo
index b5bf14aa5108..5b7326f0a4e5 100644
--- a/devel/RStudio/distinfo
+++ b/devel/RStudio/distinfo
@@ -1,10 +1,14 @@
-TIMESTAMP = 1727743998
+TIMESTAMP = 1672353588
 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-v2024.09.0+375_GH0.tar.gz) = 8a29b77c53a3db8379d824a9f4a491843036003d105ed71981cd40fe39d2c8c8
-SIZE (RStudio-rstudio-v2024.09.0+375_GH0.tar.gz) = 268564378
+SHA256 (RStudio-rstudio-v2022.12.0+353_GH0.tar.gz) = e4f3503e2ad4229301360f56fd5288e5c8e769c490073dae7fe40366237ecce0
+SIZE (RStudio-rstudio-v2022.12.0+353_GH0.tar.gz) = 266546261
 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
@@ -13,5 +17,3 @@ SHA256 (rstudio-rsconnect-03c379b_GH0.tar.gz) = d24b6ee49f32f650f6d10bbfc7b2f61a
 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
-SHA256 (quarto-dev-quarto-v1.115.0-vsix_GH0.tar.gz) = 59a10967d3d4a45f1224180aaa52c96b334a1c82c0e7411dfeac53137bef48ed
-SIZE (quarto-dev-quarto-v1.115.0-vsix_GH0.tar.gz) = 5207281
diff --git a/devel/RStudio/files/patch-CMakeGlobals.txt b/devel/RStudio/files/patch-CMakeGlobals.txt
new file mode 100644
index 000000000000..92ea09a5490e
--- /dev/null
+++ b/devel/RStudio/files/patch-CMakeGlobals.txt
@@ -0,0 +1,46 @@
+--- CMakeGlobals.txt.orig	2022-12-03 07:38:59 UTC
++++ CMakeGlobals.txt
+@@ -168,7 +168,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(
+@@ -179,6 +179,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 "")
+@@ -241,7 +242,7 @@ if(NOT DEFINED QUARTO_ENABLED)
+       set(QUARTO_ENABLED FALSE CACHE INTERNAL "")
+    else()
+       # enable by default
+-      set(QUARTO_ENABLED TRUE CACHE INTERNAL "")
++      set(QUARTO_ENABLED ${FREEBSD_QUARTO_ENABLED} CACHE INTERNAL "")
+    endif()
+ endif()
+ 
+@@ -334,14 +335,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 OR RSTUDIO_ELECTRON)
+-         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-CMakeLists.txt b/devel/RStudio/files/patch-CMakeLists.txt
index 082f605a65db..b37c19a9ebd1 100644
--- a/devel/RStudio/files/patch-CMakeLists.txt
+++ b/devel/RStudio/files/patch-CMakeLists.txt
@@ -1,6 +1,6 @@
---- CMakeLists.txt.orig	2024-09-16 17:02:32 UTC
+--- CMakeLists.txt.orig	2019-09-19 13:59:21 UTC
 +++ CMakeLists.txt
-@@ -39,7 +39,7 @@ if (NOT RSTUDIO_SESSION_WIN32)
+@@ -31,7 +31,7 @@ endif()
  if (NOT RSTUDIO_SESSION_WIN32)
     # dynamically configure SOURCE with the git revision hash
     INSTALL(CODE "
@@ -9,18 +9,11 @@
                        WORKING_DIRECTORY \"${CMAKE_CURRENT_SOURCE_DIR}\"
                        OUTPUT_VARIABLE RSTUDIO_GIT_REVISION_HASH)
        configure_file (\"${CMAKE_CURRENT_SOURCE_DIR}/SOURCE.in\"
-@@ -48,6 +48,7 @@ if (NOT RSTUDIO_SESSION_WIN32)
+@@ -40,6 +40,7 @@ if (NOT RSTUDIO_SESSION_WIN32)
  
     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/VERSION.in
                    ${CMAKE_CURRENT_BINARY_DIR}/VERSION)
 +   set(RSTUDIO_VERSION ${FREEBSD_RSTUDIO_VERSION})
  
     # install root docs
-    include(cmake/install-docs.cmake)
-@@ -62,5 +63,5 @@ add_subdirectory(src)
- add_subdirectory(src)
- 
- # packaging
--add_subdirectory(package)
-+#add_subdirectory(package)
- 
+    include(CMakeInstallDocs.txt)
diff --git a/devel/RStudio/files/patch-src_cpp_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_CMakeLists.txt
index 7621f1157514..ec5582ff9cdd 100644
--- a/devel/RStudio/files/patch-src_cpp_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_CMakeLists.txt
@@ -1,16 +1,15 @@
---- src/cpp/CMakeLists.txt.orig	2024-09-16 17:02:32 UTC
+--- src/cpp/CMakeLists.txt.orig	2022-12-03 07:38:59 UTC
 +++ src/cpp/CMakeLists.txt
-@@ -479,10 +479,10 @@ if(UNIX)
+@@ -468,9 +468,9 @@ endif()
  # find SOCI libraries
  if(UNIX)
     if(NOT APPLE AND RSTUDIO_USE_SYSTEM_SOCI)
--      find_library(SOCI_CORE_LIB NAMES "libsoci_core.a" "soci_core" REQUIRED)
--      find_library(SOCI_SQLITE_LIB NAMES "libsoci_sqlite3.a" "soci_sqlite3" REQUIRED)
-+      find_library(SOCI_CORE_LIB NAMES "libsoci_core.so" "soci_core" REQUIRED)
-+      find_library(SOCI_SQLITE_LIB NAMES "libsoci_sqlite3.so" "soci_sqlite3" REQUIRED)
-       if(RSTUDIO_PRO_BUILD)
--         find_library(SOCI_POSTGRESQL_LIB NAMES "libsoci_postgresql.a" "soci_postgresql" REQUIRED)
-+         find_library(SOCI_POSTGRESQL_LIB NAMES "libsoci_postgresql.so" "soci_postgresql" REQUIRED)
+-      find_library(SOCI_CORE_LIB NAMES "libsoci_core.a" "soci_core")
+-      find_library(SOCI_SQLITE_LIB NAMES "libsoci_sqlite3.a" "soci_sqlite3")
+-      find_library(SOCI_POSTGRESQL_LIB NAMES "libsoci_postgresql.a" "soci_postgresql")
++      find_library(SOCI_CORE_LIB NAMES "libsoci_core.so" "soci_core")
++      find_library(SOCI_SQLITE_LIB NAMES "libsoci_sqlite3.so" "soci_sqlite3")
++      find_library(SOCI_POSTGRESQL_LIB NAMES "libsoci_postgresql.so" "soci_postgresql")
+       if(NOT SOCI_CORE_LIB OR NOT SOCI_SQLITE_LIB OR NOT SOCI_POSTGRESQL_LIB)
+          message(FATAL_ERROR "Some or all SOCI libraries were not found. Ensure the SOCI dependency is installed and try again.")
        endif()
-       get_filename_component(SOCI_LIBRARY_DIR "${SOCI_CORE_LIB}" DIRECTORY)
-    else()
diff --git a/devel/RStudio/files/patch-src_cpp_core_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_core_CMakeLists.txt
index 7310ef8a7cd2..038925d6979b 100644
--- a/devel/RStudio/files/patch-src_cpp_core_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_core_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/cpp/core/CMakeLists.txt.orig	2024-09-16 17:02:32 UTC
+--- src/cpp/core/CMakeLists.txt.orig	2022-12-03 07:38:59 UTC
 +++ src/cpp/core/CMakeLists.txt
-@@ -162,12 +162,14 @@ if (UNIX)
+@@ -161,12 +161,14 @@ if (UNIX)
     # platform introspection
     check_symbol_exists(SA_NOCLDWAIT "signal.h" HAVE_SA_NOCLDWAIT)
     check_symbol_exists(SO_PEERCRED "sys/socket.h" HAVE_SO_PEERCRED)
diff --git a/devel/RStudio/files/patch-src_cpp_core_include_core_Thread.hpp b/devel/RStudio/files/patch-src_cpp_core_include_core_Thread.hpp
new file mode 100644
index 000000000000..debc7a255c0c
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_core_include_core_Thread.hpp
@@ -0,0 +1,12 @@
+- workaround for https://github.com/rstudio/rstudio/issues/12611
+
+--- src/cpp/core/include/core/Thread.hpp.orig	2023-01-22 20:42:46 UTC
++++ src/cpp/core/include/core/Thread.hpp
+@@ -17,6 +17,7 @@
+ #define CORE_THREAD_HPP
+ 
+ #include <queue>
++#include <set>
+ 
+ #include <boost/utility.hpp>
+ #include <boost/function.hpp>
diff --git a/devel/RStudio/files/patch-src_cpp_core_system_PosixChildProcess.cpp b/devel/RStudio/files/patch-src_cpp_core_system_PosixChildProcess.cpp
index 13319ea6239a..8298b028d013 100644
--- a/devel/RStudio/files/patch-src_cpp_core_system_PosixChildProcess.cpp
+++ b/devel/RStudio/files/patch-src_cpp_core_system_PosixChildProcess.cpp
@@ -1,4 +1,4 @@
---- src/cpp/core/system/PosixChildProcess.cpp.orig	2024-09-16 17:02:32 UTC
+--- src/cpp/core/system/PosixChildProcess.cpp.orig	2022-12-30 20:28:33 UTC
 +++ src/cpp/core/system/PosixChildProcess.cpp
 @@ -28,6 +28,11 @@
  #include <pty.h>
@@ -12,7 +12,7 @@
  #endif
  
  #include <sys/wait.h>
-@@ -812,7 +817,7 @@ Error ChildProcess::run()
+@@ -807,7 +812,7 @@ Error ChildProcess::run()
  
        if (options_.exitWithParent)
        {
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 029fc8ecde18..cd99bfc1c394 100644
--- a/devel/RStudio/files/patch-src_cpp_core_system_PosixSystem.cpp
+++ b/devel/RStudio/files/patch-src_cpp_core_system_PosixSystem.cpp
@@ -1,9 +1,9 @@
 - 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	2024-06-04 21:19:10 UTC
+--- src/cpp/core/system/PosixSystem.cpp.orig	2022-12-03 07:38:59 UTC
 +++ src/cpp/core/system/PosixSystem.cpp
-@@ -69,6 +69,11 @@
- 
+@@ -56,6 +56,11 @@
+ #include <dirent.h>
  #endif
  
 +#if defined(__FreeBSD__)
@@ -14,7 +14,7 @@
  #include <boost/thread.hpp>
  #include <boost/format.hpp>
  #include <boost/lexical_cast.hpp>
-@@ -633,6 +638,7 @@ Error getOpenFds(pid_t pid, std::vector<uint32_t>* pFd
+@@ -619,6 +624,7 @@ Error getOpenFds(std::vector<uint32_t>* pFds)
  #ifndef __APPLE__
  Error getOpenFds(pid_t pid, std::vector<uint32_t>* pFds)
  {
@@ -22,7 +22,7 @@
     std::string pidStr = safe_convert::numberToString(pid);
     boost::format fmt("/proc/%1%/fd");
     FilePath filePath(boost::str(fmt % pidStr));
-@@ -659,6 +665,7 @@ Error getOpenFds(pid_t pid, std::vector<uint32_t>* pFd
+@@ -645,6 +651,7 @@ Error getOpenFds(pid_t pid, std::vector<uint32_t>* pFd
           pFds->push_back(fd.get());
        }
     }
@@ -30,7 +30,7 @@
  
     return Success();
  }
-@@ -984,7 +991,7 @@ Error executablePath(const char * argv0,
+@@ -970,7 +977,7 @@ Error executablePath(const char * argv0,
  
  #elif defined(HAVE_PROCSELF)
  
diff --git a/devel/RStudio/files/patch-src_cpp_desktop_DesktopDownloadItemHelper.cpp b/devel/RStudio/files/patch-src_cpp_desktop_DesktopDownloadItemHelper.cpp
new file mode 100644
index 000000000000..3d716be9b79b
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_desktop_DesktopDownloadItemHelper.cpp
@@ -0,0 +1,15 @@
+--- src/cpp/desktop/DesktopDownloadItemHelper.cpp.orig	2018-05-30 17:56:35 UTC
++++ src/cpp/desktop/DesktopDownloadItemHelper.cpp
+@@ -37,9 +37,9 @@ DownloadHelper::DownloadHelper(QWebEngin
+    
+    connect(item, &QWebEngineDownloadItem::finished,
+            this, &DownloadHelper::onFinished);
+-   
+-   connect(item, &QWebEngineDownloadItem::isPausedChanged,
+-           this, &DownloadHelper::onPausedChanged);
++   // exists from 5.10, while FreeBSD kept qt5-webengine at 5.9.5, the handler is empty anyway
++   //connect(item, &QWebEngineDownloadItem::isPausedChanged,
++   //        this, &DownloadHelper::onPausedChanged);
+    
+    connect(item, &QWebEngineDownloadItem::stateChanged,
+            this, &DownloadHelper::onStateChanged);
diff --git a/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp b/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp
new file mode 100644
index 000000000000..f41019b204b7
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_desktop_DesktopMain.cpp
@@ -0,0 +1,28 @@
+--- src/cpp/desktop/DesktopMain.cpp.orig	2021-05-24 22:22:25 UTC
++++ src/cpp/desktop/DesktopMain.cpp
+@@ -49,6 +49,8 @@
+ #include "DesktopActivationOverlay.hpp"
+ #include "DesktopSessionServersOverlay.hpp"
+ 
++#include "global-setenv.h"
++
+ #ifdef _WIN32
+ #include <core/system/RegistryKey.hpp>
+ #include <Windows.h>
+@@ -349,7 +351,7 @@ QString inferDefaultRenderingEngineMac()
+ 
+ #endif /* Q_OS_MAC */
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ 
+ QString inferDefaultRenderingEngineLinux()
+ {
+@@ -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_server_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt
index 02bae8efe9ec..167552275470 100644
--- a/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_server_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/cpp/server/CMakeLists.txt.orig	2024-06-04 21:19:10 UTC
+--- src/cpp/server/CMakeLists.txt.orig	2021-05-24 22:22:25 UTC
 +++ src/cpp/server/CMakeLists.txt
-@@ -146,6 +146,9 @@ add_stripped_executable(rserver ServerMain.cpp ${SERVE
+@@ -137,6 +137,9 @@ include_directories(
  # define executable
  add_stripped_executable(rserver ServerMain.cpp ${SERVER_SOURCE_FILES} ${SERVER_HEADER_FILES})
  
diff --git a/devel/RStudio/files/patch-src_cpp_server_auth_ServerAuthHandler.cpp b/devel/RStudio/files/patch-src_cpp_server_auth_ServerAuthHandler.cpp
new file mode 100644
index 000000000000..50698fa7bb48
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_server_auth_ServerAuthHandler.cpp
@@ -0,0 +1,26 @@
+- workaround for the std:bad_cast exception in the licensed user info retrievel code
+- that isn't even used on FreeBSD
+- see https://github.com/rstudio/rstudio/issues/12377
+- resolution: the offending function's body is commented out for the time being
+
+--- src/cpp/server/auth/ServerAuthHandler.cpp.orig	2023-08-28 18:24:18 UTC
++++ src/cpp/server/auth/ServerAuthHandler.cpp
+@@ -383,6 +383,7 @@ Error getUserFromDatabase(const boost::shared_ptr<ICon
+                           boost::posix_time::ptime* pLastSignin,
+                           bool* pExists)
+ {
++#if 0
+    LOG_DEBUG_MESSAGE("Getting user from database: " + user.getUsername());
+    
+    *pLocked = true;
+@@ -439,6 +440,10 @@ Error getUserFromDatabase(const boost::shared_ptr<ICon
+    }
+ 
+    *pExists = foundUser;
++#endif
++
++   *pExists = false;
++
+    return Success();
+ }
+ 
diff --git a/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt b/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt
index 2f73ae0d7c94..ec905847548a 100644
--- a/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt
+++ b/devel/RStudio/files/patch-src_cpp_session_CMakeLists.txt
@@ -1,6 +1,6 @@
---- src/cpp/session/CMakeLists.txt.orig	2024-09-16 17:02:32 UTC
+--- src/cpp/session/CMakeLists.txt.orig	2022-07-06 19:59:49 UTC
 +++ src/cpp/session/CMakeLists.txt
-@@ -61,19 +61,19 @@ endif()
+@@ -55,19 +55,19 @@ endif()
  # install pandoc
  # - by default, we use quarto + quarto's bundled pandoc
  # - if quarto is not enabled, use pandoc fallback
@@ -28,7 +28,7 @@
              RSTUDIO_DEPENDENCIES_QUARTO_DIR)
  
   
-@@ -101,13 +101,13 @@ endforeach()
+@@ -95,13 +95,13 @@ foreach(PKG ${RSTUDIO_EMBEDDED_PACKAGES})
  endforeach()
  
  # verify libclang is installed (Windows only)
@@ -48,8 +48,8 @@
 +#endif()
  
  # include files
- file(GLOB_RECURSE SESSION_HEADER_FILES CONFIGURE_DEPENDS "*.h*")
-@@ -537,6 +537,9 @@ endif()
+ file(GLOB_RECURSE SESSION_HEADER_FILES "*.h*")
+@@ -528,6 +528,9 @@ else()
  
  endif()
  
@@ -59,9 +59,9 @@
  # skip libR RPATH at development time
  if(RSTUDIO_DEVELOPMENT OR RSTUDIO_RUN_IN_PLACE)
     set_target_properties(rsession PROPERTIES SKIP_BUILD_RPATH TRUE)
-@@ -736,10 +739,10 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNAT
-                PATTERN ".gitignore"
-                EXCLUDE)
+@@ -697,10 +700,10 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNAT
+                DESTINATION "${RSTUDIO_INSTALL_BIN}"
+                USE_SOURCE_PERMISSIONS)
        endif()
 -   else()
 -      install(DIRECTORY "${RSTUDIO_DEPENDENCIES_PANDOC_DIR}/"
@@ -74,7 +74,7 @@
     endif()
  
     # install embedded packages
-@@ -780,14 +783,14 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNAT
+@@ -741,14 +744,14 @@ if(NOT RSTUDIO_SESSION_WIN32 AND NOT RSESSION_ALTERNAT
        DESTINATION ${RSTUDIO_INSTALL_SUPPORTING}/resources)
  
     # install libclang
diff --git a/devel/RStudio/files/patch-src_cpp_session_SessionHttpMethods.cpp b/devel/RStudio/files/patch-src_cpp_session_SessionHttpMethods.cpp
index d054753907ae..fa7b7da86ea8 100644
--- a/devel/RStudio/files/patch-src_cpp_session_SessionHttpMethods.cpp
+++ b/devel/RStudio/files/patch-src_cpp_session_SessionHttpMethods.cpp
@@ -1,6 +1,6 @@
---- src/cpp/session/SessionHttpMethods.cpp.orig	2024-06-04 21:19:10 UTC
+--- src/cpp/session/SessionHttpMethods.cpp.orig	2021-09-22 13:58:50 UTC
 +++ src/cpp/session/SessionHttpMethods.cpp
-@@ -422,7 +422,7 @@ std::string clientVersion()
+@@ -437,7 +437,7 @@ std::string clientVersion()
        return std::string();
  
     // clientVersion is the git revision hash
diff --git a/devel/RStudio/files/patch-src_cpp_session_SessionMain.cpp b/devel/RStudio/files/patch-src_cpp_session_SessionMain.cpp
index 1fe28ed93bed..b1e6e81dab7c 100644
--- a/devel/RStudio/files/patch-src_cpp_session_SessionMain.cpp
+++ b/devel/RStudio/files/patch-src_cpp_session_SessionMain.cpp
@@ -1,6 +1,6 @@
---- src/cpp/session/SessionMain.cpp.orig	2024-09-16 17:02:32 UTC
+--- src/cpp/session/SessionMain.cpp.orig	2022-12-03 07:38:59 UTC
 +++ src/cpp/session/SessionMain.cpp
-@@ -2058,7 +2058,11 @@ int main(int argc, char * const argv[])
+@@ -1947,7 +1947,11 @@ int main(int argc, char * const argv[])
  
        // move to own process group
  #ifndef _WIN32
diff --git a/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp b/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp
index 5646d51b1e1c..c72a605a439a 100644
--- a/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp
+++ b/devel/RStudio/files/patch-src_cpp_session_modules_SessionGit.cpp
@@ -1,17 +1,24 @@
 - add path %%PREFIX%%/bin to PATH so that gmake and cmake executable would be found
 
---- src/cpp/session/modules/SessionGit.cpp.orig	2024-06-04 21:19:10 UTC
+--- src/cpp/session/modules/SessionGit.cpp.orig	2023-08-29 01:47:30 UTC
 +++ src/cpp/session/modules/SessionGit.cpp
-@@ -137,6 +137,12 @@ core::system::ProcessOptions procOptions()
-    FilePath postbackDir = module_context::rPostbackScriptsDir();
+@@ -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("%%PREFIX%%/bin");
-+
 +   // 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));
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..f5fa06e9483b
--- /dev/null
+++ b/devel/RStudio/files/patch-src_cpp_shared__core_system_PosixSystem.cpp
@@ -0,0 +1,14 @@
+--- src/cpp/shared_core/system/PosixSystem.cpp.orig	2022-12-30 20:20:59 UTC
++++ src/cpp/shared_core/system/PosixSystem.cpp
+@@ -27,7 +27,11 @@
+ #include <ifaddrs.h>
+ #include <memory.h>
+ #include <netdb.h>
++#include <netinet/in.h>
+ #include <pwd.h>
++#include <sys/socket.h>
++#include <sys/types.h>
++
+ 
+ #ifdef __linux__
+ #include <sys/prctl.h>
diff --git a/lang/rust-nightly/Makefile b/lang/rust-nightly/Makefile
index fd3ff873b005..b3b8ab296639 100644
--- a/lang/rust-nightly/Makefile
+++ b/lang/rust-nightly/Makefile
@@ -1,5 +1,5 @@
 # Run update.sh to update to the latest nightly
-PORTVERSION=	1.81.0.${NIGHTLY_DATE:C,-,,g}
+PORTVERSION=	1.80.0.${NIGHTLY_DATE:C,-,,g}
 # Always set PORTREVISION explicitly as otherwise it is inherited from lang/rust
 PORTREVISION=	0
 PKGNAMESUFFIX=	-nightly
@@ -14,8 +14,8 @@ MASTERDIR=	${.CURDIR}/../rust
 PATCHDIR=	${.CURDIR}/files
 DISTINFO_FILE=	${.CURDIR}/distinfo
 
-NIGHTLY_DATE=		2024-10-01
-BOOTSTRAPS_DATE=	2024-08-08
+NIGHTLY_DATE=		2024-05-07
+BOOTSTRAPS_DATE=	2024-04-29
 RUST_BOOTSTRAP_VERSION=	beta
 
 .include "${MASTERDIR}/Makefile"
diff --git a/lang/rust-nightly/distinfo b/lang/rust-nightly/distinfo
index 0e004c8a9d1b..b5947b78c52b 100644
--- a/lang/rust-nightly/distinfo
+++ b/lang/rust-nightly/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1727818173
-SHA256 (rust/2024-10-01/rustc-nightly-src.tar.xz) = 46c2d963da26229b8cdeed978b5c9affa091486015d474c1f8a754282a332d1a
-SIZE (rust/2024-10-01/rustc-nightly-src.tar.xz) = 353516056
+TIMESTAMP = 1715170997
+SHA256 (rust/2024-05-07/rustc-nightly-src.tar.xz) = 980396ea6f15b926155ffaab4d56f70a0729a18a98ed99fe11004b5709855458
+SIZE (rust/2024-05-07/rustc-nightly-src.tar.xz) = 162781340
 SHA256 (rust/2024-04-29/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 786f40030dbe5e6897aafe4bda44770920b2010b93fc5ce86574774e531e2eff
 SIZE (rust/2024-04-29/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 75473648
 SHA256 (rust/2024-04-29/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = 69626178bc5309afc8a02c941bd77e70e1aa6917ffb6bf0d67a57d921b5c664a
diff --git a/lang/rust-nightly/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs b/lang/rust-nightly/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs
new file mode 100644
index 000000000000..c1f57467f264
--- /dev/null
+++ b/lang/rust-nightly/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs
@@ -0,0 +1,11 @@
+--- compiler/rustc_target/src/spec/targets/i686_unknown_freebsd.rs.orig	2023-11-27 08:52:00 UTC
++++ compiler/rustc_target/src/spec/targets/i686_unknown_freebsd.rs
+@@ -2,7 +2,7 @@ pub fn target() -> Target {
+ 
+ pub fn target() -> Target {
+     let mut base = base::freebsd::opts();
+-    base.cpu = "pentium4".into();
++    base.cpu = "pentiumpro".into();
+     base.max_atomic_width = Some(64);
+     base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "-Wl,-znotext"]);
+     base.stack_probes = StackProbeType::X86;
diff --git a/lang/rust-nightly/files/patch-src_bootstrap_src_core_build__steps_install.rs b/lang/rust-nightly/files/patch-src_bootstrap_src_core_build__steps_install.rs
index e92cad711a11..6d7f6d612496 100644
--- a/lang/rust-nightly/files/patch-src_bootstrap_src_core_build__steps_install.rs
+++ b/lang/rust-nightly/files/patch-src_bootstrap_src_core_build__steps_install.rs
@@ -4,9 +4,9 @@ It otherwise wastes significant time (there are a lot of individual
 files) and stages host docs, wasm docs, which unstages the host
 docs first.
 
---- src/bootstrap/src/core/build_steps/install.rs.orig	2024-09-30 19:13:29 UTC
+--- src/bootstrap/src/core/build_steps/install.rs.orig	2022-05-01 20:28:31 UTC
 +++ src/bootstrap/src/core/build_steps/install.rs
-@@ -197,7 +197,7 @@ install!((self, builder, _config),
+@@ -138,7 +138,7 @@ macro_rules! install {
  }
  
  install!((self, builder, _config),
diff --git a/lang/rust-nightly/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs b/lang/rust-nightly/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs
index 8503c4bc7a56..fc3b22aebde1 100644
--- a/lang/rust-nightly/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs
+++ b/lang/rust-nightly/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs
@@ -11,9 +11,9 @@ be stabilized first.  It will be available in Rust 1.56.
 
 [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256581
 
---- src/tools/cargo/src/cargo/sources/git/source.rs.orig	2024-09-30 19:13:29 UTC
+--- src/tools/cargo/src/cargo/sources/git/source.rs.orig	2021-10-04 20:59:57 UTC
 +++ src/tools/cargo/src/cargo/sources/git/source.rs
-@@ -243,6 +243,9 @@ impl<'gctx> Source for GitSource<'gctx> {
+@@ -195,6 +195,9 @@ impl<'cfg> Source for GitSource<'cfg> {
          kind: QueryKind,
          f: &mut dyn FnMut(IndexSummary),
      ) -> Poll<CargoResult<()>> {
@@ -23,10 +23,10 @@ be stabilized first.  It will be available in Rust 1.56.
          if let Some(src) = self.path_source.as_mut() {
              src.query(dep, kind, f)
          } else {
-@@ -265,6 +268,10 @@ impl<'gctx> Source for GitSource<'gctx> {
+@@ -217,6 +220,10 @@ impl<'cfg> Source for GitSource<'cfg> {
      fn block_until_ready(&mut self) -> CargoResult<()> {
          if self.path_source.is_some() {
-             self.mark_used()?;
+             self.mark_used(None)?;
 +            return Ok(());
 +        }
 +
diff --git a/lang/rust-nightly/files/patch-vendor_cc.rs b/lang/rust-nightly/files/patch-vendor_cc.rs
new file mode 100644
index 000000000000..5b6888c4c087
--- /dev/null
+++ b/lang/rust-nightly/files/patch-vendor_cc.rs
@@ -0,0 +1,107 @@
+When the compiler has "clang" in its name the cc crate will pass
+an LLVM target triple to it.  Rust uses a triple that lacks the OS
+version and LLVM will default to FreeBSD 9 behavior, i.e., it will
+default to libstdc++ which is no longer available in newer releases.
+
+To avoid this issue assume we have a GNU compatible toolchain instead
+until LLVM can be updated to use libc++ by default.
+
+https://reviews.llvm.org/D77776
+
+--- vendor/cc-1.0.73/src/lib.rs.orig	2021-03-04 20:58:54 UTC
++++ vendor/cc-1.0.73/src/lib.rs
+@@ -2659,24 +2659,7 @@ impl Tool {
+     }
+ 
+     fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self {
+-        // Try to detect family of the tool from its name, falling back to Gnu.
+-        let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
+-            if fname.contains("clang-cl") {
+-                ToolFamily::Msvc { clang_cl: true }
+-            } else if fname.ends_with("cl") || fname == "cl.exe" {
+-                ToolFamily::Msvc { clang_cl: false }
+-            } else if fname.contains("clang") {
+-                match clang_driver {
+-                    Some("cl") => ToolFamily::Msvc { clang_cl: true },
+-                    _ => ToolFamily::Clang,
+-                }
+-            } else {
+-                ToolFamily::Gnu
+-            }
+-        } else {
+-            ToolFamily::Gnu
+-        };
+-
++        let family = ToolFamily::Gnu;
+         Tool {
+             path: path,
+             cc_wrapper_path: None,
+
+--- vendor/cc-1.0.79/src/lib.rs.orig	2021-03-04 20:58:54 UTC
++++ vendor/cc-1.0.79/src/lib.rs
+@@ -2659,24 +2659,7 @@ impl Tool {
+     }
+ 
+     fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self {
+-        // Try to detect family of the tool from its name, falling back to Gnu.
+-        let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
+-            if fname.contains("clang-cl") {
+-                ToolFamily::Msvc { clang_cl: true }
+-            } else if fname.ends_with("cl") || fname == "cl.exe" {
+-                ToolFamily::Msvc { clang_cl: false }
+-            } else if fname.contains("clang") {
+-                match clang_driver {
+-                    Some("cl") => ToolFamily::Msvc { clang_cl: true },
+-                    _ => ToolFamily::Clang,
+-                }
+-            } else {
+-                ToolFamily::Gnu
+-            }
+-        } else {
+-            ToolFamily::Gnu
+-        };
+-
++        let family = ToolFamily::Gnu;
+         Tool {
+             path: path,
+             cc_wrapper_path: None,
+
+--- vendor/cc-1.0.90/src/tool.rs.orig	2024-03-18 11:23:17 UTC
++++ vendor/cc-1.0.90/src/tool.rs
+@@ -122,22 +122,7 @@ impl Tool {
+         };
+ 
+         // Try to detect family of the tool from its name, falling back to Gnu.
+-        let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
+-            if fname.contains("clang-cl") {
+-                ToolFamily::Msvc { clang_cl: true }
+-            } else if fname.ends_with("cl") || fname == "cl.exe" {
+-                ToolFamily::Msvc { clang_cl: false }
+-            } else if fname.contains("clang") {
+-                match clang_driver {
+-                    Some("cl") => ToolFamily::Msvc { clang_cl: true },
+-                    _ => ToolFamily::Clang,
+-                }
+-            } else {
+-                detect_family(&path)
+-            }
+-        } else {
+-            detect_family(&path)
+-        };
++        let family = ToolFamily::Gnu;
+ 
+         Tool {
+             path,
+--- vendor/cc-1.0.92/src/tool.rs.orig	2024-05-09 18:20:47 UTC
++++ vendor/cc-1.0.92/src/tool.rs
+@@ -151,9 +151,7 @@ impl Tool {
+ 
+             match (clang, accepts_cl_style_flags, gcc) {
+                 (clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
+-                (true, false, _) => Ok(ToolFamily::Clang {
+-                    zig_cc: is_zig_cc(path, cargo_output),
+-                }),
++                (true, false, _) => Ok(ToolFamily::Gnu),
+                 (false, false, true) => Ok(ToolFamily::Gnu),
+                 (false, false, false) => {
+                     cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 8142a9904464..5f3a427ae029 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -138,9 +138,9 @@ DISTFILES:=	${DISTFILES:M*\:src} \
 
 post-patch:
 	@${REINPLACE_CMD} 's,gdb,${LOCALBASE}/bin/gdb,' ${WRKSRC}/src/etc/rust-gdb
-#.if defined(NIGHTLY_DATE)
-#	@${REINPLACE_CMD} 's/"rustfmt"/"nothx"/' ${WRKSRC}/src/stage0.json
-#.endif
+.if defined(NIGHTLY_DATE)
+	@${REINPLACE_CMD} 's/"rustfmt"/"nothx"/' ${WRKSRC}/src/stage0.json
+.endif
 # Disable vendor checksums
 	@${REINPLACE_CMD} 's,"files":{[^}]*},"files":{},' \
 		${CARGO_VENDOR_DIR}/*/.cargo-checksum.json