Open alexsavulescu opened 2 years ago
I had to put them side-by-side to understand:
{ 'i386': [('/opt/X11/lib/libSM.6.dylib', '7.0.0', '7.1.0'), ('/opt/X11/lib/libICE.6.dylib', '10.0.0', '10.0.0'), ('/usr/lib/libSystem.B.dylib', '1.0.0', '1252.50.4')],
'x86_64': [('/opt/X11/lib/libSM.6.dylib', '7.0.0', '7.1.0'), ('/opt/X11/lib/libICE.6.dylib', '10.0.0', '10.0.0'), ('/usr/lib/libSystem.B.dylib', '1.0.0', '1311.120.1')],
'arm64': [('/opt/X11/lib/libSM.6.dylib', '7.0.0', '7.1.0'), ('/opt/X11/lib/libICE.6.dylib', '10.0.0', '10.0.0'), ('/usr/lib/libSystem.B.dylib', '1.0.0', '1311.120.1')]}
I personally wasn't expecting a lib with all three architectures, although I probably should have, and it's clear that ignoring i386
would be appropriate to have this link a universal2 binary.
I'm not sure what would be best here. Based on your workaround, maybe allowing the --require-archs
flag to ignore architectures outside of what's specified could work, or use the architectures of the initial in-wheel libraries to determine which ones should be ignored.
I don't have the tools to make a proper test for this, and my setup doesn't make it easy to make contributions either. At most I could approve a PR. In your case you could upload your workaround to a personal branch and tell Pip to install delocate from that.
Thanks @HexDecimal , I will try to find some time next week to do a PR.
Describe the bug running delocate-wheel for an
arm64
-only wheel withuniversal2
python installation:To Reproduce
Expected behavior delocate-wheel works
Wheels used Attaching here.
Manual: Install
universal2
Python 3.8.10 from Python.org ; XQuartz fromxquartz.org
(this installs to/opt/X11
where the issue is manifesting from) To create the wheel:Platform (please complete the following information):
Additional context If I pop the
'i386'
from the dict passed to_check_ignore_archs
it works. wheel.zip