You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2019/01/30 20:45:53 UTC
[kudu] 01/03: [build] Fix mini cluster binary relocation on Mac OS
This is an automated email from the ASF dual-hosted git repository.
granthenke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit f46d2202e19939d137be0e7ff1aad9525f2f54fa
Author: Grant Henke <gr...@apache.org>
AuthorDate: Wed Jan 30 10:04:46 2019 -0600
[build] Fix mini cluster binary relocation on Mac OS
On Mac OS the ssl libs like `libssl.1.0.0.dylib` are read only.
When relocate_binaries_for_mini_cluster.py tries to copy
these read only libs, the build fails because the file
already exists and cannot be replaced.
This patch changes the copy_file method to stop matching
the permissions of the copied files. Additionally it clears the
artifact root on every run to ensure old files are not left behind.
Change-Id: Ib653b175ba2d0e5563509aecac372c9829eca2f5
Reviewed-on: http://gerrit.cloudera.org:8080/12310
Reviewed-by: Mike Percy <mp...@apache.org>
Tested-by: Grant Henke <gr...@apache.org>
---
build-support/relocate_binaries_for_mini_cluster.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/build-support/relocate_binaries_for_mini_cluster.py b/build-support/relocate_binaries_for_mini_cluster.py
index 9b4cac8..aa12fc6 100755
--- a/build-support/relocate_binaries_for_mini_cluster.py
+++ b/build-support/relocate_binaries_for_mini_cluster.py
@@ -217,12 +217,11 @@ def prep_artifact_dirs(config):
def copy_file(src, dest):
"""
- Copy the file with path 'src' to path 'dest', including the file mode.
+ Copy the file with path 'src' to path 'dest'.
If 'src' is a symlink, the link will be followed and 'dest' will be written
as a plain file.
"""
shutil.copyfile(src, dest)
- shutil.copymode(src, dest)
def chrpath(target, new_rpath):
"""
@@ -344,6 +343,9 @@ def main():
artifact_name = get_artifact_name()
artifact_root = os.path.join(build_root, artifact_name)
+ # Clear the artifact root to ensure a clean build.
+ if os.path.exists(artifact_root):
+ shutil.rmtree(artifact_root)
logging.info("Including targets and their dependencies in archive...")
config = mkconfig(build_root, artifact_root)