Revert "[Mac] Preserve symbolic links in the copy_bundle_data tool"
This reverts commit 28c84c16d28cba67c4ec61997632f71583453d22. Reason for revert: https://crbug.com/969587 Original change's description: > [Mac] Preserve symbolic links in the copy_bundle_data tool > > This is a reland of 6a008993a2e5, which was reverted in 235d842aa70a. > (Thus, this is a revert of that revert.) > > Since the last attempt, the structure of the keystone_registration > bundle_data rule in third_party/googlemac (via src-internal DEPS) has > changed to avoid the dangling symbolic link problem previously > encountered. > > The description from 6a008993a2e5: > > The copy_bundle_data tool is implemented in terms of pax for directories > and ln hard links for files. The pax command does preserve symbolic > links within the tree that is being copied. But with the way that pax is > invoked by the tool, cd-ing into the source, if the source is itself > a symbolic link to a directory, the tree will be logically copied rather > than just as a symbolic link. > > A similar issue exists with the non-directory symbolic link source case, > where a hard link will be produced instead of a symbolic link. > > Fix both of these cases by specifically testing if the source is a > symbolic link and then re-creating it if so. > > Bug: 955936 > Change-Id: Ia13ddf743603e98337c3523e9101e7627e1c31d0 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1637673 > Reviewed-by: Nico Weber <thakis@chromium.org> > Commit-Queue: Mark Mentovai <mark@chromium.org> > Cr-Commit-Position: refs/heads/master@{#665203} TBR=thakis@chromium.org,mark@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 955936 Change-Id: I4de6596c29598961ac15fbd24acc54b1f763735a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1639152 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#665543} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 13865f386b4286efad2d98e0c7118ed614ce92df
This commit is contained in:
Родитель
2229c6a770
Коммит
84c2d32f7d
|
@ -432,21 +432,10 @@ template("mac_toolchain") {
|
|||
# constructed using shell variable $OLDPWD (automatically set when
|
||||
# cd is used) as computing the relative path is a bit complex and
|
||||
# using pwd would requires a sub-shell to be created.
|
||||
#
|
||||
# A special case exists for copying symbolic links. The pax command,
|
||||
# as noted above, preserves symbolic links but only if they are a child
|
||||
# node of source. But if the source itself is a symbolic link to a
|
||||
# directory, the cd into it will copy it as a logical tree rather than
|
||||
# a symbolic link. Similarly, if source is a symbolic link to a file,
|
||||
# then the copy_command hard link will not produce a symbolic link, it
|
||||
# would hard link the file pointed to by the symbolic link.
|
||||
_copydir = "mkdir -p {{output}} && cd {{source}} && " +
|
||||
"pax -rwl . \"\$OLDPWD\"/{{output}}"
|
||||
_copylink = "ln -s \$(readlink {{source}}) {{output}}"
|
||||
command = "rm -rf {{output}} && " +
|
||||
"if [[ -L {{source}} ]]; then $_copylink; " +
|
||||
"elif [[ -d {{source}} ]]; then $_copydir; " +
|
||||
"else $copy_command; fi"
|
||||
command = "rm -rf {{output}} && if [[ -d {{source}} ]]; then " +
|
||||
_copydir + "; else " + copy_command + "; fi"
|
||||
|
||||
description = "COPY_BUNDLE_DATA {{source}} {{output}}"
|
||||
pool = ":bundle_pool($default_toolchain)"
|
||||
|
|
Загрузка…
Ссылка в новой задаче