-
Notifications
You must be signed in to change notification settings - Fork 277
Description
Description
iOS has very stringent requirements for dynamic linking. It does not allow simple .dylibs
; all dynamically loaded content must be packaged as Frameworks.
As a result, binary modules build by cibuildwheel should statically link all third-party code.
However, cibuildwheel doesn't currently protect against this.
Pillow 11.3.0 recently added iOS wheels; but those wheels inadvertently included a dynamically linked libjpeg.6.2.dylib
- something that wasn't detected until the wheel was published (as the dynamic library existed in the linked location during CI testing). See python-pillow/Pillow#9079 for details.
cibuildwheel should add a dynamic linking audit to the iOS backend.
This is strictly an enhancement, as cibuildwheel is currently working "as intended"; but the fact that it's possible to produce invalid iOS wheels with a fairly trivial misconfiguration makes this a fairly important enhancement.
Build log
https://github.com/beeware/Python-support-testbed/actions/runs/15817251844
CI config
No response