makewheel: Don't run codesign --remove-signature on files without signature

See #927
This commit is contained in:
rdb 2021-03-13 13:09:46 +01:00
parent 209e031964
commit 13a764c91e

View File

@ -404,6 +404,7 @@ class WheelFile(object):
# Now add dependencies. On macOS, fix @loader_path references. # Now add dependencies. On macOS, fix @loader_path references.
if sys.platform == "darwin": if sys.platform == "darwin":
is_unsigned = subprocess.call(['codesign', '-d', temp.name], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
if source_path.endswith('deploy-stubw'): if source_path.endswith('deploy-stubw'):
deps_path = '@executable_path/../Frameworks' deps_path = '@executable_path/../Frameworks'
else: else:
@ -444,13 +445,14 @@ class WheelFile(object):
remove_signature = True remove_signature = True
# Replace the codesign signature if we modified the library. # Replace the codesign signature if we modified the library.
if remove_signature: if self.platform.endswith("_arm64") and (is_unsigned or remove_signature):
if self.platform.endswith("_arm64"): subprocess.call(["codesign", "-f", "-s", "-", temp.name])
subprocess.call(["codesign", "-f", "-s", "-", temp.name]) elif remove_signature and not is_unsigned:
else: if GetVerbose():
subprocess.call(["codesign", "--remove-signature", temp.name]) print("Removing code signature from {0}".format(source_path))
if self.platform.endswith("_universal2"): subprocess.call(["codesign", "--remove-signature", temp.name])
subprocess.call(["codesign", "-a", "arm64", "-s", "-", temp.name]) if self.platform.endswith("_universal2"):
subprocess.call(["codesign", "-a", "arm64", "-s", "-", 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: