commit: f51fe5149921cfd97d4eb15ba9560fd3d9a24226 Author: Viorel Munteanu <ceamac.paragon <AT> gmail <DOT> com> AuthorDate: Fri Jul 1 11:03:50 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jul 3 23:52:43 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f51fe514
sys-apps/busybox: sync fixes to newer versions Sync fixes from 1.34.0-r1 to 1.35.0-r1 and to 9999 Fix new QA issue in live version Signed-off-by: Viorel Munteanu <ceamac.paragon <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> ...usybox-9999.ebuild => busybox-1.35.0-r1.ebuild} | 36 +++++++++-- sys-apps/busybox/busybox-9999.ebuild | 34 ++++++++-- .../files/busybox-1.36.0-fix-wx-sections.patch | 74 ++++++++++++++++++++++ 3 files changed, 133 insertions(+), 11 deletions(-) diff --git a/sys-apps/busybox/busybox-9999.ebuild b/sys-apps/busybox/busybox-1.35.0-r1.ebuild similarity index 85% copy from sys-apps/busybox/busybox-9999.ebuild copy to sys-apps/busybox/busybox-1.35.0-r1.ebuild index 490896632feb..76d06dcb9b29 100644 --- a/sys-apps/busybox/busybox-9999.ebuild +++ b/sys-apps/busybox/busybox-1.35.0-r1.ebuild @@ -5,7 +5,7 @@ EAPI=7 -inherit flag-o-matic savedconfig toolchain-funcs +inherit eapi8-dosym flag-o-matic savedconfig toolchain-funcs DESCRIPTION="Utilities for rescue and embedded systems" HOMEPAGE="https://www.busybox.net/" @@ -16,7 +16,8 @@ if [[ ${PV} == "9999" ]] ; then else MY_P="${PN}-${PV/_/-}" SRC_URI="https://www.busybox.net/downloads/${MY_P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + # unstable release - no keywords + # KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" fi LICENSE="GPL-2" # GPL-2 only @@ -72,6 +73,7 @@ busybox_config_enabled() { # patches go here! PATCHES=( "${FILESDIR}"/${PN}-1.26.2-bb.patch + "${FILESDIR}"/${PN}-1.34.1-skip-selinux-search.patch # "${FILESDIR}"/${P}-*.patch ) @@ -114,12 +116,14 @@ src_configure() { 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 - emake -j1 -s allyesconfig >/dev/null + emake -j1 -s allyesconfig SKIP_SELINUX=$(usex selinux n y) >/dev/null #620918 # nommu forces a bunch of things off which we want on #387555 busybox_config_option n NOMMU sed -i '/^#/d' .config - yes "" | emake -j1 -s oldconfig >/dev/null + yes "" | emake -j1 -s oldconfig SKIP_SELINUX=$(usex selinux n y) >/dev/null #620918 # now turn off stuff we really don't want busybox_config_option n DMALLOC @@ -131,6 +135,10 @@ src_configure() { 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 #472464 # triming the BSS size may be dangerous busybox_config_option n FEATURE_USE_BSS_TAIL @@ -245,7 +253,10 @@ src_install() { if use mdev ; then dodir /$(get_libdir)/mdev/ use make-symlinks || dosym /bin/bb /sbin/mdev - cp "${S}"/examples/mdev_fat.conf "${ED}"/etc/mdev.conf + cp "${S}"/examples/mdev_fat.conf "${ED}"/etc/mdev.conf || die + if [[ ! "$(get_libdir)" == "lib" ]]; then + sed -i -e "s:/lib/:/$(get_libdir)/:g" "${ED}"/etc/mdev.conf || die #831251 - replace lib with lib64 where appropriate + fi exeinto /$(get_libdir)/mdev/ doexe "${FILESDIR}"/mdev/* @@ -274,6 +285,7 @@ src_install() { newinitd "${FILESDIR}"/watchdog.initd busybox-watchdog fi if busybox_config_enabled UDHCPC; then + sed -i 's:$((metric++)):$metric; metric=$((metric + 1)):' examples/udhcp/simple.script || die #801535 local path=$(busybox_config_enabled UDHCPC_DEFAULT_SCRIPT) exeinto "${path%/*}" newexe examples/udhcp/simple.script "${path##*/}" @@ -282,13 +294,22 @@ src_install() { insinto /etc doins examples/udhcp/udhcpd.conf fi + if busybox_config_enabled ASH && ! use make-symlinks; then + dosym8 -r /bin/busybox /bin/ash + fi + if busybox_config_enabled CROND; then + newconfd "${FILESDIR}"/crond.confd busybox-crond + newinitd "${FILESDIR}"/crond.initd busybox-crond + fi # bundle up the symlink files for use later emake DESTDIR="${ED}" install rm _install/bin/busybox || die # for compatibility, provide /usr/bin/env mkdir -p _install/usr/bin || die - ln -s /bin/env _install/usr/bin/env || die + if [[ ! -e _install/usr/bin/env ]]; then + ln -s /bin/env _install/usr/bin/env || die + fi tar cf busybox-links.tar -C _install . || : #;die insinto /usr/share/${PN} use make-symlinks && doins busybox-links.tar @@ -307,6 +328,9 @@ src_install() { cd ../examples || die docinto examples dodoc inittab depmod.pl *.conf *.script undeb unrpm + + cd ../networking || die + dodoc httpd_indexcgi.c httpd_post_upload.cgi } pkg_preinst() { diff --git a/sys-apps/busybox/busybox-9999.ebuild b/sys-apps/busybox/busybox-9999.ebuild index 490896632feb..5e059850212f 100644 --- a/sys-apps/busybox/busybox-9999.ebuild +++ b/sys-apps/busybox/busybox-9999.ebuild @@ -5,7 +5,7 @@ EAPI=7 -inherit flag-o-matic savedconfig toolchain-funcs +inherit eapi8-dosym flag-o-matic savedconfig toolchain-funcs DESCRIPTION="Utilities for rescue and embedded systems" HOMEPAGE="https://www.busybox.net/" @@ -72,6 +72,8 @@ busybox_config_enabled() { # 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-fix-wx-sections.patch # "${FILESDIR}"/${P}-*.patch ) @@ -114,12 +116,14 @@ src_configure() { 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 - emake -j1 -s allyesconfig >/dev/null + emake -j1 -s allyesconfig SKIP_SELINUX=$(usex selinux n y) >/dev/null #620918 # nommu forces a bunch of things off which we want on #387555 busybox_config_option n NOMMU sed -i '/^#/d' .config - yes "" | emake -j1 -s oldconfig >/dev/null + yes "" | emake -j1 -s oldconfig SKIP_SELINUX=$(usex selinux n y) >/dev/null #620918 # now turn off stuff we really don't want busybox_config_option n DMALLOC @@ -131,6 +135,10 @@ src_configure() { 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 #472464 # triming the BSS size may be dangerous busybox_config_option n FEATURE_USE_BSS_TAIL @@ -245,7 +253,10 @@ src_install() { if use mdev ; then dodir /$(get_libdir)/mdev/ use make-symlinks || dosym /bin/bb /sbin/mdev - cp "${S}"/examples/mdev_fat.conf "${ED}"/etc/mdev.conf + cp "${S}"/examples/mdev_fat.conf "${ED}"/etc/mdev.conf || die + if [[ ! "$(get_libdir)" == "lib" ]]; then + sed -i -e "s:/lib/:/$(get_libdir)/:g" "${ED}"/etc/mdev.conf || die #831251 - replace lib with lib64 where appropriate + fi exeinto /$(get_libdir)/mdev/ doexe "${FILESDIR}"/mdev/* @@ -274,6 +285,7 @@ src_install() { newinitd "${FILESDIR}"/watchdog.initd busybox-watchdog fi if busybox_config_enabled UDHCPC; then + sed -i 's:$((metric++)):$metric; metric=$((metric + 1)):' examples/udhcp/simple.script || die #801535 local path=$(busybox_config_enabled UDHCPC_DEFAULT_SCRIPT) exeinto "${path%/*}" newexe examples/udhcp/simple.script "${path##*/}" @@ -282,13 +294,22 @@ src_install() { insinto /etc doins examples/udhcp/udhcpd.conf fi + if busybox_config_enabled ASH && ! use make-symlinks; then + dosym8 -r /bin/busybox /bin/ash + fi + if busybox_config_enabled CROND; then + newconfd "${FILESDIR}"/crond.confd busybox-crond + newinitd "${FILESDIR}"/crond.initd busybox-crond + fi # bundle up the symlink files for use later emake DESTDIR="${ED}" install rm _install/bin/busybox || die # for compatibility, provide /usr/bin/env mkdir -p _install/usr/bin || die - ln -s /bin/env _install/usr/bin/env || die + if [[ ! -e _install/usr/bin/env ]]; then + ln -s /bin/env _install/usr/bin/env || die + fi tar cf busybox-links.tar -C _install . || : #;die insinto /usr/share/${PN} use make-symlinks && doins busybox-links.tar @@ -307,6 +328,9 @@ src_install() { cd ../examples || die docinto examples dodoc inittab depmod.pl *.conf *.script undeb unrpm + + cd ../networking || die + dodoc httpd_indexcgi.c httpd_post_upload.cgi } pkg_preinst() { diff --git a/sys-apps/busybox/files/busybox-1.36.0-fix-wx-sections.patch b/sys-apps/busybox/files/busybox-1.36.0-fix-wx-sections.patch new file mode 100644 index 000000000000..16118cf9b95f --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.36.0-fix-wx-sections.patch @@ -0,0 +1,74 @@ + * QA Notice: The following files contain writable and executable sections + * Files with such sections will not work properly (or at all!) on some + * architectures/operating systems. A bug should be filed at + * https://bugs.gentoo.org/ to make sure the issue is fixed. + * For more information, see: + * + * https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart + * + * Please include the following list of files in your report: + * Note: Bugs should be filed for the respective maintainers + * of the package in question and not [email protected]. + * RWX --- --- bin/busybox + +$ scanelf -qeR . +RWX --- --- ./busybox +RWX --- --- ./busybox_unstripped +!WX --- --- ./libbb/hash_md5_sha_x86-64_shaNI.o +!WX --- --- ./libbb/hash_md5_sha_x86-64.o +!WX --- --- ./libbb/hash_md5_sha_x86-32_shaNI.o +!WX --- --- ./libbb/hash_md5_sha256_x86-64_shaNI.o +!WX --- --- ./libbb/hash_md5_sha256_x86-32_shaNI.o + +Try to fix this QA issue + +--- a/libbb/hash_md5_sha256_x86-32_shaNI.S ++++ b/libbb/hash_md5_sha256_x86-32_shaNI.S +@@ -278,4 +278,7 @@ + PSHUFFLE_BSWAP32_FLIP_MASK: + .octa 0x0c0d0e0f08090a0b0405060700010203 + ++#if defined(__linux__) && defined(__ELF__) ++ .section .note.GNU-stack, "", %progbits ++#endif + #endif +--- a/libbb/hash_md5_sha256_x86-64_shaNI.S ++++ b/libbb/hash_md5_sha256_x86-64_shaNI.S +@@ -284,4 +284,7 @@ + PSHUFFLE_BSWAP32_FLIP_MASK: + .octa 0x0c0d0e0f08090a0b0405060700010203 + ++#if defined(__linux__) && defined(__ELF__) ++ .section .note.GNU-stack, "", %progbits ++#endif + #endif +--- a/libbb/hash_md5_sha_x86-32_shaNI.S ++++ b/libbb/hash_md5_sha_x86-32_shaNI.S +@@ -228,4 +228,7 @@ + PSHUFFLE_BYTE_FLIP_MASK: + .octa 0x000102030405060708090a0b0c0d0e0f + ++#if defined(__linux__) && defined(__ELF__) ++ .section .note.GNU-stack, "", %progbits ++#endif + #endif +--- a/libbb/hash_md5_sha_x86-64.S ++++ b/libbb/hash_md5_sha_x86-64.S +@@ -1483,4 +1483,7 @@ + .long 0x8F1BBCDC + .long 0xCA62C1D6 + ++#if defined(__linux__) && defined(__ELF__) ++ .section .note.GNU-stack, "", %progbits ++#endif + #endif +--- a/libbb/hash_md5_sha_x86-64_shaNI.S ++++ b/libbb/hash_md5_sha_x86-64_shaNI.S +@@ -226,4 +226,7 @@ + PSHUFFLE_BYTE_FLIP_MASK: + .octa 0x000102030405060708090a0b0c0d0e0f + ++#if defined(__linux__) && defined(__ELF__) ++ .section .note.GNU-stack, "", %progbits ++#endif + #endif
