]> rtime.felk.cvut.cz Git - coffee/buildroot.git/commitdiff
system: do not overwrite /bin/sh Busybox symlink
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 26 Mar 2017 21:43:40 +0000 (23:43 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 29 Mar 2017 21:28:58 +0000 (23:28 +0200)
The BR2_SYSTEM_BIN_SH hidden option defines to what binary the /bin/sh
symlinks should point to. If busybox is chosen, then /bin/sh is created
to point to /bin/busybox.

This works fine with the default installation mode of Busybox, but it
fails with the upcoming "individual binaries" mode, in which each applet
is installed as its own binary, and /bin/busybox doesn't exist: we get
/bin/sh as a broken symlink to /bin/busybox.

Since Busybox already installs its own /bin/sh symlink, properly
pointing to /bin/ash or /bin/hush depending on the selected shell, it
doesn't make sense for the BR2_SYSTEM_BIN_SH logic to override
this. Just let Busybox install its own /bin/sh by making
BR2_SYSTEM_BIN_SH empty when Busybox shell is selected as /bin/sh.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Matthew Weber <matthew.weber@rockwellcollins.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/skeleton/skeleton.mk
system/Config.in

index 1000161c34fe86334e00db504c60cc59f8cf23e9..99409443134a46984593fa9825dd7ff410ba95a3 100644 (file)
@@ -203,10 +203,12 @@ define SKELETON_BIN_SH
        rm -f $(TARGET_DIR)/bin/sh
 endef
 else
+ifneq ($(SKELETON_TARGET_GENERIC_BIN_SH),)
 define SKELETON_BIN_SH
        ln -sf $(SKELETON_TARGET_GENERIC_BIN_SH) $(TARGET_DIR)/bin/sh
 endef
 endif
+endif
 TARGET_FINALIZE_HOOKS += SKELETON_BIN_SH
 
 ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
index 3ddf8433d4f056fb95f1576ff26f87d166fef827..b47ae4384456e58eb37e2dc5844d887a1f5cc9f8 100644 (file)
@@ -298,7 +298,6 @@ endchoice # /bin/sh
 
 config BR2_SYSTEM_BIN_SH
        string
-       default "busybox" if BR2_SYSTEM_BIN_SH_BUSYBOX
        default "bash"    if BR2_SYSTEM_BIN_SH_BASH
        default "dash"    if BR2_SYSTEM_BIN_SH_DASH
        default "mksh"    if BR2_SYSTEM_BIN_SH_MKSH