# Contributor: Ɓukasz Jendrysik # Maintainer: Natanael Copa pkgname=busybox pkgver=1.26.2 pkgrel=4 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net arch="all" license="GPL2" makedepends_build="" makedepends_host="linux-headers" makedepends="$makedepends_build $makedepends_host" checkdepends="zip" install="$pkgname.post-install $pkgname.post-upgrade" subpackages="$pkgname-static $pkgname-suid" options="suid !check" triggers="busybox.trigger=/bin:/usr/bin:/sbin:/usr/sbin:/lib/modules/*" source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 0001-ash-exec-busybox.static.patch 0002-app-location-for-vi-and-lspci.patch 0003-udhcpc-set-default-discover-retries-to-5.patch 0004-ping-make-ping-work-without-root-privileges.patch 0005-fbsplash-support-console-switching.patch 0006-fbsplash-support-image-and-bar-alignment-and-positio.patch 0007-depmod-support-generating-kmod-binary-index-files.patch 0008-login-move-check_securetty-to-libbb.patch 0009-libbb-allow_blank-argument-for-ask_and_check_passwor.patch 0010-su-FEATURE_SU_NULLOK_SECURE.patch 0011-ntpd-postpone-hostname-resolution-if-fails-on-startu.patch 0012-diff-add-support-for-no-dereference.patch 0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch 0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch 0015-syslogd-adjust-timezone-option.patch udhcpc.patch fix-tests.patch location-for-cpio.patch acpid.logrotate busyboxconfig bbsuid.c dad.if-up nologin.c " builddir="$srcdir"/$pkgname-$pkgver _staticdir="$srcdir"/build-static _dyndir="$srcdir"/build-dynamic _config="$srcdir"/busyboxconfig prepare() { default_prepare cd "$builddir" mkdir -p "$_staticdir" "$_dyndir" cp "$srcdir"/nologin.c loginutils/ } build() { # build bbsuid msg "Building bbsuid" ${CC:-${CROSS_COMPILE}gcc} ${CPPFLAGS} ${CFLAGS} \ ${LDFLAGS} "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid # build dynamic cd "$_dyndir" msg "Building dynamic busybox" cp "$_config" .config [ "$CLIBC" = musl ] && sed -i \ -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \ .config make -C "$builddir" O="$PWD" silentoldconfig make # build static cd "$_staticdir" msg "Building static busybox" sed -e "s/.*CONFIG_PIE.*/\# CONFIG_PIE is not set/" \ -e "s/.*CONFIG_STATIC.*/CONFIG_STATIC=y/" \ "$_config" > .config # musl does not support GNU regex [ "$CLIBC" = musl ] && sed -i \ -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \ .config make -C "$builddir" O="$PWD" silentoldconfig make mv busybox busybox.static } check() { cd "$_dyndir" SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check } package() { cd "$_dyndir" mkdir -p "$pkgdir"/usr/sbin "$pkgdir"/usr/bin "$pkgdir"/tmp \ "$pkgdir"/var/cache/misc "$pkgdir"/bin "$pkgdir"/sbin chmod 1777 "$pkgdir"/tmp install -m755 busybox "$pkgdir"/bin/busybox || return 1 # we need /bin/sh to be able to execute post-install ln -s /bin/busybox "$pkgdir"/bin/sh #ifupdown needs those dirs to be present mkdir -p \ "$pkgdir"/etc/network/if-down.d \ "$pkgdir"/etc/network/if-post-down.d \ "$pkgdir"/etc/network/if-post-up.d \ "$pkgdir"/etc/network/if-pre-down.d \ "$pkgdir"/etc/network/if-pre-up.d \ "$pkgdir"/etc/network/if-up.d install -m775 "$srcdir"/dad.if-up "$pkgdir"/etc/network/if-up.d/dad install -Dm644 "$srcdir"/acpid.logrotate \ "$pkgdir/etc/logrotate.d/acpid" mkdir -p "$pkgdir"/var/lib/udhcpd install -Dm644 "$builddir"/examples/udhcp/udhcpd.conf \ "$pkgdir"/etc/udhcpd.conf cat >"$pkgdir"/etc/securetty <