Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to pass --exclude to auditwheel repair to exclude libEGL (or other libraries) #2118

Open
HinTak opened this issue Jan 1, 2025 · 3 comments

Comments

@HinTak
Copy link

HinTak commented Jan 1, 2025

Description

auditwheel repair has an --exclude option , apparently. It would be nice to expose this to cibuildwheel usage. The specific use case is libEGL.

The bundled libEGL is what causes the segfault:

kyamagu/skia-python#294

If I download the untested wheel, run patchelf --replace-needed ... in reverse for libEGL, then it works.

What happens, I think, is this: libEGL is a stub/ trampoline library from the libglvnd project to load libEGL_* from GPU vendors or mesa on a per screen basis. It must be next to the vendor's to be useful. Loading a relocated copy means it can't even find the mesa one for typical fallback, therefore it crashes.

Build log

No response

CI config

No response

@mayeut
Copy link
Member

mayeut commented Jan 2, 2025

You can already override the default repair command with a custom one: https://cibuildwheel.pypa.io/en/stable/options/#repair-wheel-command

@HinTak
Copy link
Author

HinTak commented Jan 2, 2025

Okay, I'll investigate how to exclude livEGL and report.

HinTak added a commit to HinTak/skia-python that referenced this issue Jan 2, 2025
@HinTak
Copy link
Author

HinTak commented Jan 3, 2025

Thanks. Doing

CIBW_REPAIR_WHEEL_COMMAND_LINUX: "auditwheel repair --exclude libEGL.so.1 -w {dest_dir} {wheel}"

Achieved what I want. Look like a few others would benefit this tip. (Quick look in auditwheel found two).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants