After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.
Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.
A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.
This commit was automatically created and can be verified using
nix-build a08b3a4d19.tar.gz \
--argstr baseRev b32a094368
result/bin/apply-formatting $NIXPKGS_PATH
While trying to build a haskell-project I got:
Configuring library for inline-r-0.10.4..
cabal: The pkg-config package 'libR' version ==3.0 || >3.0 is required but it
could not be found.
the rWrapper was only bringing the R binary without its companion
library: this fixes it.
- make sure libreadline is found at runtime
- make sure python libraries are found at runtime
- add libraries necessary to pass the testsuite and standard libraries
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.
https://nixos.org/nixpkgs/manual/#r-packages contains a method for
setting up an R environment with a specific set of libraries, and it
creates an R wrapper which points R to those libraries.
The package RStudio relies on the standard R package, which then
cannot access any of the libraries specified in a custom R
environment. While one may easily use pkgs.rstudio.override to change
rstudio's R dependency to the custom R environment, this accomplishes
nothing because while RStudio runs the correct R wrapper it clears out
the environment variable R_LIBS_SITE - and so it is still unable to
use any of those packages.
In order to work around this problem, these changes allow the user to
optionally modify rstudio's wrapper to set environment variable
R_PROFILE_USER to an R script which sets R's .libPaths(..) to point to
the same libraries; that script is generated from R_LIBS_SITE in the R
wrapper.
By default, this change has no effect. If R is overridden to
something else, and if useRPackages is changed from its default of
false, then the change described above is made; for instance:
{
packageOverrides = pkgs: let self = pkgs.pkgs; in
rec {
rEnv = pkgs.rWrapper.override {
packages = with self.rPackages; [
dplyr ggplot2 e1071 rpart reshape
];
};
rstudioEnv = pkgs.rstudio.override { R = rEnv; useRPackages = true; };
};
}