diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest index 903c83e382..2ba96545d9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/Manifest @@ -1 +1,2 @@ DIST busybox-1.36.1.tar.bz2 2525473 BLAKE2B e515825cb3ab1c520e16b9c2512e9fc72947366a72a0466bff59b507fdffbc78fc9d16b44a26116175fc7a429d849ad944b1bc379d36c6d3a0eb20969997336e SHA512 8c0c754c9ae04b5e6b23596283a7d3a4ef96225fe179f92d6f6a99c69c0caa95b1aa56c267f52d7c807f6cc69e1f0b7dd29a8ac624098f601738f8c0c57980d4 +DIST busybox-1.37.0.tar.bz2 2565764 BLAKE2B bfd9b81a2428670722934316d429b56886b232dc43ced5873a1f72966dd2bb604e3d607082bb8404bc7e8c15c5c79265fc19f8932e2c9703caafd16fc8037a5a SHA512 ad8fd06f082699774f990a53d7a73b189ed404fe0a2166aff13eae4d9d8ee5c9239493befe949c98801fe7897520dbff3ed0224faa7205854ce4fa975e18467e diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.36.1-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.36.1-r4.ebuild similarity index 92% rename from sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.36.1-r3.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.36.1-r4.ebuild index d92573c92b..dcab41ad93 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.36.1-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.36.1-r4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # See `man savedconfig.eclass` for info on how to use USE=savedconfig. @@ -41,7 +41,10 @@ DEPEND="${RDEPEND} selinux? ( sys-libs/libselinux[static-libs(+)] ) ) sys-kernel/linux-headers" -BDEPEND="virtual/pkgconfig" +BDEPEND=" + virtual/pkgconfig + make-symlinks? ( >=sys-apps/coreutils-9.2 ) +" DISABLE_AUTOFORMATTING=yes DOC_CONTENTS=' @@ -84,8 +87,6 @@ PATCHES=( "${FILESDIR}"/${PN}-1.36.1-kernel-6.8.patch "${FILESDIR}"/${PN}-1.36.1-skip-dynamic-relocations.patch - - # "${FILESDIR}"/${P}-*.patch ) src_prepare() { @@ -132,7 +133,6 @@ src_configure() { # check for a busybox config before making one of our own. # if one exist lets return and use it. - restore_config .config if [ -f .config ]; then yes "" | bbmake -j1 oldconfig @@ -144,8 +144,8 @@ src_configure() { # setting SKIP_SELINUX skips searching for selinux at this stage. We don't # need to search now in case we end up not needing it after all. # setup the config file - bbmake -j1 allyesconfig SKIP_SELINUX=$(usex selinux n y) #620918 - # nommu forces a bunch of things off which we want on #387555 + bbmake -j1 allyesconfig SKIP_SELINUX=$(usex selinux n y) # bug #620918 + # nommu forces a bunch of things off which we want on bug #387555 busybox_config_option n NOMMU sed -i '/^#/d' .config yes "" | bbmake -j1 oldconfig SKIP_SELINUX=$(usex selinux n y) #620918 @@ -163,7 +163,7 @@ src_configure() { # CONFIG_MODPROBE_SMALL=y disables depmod.c and uses a smaller one that # does not support -b. Setting this to no creates slightly larger and # slightly more useful modutils - busybox_config_option n MODPROBE_SMALL #472464 + busybox_config_option n MODPROBE_SMALL # bug #472464 # triming the BSS size may be dangerous busybox_config_option n FEATURE_USE_BSS_TAIL @@ -249,7 +249,7 @@ src_compile() { } src_install() { - unset KBUILD_OUTPUT #88088 + unset KBUILD_OUTPUT # bug #88088 save_config .config into / @@ -269,7 +269,7 @@ src_install() { use make-symlinks || dosym /bin/bb /sbin/mdev cp "${S}"/examples/mdev_fat.conf "${ED}"/etc/mdev.conf || die if [[ ! "$(get_libdir)" == "lib" ]]; then - #831251 - replace lib with lib64 where appropriate + # bug #831251 - replace lib with lib64 where appropriate sed -i -e "s:/lib/:/$(get_libdir)/:g" "${ED}"/etc/mdev.conf || die fi @@ -353,6 +353,7 @@ src_install() { pkg_preinst() { if use make-symlinks ; then mv "${ED}"/usr/share/${PN}/busybox-links.tar "${T}"/ || die + rmdir "${ED}"/usr/share/${PN} || die fi } @@ -361,11 +362,13 @@ pkg_postinst() { if use make-symlinks ; then cd "${T}" || die - mkdir _install + mkdir -p _install || die tar xf busybox-links.tar -C _install || die - # 907432: cp -n returns error if it skips any file, but that is expected here - # TODO: check if a new coreutils release has a replacement option - cp -nvpPR _install/* "${ROOT}"/ + # Use --update=none from coreutils-9.2 instead of -n, add || die + # Skip legacy linuxrc link, if anyone really needs it they can create it manually + cp -vpP --update=none _install/bin/* "${ROOT}"/bin/ || die + cp -vpP --update=none _install/sbin/* "${ROOT}"/sbin/ || die + cp -vpP --update=none _install/usr/bin/* "${ROOT}"/usr/bin/ || die fi if use sep-usr ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.37.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.37.0.ebuild new file mode 100644 index 0000000000..7801dfaaea --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/busybox-1.37.0.ebuild @@ -0,0 +1,394 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# See `man savedconfig.eclass` for info on how to use USE=savedconfig. + +EAPI=8 + +inherit eapi9-ver flag-o-matic readme.gentoo-r1 savedconfig toolchain-funcs + +DESCRIPTION="Utilities for rescue and embedded systems" +HOMEPAGE="https://www.busybox.net/" +if [[ ${PV} == "9999" ]] ; then + MY_P="${P}" + EGIT_REPO_URI="https://git.busybox.net/busybox" + inherit git-r3 +else + MY_P="${PN}-${PV/_/-}" + SRC_URI="https://www.busybox.net/downloads/${MY_P}.tar.bz2" + # unstable release - no keywords + # KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" # GPL-2 only +SLOT="0" +IUSE="debug livecd make-symlinks math mdev pam selinux sep-usr static syslog systemd" +REQUIRED_USE="pam? ( !static )" +RESTRICT="test" + +# TODO: Could make pkgconfig conditional on selinux? bug #782829 +RDEPEND=" + !static? ( + virtual/libc + virtual/libcrypt:= + selinux? ( sys-libs/libselinux ) + ) + pam? ( sys-libs/pam ) +" +DEPEND="${RDEPEND} + static? ( + virtual/libcrypt[static-libs] + selinux? ( sys-libs/libselinux[static-libs(+)] ) + ) + sys-kernel/linux-headers" +BDEPEND=" + virtual/pkgconfig + make-symlinks? ( >=sys-apps/coreutils-9.2 ) +" + +DISABLE_AUTOFORMATTING=yes +DOC_CONTENTS=' +If you want a smaller executable, add `-Oz` to your busybox `CFLAGS`.' + +busybox_config_option() { + local flag=$1 ; shift + if [[ ${flag} != [yn] && ${flag} != \"* ]] ; then + busybox_config_option $(usex ${flag} y n) "$@" + return + fi + local expr + while [[ $# -gt 0 ]] ; do + case ${flag} in + y) expr="s:.*\.*set:CONFIG_$1=y:g" ;; + n) expr="s:CONFIG_$1=y:# CONFIG_$1 is not set:g" ;; + *) expr="s:.*\.*:CONFIG_$1=${flag}:g" ;; + esac + sed -i -e "${expr}" .config || die + einfo "$(grep "CONFIG_$1[= ]" .config || echo "Could not find CONFIG_$1 ...")" + shift + done +} + +busybox_config_enabled() { + local val=$(sed -n "/^CONFIG_$1=/s:^[^=]*=::p" .config) + case ${val} in + "") return 1 ;; + y) return 0 ;; + *) echo "${val}" | sed -r 's:^"(.*)"$:\1:' ;; + esac +} + +# patches go here! +PATCHES=( + "${FILESDIR}"/${PN}-1.26.2-bb.patch + "${FILESDIR}"/${PN}-1.34.1-skip-selinux-search.patch + + "${FILESDIR}"/${PN}-1.36.0-fortify-source-3-fixdep.patch + "${FILESDIR}"/${PN}-1.36.1-kernel-6.8.patch + + "${FILESDIR}"/${PN}-1.37.0-skip-dynamic-relocations.patch + + "${FILESDIR}"/${PN}-1.37.0-sha-ni-fix.patch +) + +src_prepare() { + default + + cp "${FILESDIR}"/ginit.c init/ || die + + # flag cleanup + sed -i -r \ + -e 's:[[:space:]]?-(Werror|Os|Oz|falign-(functions|jumps|loops|labels)=1|fomit-frame-pointer)\>::g' \ + Makefile.flags || die + sed -i \ + -e 's:-static-libgcc::' \ + Makefile.flags || die + + # Print all link lines too + sed -i -e 's:debug=false:debug=true:' scripts/trylink || die +} + +bbmake() { + local args=( + V=1 + CROSS_COMPILE="${CHOST}-" + AR="${AR}" + CC="${CC}" + HOSTCC="${BUILD_CC}" + HOSTCFLAGS="${BUILD_CFLAGS}" + PKG_CONFIG="${PKG_CONFIG}" + ) + emake "${args[@]}" "$@" +} + +src_configure() { + unset KBUILD_OUTPUT #88088 + export SKIP_STRIP=y + + tc-export AR CC BUILD_CC PKG_CONFIG + + tc-is-cross-compiler || BUILD_CFLAGS=${CFLAGS} + BUILD_CFLAGS+=" -D_FILE_OFFSET_BITS=64" #930513 + + append-flags -fno-strict-aliasing #310413 + use ppc64 && append-flags -mminimal-toc #130943 + + # check for a busybox config before making one of our own. + # if one exist lets return and use it. + restore_config .config + if [ -f .config ]; then + yes "" | bbmake -j1 oldconfig + return 0 + else + ewarn "Could not locate user configfile, so we will save a default one" + fi + + # setting SKIP_SELINUX skips searching for selinux at this stage. We don't + # need to search now in case we end up not needing it after all. + # setup the config file + bbmake -j1 allyesconfig SKIP_SELINUX=$(usex selinux n y) # bug #620918 + # nommu forces a bunch of things off which we want on bug #387555 + busybox_config_option n NOMMU + sed -i '/^#/d' .config + yes "" | bbmake -j1 oldconfig SKIP_SELINUX=$(usex selinux n y) #620918 + + # now turn off stuff we really don't want + busybox_config_option n DMALLOC + busybox_config_option n FEATURE_2_4_MODULES #607548 + busybox_config_option n FEATURE_SUID_CONFIG + busybox_config_option n BUILD_AT_ONCE + busybox_config_option n BUILD_LIBBUSYBOX + busybox_config_option n FEATURE_CLEAN_UP + busybox_config_option n MONOTONIC_SYSCALL + busybox_config_option n USE_PORTABLE_CODE + busybox_config_option n WERROR + # CONFIG_MODPROBE_SMALL=y disables depmod.c and uses a smaller one that + # does not support -b. Setting this to no creates slightly larger and + # slightly more useful modutils + busybox_config_option n MODPROBE_SMALL # bug #472464 + # triming the BSS size may be dangerous + busybox_config_option n FEATURE_USE_BSS_TAIL + + # These cause trouble with musl. + if use elibc_musl; then + busybox_config_option n FEATURE_UTMP + busybox_config_option n EXTRA_COMPAT + busybox_config_option n FEATURE_VI_REGEX_SEARCH + fi + + # Disable standalone shell mode when using make-symlinks, else Busybox calls its + # applets by default without looking up in PATH. + # This also enables users to disable a builtin by deleting the corresponding symlink. + if use make-symlinks; then + busybox_config_option n FEATURE_PREFER_APPLETS + busybox_config_option n FEATURE_SH_STANDALONE + fi + + # If these are not set and we are using a busybox setup + # all calls to system() will fail. + busybox_config_option y ASH + busybox_config_option y SH_IS_ASH + busybox_config_option n HUSH + busybox_config_option n SH_IS_HUSH + + busybox_config_option '"/run"' PID_FILE_PATH + busybox_config_option '"/run/ifstate"' IFUPDOWN_IFSTATE_PATH + + busybox_config_option pam PAM + busybox_config_option static STATIC + busybox_config_option syslog {K,SYS}LOGD LOGGER + busybox_config_option systemd FEATURE_SYSTEMD + busybox_config_option math FEATURE_AWK_LIBM + + # all the debug options are compiler related, so punt them + busybox_config_option n DEBUG_SANITIZE + busybox_config_option n DEBUG + busybox_config_option y NO_DEBUG_LIB + busybox_config_option n DMALLOC + busybox_config_option n EFENCE + busybox_config_option $(usex debug y n) TFTP_DEBUG + + busybox_config_option selinux SELINUX + + # this opt only controls mounting with process_block == sha1_process_block64 + #if ENABLE_SHA1_HWACCEL ++# if defined(__GNUC__) && defined(__x86_64__) + || ctx->process_block == sha1_process_block64_shaNI ++# endif + #endif + ) { + hash_size = 5; diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/busybox/files/busybox-1.37.0-skip-dynamic-relocations.patch b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/files/busybox-1.37.0-skip-dynamic-relocations.patch new file mode 100644 index 0000000000..8c63603165 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/busybox/files/busybox-1.37.0-skip-dynamic-relocations.patch @@ -0,0 +1,43 @@ +https://git.alpinelinux.org/aports/plain/main/busybox/0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch +https://bugs.gentoo.org/933771 + +From 3ead51e53687e94a51beb793661363df27b00814 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=B6ren=20Tempel?= +Date: Thu, 5 Jan 2023 15:47:55 +0100 +Subject: [PATCH] Hackfix to disable HW acceleration for MD5/SHA1 on x86 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This causes a direct segfault with musl libc. + +See: http://lists.busybox.net/pipermail/busybox/2023-January/090078.html +--- a/libbb/hash_md5_sha.c ++++ b/libbb/hash_md5_sha.c +@@ -17,7 +17,7 @@ + #define NEED_SHA512 (ENABLE_SHA512SUM || ENABLE_USE_BB_CRYPT_SHA) + + #if ENABLE_SHA1_HWACCEL || ENABLE_SHA256_HWACCEL +-# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) ++# if defined(__GNUC__) && defined(__x86_64__) + static void cpuid_eax_ebx_ecx(unsigned *eax, unsigned *ebx, unsigned *ecx, unsigned *edx) + { + asm ("cpuid" +@@ -1173,7 +1173,7 @@ void FAST_FUNC sha1_begin(sha1_ctx_t *ctx) + ctx->total64 = 0; + ctx->process_block = sha1_process_block64; + #if ENABLE_SHA1_HWACCEL +-# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) ++# if defined(__GNUC__) && defined(__x86_64__) + { + if (!shaNI) { + unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx; +@@ -1227,7 +1227,7 @@ void FAST_FUNC sha256_begin(sha256_ctx_t *ctx) + /*ctx->total64 = 0; - done by prepending two 32-bit zeros to init256 */ + ctx->process_block = sha256_process_block64; + #if ENABLE_SHA256_HWACCEL +-# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) ++# if defined(__GNUC__) && defined(__x86_64__) + { + if (!shaNI) { + unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx;