From fd51177e5c91ac86220f2f4a11fcc99f0bb9a6a3 Mon Sep 17 00:00:00 2001 From: cfhammill Date: Wed, 19 Aug 2020 21:27:10 -0400 Subject: rstudio-server, rstudioServerWrapper: init at rstudio.version (1.4.1717) Co-authored-by: Justin Bedo Co-authored-by: Jonathan Ringer Co-authored-by: Sandro Co-authored-by: Benjamin Darwin --- pkgs/development/r-modules/wrapper-rstudio.nix | 56 +++++++++++++++++--------- 1 file changed, 38 insertions(+), 18 deletions(-) (limited to 'pkgs/development/r-modules') diff --git a/pkgs/development/r-modules/wrapper-rstudio.nix b/pkgs/development/r-modules/wrapper-rstudio.nix index 5eeac8fed30e..b20b61d6c58d 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 + '') + ) -- cgit 1.4.1