busybox: update to 1.36.0
authorHannu Nyman <hannu.nyman@iki.fi>
Tue, 3 Jan 2023 21:48:51 +0000 (23:48 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 7 Jan 2023 16:22:54 +0000 (17:22 +0100)
Update busybox to version 1.36.0

* refresh patches (remove the backported upstream fix)
* refresh config

Config refresh:

Refresh commands, run after busybox is first built once:

cd package/utils/busybox/config/
../convert_menuconfig.pl ../../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.36.0
cd ..
./convert_defaults.pl ../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.36.0/.config > Config-defaults.in

Manual edits needed after config refresh:

* Config-defaults.in: OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6

* Config-defaults.in: OpenWrt config TARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)

* Config-defaults.in: OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)

* Config-defaults.in: correct the default ports that get reset
  BUSYBOX_DEFAULT_FEATURE_HTTPD_PORT_DEFAULT    80
  BUSYBOX_DEFAULT_FEATURE_TELNETD_PORT_DEFAULT  23

* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)

* config/shell/Config.in: change at "Options common to all shells" the conditional symbol
  SHELL_ASH --> BUSYBOX_CONFIG_SHELL_ASH
  (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
  Apparently our script does not see the hidden option while
  prepending config options with "BUSYBOX_CONFIG_" which leads to a
  missed dependency when the options are later evaluated.)

* Edit a few Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014f)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
package/utils/busybox/Config-defaults.in
package/utils/busybox/Makefile
package/utils/busybox/config/coreutils/Config.in
package/utils/busybox/config/libbb/Config.in
package/utils/busybox/config/miscutils/Config.in
package/utils/busybox/config/networking/udhcp/Config.in
package/utils/busybox/config/shell/Config.in
package/utils/busybox/patches/001-CVE-2022-30065-awk-fix-use-after-free.patch [deleted file]

index abe6d5431a70d4a61d03edcd30f9201be746b870..7b6cf900335c40f814530f5beac4b6b123510592 100644 (file)
@@ -208,6 +208,15 @@ config BUSYBOX_DEFAULT_PASSWORD_MINLEN
 config BUSYBOX_DEFAULT_MD5_SMALL
        int
        default 1
+config BUSYBOX_DEFAULT_SHA1_SMALL
+       int
+       default 3
+config BUSYBOX_DEFAULT_SHA1_HWACCEL
+       bool
+       default y
+config BUSYBOX_DEFAULT_SHA256_HWACCEL
+       bool
+       default y
 config BUSYBOX_DEFAULT_SHA3_SMALL
        int
        default 1
@@ -298,6 +307,15 @@ config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
 config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
        bool
        default n
+config BUSYBOX_DEFAULT_LOOP_CONFIGURE
+       bool
+       default n
+config BUSYBOX_DEFAULT_NO_LOOP_CONFIGURE
+       bool
+       default n
+config BUSYBOX_DEFAULT_TRY_LOOP_CONFIGURE
+       bool
+       default y
 config BUSYBOX_DEFAULT_FEATURE_SEAMLESS_XZ
        bool
        default n
@@ -860,6 +878,9 @@ config BUSYBOX_DEFAULT_TRUNCATE
        bool
        default y if TARGET_bcm53xx
        default n
+config BUSYBOX_DEFAULT_TSORT
+       bool
+       default n
 config BUSYBOX_DEFAULT_TTY
        bool
        default n
@@ -2162,6 +2183,9 @@ config BUSYBOX_DEFAULT_RUNLEVEL
 config BUSYBOX_DEFAULT_RX
        bool
        default n
+config BUSYBOX_DEFAULT_SEEDRNG
+       bool
+       default n
 config BUSYBOX_DEFAULT_SETFATTR
        bool
        default n
@@ -2174,6 +2198,9 @@ config BUSYBOX_DEFAULT_STRINGS
 config BUSYBOX_DEFAULT_TIME
        bool
        default y
+config BUSYBOX_DEFAULT_TREE
+       bool
+       default n
 config BUSYBOX_DEFAULT_TS
        bool
        default n
@@ -2682,6 +2709,9 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
 config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
        string
        default "/usr/share/udhcpc/default.script"
+config BUSYBOX_DEFAULT_UDHCPC6_DEFAULT_SCRIPT
+       string
+       default ""
 config BUSYBOX_DEFAULT_UDHCPC6
        bool
        default n
@@ -3012,6 +3042,9 @@ config BUSYBOX_DEFAULT_ASH_PRINTF
 config BUSYBOX_DEFAULT_ASH_TEST
        bool
        default y
+config BUSYBOX_DEFAULT_ASH_SLEEP
+       bool
+       default n
 config BUSYBOX_DEFAULT_ASH_HELP
        bool
        default n
index 2861e7d2e942e34b694c343b7156e023e825f50e..9573278945133423d5cb1a94a71988fbc97604d9 100644 (file)
@@ -5,14 +5,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.35.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.36.0
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.busybox.net/downloads \
                http://sources.buildroot.net
-PKG_HASH:=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
+PKG_HASH:=542750c8af7cb2630e201780b4f99f3dcceeb06f505b479ec68241c1e6af61a5
 
 PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
index 835ce7950a2b5183294d42b8357dc529dcb421a2..983740be6ed12b740ef9f9a0d0b8422836295d42 100644 (file)
@@ -653,7 +653,7 @@ config BUSYBOX_CONFIG_SORT
        sort is used to sort lines of text in specified files.
 
 config BUSYBOX_CONFIG_FEATURE_SORT_BIG
-       bool "Full SuSv3 compliant sort (support -ktcbdfiogM)"
+       bool "Full SuSv3 compliant sort (support -ktcbdfioghM)"
        default BUSYBOX_DEFAULT_FEATURE_SORT_BIG
        depends on BUSYBOX_CONFIG_SORT
        help
@@ -851,6 +851,11 @@ config BUSYBOX_CONFIG_TRUNCATE
        help
        truncate truncates files to a given size. If a file does
        not exist, it is created unless told otherwise.
+config BUSYBOX_CONFIG_TSORT
+       bool "tsort (0.7 kb)"
+       default BUSYBOX_DEFAULT_TSORT
+       help
+       tsort performs a topological sort.
 config BUSYBOX_CONFIG_TTY
        bool "tty (3.6 kb)"
        default BUSYBOX_DEFAULT_TTY
index e050c4a9150a3889c6eba73c1822b43bded40861..b3a83b9b0852790b8c8385d989f9976093bea2c4 100644 (file)
@@ -98,21 +98,47 @@ config BUSYBOX_CONFIG_MD5_SMALL
        default BUSYBOX_DEFAULT_MD5_SMALL  # all "fast or small" options default to small
        range 0 3
        help
-       Trade binary size versus speed for the md5sum algorithm.
+       Trade binary size versus speed for the md5 algorithm.
        Approximate values running uClibc and hashing
        linux-2.4.4.tar.bz2 were:
-       value               user times (sec)  text size (386)
-       0 (fastest)         1.1                6144
-       1                   1.4                5392
-       2                   3.0                5088
-       3 (smallest)        5.1                4912
+       value           user times (sec)  text size (386)
+       0 (fastest)     1.1               6144
+       1               1.4               5392
+       2               3.0               5088
+       3 (smallest)    5.1               4912
+
+config BUSYBOX_CONFIG_SHA1_SMALL
+       int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+       default BUSYBOX_DEFAULT_SHA1_SMALL  # all "fast or small" options default to small
+       range 0 3
+       help
+       Trade binary size versus speed for the sha1 algorithm.
+       With FEATURE_COPYBUF_KB=64:
+                       throughput MB/s   size of sha1_process_block64
+       value           486  x86-64       486   x86-64
+       0               440  485          3481  3502
+       1               265  265           641   696
+       2,3             220  210           342   364
+
+config BUSYBOX_CONFIG_SHA1_HWACCEL
+       bool "SHA1: Use hardware accelerated instructions if possible"
+       default BUSYBOX_DEFAULT_SHA1_HWACCEL
+       help
+       On x86, this adds ~590 bytes of code. Throughput
+       is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_CONFIG_SHA256_HWACCEL
+       bool "SHA256: Use hardware accelerated instructions if possible"
+       default BUSYBOX_DEFAULT_SHA256_HWACCEL
+       help
+       On x86, this adds ~1k bytes of code.
 
 config BUSYBOX_CONFIG_SHA3_SMALL
        int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
        default BUSYBOX_DEFAULT_SHA3_SMALL  # all "fast or small" options default to small
        range 0 1
        help
-       Trade binary size versus speed for the sha3sum algorithm.
+       Trade binary size versus speed for the sha3 algorithm.
        SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
        64-bit x86: +270 bytes of code, 45% faster
        32-bit x86: +450 bytes of code, 75% faster
@@ -399,3 +425,25 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
        For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
        at shell prompt will list file named 0xff (single char name
        with char value 255), not file named '?'.
+
+choice
+       prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+       default BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+       help
+       LOOP_CONFIGURE is added to Linux 5.8
+       https://lwn.net/Articles/820408/
+       This allows userspace to completely setup a loop device with a single
+       ioctl, removing the in-between state where the device can be partially
+       configured - eg the loop device has a backing file associated with it,
+       but is reading from the wrong offset.
+
+config BUSYBOX_CONFIG_LOOP_CONFIGURE
+       bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
+
+config BUSYBOX_CONFIG_NO_LOOP_CONFIGURE
+       bool "use LOOP_SET_FD + LOOP_SET_STATUS"
+
+config BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+       bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
+
+endchoice
index ecb83d9647aed852d0abbcaa6f325e55d2ff17b9..e15e318fe07585aa71292ad51ab9c5b7f529f634 100644 (file)
@@ -704,6 +704,13 @@ config BUSYBOX_CONFIG_RX
        default BUSYBOX_DEFAULT_RX
        help
        Receive files using the Xmodem protocol.
+config BUSYBOX_CONFIG_SEEDRNG
+       bool "seedrng (1.3 kb)"
+       default BUSYBOX_DEFAULT_SEEDRNG
+       help
+       Seed the kernel RNG from seed files, meant to be called
+       once during startup, once during shutdown, and optionally
+       at some periodic interval in between.
 config BUSYBOX_CONFIG_SETFATTR
        bool "setfattr (3.7 kb)"
        default BUSYBOX_DEFAULT_SETFATTR
@@ -727,6 +734,11 @@ config BUSYBOX_CONFIG_TIME
        The time command runs the specified program with the given arguments.
        When the command finishes, time writes a message to standard output
        giving timing statistics about this program run.
+config BUSYBOX_CONFIG_TREE
+       bool "tree (0.6 kb)"
+       default BUSYBOX_DEFAULT_TREE
+       help
+       List files and directories in a tree structure.
 config BUSYBOX_CONFIG_TS
        bool "ts (450 bytes)"
        default BUSYBOX_DEFAULT_TS
index ecfa283e23ae34b35571e22d6970432cb4baea57..6757f1efc9c9a672c003c0ff83a86e65824e4e3b 100644 (file)
@@ -93,12 +93,17 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_SANITIZEOPT
 config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
        string "Absolute path to config script"
        default BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
-       depends on BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
+       depends on BUSYBOX_CONFIG_UDHCPC
        help
        This script is called after udhcpc receives an answer. See
        examples/udhcp for a working example. Normally it is safe
        to leave this untouched.
 
+config BUSYBOX_CONFIG_UDHCPC6_DEFAULT_SCRIPT
+       string "Absolute path to config script for IPv6"
+       default BUSYBOX_DEFAULT_UDHCPC6_DEFAULT_SCRIPT
+       depends on BUSYBOX_CONFIG_UDHCPC6
+
 # udhcpc6 config is inserted here:
 config BUSYBOX_CONFIG_UDHCPC6
        bool "udhcpc6 (21 kb)"
index 2b07812109c44324723ce5f20a3cb6871bc63833..a68e9114ef7761174a9642688fb36aa661809610 100644 (file)
@@ -201,6 +201,11 @@ config BUSYBOX_CONFIG_ASH_TEST
        default BUSYBOX_DEFAULT_ASH_TEST
        depends on BUSYBOX_CONFIG_SHELL_ASH
 
+config BUSYBOX_CONFIG_ASH_SLEEP
+       bool "sleep builtin"
+       default BUSYBOX_DEFAULT_ASH_SLEEP
+       depends on BUSYBOX_CONFIG_SHELL_ASH
+
 config BUSYBOX_CONFIG_ASH_HELP
        bool "help builtin"
        default BUSYBOX_DEFAULT_ASH_HELP
diff --git a/package/utils/busybox/patches/001-CVE-2022-30065-awk-fix-use-after-free.patch b/package/utils/busybox/patches/001-CVE-2022-30065-awk-fix-use-after-free.patch
deleted file mode 100644 (file)
index 7dcb9df..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From e63d7cdfdac78c6fd27e9e63150335767592b85e Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 17 Jun 2022 17:45:34 +0200
-Subject: awk: fix use after free (CVE-2022-30065)
-
-fixes https://bugs.busybox.net/show_bug.cgi?id=14781
-
-function                                             old     new   delta
-evaluate                                            3343    3357     +14
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- editors/awk.c       | 3 +++
- testsuite/awk.tests | 6 ++++++
- 2 files changed, 9 insertions(+)
-
---- a/editors/awk.c
-+++ b/editors/awk.c
-@@ -3114,6 +3114,9 @@ static var *evaluate(node *op, var *res)
-               case XC( OC_MOVE ):
-                       debug_printf_eval("MOVE\n");
-+                      /* make sure that we never return a temp var */
-+                      if (L.v == TMPVAR0)
-+                              L.v = res;
-                       /* if source is a temporary string, jusk relink it to dest */
-                       if (R.v == TMPVAR1
-                        && !(R.v->type & VF_NUMBER)
---- a/testsuite/awk.tests
-+++ b/testsuite/awk.tests
-@@ -469,4 +469,10 @@ testing 'awk printf %% prints one %' \
-       "%\n" \
-       '' ''
-+testing 'awk assign while test' \
-+      "awk '\$1==\$1=\"foo\" {print \$1}'" \
-+      "foo\n" \
-+      "" \
-+      "foo"
-+
- exit $FAILCOUNT