From b200c577392911436656799f1c9b0a5c9241ecaa Mon Sep 17 00:00:00 2001 From: Glenn Johnson Date: Wed, 29 Jun 2022 15:14:21 -0500 Subject: [PATCH] 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 Co-authored-by: Adam J. Stewart --- var/spack/repos/builtin/packages/r/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index 837b140bbcd..6418d11ebf8 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -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'))