Makefile: fix rootfs overlay with BR2_ROOTFS_MERGED_USR enabled
authorPeter Seiderer <ps.report@gmx.net>
Sat, 23 Apr 2016 19:18:29 +0000 (21:18 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 13 May 2016 20:07:14 +0000 (22:07 +0200)
Use rsync with '--keep-dirlinks' option to prevent rootfs overlay to
overwrite /usr, /bin, /sbin and /lib links in case BR2_ROOTFS_MERGED_USR
option is enabled.

Steps to reproduce failure:

- enable BR2_ROOTFS_MERGED_USR
- mkdir some_path/rootfs-overlay/lib/firmware/some_file.txt
- enable BR2_ROOTFS_OVERLAY="some_path/rootfs-overlay"
- run 'make'
- 'target/lib' contains only the files from 'some_path/rootfs-overlay/lib' instead
  of the original symlink 'lib -> usr/lib'.

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Makefile

index 32bbfc4a8d8827c03f85cde5158025e883d146e1..9b0ed05b3a0832c0518431e313533fa9e84554b5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -660,7 +660,7 @@ endif
 
        @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
                $(call MESSAGE,"Copying overlay $(d)"); \
-               rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
+               rsync -a --ignore-times --keep-dirlinks $(RSYNC_VCS_EXCLUSIONS) \
                        --chmod=u=rwX,go=rX --exclude .empty --exclude '*~' \
                        $(d)/ $(TARGET_DIR)$(sep))