Set R_LIBS_USER='' in dependent build environment (#31287)

* Set R_LIBS_USER='' in dependent build environment

Despite R packages being installed with the --vanilla flag, which
ignores Rprofile and Renviron files, R will still set R_LIBS_USER if the
default directory exists. This could lead to pulling in packages from
that directory during the build which could cause the build to fail. To
avoid that, explicitly set R_LIB_USER='' to ensure that packages from
the HOME/R directory are not in the library path.

* Update var/spack/repos/builtin/packages/r/package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
This commit is contained in:
Glenn Johnson 2022-06-29 15:14:21 -05:00 committed by GitHub
parent 814418db35
commit b200c57739
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -210,6 +210,11 @@ def setup_dependent_build_environment(self, env, dependent_spec):
r_libs_path = ':'.join(r_libs_path)
env.set('R_LIBS', r_libs_path)
# R_LIBS_USER gets set to a directory in HOME/R if it is not set, such as
# during package installation with the --vanilla flag. Set it to null
# to ensure that it does not point to a directory that may contain R
# packages.
env.set('R_LIBS_USER', '')
env.set('R_MAKEVARS_SITE',
join_path(self.etcdir, 'Makeconf.spack'))