summary refs log tree commit diff
path: root/pkgs/development/r-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/r-modules')
-rw-r--r--pkgs/development/r-modules/wrapper-rstudio.nix56
1 files changed, 38 insertions, 18 deletions
diff --git a/pkgs/development/r-modules/wrapper-rstudio.nix b/pkgs/development/r-modules/wrapper-rstudio.nix
index 5eeac8fed30..b20b61d6c58 100644
--- a/pkgs/development/r-modules/wrapper-rstudio.nix
+++ b/pkgs/development/r-modules/wrapper-rstudio.nix
@@ -1,16 +1,23 @@
-{ lib, runCommand, R, rstudio, wrapQtAppsHook, recommendedPackages, packages, qtbase }:
+{ lib
+, runCommand
+, R
+, rstudio
+, makeWrapper
+, wrapQtAppsHook
+, recommendedPackages
+, packages
+, fontconfig
+}:
 
-let
-  qtVersion = with lib.versions; "${major qtbase.version}.${minor qtbase.version}";
-in
-runCommand (rstudio.name + "-wrapper") {
+runCommand (rstudio.name + "-wrapper")
+{
   preferLocalBuild = true;
   allowSubstitutes = false;
 
-  nativeBuildInputs = [wrapQtAppsHook];
+  nativeBuildInputs = [ (if rstudio.server then makeWrapper else wrapQtAppsHook) ];
   dontWrapQtApps = true;
 
-  buildInputs = [R rstudio] ++ recommendedPackages ++ packages;
+  buildInputs = [ R rstudio ] ++ recommendedPackages ++ packages;
 
   # rWrapper points R to a specific set of packages by using a wrapper
   # (as in https://nixos.org/nixpkgs/manual/#r-packages) which sets
@@ -22,14 +29,27 @@ runCommand (rstudio.name + "-wrapper") {
   # uses R_PROFILE_USER to load this code at startup in RStudio.
   fixLibsR = "fix_libs.R";
 }
-''
-mkdir $out
-ln -s ${rstudio}/share $out
-echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/$fixLibsR
-echo -n ".libPaths(c(.libPaths(), \"" >> $out/$fixLibsR
-echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/$fixLibsR
-echo -n "\"))" >> $out/$fixLibsR
-echo >> $out/$fixLibsR
-makeQtWrapper ${rstudio}/bin/rstudio $out/bin/rstudio \
-  --set R_PROFILE_USER $out/$fixLibsR
-''
+  (
+    ''
+      mkdir -p $out/bin
+      ln -s ${rstudio}/share $out
+      echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/$fixLibsR
+      echo -n ".libPaths(c(.libPaths(), \"" >> $out/$fixLibsR
+      echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/$fixLibsR
+      echo -n "\"))" >> $out/$fixLibsR
+      echo >> $out/$fixLibsR
+    '' +
+    (if
+      rstudio.server then ''
+      makeWrapper ${rstudio}/bin/rsession $out/bin/rsession \
+        --set R_PROFILE_USER $out/$fixLibsR --set FONTCONFIG_FILE ${fontconfig.out}/etc/fonts/fonts.conf
+
+      makeWrapper ${rstudio}/bin/rserver $out/bin/rserver \
+        --add-flags --rsession-path=$out/bin/rsession
+    ''
+    else
+      ''
+        makeQtWrapper ${rstudio}/bin/rstudio $out/bin/rstudio \
+          --set R_PROFILE_USER $out/$fixLibsR
+      '')
+  )