diff options
Diffstat (limited to 'meta/recipes-core/busybox')
18 files changed, 365 insertions, 453 deletions
diff --git a/meta/recipes-core/busybox/busybox-inittab_1.34.1.bb b/meta/recipes-core/busybox/busybox-inittab_1.34.1.bb deleted file mode 100644 index be8c06323c..0000000000 --- a/meta/recipes-core/busybox/busybox-inittab_1.34.1.bb +++ /dev/null @@ -1,85 +0,0 @@ -SUMMARY = "inittab configuration for BusyBox" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" - -SRC_URI = "file://inittab" - -S = "${WORKDIR}" - -INHIBIT_DEFAULT_DEPS = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${sysconfdir} - install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab - tmp="${SERIAL_CONSOLES}" - [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab - for i in $tmp - do - j=`echo ${i} | sed s/\;/\ /g` - id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` - echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab - done - if [ "${USE_VT}" = "1" ]; then - cat <<EOF >>${D}${sysconfdir}/inittab -# ${base_sbindir}/getty invocations for the runlevels. -# -# The "id" field MUST be the same as the last -# characters of the device (after "tty"). -# -# Format: -# <id>:<runlevels>:<action>:<process> -# - -EOF - - for n in ${SYSVINIT_ENABLED_GETTYS} - do - echo "tty$n:12345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab - done - echo "" >> ${D}${sysconfdir}/inittab - fi - -} - -pkg_postinst:${PN} () { -# run this on host and on target -if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then - exit 0 -fi -} - -pkg_postinst_ontarget:${PN} () { -# run this on the target -if [ -e /proc/consoles ]; then - tmp="${SERIAL_CONSOLES_CHECK}" - for i in $tmp - do - j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g` - k=`echo ${i} | sed s/^.*\://g` - if [ -z "`grep ${j} /proc/consoles`" ]; then - if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then - sed -i -e /^.*${j}\ /d -e /^.*${j}$/d /etc/inittab - fi - fi - done - kill -HUP 1 -else - exit 1 -fi -} - -# SERIAL_CONSOLES is generally defined by the MACHINE .conf. -# Set PACKAGE_ARCH appropriately. -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES:${PN} = "${sysconfdir}/inittab" -CONFFILES:${PN} = "${sysconfdir}/inittab" - -RCONFLICTS:${PN} = "sysvinit-inittab" - -USE_VT ?= "1" -SYSVINIT_ENABLED_GETTYS ?= "1" diff --git a/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb b/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb new file mode 100644 index 0000000000..1f179d8560 --- /dev/null +++ b/meta/recipes-core/busybox/busybox-inittab_1.36.1.bb @@ -0,0 +1,63 @@ +SUMMARY = "inittab configuration for BusyBox" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://inittab" + +S = "${WORKDIR}" + +INHIBIT_DEFAULT_DEPS = "1" + +do_compile() { + : +} + +do_install() { + install -d ${D}${sysconfdir} + install -D -m 0644 ${S}/inittab ${D}${sysconfdir}/inittab + + CONSOLES="${SERIAL_CONSOLES}" + for s in $CONSOLES + do + speed=$(echo $s | cut -d\; -f 1) + device=$(echo $s | cut -d\; -f 2) + label=$(echo $device | sed -e 's/tty//' | tail --bytes=5) + + echo "$device::respawn:${sbindir}/ttyrun $device ${base_sbindir}/getty $speed $device" >> ${D}${sysconfdir}/inittab + done + + if [ "${USE_VT}" = "1" ]; then + cat <<EOF >>${D}${sysconfdir}/inittab +# ${base_sbindir}/getty invocations for the runlevels. +# +# The "id" field MUST be the same as the last +# characters of the device (after "tty"). +# +# Format: +# <id>:<runlevels>:<action>:<process> +# + +EOF + + for n in ${SYSVINIT_ENABLED_GETTYS} + do + echo "tty$n:12345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab + done + echo "" >> ${D}${sysconfdir}/inittab + fi + +} + + +# SERIAL_CONSOLES is generally defined by the MACHINE .conf. +# Set PACKAGE_ARCH appropriately. +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} = "${sysconfdir}/inittab" +CONFFILES:${PN} = "${sysconfdir}/inittab" + +RDEPENDS:${PN} = "ttyrun" +RCONFLICTS:${PN} = "sysvinit-inittab" + +USE_VT ?= "1" +SYSVINIT_ENABLED_GETTYS ?= "1" diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc index 622325aabb..67a9111e5b 100644 --- a/meta/recipes-core/busybox/busybox.inc +++ b/meta/recipes-core/busybox/busybox.inc @@ -7,7 +7,7 @@ DEPENDS += "kern-tools-native virtual/crypt" # bzip2 applet in busybox is based on lightly-modified bzip2-1.0.4 source # the GPL is version 2 only -LICENSE = "GPLv2 & bzip2-1.0.4" +LICENSE = "GPL-2.0-only & bzip2-1.0.4" LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb \ file://archival/libarchive/bz/LICENSE;md5=28e3301eae987e8cfe19988e98383dae" @@ -34,6 +34,7 @@ INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-mdev ${PN}-hw INITSCRIPT_NAME:${PN}-httpd = "busybox-httpd" INITSCRIPT_NAME:${PN}-hwclock = "hwclock.sh" +INITSCRIPT_PARAMS:${PN}-hwclock = "start 40 S . stop 20 0 1 6 ." INITSCRIPT_NAME:${PN}-mdev = "mdev" INITSCRIPT_PARAMS:${PN}-mdev = "start 04 S ." INITSCRIPT_NAME:${PN}-syslog = "syslog" @@ -113,7 +114,7 @@ do_prepare_config () { export KCONFIG_NOTIMESTAMP=1 sed -e '/CONFIG_STATIC/d' \ - < ${WORKDIR}/defconfig > ${S}/.config + < ${UNPACKDIR}/defconfig > ${S}/.config echo "# CONFIG_STATIC is not set" >> .config for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \ ${S}/.config @@ -138,19 +139,26 @@ do_configure () { do_prepare_config merge_config.sh -m .config ${@" ".join(find_cfgs(d))} cml1_do_configure + + # Save a copy of .config and autoconf.h. + cp .config .config.orig + cp include/autoconf.h include/autoconf.h.orig } do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS export KCONFIG_NOTIMESTAMP=1 + # Ensure we start do_compile with the original .config and autoconf.h. + # These files should always have matching timestamps. + cp .config.orig .config + cp include/autoconf.h.orig include/autoconf.h + if [ "${BUSYBOX_SPLIT_SUID}" = "1" -a x`grep "CONFIG_FEATURE_INDIVIDUAL=y" .config` = x ]; then + # Guard againt interrupted do_compile: clean temporary files. + rm -f .config.app.suid .config.app.nosuid .config.disable.apps .config.nonapps + # split the .config into two parts, and make two busybox binaries - if [ -e .config.orig ]; then - # Need to guard again an interrupted do_compile - restore any backup - cp .config.orig .config - fi - cp .config .config.orig oe_runmake busybox.cfg.suid oe_runmake busybox.cfg.nosuid @@ -187,15 +195,18 @@ do_compile() { bbfatal "busybox suid binary incorrectly provides /bin/sh" fi - # copy .config.orig back to .config, because the install process may check this file - cp .config.orig .config # cleanup - rm .config.orig .config.app.suid .config.app.nosuid .config.disable.apps .config.nonapps + rm .config.app.suid .config.app.nosuid .config.disable.apps .config.nonapps else oe_runmake busybox_unstripped cp busybox_unstripped busybox oe_runmake busybox.links fi + + # restore original .config and autoconf.h, because the install process + # may check these files + cp .config.orig .config + cp include/autoconf.h.orig include/autoconf.h } do_install () { @@ -269,67 +280,67 @@ do_install () { fi if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/syslog - install -m 644 ${WORKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf - install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf + install -m 0755 ${UNPACKDIR}/syslog ${D}${sysconfdir}/init.d/syslog + install -m 644 ${UNPACKDIR}/syslog-startup.conf ${D}${sysconfdir}/syslog-startup.conf + install -m 644 ${UNPACKDIR}/syslog.conf ${D}${sysconfdir}/syslog.conf fi if grep -q "CONFIG_CROND=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/busybox-cron ${D}${sysconfdir}/init.d/ + install -m 0755 ${UNPACKDIR}/busybox-cron ${D}${sysconfdir}/init.d/ fi if grep -q "CONFIG_HTTPD=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/ + install -m 0755 ${UNPACKDIR}/busybox-httpd ${D}${sysconfdir}/init.d/ install -d ${D}/srv/www fi if grep -q "CONFIG_UDHCPD=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/ + install -m 0755 ${UNPACKDIR}/busybox-udhcpd ${D}${sysconfdir}/init.d/ fi if grep -q "CONFIG_HWCLOCK=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/ + install -m 0755 ${UNPACKDIR}/hwclock.sh ${D}${sysconfdir}/init.d/ fi if grep -q "CONFIG_UDHCPC=y" ${B}/.config; then install -d ${D}${sysconfdir}/udhcpc.d install -d ${D}${datadir}/udhcpc - install -m 0755 ${WORKDIR}/simple.script ${D}${sysconfdir}/udhcpc.d/50default + install -m 0755 ${UNPACKDIR}/simple.script ${D}${sysconfdir}/udhcpc.d/50default sed -i "s:/SBIN_DIR/:${base_sbindir}/:" ${D}${sysconfdir}/udhcpc.d/50default - install -m 0755 ${WORKDIR}/default.script ${D}${datadir}/udhcpc/default.script + install -m 0755 ${UNPACKDIR}/default.script ${D}${datadir}/udhcpc/default.script fi if grep -q "CONFIG_INETD=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/inetd ${D}${sysconfdir}/init.d/inetd.${BPN} + install -m 0755 ${UNPACKDIR}/inetd ${D}${sysconfdir}/init.d/inetd.${BPN} sed -i "s:/usr/sbin/:${sbindir}/:" ${D}${sysconfdir}/init.d/inetd.${BPN} - install -m 0644 ${WORKDIR}/inetd.conf ${D}${sysconfdir}/ + install -m 0644 ${UNPACKDIR}/inetd.conf ${D}${sysconfdir}/ fi if grep -q "CONFIG_MDEV=y" ${B}/.config; then - install -m 0755 ${WORKDIR}/mdev ${D}${sysconfdir}/init.d/mdev + install -m 0755 ${UNPACKDIR}/mdev ${D}${sysconfdir}/init.d/mdev if grep "CONFIG_FEATURE_MDEV_CONF=y" ${B}/.config; then - install -m 644 ${WORKDIR}/mdev.conf ${D}${sysconfdir}/mdev.conf + install -m 644 ${UNPACKDIR}/mdev.conf ${D}${sysconfdir}/mdev.conf install -d ${D}${sysconfdir}/mdev - install -m 0755 ${WORKDIR}/find-touchscreen.sh ${D}${sysconfdir}/mdev - install -m 0755 ${WORKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev + install -m 0755 ${UNPACKDIR}/find-touchscreen.sh ${D}${sysconfdir}/mdev + install -m 0755 ${UNPACKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev fi fi if grep -q "CONFIG_INIT=y" ${B}/.config && ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','busybox','true','false',d)}; then - install -D -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS - install -D -m 0755 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK - install -D -m 0755 ${WORKDIR}/rcS.default ${D}${sysconfdir}/default/rcS + install -D -m 0755 ${UNPACKDIR}/rcS ${D}${sysconfdir}/init.d/rcS + install -D -m 0755 ${UNPACKDIR}/rcK ${D}${sysconfdir}/init.d/rcK + install -D -m 0755 ${UNPACKDIR}/rcS.default ${D}${sysconfdir}/default/rcS fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then if grep -q "CONFIG_KLOGD=y" ${B}/.config; then install -d ${D}${systemd_system_unitdir} - sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-klogd.service.in \ + sed 's,@base_sbindir@,${base_sbindir},g' < ${UNPACKDIR}/busybox-klogd.service.in \ > ${D}${systemd_system_unitdir}/busybox-klogd.service fi if grep -q "CONFIG_SYSLOGD=y" ${B}/.config; then install -d ${D}${systemd_system_unitdir} - sed 's,@base_sbindir@,${base_sbindir},g' < ${WORKDIR}/busybox-syslog.service.in \ + sed 's,@base_sbindir@,${base_sbindir},g' < ${UNPACKDIR}/busybox-syslog.service.in \ > ${D}${systemd_system_unitdir}/busybox-syslog.service if [ ! -e ${D}${systemd_system_unitdir}/busybox-klogd.service ] ; then sed -i '/klog/d' ${D}${systemd_system_unitdir}/busybox-syslog.service fi - if [ -f ${WORKDIR}/busybox-syslog.default ] ; then + if [ -f ${UNPACKDIR}/busybox-syslog.default ] ; then install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog + install -m 0644 ${UNPACKDIR}/busybox-syslog.default ${D}${sysconfdir}/default/busybox-syslog fi fi fi @@ -347,7 +358,7 @@ do_install_ptest () { # These access the internet which is not guaranteed to work on machines running the tests rm -rf ${D}${PTEST_PATH}/testsuite/wget sort ${B}/.config > ${D}${PTEST_PATH}/.config - ln -s /bin/busybox ${D}${PTEST_PATH}/busybox + ln -s ${base_bindir}/busybox ${D}${PTEST_PATH}/busybox } inherit update-alternatives diff --git a/meta/recipes-core/busybox/busybox/0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch b/meta/recipes-core/busybox/busybox/0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch deleted file mode 100644 index 2bf2b91c7e..0000000000 --- a/meta/recipes-core/busybox/busybox/0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch +++ /dev/null @@ -1,114 +0,0 @@ -From a9333eb6a7b8dbda735947cd5bc981ff9352a2c9 Mon Sep 17 00:00:00 2001 -From: Nathan Phillip Brink <ohnobinki@ohnopublishing.net> -Date: Thu, 10 Mar 2011 00:27:08 -0500 -Subject: [PATCH 1/2] Use $(CC) when linking instead of $(LD) and use $(CFLAGS) - and $(EXTRA_CFLAGS) when linking. - -This fixes the issue where LDFLAGS escaped with -Wl are ignored during -compilation. It also simplifies using CFLAGS or EXTRA_CFLAGS (such as --m32 on x86_64 or -flto) which apply to both compilation and linking -situations. - -Signed-off-by: Nathan Phillip Brink <ohnobinki@ohnopublishing.net> ---- -Upstream-Status: Pending - - Makefile | 7 ++++--- - scripts/Makefile.build | 8 ++++---- - scripts/Makefile.lib | 13 +++---------- - 3 files changed, 11 insertions(+), 17 deletions(-) - -Index: busybox-1.23.2/Makefile -=================================================================== ---- busybox-1.23.2.orig/Makefile -+++ busybox-1.23.2/Makefile -@@ -309,7 +309,8 @@ CHECKFLAGS := -D__linux__ -Dlinux -D - MODFLAGS = -DMODULE - CFLAGS_MODULE = $(MODFLAGS) - AFLAGS_MODULE = $(MODFLAGS) --LDFLAGS_MODULE = -r -+LDFLAGS_RELOCATABLE = -r -nostdlib -+LDFLAGS_MODULE = $(LDFLAGS_RELOCATABLE) - CFLAGS_KERNEL = - AFLAGS_KERNEL = - -@@ -331,7 +332,7 @@ KERNELVERSION = $(VERSION).$(PATCHLEVEL) - export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \ - ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ - CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \ -- HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS -+ HOSTCXX HOSTCXXFLAGS LDFLAGS_RELOCATABLE LDFLAGS_MODULE CHECK CHECKFLAGS - - export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS - export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE -@@ -610,7 +611,7 @@ quiet_cmd_busybox__ ?= LINK $@ - cmd_busybox__ ?= $(srctree)/scripts/trylink \ - "$@" \ - "$(CC)" \ -- "$(CFLAGS) $(CFLAGS_busybox)" \ -+ "$(CFLAGS) $(CFLAGS_busybox) $(EXTRA_CFLAGS)" \ - "$(LDFLAGS) $(EXTRA_LDFLAGS)" \ - "$(core-y)" \ - "$(libs-y)" \ -Index: busybox-1.23.2/scripts/Makefile.build -=================================================================== ---- busybox-1.23.2.orig/scripts/Makefile.build -+++ busybox-1.23.2/scripts/Makefile.build -@@ -174,7 +174,7 @@ cmd_modversions = \ - | $(GENKSYMS) -a $(ARCH) \ - > $(@D)/.tmp_$(@F:.o=.ver); \ - \ -- $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \ -+ $(CC) $(ld_flags_partial) $(LDFLAGS_RELOCATABLE) -o $@ $(@D)/.tmp_$(@F) \ - -T $(@D)/.tmp_$(@F:.o=.ver); \ - rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver); \ - else \ -@@ -257,7 +257,7 @@ quiet_cmd_link_o_target = LD $@ - # If the list of objects to link is empty, just create an empty built-in.o - # -nostdlib is added to make "make LD=gcc ..." work (some people use that) - cmd_link_o_target = $(if $(strip $(obj-y)),\ -- $(LD) -nostdlib $(ld_flags) -r -o $@ $(filter $(obj-y), $^),\ -+ $(CC) $(ld_flags_partial) $(LDFLAGS_RELOCATABLE) -o $@ $(filter $(obj-y), $^),\ - rm -f $@; $(AR) rcs $@) - - $(builtin-target): $(obj-y) FORCE -@@ -292,10 +292,10 @@ $($(subst $(obj)/,,$(@:.o=-objs))) \ - $($(subst $(obj)/,,$(@:.o=-y)))), $^) - - quiet_cmd_link_multi-y = LD $@ --cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) -+cmd_link_multi-y = $(CC) $(ld_flags_partial) $(LDFLAGS_RELOCATABLE) -o $@ $(link_multi_deps) - - quiet_cmd_link_multi-m = LD [M] $@ --cmd_link_multi-m = $(LD) $(ld_flags) $(LDFLAGS_MODULE) -o $@ $(link_multi_deps) -+cmd_link_multi-m = $(CC) $(ld_flags) $(LDFLAGS_MODULE) -o $@ $(link_multi_deps) - - # We would rather have a list of rules like - # foo.o: $(foo-objs) -Index: busybox-1.23.2/scripts/Makefile.lib -=================================================================== ---- busybox-1.23.2.orig/scripts/Makefile.lib -+++ busybox-1.23.2/scripts/Makefile.lib -@@ -121,7 +121,8 @@ cpp_flags = -Wp,-MD,$(depfile) $(NO - # yet ld_flags is fed to ld. - #ld_flags = $(LDFLAGS) $(EXTRA_LDFLAGS) - # Remove the -Wl, prefix from linker options normally passed through gcc --ld_flags = $(filter-out -Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS)) -+ld_flags = $(filter-out -Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)) -+ld_flags_partial = $($(filter-out -shared%, $(filter-out -pie%,$(ld_flags)))) - - - # Finds the multi-part object the current object will be linked into -@@ -151,10 +152,8 @@ $(obj)/%:: $(src)/%_shipped - # Linking - # --------------------------------------------------------------------------- - --# TODO: LDFLAGS usually is supposed to contain gcc's flags, not ld's. --# but here we feed them to ld! --quiet_cmd_ld = LD $@ --cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \ -+quiet_cmd_ld = CC $@ -+cmd_ld = $(CC) $(ld_flags) $(LDFLAGS_$(@F)) \ - $(filter-out FORCE,$^) -o $@ - - # Objcopy diff --git a/meta/recipes-core/busybox/busybox/0001-depmod-Ignore-.debug-directories.patch b/meta/recipes-core/busybox/busybox/0001-depmod-Ignore-.debug-directories.patch new file mode 100644 index 0000000000..d76118f85b --- /dev/null +++ b/meta/recipes-core/busybox/busybox/0001-depmod-Ignore-.debug-directories.patch @@ -0,0 +1,32 @@ +From 5f6ed003f10ee0bd4a508d5f59129a29f0920dfc Mon Sep 17 00:00:00 2001 +From: Saul Wold <saul.wold@windriver.com> +Date: Thu, 31 Mar 2022 11:21:45 -0700 +Subject: [PATCH] depmod: Ignore .debug directories + +The .debug/<module>.ko files do not have the correct symbol information +since it's split away from the actual <module>.ko file. Just ignore it. + +Upstream-Status: Pending + +Signed-off-by: Saul Wold <saul.wold@windriver.com> +--- + modutils/depmod.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modutils/depmod.c b/modutils/depmod.c +index bb42bbe..aa5a2de 100644 +--- a/modutils/depmod.c ++++ b/modutils/depmod.c +@@ -43,6 +43,9 @@ static int FAST_FUNC parse_module(struct recursive_state *state, + /* Arbitrary. Was sb->st_size, but that breaks .gz etc */ + size_t len = (64*1024*1024 - 4096); + ++ if (strstr(fname, ".debug") != NULL) ++ return TRUE; ++ + if (strrstr(fname, ".ko") == NULL) + return TRUE; + +-- +2.31.1 + diff --git a/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch b/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch new file mode 100644 index 0000000000..ceb3ad7250 --- /dev/null +++ b/meta/recipes-core/busybox/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch @@ -0,0 +1,41 @@ +From 0c8da1bead8ffaf270b4b723ead2c517371405d7 Mon Sep 17 00:00:00 2001 +From: Ariadne Conill <ariadne@dereferenced.org> +Date: Sun, 3 Apr 2022 12:14:33 +0000 +Subject: [PATCH 1/2] libbb: sockaddr2str: ensure only printable characters are + returned for the hostname part + +CVE: CVE-2022-28391 +Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15001] +Signed-off-by: Ariadne Conill <ariadne@dereferenced.org> +Signed-off-by: Steve Sakoman <steve@sakoman.com> +--- + libbb/xconnect.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libbb/xconnect.c b/libbb/xconnect.c +index 0e0b247b8..02c061e67 100644 +--- a/libbb/xconnect.c ++++ b/libbb/xconnect.c +@@ -497,8 +497,9 @@ static char* FAST_FUNC sockaddr2str(const struct sockaddr *sa, int flags) + ); + if (rc) + return NULL; ++ /* ensure host contains only printable characters */ + if (flags & IGNORE_PORT) +- return xstrdup(host); ++ return xstrdup(printable_string(host)); + #if ENABLE_FEATURE_IPV6 + if (sa->sa_family == AF_INET6) { + if (strchr(host, ':')) /* heh, it's not a resolved hostname */ +@@ -509,7 +510,7 @@ static char* FAST_FUNC sockaddr2str(const struct sockaddr *sa, int flags) + #endif + /* For now we don't support anything else, so it has to be INET */ + /*if (sa->sa_family == AF_INET)*/ +- return xasprintf("%s:%s", host, serv); ++ return xasprintf("%s:%s", printable_string(host), serv); + /*return xstrdup(host);*/ + } + +-- +2.35.1 + diff --git a/meta/recipes-core/busybox/busybox/0001-mktemp-add-tmpdir-option.patch b/meta/recipes-core/busybox/busybox/0001-mktemp-add-tmpdir-option.patch deleted file mode 100644 index 4a1960dff2..0000000000 --- a/meta/recipes-core/busybox/busybox/0001-mktemp-add-tmpdir-option.patch +++ /dev/null @@ -1,81 +0,0 @@ -From ceb378209f953ea745ed93a8645567196380ce3c Mon Sep 17 00:00:00 2001 -From: Andrej Valek <andrej.valek@siemens.com> -Date: Thu, 24 Jun 2021 19:13:22 +0200 -Subject: [PATCH] mktemp: add tmpdir option - -Make mktemp more compatible with coreutils. -- add "--tmpdir" option -- add long variants for "d,q,u" options - -Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2021-June/088932.html] - -Signed-off-by: Andrej Valek <andrej.valek@siemens.com> -Signed-off-by: Peter Marko <peter.marko@siemens.com> ---- - coreutils/mktemp.c | 26 ++++++++++++++++++-------- - 1 file changed, 18 insertions(+), 8 deletions(-) - -diff --git a/coreutils/mktemp.c b/coreutils/mktemp.c -index 5393320a5..05c6d98c6 100644 ---- a/coreutils/mktemp.c -+++ b/coreutils/mktemp.c -@@ -39,16 +39,17 @@ - //kbuild:lib-$(CONFIG_MKTEMP) += mktemp.o - - //usage:#define mktemp_trivial_usage --//usage: "[-dt] [-p DIR] [TEMPLATE]" -+//usage: "[-dt] [-p DIR, --tmpdir[=DIR]] [TEMPLATE]" - //usage:#define mktemp_full_usage "\n\n" - //usage: "Create a temporary file with name based on TEMPLATE and print its name.\n" - //usage: "TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX).\n" - //usage: "Without TEMPLATE, -t tmp.XXXXXX is assumed.\n" --//usage: "\n -d Make directory, not file" --//usage: "\n -q Fail silently on errors" --//usage: "\n -t Prepend base directory name to TEMPLATE" --//usage: "\n -p DIR Use DIR as a base directory (implies -t)" --//usage: "\n -u Do not create anything; print a name" -+//usage: "\n -d Make directory, not file" -+//usage: "\n -q Fail silently on errors" -+//usage: "\n -t Prepend base directory name to TEMPLATE" -+//usage: "\n -p DIR, --tmpdir[=DIR] Use DIR as a base directory (implies -t)" -+//usage: "\n For --tmpdir is a optional one." -+//usage: "\n -u Do not create anything; print a name" - //usage: "\n" - //usage: "\nBase directory is: -p DIR, else $TMPDIR, else /tmp" - //usage: -@@ -72,13 +73,22 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv) - OPT_t = 1 << 2, - OPT_p = 1 << 3, - OPT_u = 1 << 4, -+ OPT_td = 1 << 5, - }; - - path = getenv("TMPDIR"); - if (!path || path[0] == '\0') - path = "/tmp"; - -- opts = getopt32(argv, "^" "dqtp:u" "\0" "?1"/*1 arg max*/, &path); -+ opts = getopt32long(argv, "^" -+ "dqtp:u\0" -+ "?1" /* 1 arg max */, -+ "directory\0" No_argument "d" -+ "quiet\0" No_argument "q" -+ "dry-run\0" No_argument "u" -+ "tmpdir\0" Optional_argument "\xff" -+ , &path, &path -+ ); - - chp = argv[optind]; - if (!chp) { -@@ -95,7 +105,7 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv) - goto error; - } - #endif -- if (opts & (OPT_t|OPT_p)) -+ if (opts & (OPT_t|OPT_p|OPT_td)) - chp = concat_path_file(path, chp); - - if (opts & OPT_u) { --- -2.11.0 - diff --git a/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch b/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch new file mode 100644 index 0000000000..1dbc3388a4 --- /dev/null +++ b/meta/recipes-core/busybox/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch @@ -0,0 +1,69 @@ +From 812b407e545b70b16cf32aade135b5c32eaf674f Mon Sep 17 00:00:00 2001 +From: Ariadne Conill <ariadne@dereferenced.org> +Date: Sun, 3 Apr 2022 12:16:45 +0000 +Subject: [PATCH 2/2] nslookup: sanitize all printed strings with + printable_string + +Otherwise, terminal sequences can be injected, which enables various terminal injection +attacks from DNS results. + +CVE: CVE-2022-28391 +Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15001] +Signed-off-by: Ariadne Conill <ariadne@dereferenced.org> +Signed-off-by: Steve Sakoman <steve@sakoman.com> +--- + networking/nslookup.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/networking/nslookup.c b/networking/nslookup.c +index 6da97baf4..4bdcde1b8 100644 +--- a/networking/nslookup.c ++++ b/networking/nslookup.c +@@ -407,7 +407,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + //printf("Unable to uncompress domain: %s\n", strerror(errno)); + return -1; + } +- printf(format, ns_rr_name(rr), dname); ++ printf(format, ns_rr_name(rr), printable_string(dname)); + break; + + case ns_t_mx: +@@ -422,7 +422,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + //printf("Cannot uncompress MX domain: %s\n", strerror(errno)); + return -1; + } +- printf("%s\tmail exchanger = %d %s\n", ns_rr_name(rr), n, dname); ++ printf("%s\tmail exchanger = %d %s\n", ns_rr_name(rr), n, printable_string(dname)); + break; + + case ns_t_txt: +@@ -434,7 +434,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + if (n > 0) { + memset(dname, 0, sizeof(dname)); + memcpy(dname, ns_rr_rdata(rr) + 1, n); +- printf("%s\ttext = \"%s\"\n", ns_rr_name(rr), dname); ++ printf("%s\ttext = \"%s\"\n", ns_rr_name(rr), printable_string(dname)); + } + break; + +@@ -454,7 +454,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + } + + printf("%s\tservice = %u %u %u %s\n", ns_rr_name(rr), +- ns_get16(cp), ns_get16(cp + 2), ns_get16(cp + 4), dname); ++ ns_get16(cp), ns_get16(cp + 2), ns_get16(cp + 4), printable_string(dname)); + break; + + case ns_t_soa: +@@ -483,7 +483,7 @@ static NOINLINE int parse_reply(const unsigned char *msg, size_t len) + return -1; + } + +- printf("\tmail addr = %s\n", dname); ++ printf("\tmail addr = %s\n", printable_string(dname)); + cp += n; + + printf("\tserial = %lu\n", ns_get32(cp)); +-- +2.35.1 + diff --git a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch deleted file mode 100644 index 948932a3e8..0000000000 --- a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 53626cd06a3ef05ed847daea802ef0aa9661caa7 Mon Sep 17 00:00:00 2001 -From: Anders Darander <anders@chargestorm.se> -Date: Thu, 3 Nov 2011 08:51:31 +0100 -Subject: [PATCH] busybox-udhcpc-no_deconfig.patch - -Upstream-Status: Pending - -Add a new option -D to the udhcpc client that allows for -dhcp renewal to occur without having to down the interface -in the process. - -Signed-off-by: Greg Moffatt <greg.moffatt@windriver.com> - -Updated to latest Busybox 1.17.3 - -Signed-off-by: Mark Hatle <mark.hatle@windriver.com> - -Updated to Busybox 1.18.4 -option spec is changed - -Signed-off-by: Qing He <qing.he@intel.com> - -Updated to Busybox 1.19.3 - -Signed-off-by: Anders Darander <anders@chargestorm.se> - -Fixed options -b, -a and -P. - -Signed-off-by: Andreas Oberritter <obi@opendreambox.org> ---- - networking/udhcp/dhcpc.c | 29 ++++++++++++++++------ - 1 file changed, 21 insertions(+), 8 deletions(-) - -Index: busybox-1.34.0/networking/udhcp/dhcpc.c -=================================================================== ---- busybox-1.34.0.orig/networking/udhcp/dhcpc.c -+++ busybox-1.34.0/networking/udhcp/dhcpc.c -@@ -48,6 +48,8 @@ - }; - #endif - -+/* option whether to down the interface when reconfiguring */ -+static int allow_deconfig = 1; - - /* "struct client_data_t client_data" is in bb_common_bufsiz1 */ - -@@ -100,8 +102,10 @@ - OPT_x = 1 << 16, - OPT_f = 1 << 17, - OPT_B = 1 << 18, -+ OPT_D = 1 << 19, - /* The rest has variable bit positions, need to be clever */ - OPTBIT_B = 18, -+ OPTBIT_D = 19, - USE_FOR_MMU( OPTBIT_b,) - IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,) - IF_FEATURE_UDHCP_PORT( OPTBIT_P,) -@@ -587,7 +591,8 @@ - - static void d4_run_script_deconfig(void) - { -- d4_run_script(NULL, "deconfig"); -+ if (allow_deconfig) -+ d4_run_script(NULL, "deconfig"); - } - - /*** Sending/receiving packets ***/ -@@ -1244,7 +1249,7 @@ - /* Parse command line */ - opt = getopt32long(argv, "^" - /* O,x: list; -T,-t,-A take numeric param */ -- "CV:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fB" -+ "CV:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fBD" - USE_FOR_MMU("b") - IF_FEATURE_UDHCPC_ARPING("a::") - IF_FEATURE_UDHCP_PORT("P:") -@@ -1361,6 +1366,10 @@ - logmode |= LOGMODE_SYSLOG; - } - -+ if (opt & OPT_D) { -+ allow_deconfig = 0; -+ } -+ - /* Create pidfile */ - write_pidfile(client_data.pidfile); - /* Goes to stdout (unless NOMMU) and possibly syslog */ diff --git a/meta/recipes-core/busybox/busybox/defconfig b/meta/recipes-core/busybox/busybox/defconfig index 16c61a84b2..f3d545dc3f 100644 --- a/meta/recipes-core/busybox/busybox/defconfig +++ b/meta/recipes-core/busybox/busybox/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.34.0 -# Wed Aug 23 09:07:25 2021 +# Busybox version: 1.36.0 +# Tue Jan 3 14:17:01 2023 # CONFIG_HAVE_DOT_CONFIG=y @@ -94,9 +94,12 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 CONFIG_SHA3_SMALL=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -# CONFIG_FEATURE_ETC_SERVICES is not set +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -120,14 +123,9 @@ CONFIG_UNICODE_WIDE_WCHARS=y # CONFIG_UNICODE_BIDI_SUPPORT is not set # CONFIG_UNICODE_NEUTRAL_TABLE is not set # CONFIG_UNICODE_PRESERVE_BROKEN is not set -CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_USE_SENDFILE=y -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -CONFIG_MONOTONIC_SYSCALL=y -CONFIG_IOCTL_HEX2STR_ERROR=y -CONFIG_FEATURE_HWIB=y +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -162,6 +160,8 @@ CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y # CONFIG_FEATURE_CPIO_O is not set # CONFIG_FEATURE_CPIO_P is not set +# CONFIG_FEATURE_CPIO_IGNORE_DEVNO is not set +# CONFIG_FEATURE_CPIO_RENUMBER_INODES is not set # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set CONFIG_GZIP=y @@ -197,6 +197,22 @@ CONFIG_FEATURE_UNZIP_CDF=y # # Coreutils # +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for date and touch +# +# CONFIG_FEATURE_TIMEZONE is not set + +# +# Common options for cp and mv +# +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y CONFIG_FEATURE_CATN=y @@ -225,6 +241,7 @@ CONFIG_FEATURE_DD_SIGNAL_HANDLING=y # CONFIG_FEATURE_DD_STATUS is not set CONFIG_DF=y # CONFIG_FEATURE_DF_FANCY is not set +# CONFIG_FEATURE_SKIP_ROOTFS is not set CONFIG_DIRNAME=y # CONFIG_DOS2UNIX is not set # CONFIG_UNIX2DOS is not set @@ -324,6 +341,7 @@ CONFIG_FEATURE_TR_CLASSES=y # CONFIG_FEATURE_TR_EQUIV is not set CONFIG_TRUE=y # CONFIG_TRUNCATE is not set +# CONFIG_TSORT is not set CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" @@ -344,21 +362,6 @@ CONFIG_WHOAMI=y CONFIG_YES=y # -# Common options -# -CONFIG_FEATURE_VERBOSE=y - -# -# Common options for cp and mv -# -# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# # Console Utilities # CONFIG_CHVT=y @@ -448,7 +451,11 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y CONFIG_FEATURE_FIND_EXECUTABLE=y @@ -456,6 +463,7 @@ CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y # CONFIG_FEATURE_FIND_INUM is not set +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y CONFIG_FEATURE_FIND_EXEC_PLUS=y CONFIG_FEATURE_FIND_USER=y @@ -827,10 +835,12 @@ CONFIG_MICROCOM=y CONFIG_RFKILL=y # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set +# CONFIG_SEEDRNG is not set # CONFIG_SETFATTR is not set # CONFIG_SETSERIAL is not set CONFIG_STRINGS=y CONFIG_TIME=y +# CONFIG_TREE is not set CONFIG_TS=y # CONFIG_TTYSIZE is not set # CONFIG_UBIATTACH is not set @@ -851,6 +861,9 @@ CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +CONFIG_FEATURE_HWIB=y # CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set @@ -1024,17 +1037,19 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b" # # Mail Utilities # +CONFIG_FEATURE_MIME_CHARSET="" # CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set # CONFIG_FEATURE_REFORMIME_COMPAT is not set # CONFIG_SENDMAIL is not set -CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_SHOW_THREADS is not set CONFIG_FREE=y CONFIG_FUSER=y # CONFIG_IOSTAT is not set @@ -1073,7 +1088,6 @@ CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_UPTIME=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y -# CONFIG_FEATURE_SHOW_THREADS is not set # # Runit Utilities @@ -1138,8 +1152,8 @@ CONFIG_ASH_CMDCMD=y # 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 @@ -1176,7 +1190,7 @@ CONFIG_ASH_CMDCMD=y # Options common to all shells # CONFIG_FEATURE_SH_MATH=y -# CONFIG_FEATURE_SH_MATH_64 is not set +CONFIG_FEATURE_SH_MATH_64=y CONFIG_FEATURE_SH_MATH_BASE=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set diff --git a/meta/recipes-core/busybox/busybox/fail_on_no_media.patch b/meta/recipes-core/busybox/busybox/fail_on_no_media.patch index 820acc2684..38db52538e 100644 --- a/meta/recipes-core/busybox/busybox/fail_on_no_media.patch +++ b/meta/recipes-core/busybox/busybox/fail_on_no_media.patch @@ -1,3 +1,8 @@ +From a35e79002d36cca3c272ba5625aec86d6b7a38a8 Mon Sep 17 00:00:00 2001 +From: Saul Wold <sgw@linux.intel.com> +Date: Tue, 9 Apr 2013 23:25:54 -0700 +Subject: [PATCH] busybox: fail on no media + Upstream-Status: Denied [https://www.mail-archive.com/busybox@busybox.net/msg22354.html] @@ -10,16 +15,18 @@ removed, but that would be harder to accomplish. Signed-off-by: Saul Wold <sgw@linux.intel.com> +--- + util-linux/mount.c | 8 ++++++++ + 1 file changed, 8 insertions(+) -Index: busybox-1.20.2/util-linux/mount.c -=================================================================== ---- busybox-1.20.2.orig/util-linux/mount.c -+++ busybox-1.20.2/util-linux/mount.c -@@ -598,7 +598,13 @@ static int mount_it_now(struct mntent *m - break; +diff --git a/util-linux/mount.c b/util-linux/mount.c +index 4e65b6b..9d7a566 100644 +--- a/util-linux/mount.c ++++ b/util-linux/mount.c +@@ -746,6 +746,14 @@ static int mount_it_now(struct mntent *mp, unsigned long vfsflags, char *filtero errno = errno_save; } -- + + /* + * Break if there is no media, no point retrying for all + * fs types since there is no media available @@ -27,6 +34,7 @@ Index: busybox-1.20.2/util-linux/mount.c + if (rc == -1 && errno == ENOMEDIUM) { + bb_perror_msg_and_die("mounting %s on %s failed", mp->mnt_fsname, mp->mnt_dir); + } - if (!rc || (vfsflags & MS_RDONLY) || (errno != EACCES && errno != EROFS)) - break; - if (!(vfsflags & MS_SILENT)) ++ + // Should we retry read-only mount? + if (vfsflags & MS_RDONLY) + break; // no, already was tried diff --git a/meta/recipes-core/busybox/busybox/musl.cfg b/meta/recipes-core/busybox/busybox/musl.cfg index 6fffc91098..ba63def1ba 100644 --- a/meta/recipes-core/busybox/busybox/musl.cfg +++ b/meta/recipes-core/busybox/busybox/musl.cfg @@ -7,5 +7,4 @@ # CONFIG_FEATURE_INETD_RPC is not set # CONFIG_SELINUXENABLED is not set # CONFIG_FEATURE_MOUNT_NFS is not set -# CONFIG_FEATURE_UTMP is not set diff --git a/meta/recipes-core/busybox/busybox/recognize_connmand.patch b/meta/recipes-core/busybox/busybox/recognize_connmand.patch index f42c74caad..4f28beb556 100644 --- a/meta/recipes-core/busybox/busybox/recognize_connmand.patch +++ b/meta/recipes-core/busybox/busybox/recognize_connmand.patch @@ -4,14 +4,14 @@ Upstream-Status: Inappropriate [OE-Core] Signed-off-by: Saul Wold <sgw@linux.intel.com> -Index: busybox-1.22.1/networking/ifupdown.c +Index: busybox-1.36.0/networking/ifupdown.c =================================================================== ---- busybox-1.22.1.orig/networking/ifupdown.c -+++ busybox-1.22.1/networking/ifupdown.c -@@ -521,6 +521,10 @@ struct dhcp_client_t { +--- busybox-1.36.0.orig/networking/ifupdown.c ++++ busybox-1.36.0/networking/ifupdown.c +@@ -628,6 +628,10 @@ struct dhcp_client_t { }; - static const struct dhcp_client_t ext_dhcp_clients[] = { + static const struct dhcp_client_t ext_dhcp_clients[] ALIGN_PTR = { + { "connmand", + "true", + "true", diff --git a/meta/recipes-core/busybox/busybox/sha1sum.cfg b/meta/recipes-core/busybox/busybox/sha1sum.cfg index 20e72d9263..afd4da4ea1 100644 --- a/meta/recipes-core/busybox/busybox/sha1sum.cfg +++ b/meta/recipes-core/busybox/busybox/sha1sum.cfg @@ -1 +1,2 @@ CONFIG_SHA1SUM=y +CONFIG_SHA1_SMALL=3 diff --git a/meta/recipes-core/busybox/busybox/sha_accel.cfg b/meta/recipes-core/busybox/busybox/sha_accel.cfg new file mode 100644 index 0000000000..8900305a11 --- /dev/null +++ b/meta/recipes-core/busybox/busybox/sha_accel.cfg @@ -0,0 +1,2 @@ +# CONFIG_SHA256_HWACCEL is not set +# CONFIG_SHA1_HWACCEL is not set diff --git a/meta/recipes-core/busybox/busybox/start-stop-false.patch b/meta/recipes-core/busybox/busybox/start-stop-false.patch new file mode 100644 index 0000000000..3aef68329c --- /dev/null +++ b/meta/recipes-core/busybox/busybox/start-stop-false.patch @@ -0,0 +1,35 @@ +It's known that the final start-stop-daemon test fails if /bin/false is +actually a busybox symlink. Instead of failing, check if false is +busybox and adapt the expected output to match. + +Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2023-August/090416.html] +Signed-off-by: Ross Burton <ross.burton@arm.com> + +diff --git a/testsuite/start-stop-daemon.tests b/testsuite/start-stop-daemon.tests +index 0757b1288..aa6e9cc41 100755 +--- a/testsuite/start-stop-daemon.tests ++++ b/testsuite/start-stop-daemon.tests +@@ -27,10 +27,18 @@ testing "start-stop-daemon without -x and -a" \ + # but at least it checks that pathname to exec() is correct + # + # NB: this fails if /bin/false is a busybox symlink: +-# busybox looks at argv[0] and says "qwerty: applet not found" +-testing "start-stop-daemon with both -x and -a" \ +- 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \ +- "1\n" \ +- "" "" ++# busybox looks at argv[0] and says "qwerty: applet not found", so ++# skip the test if false is busybox. ++case $(readlink /bin/false) in ++ *busybox*) ++ echo "SKIPPED: start-stop-daemon with both -x and -a (need non-busybox false)" ++ ;; ++ *) ++ testing "start-stop-daemon with both -x and -a" \ ++ 'start-stop-daemon -S -x /bin/false -a qwerty false 2>&1; echo $?' \ ++ "1\n" \ ++ "" "" ++ ;; ++esac + + exit $FAILCOUNT diff --git a/meta/recipes-core/busybox/busybox_1.34.1.bb b/meta/recipes-core/busybox/busybox_1.36.1.bb index 6aed0f0476..373a6b7781 100644 --- a/meta/recipes-core/busybox/busybox_1.34.1.bb +++ b/meta/recipes-core/busybox/busybox_1.36.1.bb @@ -1,7 +1,7 @@ require busybox.inc SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ - file://busybox-udhcpc-no_deconfig.patch \ + file://0001-depmod-Ignore-.debug-directories.patch \ file://find-touchscreen.sh \ file://busybox-cron \ file://busybox-httpd \ @@ -26,7 +26,6 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://login-utilities.cfg \ file://recognize_connmand.patch \ file://busybox-cross-menuconfig.patch \ - file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ file://mount-via-label.cfg \ file://sha1sum.cfg \ file://sha256sum.cfg \ @@ -47,8 +46,11 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ - file://0001-mktemp-add-tmpdir-option.patch \ + file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \ + file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \ + file://start-stop-false.patch \ " SRC_URI:append:libc-musl = " file://musl.cfg " - -SRC_URI[tarball.sha256sum] = "415fbd89e5344c96acf449d94a6f956dbed62e18e835fc83e064db33a34bd549" +# TODO http://lists.busybox.net/pipermail/busybox/2023-January/090078.html +SRC_URI:append:x86 = " file://sha_accel.cfg" +SRC_URI[tarball.sha256sum] = "b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314" diff --git a/meta/recipes-core/busybox/files/syslog b/meta/recipes-core/busybox/files/syslog index 2208613e8c..a4fea30ab7 100644 --- a/meta/recipes-core/busybox/files/syslog +++ b/meta/recipes-core/busybox/files/syslog @@ -10,6 +10,8 @@ set -e +PATH="/bin:/usr/bin:/sbin:/usr/sbin" + if [ -f /etc/syslog-startup.conf ]; then . /etc/syslog-startup.conf LOG_LOCAL=0 |