Browse Source

- busybox: bump version to 1.34.1

master
vanhofen 2 years ago
parent
commit
fcbd3bec50
  1. 2
      package/busybox/busybox.mk
  2. 43
      package/busybox/files/busybox-minimal.config
  3. 162
      package/busybox/patches/busybox-insmod-hack.patch

2
package/busybox/busybox.mk

@ -4,7 +4,7 @@
#
################################################################################
BUSYBOX_VERSION = 1.31.1
BUSYBOX_VERSION = 1.34.1
BUSYBOX_DIR = busybox-$(BUSYBOX_VERSION)
BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2
BUSYBOX_SITE = https://busybox.net/downloads

43
package/busybox/files/busybox-minimal.config

@ -1,7 +1,7 @@
#
# Automatically generated make config: do not edit
# Busybox version: 1.31.1
# Tue Dec 3 01:31:01 2019
# Busybox version: 1.34.1
# Mon May 9 01:34:01 2022
#
CONFIG_HAVE_DOT_CONFIG=y
@ -36,7 +36,6 @@ CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
# CONFIG_FEATURE_CLEAN_UP is not set
CONFIG_FEATURE_SYSLOG_INFO=y
CONFIG_FEATURE_SYSLOG=y
CONFIG_PLATFORM_LINUX=y
#
# Build Options
@ -55,6 +54,7 @@ CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
# CONFIG_USE_PORTABLE_CODE is not set
# CONFIG_STACK_OPTIMIZATION_386 is not set
CONFIG_STATIC_LIBGCC=y
#
# Installation Options ("make install" behavior)
@ -76,6 +76,7 @@ CONFIG_PREFIX="/home/vanhofen/ni/buildsystem/root"
# CONFIG_DEBUG_SANITIZE is not set
# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
# CONFIG_WARN_SIMPLE_MSG is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
@ -206,11 +207,13 @@ CONFIG_CHOWN=y
CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
CONFIG_CHROOT=y
# CONFIG_CKSUM is not set
# CONFIG_CRC32 is not set
# CONFIG_COMM is not set
CONFIG_CP=y
CONFIG_FEATURE_CP_LONG_OPTIONS=y
# CONFIG_FEATURE_CP_REFLINK is not set
CONFIG_CUT=y
CONFIG_FEATURE_CUT_REGEX=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
# CONFIG_FEATURE_DATE_NANO is not set
@ -315,7 +318,6 @@ CONFIG_TEST2=y
# CONFIG_FEATURE_TEST_64 is not set
# CONFIG_TIMEOUT is not set
# CONFIG_TOUCH is not set
# CONFIG_FEATURE_TOUCH_NODEREF is not set
# CONFIG_FEATURE_TOUCH_SUSV3 is not set
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
@ -330,14 +332,15 @@ CONFIG_UNIQ=y
# CONFIG_UNLINK is not set
CONFIG_USLEEP=y
# CONFIG_UUDECODE is not set
# CONFIG_BASE32 is not set
# CONFIG_BASE64 is not set
# CONFIG_UUENCODE is not set
CONFIG_WC=y
# CONFIG_FEATURE_WC_LARGE is not set
# CONFIG_WHOAMI is not set
# CONFIG_WHO is not set
# CONFIG_W is not set
# CONFIG_USERS is not set
# CONFIG_WHOAMI is not set
CONFIG_YES=y
#
@ -418,6 +421,7 @@ CONFIG_VI=y
CONFIG_FEATURE_VI_MAX_LEN=4096
CONFIG_FEATURE_VI_8BIT=y
CONFIG_FEATURE_VI_COLON=y
CONFIG_FEATURE_VI_COLON_EXPAND=y
CONFIG_FEATURE_VI_YANKMARK=y
CONFIG_FEATURE_VI_SEARCH=y
CONFIG_FEATURE_VI_REGEX_SEARCH=y
@ -431,6 +435,7 @@ CONFIG_FEATURE_VI_WIN_RESIZE=y
CONFIG_FEATURE_VI_UNDO=y
CONFIG_FEATURE_VI_UNDO_QUEUE=y
CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
CONFIG_FEATURE_VI_VERBOSE_STATUS=y
CONFIG_FEATURE_ALLOW_EXEC=y
#
@ -458,6 +463,7 @@ CONFIG_FEATURE_FIND_SIZE=y
CONFIG_FEATURE_FIND_PRUNE=y
CONFIG_FEATURE_FIND_QUIT=y
# CONFIG_FEATURE_FIND_DELETE is not set
CONFIG_FEATURE_FIND_EMPTY=y
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
# CONFIG_FEATURE_FIND_CONTEXT is not set
@ -496,7 +502,7 @@ CONFIG_FEATURE_KILL_DELAY=0
# CONFIG_FEATURE_INIT_SYSLOG is not set
# CONFIG_FEATURE_INIT_QUIET is not set
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_INIT_TERMINAL_TYPE="linux"
CONFIG_INIT_TERMINAL_TYPE=""
# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set
#
@ -507,10 +513,10 @@ CONFIG_USE_BB_PWD_GRP=y
# CONFIG_USE_BB_SHADOW is not set
CONFIG_USE_BB_CRYPT=y
# CONFIG_USE_BB_CRYPT_SHA is not set
# CONFIG_ADDGROUP is not set
# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
# CONFIG_ADD_SHELL is not set
# CONFIG_REMOVE_SHELL is not set
# CONFIG_ADDGROUP is not set
# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
# CONFIG_ADDUSER is not set
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=0
@ -617,7 +623,6 @@ CONFIG_FSTRIM=y
# CONFIG_GETOPT is not set
# CONFIG_FEATURE_GETOPT_LONG is not set
# CONFIG_HEXDUMP is not set
# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
# CONFIG_HD is not set
# CONFIG_XXD is not set
# CONFIG_HWCLOCK is not set
@ -688,6 +693,7 @@ CONFIG_RENICE=y
# CONFIG_SWITCH_ROOT is not set
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
# CONFIG_FEATURE_TASKSET_CPULIST is not set
# CONFIG_UEVENT is not set
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
@ -704,6 +710,7 @@ CONFIG_FEATURE_MOUNT_LOOP=y
# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
# CONFIG_FEATURE_VOLUMEID_EROFS is not set
# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_F2FS is not set
@ -731,6 +738,7 @@ CONFIG_FEATURE_MOUNT_LOOP=y
# Miscellaneous Utilities
#
# CONFIG_ADJTIMEX is not set
# CONFIG_ASCII is not set
CONFIG_BBCONFIG=y
CONFIG_FEATURE_COMPRESS_BBCONFIG=y
# CONFIG_BC is not set
@ -764,10 +772,10 @@ CONFIG_CRONTAB=y
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_DEVMEM is not set
# CONFIG_FBSPLASH is not set
# CONFIG_FLASHCP is not set
# CONFIG_FLASH_ERASEALL is not set
CONFIG_FLASH_LOCK=y
CONFIG_FLASH_UNLOCK=y
# CONFIG_FLASHCP is not set
# CONFIG_HDPARM is not set
# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
@ -801,6 +809,7 @@ CONFIG_MAKEDEVS=y
CONFIG_FEATURE_MAKEDEVS_TABLE=y
# CONFIG_MAN is not set
# CONFIG_MICROCOM is not set
# CONFIG_MIM is not set
# CONFIG_MT is not set
# CONFIG_NANDWRITE is not set
# CONFIG_NANDDUMP is not set
@ -816,15 +825,16 @@ CONFIG_STRINGS=y
CONFIG_TIME=y
# CONFIG_TS is not set
# CONFIG_TTYSIZE is not set
CONFIG_UBIRENAME=y
# CONFIG_UBIATTACH is not set
# CONFIG_UBIDETACH is not set
# CONFIG_UBIMKVOL is not set
# CONFIG_UBIRMVOL is not set
# CONFIG_UBIRSVOL is not set
# CONFIG_UBIUPDATEVOL is not set
CONFIG_UBIRENAME=y
# CONFIG_VOLNAME is not set
# CONFIG_WATCHDOG is not set
# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set
#
# Networking Utilities
@ -862,6 +872,10 @@ CONFIG_HOSTNAME=y
# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
# CONFIG_FEATURE_HTTPD_PROXY is not set
# CONFIG_FEATURE_HTTPD_GZIP is not set
# CONFIG_FEATURE_HTTPD_ETAG is not set
# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set
# CONFIG_FEATURE_HTTPD_DATE is not set
# CONFIG_FEATURE_HTTPD_ACL_IP is not set
CONFIG_IFCONFIG=y
CONFIG_FEATURE_IFCONFIG_STATUS=y
# CONFIG_FEATURE_IFCONFIG_SLIP is not set
@ -959,6 +973,7 @@ CONFIG_TELNETD=y
# CONFIG_WGET is not set
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
# CONFIG_FEATURE_WGET_FTP is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
# CONFIG_FEATURE_WGET_HTTPS is not set
@ -984,6 +999,7 @@ CONFIG_UDHCPC_DEFAULT_SCRIPT="/share/udhcpc/default.script"
#
# Common options for DHCP applets
#
CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0"
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=0
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
@ -1091,6 +1107,7 @@ CONFIG_SH_IS_ASH=y
CONFIG_BASH_IS_ASH=y
# CONFIG_BASH_IS_HUSH is not set
# CONFIG_BASH_IS_NONE is not set
CONFIG_SHELL_ASH=y
CONFIG_ASH=y
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
CONFIG_ASH_INTERNAL_GLOB=y
@ -1111,10 +1128,11 @@ CONFIG_ASH_GETOPTS=y
# CONFIG_ASH_CMDCMD is not set
# CONFIG_CTTYHACK is not set
# 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_LINENO_VAR is not set
# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set
# 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
@ -1177,6 +1195,7 @@ CONFIG_FEATURE_ROTATE_LOGFILE=y
CONFIG_FEATURE_REMOTE_LOG=y
# CONFIG_FEATURE_SYSLOGD_DUP is not set
# CONFIG_FEATURE_SYSLOGD_CFG is not set
# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
CONFIG_FEATURE_IPC_SYSLOG=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16

162
package/busybox/patches/busybox-insmod-hack.patch

@ -1,162 +0,0 @@
diff --git a/modutils/Config.src b/modutils/Config.src
index 9b76c83..c7579c5 100644
--- a/modutils/Config.src
+++ b/modutils/Config.src
@@ -166,7 +166,7 @@ config FEATURE_MODUTILS_SYMBOLS
config DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
- depends on DEPMOD || MODPROBE || MODINFO
+ depends on DEPMOD || MODPROBE || MODINFO || INSMOD
help
Directory that contains kernel modules.
Defaults to "/lib/modules"
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 8526979..d36acc4 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -45,11 +45,42 @@
//usage: )
//usage:#endif
+#include <sys/utsname.h>
+static char *m_filename;
+static char *m_fullName;
+
+static int FAST_FUNC check_module_name_match(const char *filename,
+ struct stat *statbuf UNUSED_PARAM,
+ void *userdata, int depth UNUSED_PARAM)
+{
+ char *fullname = (char *) userdata;
+ char *tmp;
+
+ if (fullname[0] == '\0')
+ return FALSE;
+
+ tmp = bb_get_last_path_component_nostrip(filename);
+ if (strcmp(tmp, fullname) == 0) {
+ /* Stop searching if we find a match */
+ m_filename = xstrdup(filename);
+ return FALSE;
+ }
+ return TRUE;
+}
+
int insmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int insmod_main(int argc UNUSED_PARAM, char **argv)
{
char *filename;
int rc;
+int len;
+char *tmp;
+char *tmp2;
+int k_version = 0;
+struct stat st;
+struct utsname uts;
+char *m_name;
+FILE *fp;
/* Compat note:
* 2.6 style insmod has no options and required filename
@@ -68,9 +99,99 @@ int insmod_main(int argc UNUSED_PARAM, char **argv)
if (!filename)
bb_show_usage();
- rc = bb_init_module(filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
+ /* Grab the module name */
+ tmp = xstrdup(filename);
+ len = strlen(filename);
+
+ if (uname(&uts) == 0) {
+ if (uts.release[0] == '2') {
+ k_version = uts.release[2] - '0';
+ }
+ }
+
+ if (k_version > 4 && len > 3 && tmp[len - 3] == '.'
+ && tmp[len - 2] == 'k' && tmp[len - 1] == 'o'
+ ) {
+ len -= 3;
+ tmp[len] = '\0';
+ } else
+ if (len > 2 && tmp[len - 2] == '.' && tmp[len - 1] == 'o') {
+ len -= 2;
+ tmp[len] = '\0';
+ }
+
+ if (k_version > 4)
+ m_fullName = xasprintf("%s.ko", tmp);
+ else
+ m_fullName = xasprintf("%s.o", tmp);
+
+ if (!m_name) {
+ m_name = tmp;
+ }
+ free(tmp);
+
+ /* first look in /var/lib/modules */
+ tmp2 = alloca(strlen(m_fullName) + sizeof("/var/lib/modules/"));
+ strcpy(tmp2, "/var/lib/modules/");
+ strcat(tmp2, m_fullName);
+ if (stat(tmp2, &st) >= 0 && S_ISREG(st.st_mode) && (fp = fopen(tmp2, "r")) != NULL) {
+ m_filename = xstrdup(tmp2);
+ printf("insmod: preferring module %s\n", m_filename);
+ } else
+ /* Get a filedesc for the module. Check that we have a complete path */
+ if (stat(filename, &st) < 0 || !S_ISREG(st.st_mode)
+ || (fp = fopen_for_read(filename)) == NULL
+ ) {
+ /* Hmm. Could not open it. First search under /lib/modules/`uname -r`,
+ * but do not error out yet if we fail to find it... */
+ if (k_version) { /* uname succeedd */
+ char *module_dir;
+ char *tmdn;
+
+ tmdn = concat_path_file(CONFIG_DEFAULT_MODULES_DIR, uts.release);
+ /* Jump through hoops in case /lib/modules/`uname -r`
+ * is a symlink. We do not want recursive_action to
+ * follow symlinks, but we do want to follow the
+ * /lib/modules/`uname -r` dir, So resolve it ourselves
+ * if it is a link... */
+ module_dir = xmalloc_readlink(tmdn);
+ if (!module_dir)
+ module_dir = xstrdup(tmdn);
+ recursive_action(module_dir, ACTION_RECURSE,
+ check_module_name_match, NULL, m_fullName, 0);
+ free(module_dir);
+ free(tmdn);
+ }
+
+ /* Check if we have found anything yet */
+ if (!m_filename || ((fp = fopen_for_read(m_filename)) == NULL)) {
+ int r;
+ char *module_dir;
+
+ free(m_filename);
+ m_filename = NULL;
+ module_dir = xmalloc_readlink(CONFIG_DEFAULT_MODULES_DIR);
+ if (!module_dir)
+ module_dir = xstrdup(CONFIG_DEFAULT_MODULES_DIR);
+ /* No module found under /lib/modules/`uname -r`, this
+ * time cast the net a bit wider. Search /lib/modules/ */
+ r = recursive_action(module_dir, ACTION_RECURSE,
+ check_module_name_match, NULL, m_fullName, 0);
+ if (r)
+ bb_error_msg_and_die("%s: module not found", m_fullName);
+ free(module_dir);
+ if (m_filename == NULL
+ || ((fp = fopen_for_read(m_filename)) == NULL)
+ ) {
+ bb_error_msg_and_die("%s: module not found", m_fullName);
+ }
+ }
+ } else
+ m_filename = xstrdup(filename);
+
+ rc = bb_init_module(m_filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
if (rc)
- bb_error_msg("can't insert '%s': %s", filename, moderror(rc));
+ bb_error_msg("can't insert '%s': %s", m_filename, moderror(rc));
return rc;
}
Loading…
Cancel
Save