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

Reply via email to