diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2018-10-22 19:59:07 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2018-10-22 19:59:07 -0400 |
commit | 279073dbb3eb03fbe1f897bd142a53d7c4c5bc7d (patch) | |
tree | 64c1e2ea523ef851132a221a32f89980fbebc9cc /indra/fix-incredibuild.py | |
parent | f55d3071e16f06c7afc0940928fa2e9a620556d9 (diff) |
DRTVWR-447: Introduce LLManifest.process_either().
process_directory() and process_file() are reached both from the top-level
caller (try_path(), a local function within LLManifest.path()) and recursively
from process_directory(). Both places tested os.path.isdir(source), and if so
called process_directory(), else process_file(). Both places were wrong, as it
turns out.
os.path.isdir(symlink_to_directory) returns True. That meant that despite
explicit logic in ccopymumble() to recreate symlinks in the destination area,
we were consistently recopying the contents of symlinked directories.
The downside to this -- in addition to inflating the size of the installer! --
is that macOS is very particular about the structure of a Framework bundle. It
*must* include a Versions/Current symlink identifying which of the other
Versions subdirectories is, in fact, current. If Current is itself a
subdirectory, codesign can't figure out how to sign the framework, and fails.
The logic for deciding between process_directory() and process_file() must
explicitly check for os.path.islink(source). Rather than replicating that
change in both places, introduce process_either() which decides how to forward
the call, and call it both from try_path() and from process_directory().
Diffstat (limited to 'indra/fix-incredibuild.py')
0 files changed, 0 insertions, 0 deletions