Skip to content

Commit

Permalink
iOS,macOS: Add logging of duplicate codesign binaries
Browse files Browse the repository at this point in the history
When duplicates are found in the input lists, log them to stderr. For
the case of duplicates across list, we print the whole list, sorted,
rather than three separate lists, as it makes it simpler to spot the
duplicate, at which point the file will be easy to spot in either
`create_ios_framework.py` or `create_macos_framework.py`.
  • Loading branch information
cbracken committed Sep 6, 2024
1 parent 19d2eb4 commit 9b24b63
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion sky/tools/sky_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,25 @@ def assert_valid_codesign_config(
either entitlements or without_entitlements."""
if _contains_duplicates(entitlements):
log_error('ERROR: duplicate value(s) found in entitlements.txt')
log_error_items(sorted(entitlements))
sys.exit(os.EX_DATAERR)

if _contains_duplicates(without_entitlements):
log_error('ERROR: duplicate value(s) found in without_entitlements.txt')
log_error_items(sorted(without_entitlements))
sys.exit(os.EX_DATAERR)

if _contains_duplicates(unsigned_binaries):
log_error('ERROR: duplicate value(s) found in unsigned_binaries.txt')
log_error_items(sorted(unsigned_binaries))
sys.exit(os.EX_DATAERR)

if _contains_duplicates(entitlements + without_entitlements + unsigned_binaries):
log_error('ERROR: value(s) found in both entitlements and without_entitlements.txt')
log_error(
'ERROR: duplicate value(s) found between '
'entitlements.txt, without_entitlements.txt, unsigned_binaries.txt'
)
log_error_items(sorted(entitlements + without_entitlements + unsigned_binaries))
sys.exit(os.EX_DATAERR)

binaries = set()
Expand Down Expand Up @@ -254,6 +261,12 @@ def log_error(message):
print(message, file=sys.stderr)


def log_error_items(items):
"""Writes each item indented to stderr, followed by a newline."""
for item in items:
log_error(' ' + item)


def strip_binary(binary_path, unstripped_copy_path):
"""Makes a copy of an unstripped binary, then strips symbols from the binary."""
assert_file(binary_path, 'binary to strip')
Expand Down

0 comments on commit 9b24b63

Please sign in to comment.