Don't set LD_LIBRARY_PATH by default on Linux (#28354)

`LD_LIBRARY_PATH` can break system executables (e.g., when an enviornment is loaded) and isn't necessary thanks to `RPATH`s.  Packages that require `LD_LIBRARY_PATH` can set this in `setup_run_environment`.

- [x] Prefix inspections no longer set `LD_LIBRARY_PATH` by default
- [x] Document changes and workarounds for people who want `LD_LIBRARY_PATH`
This commit is contained in:
Harmen Stoppels
2022-08-11 16:33:08 +02:00
committed by GitHub
parent e4d296dfc5
commit ceda5fb46c
7 changed files with 32 additions and 31 deletions

View File

@@ -331,17 +331,17 @@ spt_contains "usage: spack module " spack -m module
title 'Testing `spack load`'
set _b_loc (spack -m location -i b)
set _b_ld $_b_loc"/lib"
set _b_bin $_b_loc"/bin"
set _a_loc (spack -m location -i a)
set _a_ld $_a_loc"/lib"
set _a_bin $_a_loc"/bin"
spt_contains "set -gx LD_LIBRARY_PATH $_b_ld" spack -m load --only package --fish b
spt_contains "set -gx PATH $_b_bin" spack -m load --only package --fish b
spt_succeeds spack -m load b
set LIST_CONTENT (spack -m load b; spack load --list)
spt_contains "b@" echo $LIST_CONTENT
spt_does_not_contain "a@" echo $LIST_CONTENT
# test a variable MacOS clears and one it doesn't for recursive loads
spt_contains "set -gx LD_LIBRARY_PATH $_a_ld:$_b_ld" spack -m load --fish a
spt_contains "set -gx PATH $_a_bin:$_b_bin" spack -m load --fish a
spt_succeeds spack -m load --only dependencies a
spt_succeeds spack -m load --only package a
spt_fails spack -m load d