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:
Mark Mentovai 2019-06-03 15:02:34 +00:00 коммит произвёл Commit Bot
Родитель 2229c6a770
Коммит 84c2d32f7d
1 изменённых файлов: 2 добавлений и 13 удалений

Просмотреть файл

@ -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)"