cibuildwheel "Repaired wheel is not manylinux compliant" in CI
cibuildwheel runs auditwheel to repair Linux wheels into a manylinux tag by bundling external shared libraries. If the wheel still references a library or glibc symbol outside the manylinux policy after repair, auditwheel reports the repaired wheel as non-compliant and the build fails.
What this error means
After the repair step, the log shows that the repaired wheel is not manylinux compliant, often naming a glibc symbol version or a library that violates the chosen policy.
auditwheel: error: cibuildwheel: Repaired wheel is not manylinux compliant
Failed to find a manylinux policy: requires GLIBC_2.34 (manylinux_2_28 allows up to 2.28)Common causes
A newer glibc symbol than the policy allows
The extension was built against a glibc newer than the target manylinux policy permits, so no compliant tag fits.
A library that cannot be bundled
Some libraries (for example GL or X11) are excluded from bundling by policy and must come from the system, breaking compliance if linked directly.
How to fix it
Build inside a matching manylinux image
- Pick a manylinux image whose glibc matches your policy target.
- Set the cibuildwheel image so the build glibc is within policy.
- Re-run so the repaired wheel is compliant.
env:
CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28"Exclude system libraries from bundling
Tell auditwheel to leave policy-excluded libraries to the host instead of vendoring them.
env:
CIBW_REPAIR_WHEEL_COMMAND_LINUX: "auditwheel repair --exclude libGL.so.1 -w {dest_dir} {wheel}"How to prevent it
- Build in a manylinux image that matches your target policy.
- Avoid linking system libraries that policy forbids bundling.
- Run auditwheel show on every Linux wheel before publishing.