diff mbox series

[01/31] package/busybox: move the hush config in a fragment

Message ID 20240313091412.20865-1-francois.perrad@gadz.org
State Changes Requested
Headers show
Series [01/31] package/busybox: move the hush config in a fragment | expand

Commit Message

Francois Perrad March 13, 2024, 9:13 a.m. UTC
by this way, the busybox-minimal.config becomes more widely usable

at this time, busybox-minimal.config is the default for no-mmu
so, busybox-hush.fragment must be also a default for no-mmu

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
---
 package/busybox/Config.in              |   1 +
 package/busybox/busybox-hush.fragment  |  51 ++++++++++++
 package/busybox/busybox-minimal.config | 109 +++++++++++++------------
 3 files changed, 107 insertions(+), 54 deletions(-)
 create mode 100644 package/busybox/busybox-hush.fragment

Comments

Yann E. MORIN March 19, 2024, 8:57 p.m. UTC | #1
François, All,

On 2024-03-13 10:13 +0100, Francois Perrad spake thusly:
> by this way, the busybox-minimal.config becomes more widely usable
> 
> at this time, busybox-minimal.config is the default for no-mmu
> so, busybox-hush.fragment must be also a default for no-mmu

Sorry, I am not sure I see the point. Can you elaborate, and respin with
an extended commit log, please?

Regards,
Yann E. MORIN.

> Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
> ---
>  package/busybox/Config.in              |   1 +
>  package/busybox/busybox-hush.fragment  |  51 ++++++++++++
>  package/busybox/busybox-minimal.config | 109 +++++++++++++------------
>  3 files changed, 107 insertions(+), 54 deletions(-)
>  create mode 100644 package/busybox/busybox-hush.fragment
> 
> diff --git a/package/busybox/Config.in b/package/busybox/Config.in
> index 3c2aa515f..819cc2c4c 100644
> --- a/package/busybox/Config.in
> +++ b/package/busybox/Config.in
> @@ -25,6 +25,7 @@ config BR2_PACKAGE_BUSYBOX_CONFIG
>  
>  config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES
>  	string "Additional BusyBox configuration fragment files"
> +	default "package/busybox/busybox-hush.fragment" if !BR2_USE_MMU
>  	help
>  	  A space-separated list of configuration fragment files,
>  	  that will be merged to the main BusyBox configuration file.
> diff --git a/package/busybox/busybox-hush.fragment b/package/busybox/busybox-hush.fragment
> new file mode 100644
> index 000000000..e1ac47cce
> --- /dev/null
> +++ b/package/busybox/busybox-hush.fragment
> @@ -0,0 +1,51 @@
> +# this fragment allows to switch from `ash` to `hush`
> +#   - `ash` is the most complete, it's a derivative of the Debian `dash`
> +#   - `hush` works on no-mmu systems, but its syntax is not "standard"
> +
> +# CONFIG_SH_IS_ASH is not set
> +CONFIG_SH_IS_HUSH=y
> +# CONFIG_SH_IS_NONE is not set
> +
> +# CONFIG_BASH_IS_ASH is not set
> +# CONFIG_BASH_IS_HUSH is not set
> +CONFIG_BASH_IS_NONE=y
> +
> +# CONFIG_SHELL_ASH is not set
> +
> +CONFIG_HUSH=y
> +CONFIG_SHELL_HUSH=y
> +CONFIG_HUSH_BASH_COMPAT=y
> +CONFIG_HUSH_BRACE_EXPANSION=y
> +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
> +CONFIG_HUSH_LINENO_VAR=y
> +CONFIG_HUSH_INTERACTIVE=y
> +CONFIG_HUSH_SAVEHISTORY=y
> +CONFIG_HUSH_JOB=y
> +CONFIG_HUSH_TICK=y
> +CONFIG_HUSH_IF=y
> +CONFIG_HUSH_LOOPS=y
> +CONFIG_HUSH_CASE=y
> +CONFIG_HUSH_FUNCTIONS=y
> +CONFIG_HUSH_LOCAL=y
> +CONFIG_HUSH_RANDOM_SUPPORT=y
> +CONFIG_HUSH_MODE_X=y
> +CONFIG_HUSH_ECHO=y
> +CONFIG_HUSH_PRINTF=y
> +CONFIG_HUSH_TEST=y
> +CONFIG_HUSH_HELP=y
> +CONFIG_HUSH_EXPORT=y
> +CONFIG_HUSH_EXPORT_N=y
> +CONFIG_HUSH_READONLY=y
> +CONFIG_HUSH_KILL=y
> +CONFIG_HUSH_WAIT=y
> +CONFIG_HUSH_COMMAND=y
> +CONFIG_HUSH_TRAP=y
> +CONFIG_HUSH_TYPE=y
> +CONFIG_HUSH_TIMES=y
> +CONFIG_HUSH_READ=y
> +CONFIG_HUSH_SET=y
> +CONFIG_HUSH_UNSET=y
> +CONFIG_HUSH_ULIMIT=y
> +CONFIG_HUSH_UMASK=y
> +CONFIG_HUSH_GETOPTS=y
> +# CONFIG_HUSH_MEMLEAK is not set
> diff --git a/package/busybox/busybox-minimal.config b/package/busybox/busybox-minimal.config
> index 1e7ad1d35..cf53c1598 100644
> --- a/package/busybox/busybox-minimal.config
> +++ b/package/busybox/busybox-minimal.config
> @@ -1115,68 +1115,69 @@ CONFIG_SVOK=y
>  #
>  # Shells
>  #
> -# CONFIG_SH_IS_ASH is not set
> -CONFIG_SH_IS_HUSH=y
> +CONFIG_SH_IS_ASH=y
> +# CONFIG_SH_IS_HUSH is not set
>  # CONFIG_SH_IS_NONE is not set
>  # CONFIG_BASH_IS_ASH is not set
>  # CONFIG_BASH_IS_HUSH is not set
>  CONFIG_BASH_IS_NONE=y
> -# CONFIG_SHELL_ASH is not set
> -# CONFIG_ASH is not set
> -# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
> -# CONFIG_ASH_INTERNAL_GLOB is not set
> -# CONFIG_ASH_BASH_COMPAT is not set
> +CONFIG_SHELL_ASH=y
> +CONFIG_ASH=y
> +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
> +CONFIG_ASH_INTERNAL_GLOB=y
> +CONFIG_ASH_BASH_COMPAT=y
>  # CONFIG_ASH_BASH_SOURCE_CURDIR is not set
> -# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
> -# CONFIG_ASH_JOB_CONTROL is not set
> -# CONFIG_ASH_ALIAS is not set
> -# CONFIG_ASH_RANDOM_SUPPORT is not set
> -# CONFIG_ASH_EXPAND_PRMT is not set
> -# CONFIG_ASH_IDLE_TIMEOUT is not set
> +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y
> +CONFIG_ASH_JOB_CONTROL=y
> +CONFIG_ASH_ALIAS=y
> +CONFIG_ASH_RANDOM_SUPPORT=y
> +CONFIG_ASH_EXPAND_PRMT=y
> +CONFIG_ASH_IDLE_TIMEOUT=y
>  # CONFIG_ASH_MAIL is not set
> -# CONFIG_ASH_ECHO is not set
> -# CONFIG_ASH_PRINTF is not set
> -# CONFIG_ASH_TEST is not set
> -# CONFIG_ASH_HELP is not set
> -# CONFIG_ASH_GETOPTS is not set
> -# CONFIG_ASH_CMDCMD is not set
> +CONFIG_ASH_ECHO=y
> +CONFIG_ASH_PRINTF=y
> +CONFIG_ASH_TEST=y
> +CONFIG_ASH_SLEEP=y
> +CONFIG_ASH_HELP=y
> +CONFIG_ASH_GETOPTS=y
> +CONFIG_ASH_CMDCMD=y
>  # CONFIG_CTTYHACK is not set
> -CONFIG_HUSH=y
> -CONFIG_SHELL_HUSH=y
> -CONFIG_HUSH_BASH_COMPAT=y
> -CONFIG_HUSH_BRACE_EXPANSION=y
> +# CONFIG_HUSH is not set
> +# CONFIG_SHELL_HUSH is not set
> +# CONFIG_HUSH_BASH_COMPAT is not set
> +# CONFIG_HUSH_BRACE_EXPANSION is not set
>  # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
> -CONFIG_HUSH_LINENO_VAR=y
> -CONFIG_HUSH_INTERACTIVE=y
> -CONFIG_HUSH_SAVEHISTORY=y
> -CONFIG_HUSH_JOB=y
> -CONFIG_HUSH_TICK=y
> -CONFIG_HUSH_IF=y
> -CONFIG_HUSH_LOOPS=y
> -CONFIG_HUSH_CASE=y
> -CONFIG_HUSH_FUNCTIONS=y
> -CONFIG_HUSH_LOCAL=y
> -CONFIG_HUSH_RANDOM_SUPPORT=y
> -CONFIG_HUSH_MODE_X=y
> -CONFIG_HUSH_ECHO=y
> -CONFIG_HUSH_PRINTF=y
> -CONFIG_HUSH_TEST=y
> -CONFIG_HUSH_HELP=y
> -CONFIG_HUSH_EXPORT=y
> -CONFIG_HUSH_EXPORT_N=y
> -CONFIG_HUSH_READONLY=y
> -CONFIG_HUSH_KILL=y
> -CONFIG_HUSH_WAIT=y
> -CONFIG_HUSH_COMMAND=y
> -CONFIG_HUSH_TRAP=y
> -CONFIG_HUSH_TYPE=y
> -CONFIG_HUSH_TIMES=y
> -CONFIG_HUSH_READ=y
> -CONFIG_HUSH_SET=y
> -CONFIG_HUSH_UNSET=y
> -CONFIG_HUSH_ULIMIT=y
> -CONFIG_HUSH_UMASK=y
> -CONFIG_HUSH_GETOPTS=y
> +# CONFIG_HUSH_LINENO_VAR is not set
> +# CONFIG_HUSH_INTERACTIVE is not set
> +# CONFIG_HUSH_SAVEHISTORY is not set
> +# CONFIG_HUSH_JOB is not set
> +# CONFIG_HUSH_TICK is not set
> +# CONFIG_HUSH_IF is not set
> +# CONFIG_HUSH_LOOPS is not set
> +# CONFIG_HUSH_CASE is not set
> +# CONFIG_HUSH_FUNCTIONS is not set
> +# CONFIG_HUSH_LOCAL is not set
> +# CONFIG_HUSH_RANDOM_SUPPORT is not set
> +# CONFIG_HUSH_MODE_X is not set
> +# CONFIG_HUSH_ECHO is not set
> +# CONFIG_HUSH_PRINTF is not set
> +# CONFIG_HUSH_TEST is not set
> +# CONFIG_HUSH_HELP is not set
> +# CONFIG_HUSH_EXPORT is not set
> +# CONFIG_HUSH_EXPORT_N is not set
> +# CONFIG_HUSH_READONLY is not set
> +# CONFIG_HUSH_KILL is not set
> +# CONFIG_HUSH_WAIT is not set
> +# CONFIG_HUSH_COMMAND is not set
> +# CONFIG_HUSH_TRAP is not set
> +# CONFIG_HUSH_TYPE is not set
> +# CONFIG_HUSH_TIMES is not set
> +# CONFIG_HUSH_READ is not set
> +# CONFIG_HUSH_SET is not set
> +# CONFIG_HUSH_UNSET is not set
> +# CONFIG_HUSH_ULIMIT is not set
> +# CONFIG_HUSH_UMASK is not set
> +# CONFIG_HUSH_GETOPTS is not set
>  # CONFIG_HUSH_MEMLEAK is not set
>  
>  #
> -- 
> 2.40.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/busybox/Config.in b/package/busybox/Config.in
index 3c2aa515f..819cc2c4c 100644
--- a/package/busybox/Config.in
+++ b/package/busybox/Config.in
@@ -25,6 +25,7 @@  config BR2_PACKAGE_BUSYBOX_CONFIG
 
 config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES
 	string "Additional BusyBox configuration fragment files"
+	default "package/busybox/busybox-hush.fragment" if !BR2_USE_MMU
 	help
 	  A space-separated list of configuration fragment files,
 	  that will be merged to the main BusyBox configuration file.
diff --git a/package/busybox/busybox-hush.fragment b/package/busybox/busybox-hush.fragment
new file mode 100644
index 000000000..e1ac47cce
--- /dev/null
+++ b/package/busybox/busybox-hush.fragment
@@ -0,0 +1,51 @@ 
+# this fragment allows to switch from `ash` to `hush`
+#   - `ash` is the most complete, it's a derivative of the Debian `dash`
+#   - `hush` works on no-mmu systems, but its syntax is not "standard"
+
+# CONFIG_SH_IS_ASH is not set
+CONFIG_SH_IS_HUSH=y
+# CONFIG_SH_IS_NONE is not set
+
+# CONFIG_BASH_IS_ASH is not set
+# CONFIG_BASH_IS_HUSH is not set
+CONFIG_BASH_IS_NONE=y
+
+# CONFIG_SHELL_ASH is not set
+
+CONFIG_HUSH=y
+CONFIG_SHELL_HUSH=y
+CONFIG_HUSH_BASH_COMPAT=y
+CONFIG_HUSH_BRACE_EXPANSION=y
+# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
+CONFIG_HUSH_LINENO_VAR=y
+CONFIG_HUSH_INTERACTIVE=y
+CONFIG_HUSH_SAVEHISTORY=y
+CONFIG_HUSH_JOB=y
+CONFIG_HUSH_TICK=y
+CONFIG_HUSH_IF=y
+CONFIG_HUSH_LOOPS=y
+CONFIG_HUSH_CASE=y
+CONFIG_HUSH_FUNCTIONS=y
+CONFIG_HUSH_LOCAL=y
+CONFIG_HUSH_RANDOM_SUPPORT=y
+CONFIG_HUSH_MODE_X=y
+CONFIG_HUSH_ECHO=y
+CONFIG_HUSH_PRINTF=y
+CONFIG_HUSH_TEST=y
+CONFIG_HUSH_HELP=y
+CONFIG_HUSH_EXPORT=y
+CONFIG_HUSH_EXPORT_N=y
+CONFIG_HUSH_READONLY=y
+CONFIG_HUSH_KILL=y
+CONFIG_HUSH_WAIT=y
+CONFIG_HUSH_COMMAND=y
+CONFIG_HUSH_TRAP=y
+CONFIG_HUSH_TYPE=y
+CONFIG_HUSH_TIMES=y
+CONFIG_HUSH_READ=y
+CONFIG_HUSH_SET=y
+CONFIG_HUSH_UNSET=y
+CONFIG_HUSH_ULIMIT=y
+CONFIG_HUSH_UMASK=y
+CONFIG_HUSH_GETOPTS=y
+# CONFIG_HUSH_MEMLEAK is not set
diff --git a/package/busybox/busybox-minimal.config b/package/busybox/busybox-minimal.config
index 1e7ad1d35..cf53c1598 100644
--- a/package/busybox/busybox-minimal.config
+++ b/package/busybox/busybox-minimal.config
@@ -1115,68 +1115,69 @@  CONFIG_SVOK=y
 #
 # Shells
 #
-# CONFIG_SH_IS_ASH is not set
-CONFIG_SH_IS_HUSH=y
+CONFIG_SH_IS_ASH=y
+# CONFIG_SH_IS_HUSH is not set
 # CONFIG_SH_IS_NONE is not set
 # CONFIG_BASH_IS_ASH is not set
 # CONFIG_BASH_IS_HUSH is not set
 CONFIG_BASH_IS_NONE=y
-# CONFIG_SHELL_ASH is not set
-# CONFIG_ASH is not set
-# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
-# CONFIG_ASH_INTERNAL_GLOB is not set
-# CONFIG_ASH_BASH_COMPAT is not set
+CONFIG_SHELL_ASH=y
+CONFIG_ASH=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_INTERNAL_GLOB=y
+CONFIG_ASH_BASH_COMPAT=y
 # CONFIG_ASH_BASH_SOURCE_CURDIR is not set
-# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
-# CONFIG_ASH_JOB_CONTROL is not set
-# CONFIG_ASH_ALIAS is not set
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-# CONFIG_ASH_EXPAND_PRMT is not set
-# CONFIG_ASH_IDLE_TIMEOUT is not set
+CONFIG_ASH_BASH_NOT_FOUND_HOOK=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+CONFIG_ASH_IDLE_TIMEOUT=y
 # CONFIG_ASH_MAIL is not set
-# CONFIG_ASH_ECHO is not set
-# CONFIG_ASH_PRINTF is not set
-# CONFIG_ASH_TEST is not set
-# CONFIG_ASH_HELP is not set
-# CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_CMDCMD is not set
+CONFIG_ASH_ECHO=y
+CONFIG_ASH_PRINTF=y
+CONFIG_ASH_TEST=y
+CONFIG_ASH_SLEEP=y
+CONFIG_ASH_HELP=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_CMDCMD=y
 # CONFIG_CTTYHACK is not set
-CONFIG_HUSH=y
-CONFIG_SHELL_HUSH=y
-CONFIG_HUSH_BASH_COMPAT=y
-CONFIG_HUSH_BRACE_EXPANSION=y
+# CONFIG_HUSH is not set
+# CONFIG_SHELL_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
 # CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
-CONFIG_HUSH_LINENO_VAR=y
-CONFIG_HUSH_INTERACTIVE=y
-CONFIG_HUSH_SAVEHISTORY=y
-CONFIG_HUSH_JOB=y
-CONFIG_HUSH_TICK=y
-CONFIG_HUSH_IF=y
-CONFIG_HUSH_LOOPS=y
-CONFIG_HUSH_CASE=y
-CONFIG_HUSH_FUNCTIONS=y
-CONFIG_HUSH_LOCAL=y
-CONFIG_HUSH_RANDOM_SUPPORT=y
-CONFIG_HUSH_MODE_X=y
-CONFIG_HUSH_ECHO=y
-CONFIG_HUSH_PRINTF=y
-CONFIG_HUSH_TEST=y
-CONFIG_HUSH_HELP=y
-CONFIG_HUSH_EXPORT=y
-CONFIG_HUSH_EXPORT_N=y
-CONFIG_HUSH_READONLY=y
-CONFIG_HUSH_KILL=y
-CONFIG_HUSH_WAIT=y
-CONFIG_HUSH_COMMAND=y
-CONFIG_HUSH_TRAP=y
-CONFIG_HUSH_TYPE=y
-CONFIG_HUSH_TIMES=y
-CONFIG_HUSH_READ=y
-CONFIG_HUSH_SET=y
-CONFIG_HUSH_UNSET=y
-CONFIG_HUSH_ULIMIT=y
-CONFIG_HUSH_UMASK=y
-CONFIG_HUSH_GETOPTS=y
+# CONFIG_HUSH_LINENO_VAR is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_HUSH_ECHO is not set
+# CONFIG_HUSH_PRINTF is not set
+# CONFIG_HUSH_TEST is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_EXPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_READONLY is not set
+# CONFIG_HUSH_KILL is not set
+# CONFIG_HUSH_WAIT is not set
+# CONFIG_HUSH_COMMAND is not set
+# CONFIG_HUSH_TRAP is not set
+# CONFIG_HUSH_TYPE is not set
+# CONFIG_HUSH_TIMES is not set
+# CONFIG_HUSH_READ is not set
+# CONFIG_HUSH_SET is not set
+# CONFIG_HUSH_UNSET is not set
+# CONFIG_HUSH_ULIMIT is not set
+# CONFIG_HUSH_UMASK is not set
+# CONFIG_HUSH_GETOPTS is not set
 # CONFIG_HUSH_MEMLEAK is not set
 
 #