diff --git a/repo/rstudio-desktop/pandoc_version.patch b/repo/rstudio-desktop/0001-pandoc_version.patch
similarity index 100%
rename from repo/rstudio-desktop/pandoc_version.patch
rename to repo/rstudio-desktop/0001-pandoc_version.patch
diff --git a/repo/rstudio-desktop/0002-allow_system_node.patch b/repo/rstudio-desktop/0002-allow_system_node.patch
new file mode 100644
index 0000000..517a45e
--- /dev/null
+++ b/repo/rstudio-desktop/0002-allow_system_node.patch
@@ -0,0 +1,97 @@
+diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf
+--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf	2024-05-07 06:31:08.000000000 +1200
++++ rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/conf/rsession-dev.conf	2024-05-21 19:32:00.206198890 +1200
+@@ -39,7 +39,7 @@
+ external-pandoc-path=${RSTUDIO_DEPENDENCIES_PANDOC_DIR}
+ external-quarto-path=${RSTUDIO_DEPENDENCIES_QUARTO_DIR}
+ external-libclang-path=${RSTUDIO_DEPENDENCIES_DIR}/common/libclang
+-external-node-path=${RSTUDIO_DEPENDENCIES_DIR}/common/node/18.18.2/bin/node
++external-node-path=/usr/bin/node
+ 
+ # enable copilot
+ copilot-enabled=1
+diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt
+--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt	2024-05-07 06:31:08.000000000 +1200
++++ rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/CMakeLists.txt	2024-05-21 10:33:50.351362947 +1200
+@@ -697,10 +697,12 @@
+            DESTINATION "${RSTUDIO_INSTALL_SUPPORTING}/resources")
+ 
+    # install node
+-   install(
+-      DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/node/${RSTUDIO_INSTALLED_NODE_VERSION}/"
+-      DESTINATION "${RSTUDIO_INSTALL_BIN}/node"
+-      USE_SOURCE_PERMISSIONS)
++   if(NOT RSTUDIO_USE_SYSTEM_NODE)
++      install(
++         DIRECTORY "${RSTUDIO_DEPENDENCIES_DIR}/common/node/${RSTUDIO_INSTALLED_NODE_VERSION}/"
++         DESTINATION "${RSTUDIO_INSTALL_BIN}/node"
++         USE_SOURCE_PERMISSIONS)
++   endif()
+ 
+    # install quarto (or pandoc if quarto disabled)
+    if(QUARTO_ENABLED)
+diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp
+--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp	2024-05-07 06:31:08.000000000 +1200
++++ rstudio-desktop/src/rstudio-2024.04.1-748/src/cpp/session/SessionOptions.cpp	2024-05-21 19:33:46.308996710 +1200
+@@ -709,7 +709,7 @@
+                               std::string* pPath)
+ {
+ #if defined(__linux__) && !defined(RSTUDIO_PACKAGE_BUILD)
+-   FilePath dependenciesPath = resourcePath.completePath("../../dependencies/common/node/18.18.2");
++   FilePath dependenciesPath = resourcePath.completePath("/usr");
+    resolvePath(dependenciesPath, pPath);
+ #else
+    resolvePath(resourcePath, pPath);
+diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/gwt/build.xml rstudio-desktop/src/rstudio-2024.04.1-748/src/gwt/build.xml
+--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/gwt/build.xml	2024-05-07 06:31:08.000000000 +1200
++++ rstudio-desktop/src/rstudio-2024.04.1-748/src/gwt/build.xml	2024-05-21 19:28:10.023896075 +1200
+@@ -85,8 +85,8 @@
+ 
+    <!-- panmirror typescript library -->
+    <!-- ensure version matches RSTUDIO_NODE_VERSION -->
+-   <property name="node.version" value="18.18.2"/>
+-   <property name="node.dir" value="../../dependencies/common/node/${node.version}"/>
++   <property name="node.version" value="Current"/>
++   <property name="node.dir" value="/usr"/>
+    <!-- use yarn from system but will prefer yarn from dependencies if available -->
+    <condition property="yarn.bin" value="yarn">
+      <not>
+diff -ru rstudio-desktop.original/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt rstudio-desktop/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt
+--- rstudio-desktop.original/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt	2024-05-07 06:31:08.000000000 +1200
++++ rstudio-desktop/src/rstudio-2024.04.1-748/src/node/CMakeNodeTools.txt	2024-05-21 19:28:34.497148803 +1200
+@@ -19,7 +19,7 @@
+ 
+ # set the node version
+ if(NOT DEFINED RSTUDIO_NODE_VERSION)
+-   set(RSTUDIO_NODE_VERSION "18.18.2")
++   set(RSTUDIO_NODE_VERSION "Current")
+ endif()
+ if(DEFINED ENV{RSTUDIO_NODE_VERSION})
+    set(RSTUDIO_NODE_VERSION $ENV{RSTUDIO_NODE_VERSION})
+@@ -45,7 +45,7 @@
+       NO_DEFAULT_PATH PATH_SUFFIXES "bin"
+       PATHS "/opt/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
+       "c:/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
+-      "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/common/node/${RSTUDIO_NODE_VERSION}")
++      "/usr")
+ 
+    find_program(NPM
+       NAMES npm
+@@ -53,7 +53,7 @@
+       NO_DEFAULT_PATH 
+       PATHS "/opt/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
+       "c:/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
+-      "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/common/node/${RSTUDIO_NODE_VERSION}")
++      "/usr")
+ 
+    find_program(NPX
+       NAMES npx
+@@ -61,7 +61,7 @@
+       NO_DEFAULT_PATH 
+       PATHS "/opt/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
+       "c:/rstudio-tools/dependencies/common/node/${RSTUDIO_NODE_VERSION}"
+-      "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/common/node/${RSTUDIO_NODE_VERSION}")
++      "/usr")
+ 
+ endif()
+    
diff --git a/repo/rstudio-desktop/0003-fortify_source.patch b/repo/rstudio-desktop/0003-fortify_source.patch
new file mode 100644
index 0000000..fd0b308
--- /dev/null
+++ b/repo/rstudio-desktop/0003-fortify_source.patch
@@ -0,0 +1,12 @@
+diff -ru a/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt b/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt
+--- a/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt	2024-05-07 06:31:08.000000000 +1200
++++ b/src/rstudio-2024.04.1-748/src/cpp/CMakeLists.txt	2024-05-28 17:44:46.567294045 +1200
+@@ -139,7 +139,7 @@
+    # gcc hardending options (see: http://wiki.debian.org/Hardening)
+    if(NOT APPLE)
+       add_definitions(-Wformat -Wformat-security)
+-      add_definitions(-D_FORTIFY_SOURCE=2)
++      add_definitions(-D_FORTIFY_SOURCE=3)
+       add_definitions(-fstack-protector-strong)
+       add_definitions(-fPIC)
+       if(CMAKE_BUILD_TYPE STREQUAL Debug)
diff --git a/repo/rstudio-desktop/PKGBUILD b/repo/rstudio-desktop/PKGBUILD
index c6fc59f..2eda13b 100644
--- a/repo/rstudio-desktop/PKGBUILD
+++ b/repo/rstudio-desktop/PKGBUILD
@@ -9,16 +9,16 @@ _gitcommit=3ada7c6
 _gitname=rstudio-rstudio-${_gitcommit}
 pkgver=${_vermajor}.${_verminor}.${_verpatch}.${_versuffix}
 _srcname=rstudio-${_vermajor}.${_verminor}.${_verpatch}-${_versuffix}
-_nodever=18.19.1
 _pandocver="current"
+_sociver="4.0.3"
 _quarto="FALSE"
 
-pkgrel=3
+pkgrel=4
 pkgdesc="A powerful and productive integrated development environment (IDE) for R programming language"
 arch=('x86_64')
 url="https://www.rstudio.com/products/rstudio/"
 license=('AGPL3')
-depends=("boost-libs" "clang" "hunspell-en_US" "mathjax2" "pandoc" "postgresql-libs" "qt5-sensors" "qt5-svg" "qt5-webengine" "qt5-xmlpatterns" "quarto-cli" "r>=3.3.0" "soci" "sqlite3" "yaml-cpp")
+depends=("boost-libs" "clang" "hunspell-en_US" "mathjax2" "pandoc" "postgresql-libs" "qt5-sensors" "qt5-svg" "qt5-webengine" "qt5-xmlpatterns" "quarto-cli" "r>=3.3.0" "sqlite3" "yaml-cpp")
 makedepends=('git' 'cmake>=3.29' 'boost' 'desktop-file-utils' 'jdk8-openjdk' 'apache-ant' 'unzip' 'openssl' 'libcups' 'pam' 'patchelf' 'wget' 'yarn')
 optdepends=('git: for git support'
             'subversion: for subversion support'
@@ -26,21 +26,33 @@ optdepends=('git: for git support'
             'quarto: for Quarto projects support')
 
 source=("rstudio-$pkgver.tar.gz::https://github.com/rstudio/rstudio/archive/refs/tags/v${_vermajor}.${_verminor}.${_verpatch}+${_versuffix}.tar.gz"
-        "https://github.com/quarto-dev/quarto/archive/refs/heads/release/rstudio-cherry-blossom.zip"
-        "https://nodejs.org/dist/v${_nodever}/node-v${_nodever}-linux-x64.tar.gz"
+        "git+https://github.com/quarto-dev/quarto.git#branch=release/rstudio-cherry-blossom"
+        "https://github.com/SOCI/soci/archive/refs/tags/v${_sociver}.tar.gz"
         "qt.conf"
-        "pandoc_version.patch")
+        "0001-pandoc_version.patch"  
+        "0002-allow_system_node.patch"
+        "0003-fortify_source.patch")
 
 sha256sums=('5c1190ae22e3a25740727ff1f341ef568f47359a0d1358958ec22f7e5b59b75b'
-            'df3a040f0cf4ce1892519082dd6822a8ca433e9e4f02d9394ab2931733f7e5a6'
-            '724802c45237477dbe5777923743e6c77906830cae03a82b5653ebd75b301dda'
+            'SKIP'
+            '4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928'
             '723626bfe05dafa545e135e8e61a482df111f488583fef155301acc5ecbbf921'
-            '286925c442c1818979714feeec1577f03ae8a3527d2478b0f55238e2272a0b9e')
+            '286925c442c1818979714feeec1577f03ae8a3527d2478b0f55238e2272a0b9e'
+            'ad4bd3076ff2bff7d075e3928a7e55c618fa744e3bf5d3d387bf70e01ff96c2f'
+            'c657f75f26f95c5dae3a3f5605305af2f47954a9d266de8ffc8fc2f0b47e8bd4')
+
+options=('!emptydirs' '!debug')
 
 prepare() {
     cd ${srcdir}/${_srcname}
     # Do not use outdated version name of pandoc
-    patch -p1 < ${srcdir}/pandoc_version.patch
+    patch -p1 < ${srcdir}/0001-pandoc_version.patch
+
+    # Add option to use system node
+    patch -p3 < ${srcdir}/0002-allow_system_node.patch
+
+    # Suppress _FORTIFY_SOURCE mismatch warnings
+    patch -p3 < ${srcdir}/0003-fortify_source.patch
 
     cd "${srcdir}/${_srcname}/dependencies/common"
     install -d pandoc/${_pandocver}
@@ -50,18 +62,19 @@ prepare() {
     ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/pandoc
 
     # Nodejs
-    install -d node/${_nodever}
-    cp -r "${srcdir}/node-v${_nodever}-linux-x64/"* node/${_nodever}
+    ##install -d node/${_nodever}
+    ##cp -r "${srcdir}/node-v${_nodever}-linux-x64/"* node/${_nodever}
 
     # Fix links for src/cpp/session/CMakeLists.txt
     cd "${srcdir}/${_srcname}/dependencies"
     ln -sfT /usr/share/myspell/dicts dictionaries
     ln -sfT /usr/share/mathjax2 mathjax-27
+    # Bundled SOCI libs
+    ln -sfT "${srcdir}/soci-${_sociver}" "soci-${_sociver}"
 
     # Panmirror is picked up now from Quarto repo
-    # Ideally: git clone --branch release/rstudio-cherry-blossom https://github.com/quarto-dev/quarto.git "${srcdir}/${_srcname}/src/gwt/lib/quarto"
-    mkdir -p "${srcdir}/${_srcname}/src/gwt/lib/quarto"
-    cp -r "${srcdir}/quarto-release-rstudio-cherry-blossom/"* "${srcdir}/${_srcname}/src/gwt/lib/quarto"
+    ln -sfT "${srcdir}/quarto" "${srcdir}/${_srcname}/src/gwt/lib/quarto"
+
 }
 
 build() {
@@ -81,8 +94,34 @@ build() {
         ln -sfT /usr/bin/pandoc pandoc/${_pandocver}/bin/tools/pandoc
     fi
 
-    cd ${srcdir}
+    cd "${srcdir}/${_srcname}/dependencies/soci-${_sociver}"
+    msg "Buildind SOCI libs"
+    mkdir build
+    cd build
 
+    cmake                                               \
+    -DCMAKE_POLICY_DEFAULT_CMP0063="NEW"                \
+    -DCMAKE_POLICY_DEFAULT_CMP0074="NEW"                \
+    -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true         \
+    -DCMAKE_CXX_VISIBILITY_PRESET="$COMPILE_VISIBILITY" \
+    -DSOCI_TESTS=OFF                                    \
+    -DSOCI_CXX11=ON                                     \
+    -DSOCI_EMPTY=OFF                                    \
+    -DWITH_BOOST=ON                                     \
+    -DWITH_POSTGRESQL=ON                                \
+    -DWITH_SQLITE3=ON                                   \
+    -DWITH_DB2=OFF                                      \
+    -DWITH_MYSQL=OFF                                    \
+    -DWITH_ORACLE=OFF                                   \
+    -DWITH_FIREBIRD=OFF                                 \
+    -DWITH_ODBC=OFF                                     \
+    ..
+
+    cmake --build . --target all
+
+    export LDFLAGS="${LDFLAGS} -L${srcdir}/${_srcname}/dependencies/soci-${_sociver}/build/lib"
+
+    cd ${srcdir}
     msg "Downloading and installing R packages..."
     export R_LIBS_USER="${srcdir}/${_srcname}/dependencies/R"
     _JOBS="$(grep -oP -- "-j\s*\K[0-9]+" <<< "${MAKEFLAGS}")" || _JOBS="1"
@@ -94,6 +133,8 @@ build() {
     done
 
     export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:${PATH}
+    export RSTUDIO_TOOLS_ROOT="${srcdir}/${_srcname}/dependencies"
+    export RSTUDIO_NODE_PATH=/usr/
     export RSTUDIO_VERSION_MAJOR=${_vermajor}
     export RSTUDIO_VERSION_MINOR=${_verminor}
     export RSTUDIO_VERSION_PATCH=${_verpatch}
@@ -113,6 +154,7 @@ build() {
     # which results as empty '/usr/local/bin' in package
     # Following override works for cmake >3.29
     export CMAKE_INSTALL_PREFIX=/usr/lib/rstudio
+    
 
     cmake -S "${srcdir}/${_srcname}" -B build \
           -DRSTUDIO_TARGET=Desktop \
@@ -121,15 +163,12 @@ build() {
           -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake \
           -DBoost_NO_BOOST_CMAKE=ON \
           -DQUARTO_ENABLED=${_quarto} \
-          -DRSTUDIO_USE_SYSTEM_SOCI=yes \
+          -DRSTUDIO_USE_SYSTEM_NODE=yes \
           -DRSTUDIO_BUNDLE_QT=FALSE
 }
 
 package() {
 
-    # Should work for cmake >3.29
-    export CMAKE_INSTALL_PREFIX=/usr/lib/rstudio
-
     # Install the program
     make -C build DESTDIR="${pkgdir}" install