aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Shelton <stuart@shelton.me>2018-02-14 20:35:18 +0000
committerStuart Shelton <stuart@shelton.me>2018-02-14 20:35:18 +0000
commit2425fc6021994d4039c5f6a12539323bb6c67fe3 (patch)
tree8ee20394f70a0c8a74bf3f153e32d8cf6fa30d5b
parentUpdate sys-apps/baselayout-2.4.1-r2 (diff)
downloadsrcshelton-2425fc6021994d4039c5f6a12539323bb6c67fe3.tar.gz
srcshelton-2425fc6021994d4039c5f6a12539323bb6c67fe3.tar.bz2
srcshelton-2425fc6021994d4039c5f6a12539323bb6c67fe3.zip
Add sys-apps/busybox-1.28.0, update sys-apps/busybox-1.25.1
-rw-r--r--sys-apps/busybox/Manifest5
-rw-r--r--sys-apps/busybox/busybox-1.25.1.ebuild7
-rw-r--r--sys-apps/busybox/busybox-1.28.0.ebuild335
-rw-r--r--sys-apps/busybox/files/busybox-1.26.2-bb.patch55
4 files changed, 400 insertions, 2 deletions
diff --git a/sys-apps/busybox/Manifest b/sys-apps/busybox/Manifest
index 1f75af4c..b49d15b0 100644
--- a/sys-apps/busybox/Manifest
+++ b/sys-apps/busybox/Manifest
@@ -32,6 +32,7 @@ AUX busybox-1.24.2-CVE-2016-2147.patch 3453 SHA256 7cedbcfe2744a7efc1d811372932b
AUX busybox-1.24.2-CVE-2016-2148.patch 1956 SHA256 0d42e12334ff14616ce9dc22f02f15c8f3df3ef3334c9ef81abd29d21b5ac687 SHA512 0ffdfa24d5943a15d924fdd42b5d410c0a215d0cad1753caf6c6aba7d0e5be7a883b561a683a4ac8b906e96b1839f4e6f235501c1467afe50508284f51e42c0c WHIRLPOOL 6a37440abe63b75815b41d2bb4ddc8de1a557bca3a7a17802b7443079fd7418260d81231900f697cab4b4fbbd892be37dc9d97df6880e342db07fa5792f556bb
AUX busybox-1.24.2-ash-recursive-heredocs.patch 2442 SHA256 2e4b028036b6e983f04f51a2cfb5e61a6e71e4143e5342c54b96bc2296e5d45c SHA512 24cd081d29fd013b9e1893ceb6f3fb8e240e46f69c1d225eed4c71ab5b630e064a15d158f37a2a1ad3f00dafa972af84fe79bd32917b4f126d557839b3288b02 WHIRLPOOL d9108189f20b0326f3095d420aab74dae4bad00381781558f4d6360c62aa9021b01194b773be13625dd7ab97732ea737685e330f19046527792f0f278f761e26
AUX busybox-1.25.1-setfiles.patch 1153 SHA256 bd0f75f3d3eeab0d140cd7497617875330b5f70de14c04b78047e76aa1c08611 SHA512 2b3b4aba3be49437b1875ce00887e385abae275cc269ca0e80af797a6a6acfa2f20ea4bcf195e67490d8fe691c1ca7493adbf7e097bd4f6f0e1d7e07e493dca4 WHIRLPOOL 9442abafe26be8a1b2e60b81df2446957e6d135f2d7038ea71eba55f10e1ed3677743d93b2ffd7a1977d214d7ec3916ca4ec40c9cd46d16f5ba47ea3198357ec
+AUX busybox-1.26.2-bb.patch 2416 SHA256 260bc0e35c808fc71d73982adb29161c2649b76ed0afa23b66f148c6ebf09d95 SHA512 cb767a613ede504a7b1a87da3270992ffa44d3b6f76eebefceffc8a5a49119a99333c482420efab9d1e5a92a26280376c7e9ec62fcb2193d9172f4e7bc19f50e WHIRLPOOL 31a9278cad767fcf455b45ccf756f5e69e79f0d4ccafb4d8d42317e1226b638ce4df8df19d0497925e54bf8a145f1ac562f5650678bd715018d99407f1a36042
AUX ginit.c 3097 SHA256 fd6a4715d3dd10f6db479020433da3997d397658301335c847fb779129238b8c SHA512 8bf70f13db0fbeecedf9a9f862c5391c0d8b7aa3ddd2ec85cda9b360c3117a01e32b01017b8c30197f587e521ba360ff70d1caf8d0f69d5c3a27f37ecc252e7c WHIRLPOOL a1ec3ccc296033d88a9504b693c7d249d0bd11b1d75e3f59a62137c5e4b4c914fe2b8971c86dbca2cc8ccc0d86f3f8c2c45bb44cec85a3628c44f091476baa92
AUX klogd.confd 218 SHA256 737b78745964e110da2fd3357c6d5fb80ccacf979039b8d40c03cf1cb969e5f3 SHA512 3348d5376b368b28d1431692a93868cd4550be12ad729340c5f78da35a5bd295e7613d70ce8ccde5029ad6d87a41c2f24155180f3570de8a9174dd63dece143f WHIRLPOOL ea28c1d926e36fba0ab69de8ddfd2503889b7cfa3a4ada347a9d22d9894fe30be068c0ed55f899b952e62b8de3cb69e1a4209f7864787988ded28ede10c7445a
AUX klogd.initd 249 SHA256 032044083ab7859c8ce66dc4986f95c06dc0a3066a3997c4200b7690a547ca98 SHA512 00ca6c0059a2c71d12371fe26835a093148f1593d15db4e0e686cbdef3df43c157efbb7613043508b73be769cd3a6e69183f12749933e35a3a5e76e6b99af0ee WHIRLPOOL d97d2af0c1d656f7f3b3e1bf540701878203def197a15a1b188affefba5c9f2ec43188936c26aca450ee25a2073ea70b1ef5eea3571c766611aef277ecf0dbe7
@@ -63,6 +64,7 @@ DIST busybox-1.23.1.tar.bz2 2252635 SHA256 300f1db0a7ca4ecee8f8d8027aba250b90337
DIST busybox-1.24.1.tar.bz2 2068803 SHA256 37d03132cc078937360b392170b7a1d0e5b322eee9f57c0b82292a8b1f0afe3d SHA512 3afc757ebaae61ae13c2c69097ee734717434f9e658eb77093a8b7b49af3326cbca2d723483ff84a1da99544b822fd2b47d9a97c68f09962e11754e5daf124ca WHIRLPOOL 5e827d08d737caac832e7e5923da624094ff27ee2edbb46dadc339e95edba65378a8fa3db412682724476a2092eee41a804f8f36c2eec0b9f883f5ba855f3ad0
DIST busybox-1.24.2.tar.bz2 2066822 SHA256 e71ef53ec656f31c42633918d301405d40dea1d97eca12f272217ae4a971c855 SHA512 4d20fb68ee440be2855231c7fd5f3cb9dd9bfcc1a688f0b59cd3f7a55c8819e9cc44bd15f91500713571f2a84e5e44adc0fa8ae0ae3ebf63961dfc9e1c9ef8e0 WHIRLPOOL 2d89e3fded8d61567873acdb1e1e21888a4447e19c1b893543bbe82de52e8e3cf091adb10f34aa155da573994d89ae42f40ecce65ec0d32a641d103c8d8ce053
DIST busybox-1.25.1.tar.bz2 2103070 SHA256 27667e0f2328fdbd79cfd622e4453e5c57e58f781c5da97c9be337d93aa2a02e SHA512 9648877ed11e5a55213cd14fd64f6fc64dbd17013fbfaa4e67f4fd433f59e9231ed78a88e6e8100a4794d833f1d9863bb86f75faae093418866770804bf873cb WHIRLPOOL 4b7bc6d3a88559812797feb4574975b9fdeb6eac6ac7a0fe51e4750a3b05a614ecb8bd9d58547047cdf1e0b66d9bcd189c8a4193fc2f3b491a6268bc06761ad1
+DIST busybox-1.28.0.tar.bz2 2261831 SHA256 604553b7dbd59ded9e3ad7c6af49ed2cff599adf3e54d9463e5e0027b362019c SHA512 346a71d44e6c4e1889ac12ae52320cb0c3d0c45c2b4b49fc4e3c0bb25f427707d8075150d545906f414b9f4e5b6d8f1a3afe8cdc31f6a64e06c62b400d7d129b WHIRLPOOL c880f4dcaa3e3a6b721b45d0d1594428b36874bc739dab710a511f59980b683aba1d5458b1c789762aec3b218f2ccda345120b845c48d4ae778c4f35e6d7826f
EBUILD busybox-1.20.2.ebuild 8669 SHA256 99471899ccdfc1240f9555010d1d137799fed8f3e16a5af59e063305a3439fbf SHA512 74c15eab5a8d2acc78f339e6ec53db27e76cd31bc04b14bb5bc0b305bcd09278bbadf1ec390acc6081ef0ffab2aa0a282af826c7935ce0792a8378510b54d3ef WHIRLPOOL ddf0b020cf50be88ad43101ee7d3dfe82f95874bf125fa82cc7806b142e1fcbf5d6615f520eb57218b8d322f5260a860afe9c93b98cc80960b7d519a12baff1f
EBUILD busybox-1.21.0.ebuild 8475 SHA256 35f327b78633769164e2c19bef6ad866c815896c59dc359d72f61398d582301e SHA512 4533654c76a5c916b80b5a274e148835ae119015ef9a45c3868d6c052ea08378e95f0aa05cda4325bc7da6906f6efde3fabb39085f07cc2f0ff6d050291535d9 WHIRLPOOL 07d7af325f5b7d17928fb9c783cc86a32e09f41f8a81ab8378d1917f02fffb2c8852db68e9df515227ee1dd8c7895c0f987d484b04a8f81df530f6bb7421535a
EBUILD busybox-1.21.1.ebuild 8620 SHA256 162d37401744663a5ff0588be8521bc81d4ffef7b2b4db386e16e696547f4108 SHA512 5712f0308f4a7b43974f2ace2c22bf2178fd9bcd5869cd399f1a813bcb11bd227511e514e10eea6065c022966b910e40a75a21bb47ab2fec3a6cfcbbe52c773e WHIRLPOOL 98baf444d40e423d91ff6e8764f0cf415189e4aad0712f8d3fc52a62d3e285a78cb3fec2112e4886d480ce5abb5ee1726bbae14c4a3fb7655701c9d10fce78a1
@@ -73,4 +75,5 @@ EBUILD busybox-1.23.1-r1.ebuild 8928 SHA256 04c32d077e342e68c9721a3a6e842dbce588
EBUILD busybox-1.23.1.ebuild 8890 SHA256 2d29dabc41c6abcb1cb0554f72ffe690cbc6426ae7505b2ac89ecd2b226a40c7 SHA512 790d9ba04b2f6d8638bbb7cc3a46e96b914d47b7ecb0f2766da71b61346a8da1fee1b69f4e9b98def3f503688294725d96387336561689616ad8b37eea25a35c WHIRLPOOL 90124e31dbb67eead13403c1cb84e86e1459e394bd97345e25a14895d70e75a07a9a123dde57c45651fa873038b975dbffbb3c4fcb2d49744287b20bde348a79
EBUILD busybox-1.24.1.ebuild 9083 SHA256 196b8df86f6ab5fe336269b7b0ddba23fab195f8a0b9613635bc66e091996046 SHA512 93cda0c2276ad75cd60ebafc5c13579f417591aa6476768a205126789a304c88974d7b1746a9e8031cc147f51faed7f8959e28421b4265eee7d978b94901c3a2 WHIRLPOOL 5143f99e8bcd84ca08f6cacef35f8bc442c77ef358e2267c5a1a2c00fed0fe720d3c56314cef5782a01b5c39830f756d0712d8266cee68611239e50eccb2a9ab
EBUILD busybox-1.24.2.ebuild 9158 SHA256 418d4d9cfb4c0617ccaec34b16e1ec1a51c3359bd7fbb2bbb474e5cb48ba596b SHA512 a3ffa61bfe430aa3d082fac43b5ad5100709141d1b5dc0c272fa50473aef3eeec4d4f75447789c3c4f9f0716310a41659a6a040dd54512aca96cb52ad0f9ab18 WHIRLPOOL d9a0d9c9748d0e53dfd83cf79e5c52132231b3d6e71ed1c8761ccea61a67e5b538fe53ee2f139a77e44c1a3c73ca517378fa6fd3d5f66b124ef771d94c949a92
-EBUILD busybox-1.25.1.ebuild 9081 SHA256 d9b73d5098894c2af85e5faf63d018858c3836ff3080ba44d925fc0a8ff2720a SHA512 6982590f305bed2500133feb261aabfb03989608878bdd14d3d3c158025f7f6f4c6cc209b98c6109b87fa95f5053e735337c30e8a71f90c45538da8cbd4127a2 WHIRLPOOL d20fdb71b4fd55d8be9340c2492642fcb8986f311b6529e0ab4ec831a5e1f6048660cc6d1336b0b69ba0a0a57e7746028f6d4cdf3c8a30403fdb6d7e64d83435
+EBUILD busybox-1.25.1.ebuild 9206 SHA256 9b8d281d2296d94921ee8c4e5e88d333db59de2374c3d3d8f4e769f8c30d482d SHA512 01051f610a7091908e555753ec0b3468f765099ebcedbfaffab4109135cee2cd962d84ff2b37ea13da0c918b42a4b83aae44e0e81beae042708b999c6fbf2c8a WHIRLPOOL 53a1dfbee52959219673f776ed5b9a93a3ea8a2bda83f00ba9ddf02ee0fd24978078b3b4ff87a19431b88ddff2b07e820343a32d5ea7cd986483a69b9c4860f3
+EBUILD busybox-1.28.0.ebuild 9741 SHA256 1c18f398df6e2abb24a8a10ee9ffa78893de4ca64b1e14b0a4b4116c6dcb19b3 SHA512 55e9e270827b66caab6250a2e97e1b2d1606db82ebb4fd1f635dca09b0646128cf119eb209b950ecd3319fbd06d7c9a3bad1c80098ac70b71d7fc5446c6c20aa WHIRLPOOL 41fb562bb690d4bf8b5542a260acd23c1d17365ff76e942ed58f5cf7354104136006b1615399cb6d02ef43f86f48583b2c0e67e0f8acbb3f45de53366e5a0c8b
diff --git a/sys-apps/busybox/busybox-1.25.1.ebuild b/sys-apps/busybox/busybox-1.25.1.ebuild
index 85123c03..74299eb1 100644
--- a/sys-apps/busybox/busybox-1.25.1.ebuild
+++ b/sys-apps/busybox/busybox-1.25.1.ebuild
@@ -1,6 +1,5 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Id: 6711b0dd4497a5caafa911649c27abb4a218f27f $
# See `man savedconfig.eclass` for info on how to use USE=savedconfig.
@@ -148,6 +147,12 @@ src_configure() {
busybox_config_option systemd FEATURE_SYSTEMD
busybox_config_option math FEATURE_AWK_LIBM
+ # disable features that uClibc doesn't (yet?) provide.
+ if use elibc_uclibc; then
+ busybox_config_option n FEATURE_SYNC_FANCY #567598
+ busybox_config_option n NSENTER
+ fi
+
# all the debug options are compiler related, so punt them
busybox_config_option n DEBUG_SANITIZE
busybox_config_option n DEBUG
diff --git a/sys-apps/busybox/busybox-1.28.0.ebuild b/sys-apps/busybox/busybox-1.28.0.ebuild
new file mode 100644
index 00000000..7a192651
--- /dev/null
+++ b/sys-apps/busybox/busybox-1.28.0.ebuild
@@ -0,0 +1,335 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# See `man savedconfig.eclass` for info on how to use USE=savedconfig.
+
+EAPI="5"
+inherit eutils flag-o-matic savedconfig toolchain-funcs multilib
+
+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"
+ KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~arm-linux ~x86-linux"
+fi
+
+LICENSE="GPL-2" # GPL-2 only
+SLOT="0"
+IUSE="debug ipv6 livecd make-symlinks math mdev -pam selinux sep-usr +static syslog systemd"
+REQUIRED_USE="pam? ( !static )"
+RESTRICT="test"
+
+COMMON_DEPEND="!static? ( selinux? ( sys-libs/libselinux ) )
+ pam? ( sys-libs/pam )"
+DEPEND="${COMMON_DEPEND}
+ static? ( selinux? ( sys-libs/libselinux[static-libs(+)] ) )
+ >=sys-kernel/linux-headers-2.6.39"
+RDEPEND="${COMMON_DEPEND}
+ mdev? ( !<sys-apps/openrc-0.13 )"
+
+S=${WORKDIR}/${MY_P}
+
+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:.*\<CONFIG_$1\>.*set:CONFIG_$1=y:g" ;;
+ n) expr="s:CONFIG_$1=y:# CONFIG_$1 is not set:g" ;;
+ *) expr="s:.*\<CONFIG_$1\>.*: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
+}
+
+src_prepare() {
+ unset KBUILD_OUTPUT #88088
+ append-flags -fno-strict-aliasing #310413
+ use ppc64 && append-flags -mminimal-toc #130943
+
+ # patches go here!
+ epatch "${FILESDIR}"/${PN}-1.26.2-bb.patch
+# epatch "${FILESDIR}"/${P}-*.patch
+ cp "${FILESDIR}"/ginit.c init/ || die
+
+ # flag cleanup
+ sed -i -r \
+ -e 's:[[:space:]]?-(Werror|Os|falign-(functions|jumps|loops|labels)=1|fomit-frame-pointer)\>::g' \
+ Makefile.flags || die
+ #sed -i '/bbsh/s:^//::' include/applets.h
+ sed -i '/^#error Aborting compilation./d' applets/applets.c || die
+ use elibc_glibc && sed -i 's:-Wl,--gc-sections::' Makefile
+ sed -i \
+ -e "/^CROSS_COMPILE/s:=.*:= ${CHOST}-:" \
+ -e "/^AR\>/s:=.*:= $(tc-getAR):" \
+ -e "/^CC\>/s:=.*:= $(tc-getCC):" \
+ -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
+ -e "/^PKG_CONFIG\>/s:=.*:= $(tc-getPKG_CONFIG):" \
+ Makefile || die
+ sed -i \
+ -e 's:-static-libgcc::' \
+ Makefile.flags || die
+
+ # Enable additional debugging output for mdev...
+ if use debug; then
+ sed -i \
+ -e 's:^#define DEBUG_LVL 2$:#define DEBUG_LVL 3:' \
+ util-linux/mdev.c || die "Unable to increase mdev debug level"
+ fi
+}
+
+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 "" | emake -j1 -s oldconfig >/dev/null
+ return 0
+ else
+ ewarn "Could not locate user configfile, so we will save a default one"
+ fi
+
+ # setup the config file
+ emake -j1 -s allyesconfig >/dev/null
+ # 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
+
+ # 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 START_STOP_DAEMON # busybox SSD is not compatible with Gentoo SSD...
+ busybox_config_option n USE_PORTABLE_CODE
+ busybox_config_option n WERROR
+ # 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
+
+ # If these are not set and we are using a uclibc/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 '"/var/run"' PID_FILE_PATH
+ busybox_config_option '"/var/run/ifstate"' IFUPDOWN_IFSTATE_PATH
+
+ # disable ipv6 applets
+ if ! use ipv6; then
+ busybox_config_option n FEATURE_IPV6
+ busybox_config_option n TRACEROUTE6
+ busybox_config_option n PING6
+ busybox_config_option n UDHCPC6
+ fi
+
+ busybox_config_option $(usex static n 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
+
+ # disable features that uClibc doesn't (yet?) provide.
+ if use elibc_uclibc; then
+ busybox_config_option n FEATURE_SYNC_FANCY #567598
+ busybox_config_option n NSENTER
+ fi
+
+ # 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 <linux-2.6.23
+ busybox_config_option n FEATURE_MOUNT_NFS
+
+ # default a bunch of uncommon options to off
+ local opt
+ for opt in \
+ ADD_SHELL \
+ BEEP BOOTCHARTD \
+ CRONTAB \
+ DC DEVFSD DNSD DPKG{,_DEB} \
+ FAKEIDENTD FBSPLASH FOLD FSCK_MINIX FTP{GET,PUT} \
+ FEATURE_DEVFS \
+ HOSTID HUSH \
+ INETD INOTIFYD IPCALC \
+ LOCALE_SUPPORT LOGNAME LPD \
+ MAKEMIME MKFS_MINIX MSH \
+ OD \
+ RDEV READPROFILE REFORMIME REMOVE_SHELL RFKILL RUN_PARTS RUNSV{,DIR} \
+ SLATTACH SMEMCAP SULOGIN SV{,LOGD} \
+ TASKSET TCPSVD \
+ RPM RPM2CPIO \
+ UDPSVD UUDECODE UUENCODE
+ do
+ busybox_config_option n ${opt}
+ done
+
+ emake -j1 oldconfig > /dev/null
+}
+
+src_compile() {
+ unset KBUILD_OUTPUT #88088
+ export SKIP_STRIP=y
+
+ emake V=1 busybox
+}
+
+src_install() {
+ unset KBUILD_OUTPUT #88088
+ save_config .config
+
+ into /
+ dodir /bin
+ if use sep-usr ; then
+ # install /ginit to take care of mounting stuff
+ exeinto /
+ newexe busybox_unstripped ginit
+ dosym /ginit /bin/bb
+ dosym bb /bin/busybox
+ else
+ newbin busybox_unstripped busybox
+ dosym busybox /bin/bb
+ fi
+ if use mdev ; then
+ dodir /$(get_libdir)/mdev/
+ use make-symlinks || dosym /bin/bb /sbin/mdev
+ cp "${FILESDIR}"/mdev.conf "${ED}"/etc/mdev.conf
+ newdoc "${S}"/examples/mdev_fat.conf mdev.conf
+
+ exeinto /$(get_libdir)/mdev/
+ doexe "${FILESDIR}"/mdev/*
+
+ newinitd "${FILESDIR}"/mdev.initd mdev
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/mdev.logrotate" mdev
+ fi
+ if use livecd ; then
+ dosym busybox /bin/vi
+ fi
+
+ # add busybox daemon's, bug #444718
+ if busybox_config_enabled FEATURE_NTPD_SERVER; then
+ newconfd "${FILESDIR}/ntpd.confd" "busybox-ntpd"
+ newinitd "${FILESDIR}/ntpd.initd" "busybox-ntpd"
+ fi
+ if busybox_config_enabled SYSLOGD; then
+ newconfd "${FILESDIR}/syslogd.confd" "busybox-syslogd"
+ newinitd "${FILESDIR}/syslogd.initd" "busybox-syslogd"
+ fi
+ if busybox_config_enabled KLOGD; then
+ newconfd "${FILESDIR}/klogd.confd" "busybox-klogd"
+ newinitd "${FILESDIR}/klogd.initd" "busybox-klogd"
+ fi
+ if busybox_config_enabled WATCHDOG; then
+ newconfd "${FILESDIR}/watchdog.confd" "busybox-watchdog"
+ newinitd "${FILESDIR}/watchdog.initd" "busybox-watchdog"
+ fi
+ if busybox_config_enabled UDHCPC; then
+ local path=$(busybox_config_enabled UDHCPC_DEFAULT_SCRIPT)
+ exeinto "${path%/*}"
+ newexe examples/udhcp/simple.script "${path##*/}"
+ fi
+ if busybox_config_enabled UDHCPD; then
+ insinto /etc
+ doins examples/udhcp/udhcpd.conf
+ fi
+
+ # bundle up the symlink files for use later
+ emake DESTDIR="${ED}" install
+ rm _install/bin/busybox
+ # for compatibility, provide /usr/bin/env
+ mkdir -p _install/usr/bin
+ ln -s /bin/env _install/usr/bin/env
+ tar cf busybox-links.tar -C _install . || : #;die
+ insinto /usr/share/${PN}
+ use make-symlinks && doins busybox-links.tar
+
+ dodoc AUTHORS README TODO
+
+ cd docs
+ docinto txt
+ dodoc *.txt
+ docinto pod
+ dodoc *.pod
+ dohtml *.html
+
+ cd ../examples
+ docinto examples
+ dodoc inittab depmod.pl *.conf *.script undeb unrpm
+}
+
+pkg_preinst() {
+ if use make-symlinks && [[ ! ${VERY_BRAVE_OR_VERY_DUMB} == "yes" ]] && [[ ${ROOT} == "/" ]] ; then
+ ewarn "setting USE=make-symlinks and emerging to / is very dangerous."
+ ewarn "it WILL overwrite lots of system programs like: ls bash awk grep (bug 60805 for full list)."
+ ewarn "If you are creating a binary only and not merging this is probably ok."
+ ewarn "set env VERY_BRAVE_OR_VERY_DUMB=yes if this is really what you want."
+ die "silly options will destroy your system"
+ fi
+
+ if use make-symlinks ; then
+ mv "${ED}"/usr/share/${PN}/busybox-links.tar "${T}"/ || die
+ fi
+}
+
+pkg_postinst() {
+ savedconfig_pkg_postinst
+
+ if use make-symlinks ; then
+ cd "${T}" || die
+ mkdir _install
+ tar xf busybox-links.tar -C _install || die
+ cp -vpPR _install/* "${ROOT}"/ || die "copying links for ${x} failed"
+ fi
+
+ if use sep-usr ; then
+ elog "In order to use the sep-usr support, you have to update your"
+ elog "kernel command line. Add the option:"
+ elog " init=/ginit"
+ elog "To launch a different init than /sbin/init, use:"
+ elog " init=/ginit /sbin/yourinit"
+ elog "To get a rescue shell, you may boot with:"
+ elog " init=/ginit bb"
+ fi
+}
diff --git a/sys-apps/busybox/files/busybox-1.26.2-bb.patch b/sys-apps/busybox/files/busybox-1.26.2-bb.patch
new file mode 100644
index 00000000..5e2405c3
--- /dev/null
+++ b/sys-apps/busybox/files/busybox-1.26.2-bb.patch
@@ -0,0 +1,55 @@
+add `bb` and `bbsh` shortcuts as aliases to the main shell so we can install
+symlinks in Gentoo at /bin/bb as our recovery shell.
+
+we also add fallbacks to /bin/busybox and /bin/busybox.static in case /proc
+is not yet mounted during early boot.
+
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -144,6 +144,8 @@
+ //applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP))
+ //applet:IF_SH_IS_ASH(APPLET_ODDNAME(sh, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
+ //applet:IF_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
++//applet:IF_ASH(APPLET_ODDNAME(bb, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
++//applet:IF_ASH(APPLET_ODDNAME(bbsh, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
+
+ //kbuild:lib-$(CONFIG_ASH) += ash.o ash_ptr_hack.o shell_common.o
+ //kbuild:lib-$(CONFIG_SH_IS_ASH) += ash.o ash_ptr_hack.o shell_common.o
+@@ -7572,6 +7574,8 @@
+ }
+ /* re-exec ourselves with the new arguments */
+ execve(bb_busybox_exec_path, argv, envp);
++ execve("/bin/busybox.static", argv, envp);
++ execve("/bin/busybox", argv, envp);
+ /* If they called chroot or otherwise made the binary no longer
+ * executable, fall through */
+ }
+--- a/shell/hush.c
++++ b/shell/hush.c
+@@ -221,6 +221,8 @@
+ //applet:IF_MSH(APPLET_ODDNAME(msh, hush, BB_DIR_BIN, BB_SUID_DROP, hush))
+ //applet:IF_SH_IS_HUSH(APPLET_ODDNAME(sh, hush, BB_DIR_BIN, BB_SUID_DROP, hush))
+ //applet:IF_BASH_IS_HUSH(APPLET_ODDNAME(bash, hush, BB_DIR_BIN, BB_SUID_DROP, hush))
++//applet:IF_HUSH(APPLET_ODDNAME(bb, hush, BB_DIR_BIN, BB_SUID_DROP, hush))
++//applet:IF_HUSH(APPLET_ODDNAME(bbsh, hush, BB_DIR_BIN, BB_SUID_DROP, hush))
+
+ //kbuild:lib-$(CONFIG_HUSH) += hush.o match.o shell_common.o
+ //kbuild:lib-$(CONFIG_SH_IS_HUSH) += hush.o match.o shell_common.o
+@@ -6073,6 +6075,8 @@
+ if (SPECIAL_JOBSTOP_SIGS != 0)
+ switch_off_special_sigs(G.special_sig_mask & SPECIAL_JOBSTOP_SIGS);
+ execve(bb_busybox_exec_path, argv, pp);
++ execve("/bin/busybox.static", argv, pp);
++ execve("/bin/busybox", argv, pp);
+ /* Fallback. Useful for init=/bin/hush usage etc */
+ if (argv[0][0] == '/')
+ execve(argv[0], argv, pp);
+@@ -6931,6 +6931,8 @@
+ if (SPECIAL_JOBSTOP_SIGS != 0)
+ switch_off_special_sigs(G.special_sig_mask & SPECIAL_JOBSTOP_SIGS);
+ execv(bb_busybox_exec_path, argv);
++ execv("/bin/busybox.static", argv);
++ execv("/bin/busybox", argv);
+ /* If they called chroot or otherwise made the binary no longer
+ * executable, fall through */
+ }