From vda.linux at googlemail.com Sat May 2 10:05:32 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Sat, 2 May 2026 12:05:32 +0200 Subject: [git commit] Optimize !ENABLE_SHOW_USAGE config Message-ID: <20260502100654.2F0BE7FB78@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=ead17e7808236be80614d0a8755f4ddad63ab56c branch: https://git.busybox.net/busybox/log/?h=master function old new delta bb_show_usage 6 - -6 Signed-off-by: Denys Vlasenko --- include/libbb.h | 4 +++ libbb/appletlib.c | 84 +++++++++++++++++++++++++++---------------------------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/include/libbb.h b/include/libbb.h index a54f17d49..37f9da59e 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -1574,7 +1574,11 @@ extern smallint logmode; extern uint8_t xfunc_error_retval; extern void (*die_func)(void); void xfunc_die(void) NORETURN FAST_FUNC; +#if !ENABLE_SHOW_USAGE +#define bb_show_usage() xfunc_die() +#else void bb_show_usage(void) NORETURN FAST_FUNC; +#endif void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC; void bb_simple_error_msg(const char *s) FAST_FUNC; void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC; diff --git a/libbb/appletlib.c b/libbb/appletlib.c index 403f5614f..34b74c3df 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -124,57 +124,57 @@ static const char packed_usage[] ALIGN1 = { PACKED_USAGE }; #endif /* FEATURE_COMPRESS_USAGE */ +#if ENABLE_SHOW_USAGE void FAST_FUNC bb_show_usage(void) { - if (ENABLE_SHOW_USAGE) { - ssize_t FAST_FUNC (*full_write_fn)(const char *) = - xfunc_error_retval ? full_write2_str : full_write1_str; -#ifdef SINGLE_APPLET_STR - /* Imagine that this applet is "true". Dont link in printf! */ - const char *usage_string = unpack_usage_messages(); - - if (usage_string) { - if (*usage_string == '\b') { - full_write_fn("No help available\n"); - } else { - full_write_fn("Usage: "SINGLE_APPLET_STR" "); - full_write_fn(usage_string); - full_write_fn("\n"); - } - if (ENABLE_FEATURE_CLEAN_UP) - dealloc_usage_messages((char*)usage_string); - } -#else - const char *p; - const char *usage_string = p = unpack_usage_messages(); - int ap = find_applet_by_name(applet_name); - - if (ap < 0 || usage_string == NULL) - xfunc_die(); - while (ap) { - while (*p++) continue; - ap--; - } - full_write_fn(bb_banner); - full_write_fn(" multi-call binary.\n"); /* common string */ - if (*p == '\b') - full_write_fn("\nNo help available\n"); - else { - full_write_fn("\nUsage: "); - full_write_fn(applet_name); - if (p[0]) { - if (p[0] != '\n') - full_write_fn(" "); - full_write_fn(p); - } + ssize_t FAST_FUNC (*full_write_fn)(const char *) = + xfunc_error_retval ? full_write2_str : full_write1_str; +# ifdef SINGLE_APPLET_STR + /* Imagine that this applet is "true". Dont link in printf! */ + const char *usage_string = unpack_usage_messages(); + + if (usage_string) { + if (*usage_string == '\b') { + full_write_fn("No help available\n"); + } else { + full_write_fn("Usage: "SINGLE_APPLET_STR" "); + full_write_fn(usage_string); full_write_fn("\n"); } if (ENABLE_FEATURE_CLEAN_UP) dealloc_usage_messages((char*)usage_string); -#endif } +# else + const char *p; + const char *usage_string = p = unpack_usage_messages(); + int ap = find_applet_by_name(applet_name); + + if (ap < 0 || usage_string == NULL) + xfunc_die(); + while (ap) { + while (*p++) continue; + ap--; + } + full_write_fn(bb_banner); + full_write_fn(" multi-call binary.\n"); /* common string */ + if (*p == '\b') + full_write_fn("\nNo help available\n"); + else { + full_write_fn("\nUsage: "); + full_write_fn(applet_name); + if (p[0]) { + if (p[0] != '\n') + full_write_fn(" "); + full_write_fn(p); + } + full_write_fn("\n"); + } + if (ENABLE_FEATURE_CLEAN_UP) + dealloc_usage_messages((char*)usage_string); +# endif xfunc_die(); } +#endif int FAST_FUNC find_applet_by_name(const char *name) { From vda.linux at googlemail.com Wed May 13 03:22:37 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 13 May 2026 05:22:37 +0200 Subject: [git commit] Announce 1.38.0 Message-ID: <20260513032319.F0AD486033@busybox.osuosl.org> commit: https://git.busybox.net/busybox-website/commit/?id=2e1e6e14a3af634851c72c8e7780efa21009c779 branch: https://git.busybox.net/busybox-website/log/?h=master Signed-off-by: Denys Vlasenko --- news.html | 344 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) diff --git a/news.html b/news.html index 85986a0..23ca7d1 100644 --- a/news.html +++ b/news.html @@ -17,6 +17,350 @@

+
  • 13 May 2026 -- BusyBox 1.38.0 (unstable) +

    BusyBox 1.38.0. + (git, + patches, + how to add a patch)

    + +

    Sizes of busybox-1.37.0 and busybox-1.38.0 (with equivalent config, static musl build):

    +   text	   data	    bss	    dec	    hex	filename
    +1031155	    559	   4988	1036702	  fd19e	busybox-1.37.0/busybox
    +1037438	    555	   4832	1042825	  fe989	busybox-1.38.0/busybox
    +
    +

    + +

    Changes since previous release: +

    Achill Gilgenast:
    +      adduser: remove preconfigured GECOS full name field
    +
    +Ahmad Fatoum:
    +      lineedit: fix printing lines during tab completion
    +      lineedit: fix left-over print to stdout
    +
    +Alyssa Ross via busybox:
    +      volume_id: volume_id_get_buffer with small FSes
    +
    +Andy Knowles:
    +      sha384sum: new applet
    +
    +Bin Meng:
    +      libbb: Prevent clang from reading the G pointer before it is assigned
    +
    +Christian Franke:
    +      chpst: fix error check of nice(2) call
    +
    +Christian Stewart:
    +      trylink: detect linker flag support for non-GNU linkers
    +
    +Colin McAllister:
    +      cut: fix "-s" flag to omit blank lines
    +
    +David Leonard:
    +      procps: new applet: vmstat
    +
    +Denys Vlasenko:
    +      *: code shrink using sigprocmask2() where appropriate
    +      *: don't use getservbyname, it links in a static buffer
    +      *: placate warnings where strchr/strstr returns constant pointer
    +      *: use is_prefixed_with() where appropriate
    +      *: use safe_waitpid() or wait_any_nohang() where approppriate
    +      *: use xasprintf_inplace() and concat_path_file() where appropriate
    +      Makefile: fix passing of EXTRA_LDLIBS
    +      libbb: add generic "fd polling and I/O" loop, use it in telnetd
    +      libbb: add yescrypt password hashing support
    +      libbb: change define names in SHA-NI code to match kernel source more closely
    +      libbb: factor out HMAC code from TLS
    +      libbb: fix too-narrow variable in procps_read_smaps() causing incorrect sizes
    +      libbb: in DES crypt, error out on invalid salt chars
    +      libbb: introduce and use block-XOR functions
    +      libbb: introduce and use xasprintf_inplace()
    +      libbb: make read_cmdline() replace chars 1..31 with '?', not space
    +      libbb: modify find_executable() to not temporarily write to PATH
    +      libbb: move is_in_supplementary_groups() from test to libbb
    +      libbb: simplify parameter passing in is_in_supplementary_groups()
    +      libbb: much faster concat_path_file()
    +      libbb: shuffle ascii64 code around, shrink i2a64()
    +      libbb: use narrow isqrt() when 64-bit one is not needed (only "factor" uses it)
    +      libbb/dump: much faster formatting of %_u on x86
    +      libbb/archival: make setup_unzip_on_fd() return bytes read if not compressed
    +      archival/libarchive: sanitize filenames on output (prevent control sequence attacks)
    +      archival: disallow path traversals (CVE-2023-39810)
    +      lineedit: fix PS1='\W' for root directory
    +      tls: better error message when TLS record is truncated
    +      tls: document PSTM_64BIT + PSTM_X86_64 optimizations better
    +      tls: eliminate unnecessary ENCRYPT_ON_WRITE, merge tls_get_zeroed_outbuf() with fill_handshake_record_hdr()
    +      tls: implement server code
    +      tls: make ECDHE_RSA work against our client (openssl s_client not yet)
    +      busybox: optional --version support
    +      ssl_server: new applet
    +      ash,hush: allow 0x in arith (bash supports it for 0x$v case when v='')
    +      ash,hush: fix corner cases with backslash-newlines in heredocs
    +      ash,hush: fix race between signal handlers setting bb_got_signal and poll()
    +      ash,hush: empty HISTFILE disables history saving, just as unset one did
    +      ash,hush: update HISTFILESIZE code to be actually useful
    +      ash: JOBSTOPPED can only be set if job control is compiled in - conditionalize code which depends on it
    +      ash: cache more of uid/gid syscalls
    +      ash: change procargs() to match recent dash change
    +      ash: command -v CMD must skip (go to next path) when CMD exists, but is not executable
    +      ash: eval: Add vfork support
    +      ash: eval: Always set exitstatus in evaltree
    +      ash: eval: Reset handler when entering a subshell
    +      ash: fix \ooo octal printout in DEBUG code
    +      ash: fix cmdputs - was showing some variable forms incorrectly
    +      ash: fix fallout of no-more-set commandname
    +      ash: get rid of a static in cmdlookup()/delete_cmd_entry()
    +      ash: implement <<<here_string syntax
    +      ash: jobs: drop unused node parameter in makejob()
    +      ash: jobs: Block signals during tcsetpgrp
    +      ash: make "test -x" use cached groupinfo
    +      ash: move 100 bytes off global .data / .bss, no logic changes
    +      ash: move applet handling out of tryexec() - making it similar to dash
    +      ash: options: Do not set commandname in procargs
    +      ash: parser: Invalid redirections are run-time, not syntax errors
    +      ash: redir: Retry open on EINTR
    +      ash: remove non-standard chdir builtin
    +      ash: rename got_sigchld, doing_jobctl, and INT_ON/OFF to match dash
    +      ash: reuse vstype_suffix[] in debug code, shrink it
    +      ash: unset traps before entering NOEXEC programs after [v]fork
    +      hush: optional alias support
    +      hush: allow nested negation "! ! ! CMD" - bash 5.2.15 allows it
    +      hush: create a macro IS_NULL_WORD to test for null shell word
    +      hush: disentangle interactiveness/job_control setup code
    +      hush: disentangle keyword detection, no logic changes
    +      hush: do not SEGV on if { echo foo; } then { echo bar; } fi
    +      hush: do not save history on xfunc error, it's unsafe
    +      hush: do not segfault on "for </dev/null v in..."
    +      hush: don't save history in subshells; on NOMMU, don't be interactive on reexec
    +      hush: drop ctx_inverted, use pipe->pi_inverted
    +      hush: explain "empty quoted str marker" trick
    +      hush: fix "type ./cat" and "command -v ./cat" to not scan PATH
    +      hush: fix SEGV on "echo << >" and such
    +      hush: fix a corner case in "case" stmt, ctx_dsemicolon is in fact unused
    +      hush: fix memory leak caused by compiler optimizing out a store
    +      hush: fix several syntax corner cases with function definitions
    +      hush: if !JOBS, skip tests which wouldn't work
    +      hush: implement <<<here_string syntax
    +      hush: recognize "function FUNC { cmd; }" syntax
    +      hush: make "test -x" use cached groupinfo
    +      hush: optimization in set_local_var()
    +      hush: optimization: do not glob words "[" and "[["
    +      hush: optimize decoding of $'str' - avoid extra function call if we can
    +      hush: remove always-true conditional
    +      hush: remove the is_blank dance
    +      hush: remove two strchr's from the hottest parsing loop
    +      hush: rename hush_exit to save_history_run_exit_trap_and_exit, sigexit to restore_ttypgrp_and_killsig_or__exit
    +      hush: shrink i_getch, rename two functions
    +      hush: shrink syntax error handling
    +      hush: test for, and disallow several invalid syntaxes
    +      hush: with --login, errors in /etc/profile must not exit shell
    +      hush: ~5% faster parsing of typical shell scripts
    +      awk: use more understandable form of "split-globals" trick
    +      bootchartd: check the result of opendir("/proc")
    +      chrt: support passing `-p 0` to operate on self
    +      cmp: fix -n causing all diffs to be output, implement size suffixes for SKIP
    +      coreutils: fixes for coreutils/id_test.sh script
    +      cp: fix `cp -aT` overwriting symlink to directories
    +      cpio: error out if the file to be achived is >=4GB
    +      cpio: fix a bug (wrong free() address) in !FEATURE_TAR_LONG_OPTIONS config
    +      cryptpw: -m sha512crypt must also be accepted
    +      cryptpw: fix detection of crypt algo from salt (was broken if default isn't DES)
    +      cut: "it's legal to pass an empty list" seems to be untrue
    +      cut: "orig_line" is redundant, remove it
    +      cut: allocate "printed" only if OPT_CHAR or OPT_BYTE
    +      cut: comment out code which seems to be not needed
    +      cut: disallow -f '' and -f '-'
    +      cut: fix "echo 1.2 | cut -d. -f1,3" (print "1", not "1.")
    +      cut: fix -F n-m to match toybox
    +      cut: fix -d$'\n' --output-delimiter=@@ behavior
    +      cut: fix handling of -d ''
    +      cut: fix up -D/-s behavior with -F
    +      cut: implement --output-delimiter
    +      cut: localize 'spos' variable, convert !NUMVAR to NUMVAR == 0
    +      cut: prevent infinite loop if -F REGEX matches empty delimiter
    +      cut: remove unnecessary initialization of regmatch_t
    +      cut: rename "cut_lists" to "cut_list"
    +      cut: shorten error messages on bad syntax
    +      cut: simplify OPT_ names, eliminate one variable
    +      cut: simplify getopt32 code
    +      cut: terminate cut_list[] so that we don't need "size of the array" variable
    +      cut: we can't get empty cut_list[], remove the check for that
    +      cut: with -F, do not regcomp() pattern for every file
    +      dd: fix overflow for very large count/seek/skip values
    +      df: -k overrides block size to 1k even if $POSIXLY_CORRECT
    +      fdisk: comment out "not a multiple of 512 bytes" warning
    +      fdisk: eliminate static variables, fix GPT disk size (32x32->32 overflow)
    +      fdisk: fix spurious warning about zero unused sectors
    +      fdisk: implement -t PARTTYPE
    +      fdisk: several fixes for 4K sector size
    +      fdisk: simplify start/len calculations for Sun labels
    +      fdisk: uncomment -s support
    +      hexdump: accept hex numbers in -n, closes 16195
    +      httpd: add -M MAXCONN - do not accept unlimited number of connections
    +      httpd: allow http2 requests if proxying, tighten METHOD checks
    +      httpd: allow static files in /cgi-bin/, do not search for interpreter twice
    +      httpd: do not force clean connection termination on write errors and timeouts
    +      httpd: expand logging: now can see what CGIs are started
    +      httpd: fix compilation script of httpd_ratelimit_cgi.c
    +      httpd: handle bare "Location: URL" redirects from CGIs
    +      httpd: implement POSTDATA read timeout, and -K KILLSECS CGI lifetime control
    +      httpd: make timeout messages less confusing
    +      httpd: optimize header reading timeout code
    +      httpd: reject request line and headers with control chars
    +      httpd: remove one close() from main loop
    +      httpd: stop disabling/enabling SIGHUP in every child
    +      httpd: simplify CGI code a bit, add a bunch of TODOs and FIXMEs
    +      httpd: simplify CGI headers handling, check "HTTP/1.1" prefix, not just "HTTP"
    +      httpd: smarter handling of CGI's "Status: " header
    +      httpd: time out data writes after 60 seconds of no progress
    +      httpd: when reading headers, abort if they are too long
    +      httpd: optimize example CGIs
    +      httpd: do not use a global variable in index.cgi
    +      networking/httpd_indexcgi.c: non-mallocing version
    +      networking/httpd_ratelimit_cgi.c: new example CGI handler
    +      ip route: make cache printing a bit more similar to upstream
    +      last: fix ignoring the first login entry
    +      less: do not retry reads of stdin if got EAGAIN
    +      less: fix ":d" command
    +      less: improve O_NONBLOCK manipulations on stdin
    +      less: make read error reporting actually visible
    +      ls: don't do unnecessary tty operations when called from ftpd
    +      ls: fix -Q to match GNU
    +      ls: implement -q, fix -w0, reduce startup time
    +      ls: lack of -q should not suppress -Q
    +      ls: restore functionality of --color
    +      man: fix following links if run inside manpage dir
    +      netstat,pscan: don't use getservbyport(), it links in a static buffer
    +      nsenter,unshare: don't use xvfork_parent_waits_and_exits(), it SEGVs on ppc64le
    +      ntpd: replace two bb_info_msg's with bb_error_msg
    +      ntpd: set tmx.maxerror properly - avoid STA_UNSYNC
    +      pgrep/pkill: fix -x to also match comm field
    +      pmap: increase max handled command line length to 4k
    +      rpm2cpio: extract cpio even if compression is not known
    +      runsv: fix open error check (fd < -1 should be fd < 0)
    +      sestatus: fix potential segfault
    +      sha3sum: add -aBITS tests
    +      showkey: make -a, -k, -s mutually exclusive
    +      sulogin: set ^C to SIG_DFL before execing the shell
    +      tar: strip unsafe hardlink components - GNU tar does the same
    +      tar: unicode fix
    +      telnet: rewrite to use ioloop()
    +      telnetd: correct handling of screen sizes with any dimension equal to 255
    +      telnetd: do close pty when network read returns EOF; try to cause EOF-on-read
    +      telnetd: do not send stray \r\n before /etc/issue.net
    +      telnetd: do not wait for more input after 10-byte NAWS is received
    +      telnetd: fix handshake: had one wrong, but harmless element
    +      telnetd: if vfork in make_new_session() fails, do close socket
    +      test: -x can return 0/1 early if all X bits are the same
    +      test: Invert return value of test_eaccess and rename it to test_st_mode
    +      tftp: use bb_error_msg instead of info_msg for a debug message
    +      top,pmap: do not use common code for reading /proc/PID/smaps
    +      top,pmap: speed up /smaps parsing
    +      top: consistently NOT use the last column of the display
    +      top: disentangle printing logic
    +      top: do not rescan processes on second 's'
    +      top: fix display of very large VSZ
    +      top: improve response time to keyboard input
    +      top: make uppercase 'S' walk topmem in opposite direction
    +      top: reduce flicker: redraw screen with "clear to EOL" commands, not one "clear screen"
    +      top: show RSS instead of VIRT, virtual mapped size is often meaningless
    +      top: simplify command line reading
    +      udhcpc6: check the size of D6_OPT_IAPREFIX option
    +      udhcpc6: fix buffer overflow
    +      udhcpd: send DHCPOFFERs as unicast (unless clients specifically asks for bcast)
    +      uuidgen: move UUID formatting to libbb
    +      vi: code shrink, optimize: do not call count_lines() unless needed
    +      vi: fix ":list" command
    +      vi: fix "s /find/repl" with whitespace before /
    +      vi: warn about range in ':!' command
    +      volume_id: improve handling of too-small (usually zero-byte or erroring) blockdevs
    +      watch: implement -x
    +      xxd: fix -pANYTHING handling (-pc50 does not mean -p -c50)
    +
    +Giorgi Tchankvetadze:
    +      networking/udhcp: fix typo in comment
    +      cmp: stop skipping bytes if EOF is reached
    +
    +Grant Erickson:
    +      syslogd: Fix 'OPT_locallog' check regression in 'syslogd_main'
    +
    +Hajime Tazaki:
    +      hush: fix G.argv0_for_re_execing to avoid endless loop
    +
    +J. Neusch??fer:
    +      runit: fix setuidgid help text
    +
    +Ladislav Michl:
    +      date: return failure exit code on clock_settime error
    +
    +Laurent Bercot:
    +      udhcpc6: improvements
    +
    +Martin Storsj??:
    +      md5/sha1sum: Honor the -b flag in the output
    +
    +Michael Glembotzki:
    +      ntpd: Raise MAXDIST to 3s for better tolerance and consistency with chrony
    +
    +Natanael Copa:
    +      hexdump: fix regression with -n4 -e '"%u"'
    +
    +Noelle Leigh:
    +      docs: Add links to cmd description from cmd list
    +
    +Osama Abdelkader:
    +      lsblk: new applet
    +
    +Osama Abdelkader via busybox:
    +      util-linux: add minimal uuidgen implementation
    +
    +Radoslav Kolev:
    +      hexdump: fix regression for uint16 on big endian systems
    +      od: make -B test little endian only, add variant for big endian
    +      hexdump: add tests for %x, handle little/big endian properly
    +      tar: only strip unsafe components from hardlinks, not symlinks
    +
    +Ron Yorston:
    +      libbb: use full_write1_str() to shrink busybox_main()
    +      libbb: send usage messages to correct stream
    +      ed: fix line insertion before current line. Closes 15081
    +      lineedit: use stdout for shell history builtin
    +      ash: reject unknown long options
    +      libbb: tidy argument checks in getopt32()
    +      cut: improve detection of invalid ranges
    +      shell: improve bash compatibility of read built-in
    +      paste: fix output when file lengths differ
    +      ash: fix here strings causing segfault in function invocation
    +      ash: fix help builtin and tab completion of builtins
    +
    +Rudi Heitbaum:
    +      libbb: fix sha1 on !x86 if CONFIG_SHA1_HWACCEL=y
    +
    +Sam James:
    +      fixdep: add fstat error handling
    +
    +Sertonix:
    +      cpio: map -F to --file long option
    +
    +S??bastien Parisot:
    +      init: improve log message when a process exits: show exit code
    +
    +Thomas Devoogdt:
    +      networking/libiproute/iplink.c: fix support for older kernels
    +
    +Valentin Lab:
    +      crond: reap orphaned grandchildren to prevent zombie buildup
    +
    +Wouter Franken:
    +      libbb/loop: fix existence check for LOOP_CONFIGURE ioctl
    +
    +Zhou Siqi:
    +      udhcpc6: generate a consistent IAID
    +
    +

    +
  • + +
  • 27 September 2024 -- BusyBox 1.37.0 (unstable)

    BusyBox 1.37.0. (git, From vda.linux at googlemail.com Wed May 13 02:20:15 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 13 May 2026 04:20:15 +0200 Subject: [git commit] Bump version to 1.38.0 Message-ID: <20260513032448.D8FE686033@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=fc71374dfccd46448c62947269a35f1420d7ee28 branch: https://git.busybox.net/busybox/log/?h=master Signed-off-by: Denys Vlasenko --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3af11c0e6..13488b723 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 1 PATCHLEVEL = 38 SUBLEVEL = 0 -EXTRAVERSION = .git +EXTRAVERSION = NAME = Unnamed # *DOCUMENTATION* From vda.linux at googlemail.com Wed May 13 03:24:28 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 13 May 2026 05:24:28 +0200 Subject: [git commit] Start 1.39.0 development cycle Message-ID: <20260513032448.E083C86035@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=c83394922eaac166c7c616fde08eaeb88abe2cbd branch: https://git.busybox.net/busybox/log/?h=master Signed-off-by: Denys Vlasenko --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 13488b723..c6c6cecc1 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 1 -PATCHLEVEL = 38 +PATCHLEVEL = 39 SUBLEVEL = 0 -EXTRAVERSION = +EXTRAVERSION = .git NAME = Unnamed # *DOCUMENTATION* From vda.linux at googlemail.com Thu May 14 14:22:40 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Thu, 14 May 2026 16:22:40 +0200 Subject: [git commit] hush: placate warning: 'print_pfx_escaped_nl' defined but not used Message-ID: <20260514142418.5866286228@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=0309c029800c9847df1c1514a4c0bfe34ad3066c branch: https://git.busybox.net/busybox/log/?h=master Signed-off-by: Denys Vlasenko --- shell/hush.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shell/hush.c b/shell/hush.c index dcc6b2239..d1e954485 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -11835,6 +11835,8 @@ static void print_escaped(const char *s) putchar('"'); } while (*s); } +#endif +#if ENABLE_HUSH_EXPORT || ENABLE_HUSH_READONLY || ENABLE_HUSH_SET || ENABLE_HUSH_ALIAS static void print_pfx_escaped_nl(const char *pfx, const char *s) { const char *p = strchr(s, '='); From vda.linux at googlemail.com Thu May 14 14:08:13 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Thu, 14 May 2026 16:08:13 +0200 Subject: [git commit] tls: use bb_simple_error_msg where appropriate Message-ID: <20260514142416.1FCA986226@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=8fc70b52e685bb84303507fcb4879023d3d80b21 branch: https://git.busybox.net/busybox/log/?h=master Signed-off-by: Denys Vlasenko --- networking/tls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/networking/tls.c b/networking/tls.c index a75642045..91172f8bc 100644 --- a/networking/tls.c +++ b/networking/tls.c @@ -2729,7 +2729,7 @@ static void send_server_key_exchange(tls_state_t *tls) sig_len = privRsaEncryptSignedElement(NULL, &tls->hsd->rsa_priv_key, hash, 32, p + 2, 512, NULL); if (sig_len < 0) { - bb_error_msg_and_die("RSA signature failed"); + bb_simple_error_msg_and_die("RSA signature failed"); } /* Signature length (2 bytes, big-endian) */ @@ -2958,7 +2958,7 @@ static char *decode_base64_or_die(char *dst, const char *src) { char *dst_end = decode_base64(dst, &src); if (*src != '\0') - bb_error_msg_and_die("base64 decode error"); + bb_simple_error_msg_and_die("base64 decode error"); return dst_end; } From vda.linux at googlemail.com Thu May 14 14:26:10 2026 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Thu, 14 May 2026 16:26:10 +0200 Subject: [git commit] testing stripts: allow to skip "awk gsub erroneous word start match" test Message-ID: <20260514142722.2EA2C86226@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=244c0a01eece537e9d7e8318a5c320a836cc604b branch: https://git.busybox.net/busybox/log/?h=master Signed-off-by: Denys Vlasenko --- make_single_applets.sh | 4 ++-- scripts/randomtest.loop | 10 +++++++--- testsuite/awk.tests | 3 ++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/make_single_applets.sh b/make_single_applets.sh index 7df53397e..19591c348 100755 --- a/make_single_applets.sh +++ b/make_single_applets.sh @@ -6,7 +6,7 @@ # All other options which chose general bbox config, applet features, etc, # are not modified for the builds. -makeopts="-j9" +test "$MAKEOPS" || export MAKEOPTS="-j`nproc`" # The list of all applet config symbols test -f include/applets.h || { echo "No include/applets.h file"; exit 1; } @@ -62,7 +62,7 @@ for app; do fail=$((fail+1)) echo "Config error for ${app}" mv .config busybox_config_${app} - elif ! make $makeopts >>busybox_make_${app}.log 2>&1; then + elif ! make $MAKEOPTS >>busybox_make_${app}.log 2>&1; then fail=$((fail+1)) grep -i -e error: -e warning: busybox_make_${app}.log echo "Build error for ${app}" diff --git a/scripts/randomtest.loop b/scripts/randomtest.loop index d7a6a49ae..6bc193c92 100755 --- a/scripts/randomtest.loop +++ b/scripts/randomtest.loop @@ -4,6 +4,7 @@ run_testsuite=false run_testsuite=true # See testsuite/README: export SKIP_KNOWN_BUGS=1 +#export SKIP_KNOWN_BUG_AWK_WORDMATCH=1 #export SKIP_INTERNET_TESTS=1 # See testsuite/mount.tests: export SKIP_MOUNT_MAND_TESTS=1 @@ -11,6 +12,9 @@ export SKIP_MOUNT_MAND_TESTS=1 run_single_test=false run_single_test=true +stop_on_failure=false +stop_on_failure=true + export LIBC="uclibc" export CROSS_COMPILER_PREFIX="i686-" export MAKEOPTS="-j9" @@ -35,7 +39,7 @@ while sleep 1; do if ! "$1/scripts/randomtest" "$1" "$dir" >/dev/null; then mv -- "$dir" "failed.$dir" echo "Failed build in: failed.$dir" - exit 1 # you may comment this out... + $stop_on_failure && exit 1 let fail++ continue fi @@ -48,7 +52,7 @@ while sleep 1; do if test $? != 0; then echo "Failed runtest in $dir" grep ^FAIL -- "$dir/testsuite/runtest.log" - exit 1 # you may comment this out... + $stop_on_failure && exit 1 let fail++ continue fi @@ -71,7 +75,7 @@ while sleep 1; do ) if test $? != 0; then echo "Failed make_single_applets.sh in $dir" - exit 1 # you may comment this out... + $stop_on_failure && exit 1 let fail++ continue fi diff --git a/testsuite/awk.tests b/testsuite/awk.tests index be25f6696..df1078bdb 100755 --- a/testsuite/awk.tests +++ b/testsuite/awk.tests @@ -612,7 +612,8 @@ b # Currently we use REG_STARTEND ("This flag is a BSD extension, not present in POSIX") # to implement the code to handle this correctly, but if your libc has no REG_STARTEND, # the alternative code mishandles this case. -testing 'awk gsub erroneous word start match' \ +test x"$SKIP_KNOWN_BUG_AWK_WORDMATCH" = x"" \ +&& testing 'awk gsub erroneous word start match' \ "awk 'BEGIN { a=\"abc\"; gsub(/\