fix auditwheel .so relocation for namespace modules #2513
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For a project of mine I have a setup as a namespace package like this:
The module has a shared library dependency and currently the shared object generated by audit wheel fails to load as the rpath gets set incorrectly. The wheel has the following contents
The
RATH
/RUNPATH
for/my/example/namespace/module.so
gets set to$ORIGIN/../my.libs/my_dep.so
which means thatmy_dep.so
is not found while trying to load the module. Instead theRATH
/RUNPATH
should be:$ORIGIN/../../../my.libs/my_dep.so
.I took a stab at fixing this. It looks like the logic for determining the artifact path was wrong and assumed the shared library would endup in
my.example.namespace.module/module.so
but it endsup inmy/example/namespace/module.so
.