Ensure transitive dependencies for headers and libraries are always available#5143
Ensure transitive dependencies for headers and libraries are always available#5143ocaisa wants to merge 9 commits intoeasybuilders:developfrom
Conversation
| # and only use the configured option | ||
| # (our RPATH wrappers rely on LIBRARY_PATH so we need an exception for that) | ||
| if env_var != 'LIBRARY_PATH': | ||
| self.variables.append(env_var, '') |
There was a problem hiding this comment.
This may seem quite aggressive, but it does seem to work in the cases I tried.
|
I think this is good enough for a review, it passes existing CI and also fixes #5143 |
| if env_var != 'LIBRARY_PATH': | ||
| self.variables.setdefault(env_var, append_empty=True) | ||
| for var in SEARCH_PATH[search_path_var][self.search_path[search_path_var]]: | ||
| self.variables.append_subdirs(var, '', subdirs=paths_list) |
There was a problem hiding this comment.
This looks odd, but the methods available here are limited. My subdirs are full paths relative to ''
|
Can't we just clear the relevant env variables at start of eb and then just load modules and "all will be fine"? |
|
Sure, but that is not what we say we support with the option |
|
When I worked on The default behaviour of EB (which has not changed in ages AFAIK):
Now, I have not yet looked in detail the code in this PR, but it is indeed probably the case that setting |
|
We should be careful with changing the logic here imho, since I expect it's likely that we would overlook some situations here and introduce regressions. This effort was triggered by us hitting this bug in EESSI, because we were configuring EasyBuild with We revised that:
That effectively defuses the situation in EESSI, which makes me think we should take our time here... |
This addresses #5124 but is quite a major change even if just a bugfix. I believe that this was probably the original intention when introducing the related options.
Requires additional tests (and probably debating) so leaving as a draft PR for now.