Makefile: don't depend on current skeleton/overlay permissions
authorGuido Martínez <guido@vanguardiasur.com.ar>
Fri, 21 Nov 2014 16:19:01 +0000 (13:19 -0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 13 Jul 2015 15:02:35 +0000 (17:02 +0200)
We use 'rsync -a' to copy the skeleton and overlays, so the target ends
up with the exact same permissions as on the repo. The problem is we
don't track these permissions, since Git doesn't allow for that (except
for the exec bit). This means users with different umasks at the time of
cloning could end up with different target permissions.

Fix this by using --chmod on rsync calls so we don't depend on the
current permission set for the skeleton and overlays. We do depend on
the exec bit, but that's fine since that one is tracked by Git.

Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Makefile

index 55b1d457867e4b8e696cd8e17aae48ca5bfd2da9..546bcd34bf0a51eed532e72a25845e3de77d57c5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -473,7 +473,7 @@ RSYNC_VCS_EXCLUSIONS = \
 $(BUILD_DIR)/.root:
        mkdir -p $(TARGET_DIR)
        rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
-               --chmod=Du+w --exclude .empty --exclude '*~' \
+               --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \
                $(TARGET_SKELETON)/ $(TARGET_DIR)/
        $(INSTALL) -m 0644 support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
        @ln -snf lib $(TARGET_DIR)/$(LIB_SYMLINK)
@@ -617,7 +617,7 @@ endif
        @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
                $(call MESSAGE,"Copying overlay $(d)"); \
                rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
-                       --chmod=Du+w --exclude .empty --exclude '*~' \
+                       --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \
                        $(d)/ $(TARGET_DIR)$(sep))
 
        @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \