busybox: enable noclobber option in install.sh
We support a busybox-menuconfig target so that the BusyBox configuration can be adjusted as needed. However, depending on what other packages are enabled, re-installing BusyBox symlinks that duplicate "real" apps after the configuration change can result in bad behaviors: * At best, the BusyBox applet will be used after the install, versus the desired "real" app. * At worst, the built rootfs can become unbootable. The BusyBox install.sh has some capability to avoid this issue by means of a --noclobber option. By default, this option is disabled. When enabled, the install.sh will not overwrite a target file with a symlink or hardlink, be it an actual file or a previously installed BusyBox link. The install.sh's argument processing is somewhat broken, so this patch simply changes the default value of the noclobber option to on, rather than add --noclobber to the install.sh invocation. Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
74bc709e63
commit
802bff9c42
@ -189,6 +189,12 @@ define BUSYBOX_INSTALL_WATCHDOG_SCRIPT
|
||||
endef
|
||||
endif
|
||||
|
||||
# Enable "noclobber" in install.sh, to prevent BusyBox from overwritting any
|
||||
# full-blown versions of apps installed by other packages with sym/hard links.
|
||||
define BUSYBOX_NOCLOBBER_INSTALL
|
||||
$(SED) 's/^noclobber="0"$$/noclobber="1"/' $(@D)/applets/install.sh
|
||||
endef
|
||||
|
||||
define BUSYBOX_CONFIGURE_CMDS
|
||||
$(BUSYBOX_COPY_CONFIG)
|
||||
$(BUSYBOX_SET_MMU)
|
||||
@ -204,6 +210,7 @@ define BUSYBOX_CONFIGURE_CMDS
|
||||
$(BUSYBOX_SET_WATCHDOG)
|
||||
@yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
-C $(@D) oldconfig
|
||||
$(BUSYBOX_NOCLOBBER_INSTALL)
|
||||
endef
|
||||
|
||||
define BUSYBOX_BUILD_CMDS
|
||||
|
Loading…
Reference in New Issue
Block a user