Skip to content

Repair: RPath-Contained Library not Found #233

Closed
@ax3l

Description

Hi,

I am building a python module with a dependent shared lib via scikit-build, which results in an in-wheel file structure like this:

/data/lib/python3.8/site-packages/my-module-1.2.3-cp38-cp38-linux_x86_64.so
/data/lib/libdependency.so

I properly set the RPATH of my-module-1.2.3-cp38-cp38-linux_x86_64.so to $ORIGIN/../...
Nevertheless, auditwheel repair reports the already contained library as missing:

$ auditwheel repair --plat manylinux2010_x86_64 my-module-1.2.3-cp38-cp38-linux_x86_64.whl
ValueError: Cannot repair wheel, because required library "libdependency.so" could not be located

I attached an example wheel of openPMD-api that can be used to demonstrate the problem (build recipe: openPMD/openPMD-api#585):
openPMD_api-0.12.0.dev0-cp38-cp38-linux_x86_64.whl.zip

In order to fix this issue, I could imagine that somewhere around here in get_wheel_elfdata we should filter the needed_libs for libs found in the RPATH (and runpath?).

Ref.: scikit-build/scikit-build#69 (comment)

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions