makewheel: strip codesign signature on macOS from libpython3.x.dylib

This is necessary because install_name_tool invalidates the signature, which causes the whole app to fail validation and refuse to open.
This commit is contained in:
rdb 2020-03-29 15:34:01 +02:00
parent 8160c48040
commit 783c721cef

View File

@ -407,6 +407,7 @@ class WheelFile(object):
deps_path = '@executable_path/../Frameworks' deps_path = '@executable_path/../Frameworks'
else: else:
deps_path = '@loader_path' deps_path = '@loader_path'
remove_signature = False
loader_path = [os.path.dirname(source_path)] loader_path = [os.path.dirname(source_path)]
for dep in deps: for dep in deps:
if dep.endswith('/Python'): if dep.endswith('/Python'):
@ -439,6 +440,11 @@ class WheelFile(object):
continue continue
subprocess.call(["install_name_tool", "-change", dep, new_dep, temp.name]) subprocess.call(["install_name_tool", "-change", dep, new_dep, temp.name])
remove_signature = True
# Remove the codesign signature if we modified the library.
if remove_signature:
subprocess.call(["codesign", "--remove-signature", temp.name])
else: else:
# On other unixes, we just add dependencies normally. # On other unixes, we just add dependencies normally.
for dep in deps: for dep in deps: