Makefile: allow rootfs overlays to override symbolic links
authorCarlos Santos <casantos@datacom.ind.br>
Mon, 7 May 2018 14:44:30 +0000 (11:44 -0300)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Wed, 6 Feb 2019 16:11:02 +0000 (17:11 +0100)
commit0c96bda11eb26ada660dcd31843fbc9523be6062
treef1d3c9f7d72c36ffea52475dd24996ff6b9a7ff4
parentdc7c6487cff0a418a6605060670571ea9111050a
Makefile: allow rootfs overlays to override symbolic links

Since commit 0db34529f48 we use rsync with the --keep-dirlinks option to
prevent overlays from accidentally overwriding /{usr,bin,sbin,lib} links
when BR2_ROOTFS_MERGED_USR option is enabled. Unfortunately this also
prevents replacing a symlink by a directory on purpose (e.g. /var/log,
to persist system logs).

Steps to reproduce:

- enable BR2_ROOTFS_MERGED_USR and BR2_PACKAGE_SKELETON_INIT_SYSV
- mkdir some_path/rootfs-overlay/var/log
- enable BR2_ROOTFS_OVERLAY="some_path/rootfs-overlay"
- run 'make'
- 'target/var/log' is still a symlink to '../tmp', not a directory

The --keep-dirlinks option can be dropped, since we run sanity checks
on overlays. Now the rsync invocation is identical to the SYSTEM_RSYNC
logic we have in system/system.mk, so use that variable.

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Makefile