diff --git a/pkgs/by-name/rs/rstudio/dont-npm-ci.patch b/pkgs/by-name/rs/rstudio/dont-npm-ci.patch
index b0552fb4ee67..d31e05c1862c 100644
--- a/pkgs/by-name/rs/rstudio/dont-npm-ci.patch
+++ b/pkgs/by-name/rs/rstudio/dont-npm-ci.patch
@@ -1,8 +1,8 @@
diff --git a/src/node/desktop/CMakeLists.txt b/src/node/desktop/CMakeLists.txt
-index bccf5b3..71e10a7 100644
+index 7917f0b59e..38d0023922 100644
--- a/src/node/desktop/CMakeLists.txt
+++ b/src/node/desktop/CMakeLists.txt
-@@ -117,11 +117,7 @@ file(MAKE_DIRECTORY "${ELECTRON_BINARY_DIR}")
+@@ -201,11 +201,7 @@ file(MAKE_DIRECTORY "${ELECTRON_BINARY_DIR}")
file(
COPY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION "${ELECTRON_BINARY_DIR}/"
@@ -16,13 +16,13 @@ index bccf5b3..71e10a7 100644
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/src/main/build-info.ts.in
diff --git a/src/node/desktop/package.json b/src/node/desktop/package.json
-index df92166..47ca4b4 100644
+index 613361fb8a..0b186c9a76 100644
--- a/src/node/desktop/package.json
+++ b/src/node/desktop/package.json
-@@ -10,7 +10,7 @@
- "scripts": {
+@@ -11,7 +11,7 @@
"clean": "ts-node scripts/clean.ts",
"lint": "eslint ./src ./test",
+ "typecheck": "tsc --noEmit",
- "package": "npm ci && electron-forge package",
+ "package": "electron-forge package",
"start": "electron-forge start -- --no-sandbox",
diff --git a/pkgs/by-name/rs/rstudio/dont-yarn-install.patch b/pkgs/by-name/rs/rstudio/dont-yarn-install.patch
index 72a5e1c9050b..bbb98b414e40 100644
--- a/pkgs/by-name/rs/rstudio/dont-yarn-install.patch
+++ b/pkgs/by-name/rs/rstudio/dont-yarn-install.patch
@@ -1,16 +1,18 @@
diff --git a/src/gwt/build.xml b/src/gwt/build.xml
-index 27ffe33..4218678 100644
+index abf850ee3d..3e3d5fea57 100644
--- a/src/gwt/build.xml
+++ b/src/gwt/build.xml
-@@ -139,11 +139,6 @@
+@@ -267,13 +267,6 @@
--
--
--
--
--
+-
+-
+-
+-
+-
+-
+-
diff --git a/pkgs/by-name/rs/rstudio/package.nix b/pkgs/by-name/rs/rstudio/package.nix
index 77838da0eec0..58d2d4ebbeda 100644
--- a/pkgs/by-name/rs/rstudio/package.nix
+++ b/pkgs/by-name/rs/rstudio/package.nix
@@ -17,15 +17,16 @@
git,
jdk,
makeWrapper,
- nodejs-slim,
+ nodejs,
npmHooks,
+ python3,
xcbuild,
yarn,
yarnConfigHook,
zip,
- boost187,
- electron_38,
+ boost190,
+ electron_39,
fontconfig,
gnumake,
hunspellDicts,
@@ -44,7 +45,8 @@
}:
let
- electron = electron_38;
+ electron = electron_39;
+ boost = boost190;
mathJaxSrc = fetchzip {
url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-27.zip";
@@ -62,8 +64,8 @@ let
owner = "quarto-dev";
repo = "quarto";
# Note: rev should ideally be the last commit of the release/rstudio-[codename] branch
- rev = "591b3520eafbb4da7b26b9f31aac6948801f19d8";
- hash = "sha256-scdm66Ekfjp5wdNDXcVZA5ZhNgFvuf/kIBF56HrE8uM=";
+ rev = "8c1669f3095c5afee6bcd98a659d51a43300bda9";
+ hash = "sha256-01urKiFz5iDtW8r+w7zwUDXUOKZIOhi/ip329RsuQ+Q=";
};
hunspellDictionaries = lib.filter lib.isDerivation (lib.unique (lib.attrValues hunspellDicts));
@@ -85,13 +87,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "rstudio";
- version = "2026.01.1+403";
+ version = "2026.04.0+526";
src = fetchFromGitHub {
owner = "rstudio";
repo = "rstudio";
tag = "v${finalAttrs.version}";
- hash = "sha256-s+t48LLvxdit6US6MB4DvpEZtUY6SSK5Qha1k4VW0Qk=";
+ hash = "sha256-6oHH3C3/MGFSOuI+FvyrLyOKRyy455Wkr75ZL8ZeiWg=";
};
# sources fetched into _deps via cmake's FetchContent
@@ -123,7 +125,7 @@ stdenv.mkDerivation (finalAttrs: {
dontBuild = true;
dontFixup = true;
- outputHash = "sha256-t2kWnviFMw7TdxaJpiGDXe0M5HSIGD7o5hqWiPKUdOc=";
+ outputHash = "sha256-XzSDU4GVY6OrIFG4qCWUF94nV6fcz9zyFSlSvttVrYw=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
@@ -135,7 +137,7 @@ stdenv.mkDerivation (finalAttrs: {
ant
jdk
- nodejs-slim
+ nodejs
yarn
yarnConfigHook
zip
@@ -145,12 +147,12 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optionals (!server) [
makeWrapper
- (nodejs-slim.python.withPackages (ps: [ ps.setuptools ]))
+ (python3.withPackages (ps: [ ps.setuptools ]))
npmHooks.npmConfigHook
];
buildInputs = [
- boost187
+ boost
libuuid
openssl
R
@@ -249,7 +251,7 @@ stdenv.mkDerivation (finalAttrs: {
name = "rstudio-${finalAttrs.version}-npm-deps";
inherit (finalAttrs) src;
postPatch = "cd ${finalAttrs.npmRoot}";
- hash = "sha256-7gXLCFhan/TCTlc2okMWuWzfRYXmuwcqhmGKAqJOEM0=";
+ hash = "sha256-lO+wJk0HWYrKO1Rqz8laVpZK5RUfA9ijYvtPEtVf1r4=";
};
preConfigure = ''
@@ -285,12 +287,12 @@ stdenv.mkDerivation (finalAttrs: {
# node used by cmake and node used for distribution
# version in cmake/globals.cmake
- RSTUDIO_NODE_VERSION="22.13.1"
- RSTUDIO_INSTALLED_NODE_VERSION="22.21.1"
+ RSTUDIO_NODE_VERSION="22.22.2"
+ RSTUDIO_INSTALLED_NODE_VERSION="22.22.2"
mkdir -p dependencies/common/node
- ln -s ${nodejs-slim} dependencies/common/node/$RSTUDIO_NODE_VERSION
- ln -s ${nodejs-slim} dependencies/common/node/$RSTUDIO_INSTALLED_NODE_VERSION-installed
+ ln -s ${nodejs} dependencies/common/node/$RSTUDIO_NODE_VERSION
+ ln -s ${nodejs} dependencies/common/node/$RSTUDIO_INSTALLED_NODE_VERSION-installed
''
+ lib.optionalString (!server) ''
@@ -314,7 +316,9 @@ stdenv.mkDerivation (finalAttrs: {
rm -r electron-dist
# force @electron/packager to use our electron instead of downloading it
- substituteInPlace node_modules/@electron/packager/dist/packager.js \
+ substituteInPlace \
+ node_modules/@electron/packager/dist/packager.js \
+ node_modules/@electron-forge/core/node_modules/@electron/packager/dist/packager.js \
--replace-fail "await this.getElectronZipPath(downloadOpts)" "'$(pwd)/electron.zip'"
# now that we patched everything, we still have to run the scripts we ignored with --ignore-scripts