← Commit list

b99a52917

Denys Vlasenko
Denys Vlasenko
2025-10-13
SUCCESS Duration: 159s

Subject

busybox: optional --version support

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0
gcc -Wp,-MD,applets/.applet_tables.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer       -o applets/applet_tables applets/applet_tables.c

Build Log

(log yok)

Commit Diff GitHub →

Config.in+7 -0
@@ -204,6 +204,13 @@ config FEATURE_INSTALLER
busybox at runtime to create hard links or symlinks for all the
applets that are compiled into busybox.
+config FEATURE_VERSION
+ bool "Support --version"
+ default y
+ depends on BUSYBOX
+ help
+ Enable 'busybox --version' support.
+
config INSTALL_NO_USR
bool "Don't use /usr"
default n
libbb/appletlib.c+12 -4
@@ -892,14 +892,14 @@ int busybox_main(int argc UNUSED_PARAM, char **argv)
}
if (strcmp(argv[1], "--help") == 0) {
- /* "busybox --help [<applet>]" */
+ /* "busybox --help [APPLET]" */
if (!argv[2]
# if ENABLE_FEATURE_SH_STANDALONE && ENABLE_FEATURE_TAB_COMPLETION
|| strcmp(argv[2], "busybox") == 0 /* prevent getting "No help available" */
# endif
)
goto help;
- /* convert to "<applet> --help" */
+ /* convert to "APPLET --help" */
applet_name = argv[0] = argv[2];
argv[2] = NULL;
if (find_applet_by_name(applet_name) >= 0) {
@@ -907,8 +907,16 @@ int busybox_main(int argc UNUSED_PARAM, char **argv)
xfunc_error_retval = 0;
bb_show_usage();
} /* else: unknown applet, fall through (causes "applet not found" later) */
- } else {
- /* "busybox <applet> arg1 arg2 ..." */
+ }
+# if ENABLE_FEATURE_VERSION
+ else if (!argv[2] && strcmp(argv[1], "--version") == 0) {
+ full_write1_str(bb_banner); /* reuse const string */
+ full_write1_str("\n");
+ return 0;
+ }
+# endif
+ else {
+ /* "busybox APPLET arg1 arg2 ..." */
argv++;
/* We support "busybox /a/path/to/applet args..." too. Allows for
* "#!/bin/busybox"-style wrappers