It is possible for any of BusyBox, Dash, or Bash to install the
/usr/bin/sh symbolic link.  Only allow BASH_SH to be enabled if the
symbolic link is not being installed by either BusyBox or Dash (unless
overridden by ALLYES).  Default to enabled if the link is not being
installed by BusyBox or Dash.  Also allow it to be manually disabled.

Rationale: It is common for Bash to be installed as an interactive login
shell, but to use something lighter and faster for non-interactive use.
Shell scripts typically use /bin/sh as the interpreter selected by the
"shebang" line.

Signed-off-by: Ian Abbott <[email protected]>
---
 rules/bash.in | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/rules/bash.in b/rules/bash.in
index 3b3dd845d..5276df8d1 100644
--- a/rules/bash.in
+++ b/rules/bash.in
@@ -262,8 +262,20 @@ config BASH_CURSES
        bool
        prompt "Use libcurses instead of libtermcap"
 
+comment "BusyBox sh is selected"
+       depends on BUSYBOX && !BUSYBOX_SH_IS_NONE
+
+comment "Dash sh is selected"
+       depends on DASH_LINK_SH
+
 config BASH_SH
        bool
-       default BUSYBOX = n || BUSYBOX_SH_IS_NONE
+       depends on (!BUSYBOX || BUSYBOX_SH_IS_NONE) && !DASH_LINK_SH || ALLYES
+       default (!BUSYBOX || BUSYBOX_SH_IS_NONE) && !DASH_LINK_SH
+       prompt "link to /bin/sh"
+       help
+         Create a link symbolic link "/usr/bin/sh" ("/bin/sh") to
+         "bash".  Select this to use bash as the interpreter for Bourne
+         shell scripts using the canonical "#!/bin/sh" shebang line.
 
 endif
-- 
2.43.0


Reply via email to