diff options
author | Harmen Stoppels <me@harmenstoppels.nl> | 2024-02-03 11:05:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-03 11:05:45 +0100 |
commit | c44e854d05de6b4cea4736546317748d05e5d833 (patch) | |
tree | ecfa390971cdb2ba40c9a26c75ecb3113c4d8c44 /COPYRIGHT | |
parent | 8fa8dbc26998bf5bd23b096b522e4d6258e9e75d (diff) | |
download | spack-c44e854d05de6b4cea4736546317748d05e5d833.tar.gz spack-c44e854d05de6b4cea4736546317748d05e5d833.tar.bz2 spack-c44e854d05de6b4cea4736546317748d05e5d833.tar.xz spack-c44e854d05de6b4cea4736546317748d05e5d833.zip |
Environment views: dependents before dependencies, resolve identical file conflicts (#42350)
Fix two separate problems:
1. We want to always visit parents before children while creating views
(when it comes to ignoring conflicts, the first instance generated in
the view is chosen, and we want the parent instance to have precedence).
Our preorder traversal does not guarantee that, but our topological-
order traversal does.
2. For copy style views with packages x depending on y, where
<x-prefix>/foo is a symlink to <y-prefix>/foo, we want to guarantee
that:
* A conflict is not registered
* <y-prefix>/foo is chosen (otherwise, the "foo" symlink would become
self-referential if relocated relative to the view root)
Note that
* This is an exception to [1] (in this case the dependency instance
overrides the dependent)
* Prior to this change, if "foo" was ignored as a conflict, it was
possible to create this self-referential symlink
Add tests for each of these cases
Diffstat (limited to 'COPYRIGHT')
0 files changed, 0 insertions, 0 deletions