From a7f39da5db501eec1574c38fa9505c0be349224d Mon Sep 17 00:00:00 2001 From: Matthias Wolf Date: Tue, 7 Feb 2023 04:12:30 +0100 Subject: Fix path handling in prefix inspections (#35318) At least with ZSH, prefix inspections containing `./bin` result in a `$PREFIX/./bin` and result in strange `$PATH` handling. I.e., `module load git` will prepend `/path/to/git/./bin`, `which git` will find the right executable, but `git --version` will print the system one. Normalize the relative path to avoid this behavior. See also spack/spack#31867. --- lib/spack/spack/util/environment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/spack/spack/util/environment.py b/lib/spack/spack/util/environment.py index e6c650d6cf..1f019cbbab 100644 --- a/lib/spack/spack/util/environment.py +++ b/lib/spack/spack/util/environment.py @@ -912,7 +912,7 @@ def inspect_path(root, inspections, exclude=None): env = EnvironmentModifications() # Inspect the prefix to check for the existence of common directories for relative_path, variables in inspections.items(): - expected = os.path.join(root, relative_path) + expected = os.path.join(root, os.path.normpath(relative_path)) if os.path.isdir(expected) and not exclude(expected): for variable in variables: -- cgit v1.2.3-70-g09d2