From 74e9d2b3c2db5b460cd84e9bdcb3f946c6eea2ef Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 26 Nov 2019 16:09:02 +0100 Subject: [PATCH] Fix permissions of created setup files (#563) --- catkin_tools/jobs/cmake.py | 7 ++++++- catkin_tools/verbs/catkin_build/build.py | 4 ---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/catkin_tools/jobs/cmake.py b/catkin_tools/jobs/cmake.py index 4bcb140f..9ddf3236 100644 --- a/catkin_tools/jobs/cmake.py +++ b/catkin_tools/jobs/cmake.py @@ -149,9 +149,14 @@ def generate_env_file(logger, event_queue, context, install_target): os.write(tmp_dst_handle, data.encode('utf-8')) os.close(tmp_dst_handle) + # Make the file executable without overwriting the permissions for + # the group and others (copy r flags to x) + mode = os.stat(tmp_dst_path).st_mode + mode |= (mode & 0o444) >> 2 + os.chmod(tmp_dst_path, mode) + # Do an atomic rename with os.rename os.rename(tmp_dst_path, env_file_path) - os.chmod(env_file_path, 0o755) return 0 diff --git a/catkin_tools/verbs/catkin_build/build.py b/catkin_tools/verbs/catkin_build/build.py index 75e29180..d3fa477c 100644 --- a/catkin_tools/verbs/catkin_build/build.py +++ b/catkin_tools/verbs/catkin_build/build.py @@ -16,7 +16,6 @@ import os import pkg_resources -import stat import sys import time import traceback @@ -647,19 +646,16 @@ def _create_unmerged_devel_setup(context, unbuilt): ) with open(setup_sh_path, 'w') as f: f.write(env_file) - os.chmod(setup_sh_path, stat.S_IXUSR | stat.S_IWUSR | stat.S_IRUSR) # Create setup.bash file setup_bash_path = os.path.join(context.devel_space_abs, 'setup.bash') with open(setup_bash_path, 'w') as f: f.write(SETUP_BASH_TEMPLATE) - os.chmod(setup_bash_path, stat.S_IXUSR | stat.S_IWUSR | stat.S_IRUSR) # Create setup.zsh file setup_zsh_path = os.path.join(context.devel_space_abs, 'setup.zsh') with open(setup_zsh_path, 'w') as f: f.write(SETUP_ZSH_TEMPLATE) - os.chmod(setup_zsh_path, stat.S_IXUSR | stat.S_IWUSR | stat.S_IRUSR) def _create_unmerged_devel_setup_for_install(context):