rstudio: Fix recompilation issue with custom package set
This attempts to fix the issue described at https://github.com/NixOS/nixpkgs/pull/22219#issuecomment-291801133. Any change to the custom packages passed to RStudio causes this to completely rebuild RStudio, which is completely unnecessary and also a bit of a hindrance as it's a fairly slow build. This rolls back most of that old PR, and instead implements something more like rWrapper. Existing configurations with the old useRPackages will break.
This commit is contained in:
@@ -1,13 +1,5 @@
|
||||
{ stdenv, fetchurl, makeDesktopItem, cmake, boost163, zlib, openssl,
|
||||
R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc,
|
||||
# If you have set up an R wrapper with other packages by following
|
||||
# something like https://nixos.org/nixpkgs/manual/#r-packages, RStudio
|
||||
# by default not be able to access any of those R packages. In order
|
||||
# to do this, override the argument "R" here with your respective R
|
||||
# wrapper, and set "useRPackages" to true. This will add the
|
||||
# environment variable R_PROFILE_USER to the RStudio wrapper, pointing
|
||||
# to an R script which will allow R to use these packages.
|
||||
useRPackages ? false
|
||||
R, qt5, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -111,14 +103,8 @@ stdenv.mkDerivation rec {
|
||||
mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
|
||||
};
|
||||
|
||||
postInstall = let rProfile =
|
||||
# RStudio seems to bypass the environment variables that the R
|
||||
# wrapper already applies, and so this sets R_PROFILE_USER to
|
||||
# again make those R packages accessible:
|
||||
if useRPackages
|
||||
then "--set R_PROFILE_USER ${R}/${R.passthru.fixLibsR}" else "";
|
||||
in ''
|
||||
wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin ${rProfile}
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin
|
||||
mkdir $out/share
|
||||
cp -r ${desktopItem}/share/applications $out/share
|
||||
mkdir $out/share/icons
|
||||
|
||||
Reference in New Issue
Block a user