# Maintainer: Natanael Copa pkgname=busybox pkgver=1.20.0 pkgrel=4 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net arch="all" license="GPL-2" depends= install="$pkgname.post-install $pkgname.post-upgrade" subpackages="$pkgname-static" triggers="busybox.trigger=/bin:/usr/bin:/sbin:/usr/sbin:/lib/modules/*" source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 bbsuid.c nologin.c $pkgname-1.11.1-bb.patch busybox-uname-is-not-gnu.patch bb-app-location.patch 0001-tar-Implement-no-recursion.patch 0001-unzip-ignore-chmod-errors-so-unzipping-on-FAT-works.patch loginutils-sha512.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-buildsys.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-ext4.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-find.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-getty.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-lineedit.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-mdev.patch http://busybox.net/downloads/fixes-1.20.0/busybox-1.20.0-sed.patch busyboxconfig" _sdir="$srcdir"/$pkgname-$pkgver _staticdir="$srcdir"/build-static _dyndir="$srcdir"/build-dynamic _config="$srcdir"/busyboxconfig prepare() { mkdir -p "$_staticdir" "$_dyndir" #patches cd "$_sdir" for i in $source; do local p=${i##*/} case $i in *.patch) msg $p; patch -p1 -i "$srcdir"/$p || return 1;; esac done cp "$srcdir"/nologin.c loginutils/ } build() { # build bbsuid msg "Building bbsuid" ${CC:-gcc} $CFLAGS "$srcdir"/bbsuid.c $LDFLAGS -o "$_dyndir"/bbsuid || return 1 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 make -C "$_sdir" O="$PWD" silentoldconfig || return 1 make || return 1 mv busybox busybox.static # build dynamic cd "$_dyndir" msg "Building dynamic busybox" cp "$_config" .config make -C "$_sdir" O="$PWD" silentoldconfig || return 1 make || return 1 } 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 install -m4111 bbsuid "$pkgdir"/bin/bbsuid || return 1 # we need /bin/sh to be able to execute post-install ln -s /bin/busybox "$pkgdir"/bin/sh } static() { pkgdesc="Statically linked Busybox" mkdir -p "$subpkgdir"/bin install -m755 "$_staticdir"/busybox.static \ "$subpkgdir"/bin/busybox.static } md5sums="4334b34fa1cdae54e9d2dc174f35c9ae busybox-1.20.0.tar.bz2 b7b06c7d5cff6935e4ff68a245cc64b5 bbsuid.c d64b58a30892c558bdbab7f0d0997577 nologin.c 4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch b5375210f13fd6e1ca61a565e8fabd35 busybox-uname-is-not-gnu.patch 754916e52fa11d3fe7c29c93248b6707 bb-app-location.patch b0977368029587bab23067f0267ae309 0001-tar-Implement-no-recursion.patch 8bf65d5bc87112946675f540b46d406d 0001-unzip-ignore-chmod-errors-so-unzipping-on-FAT-works.patch 8c42c9ef0f0419c314c86bcaf7796106 loginutils-sha512.patch 56a22fda2f6aae71a38d6897b1d18ba8 busybox-1.20.0-buildsys.patch ff2d91a8260157e3eee50156cb20ad52 busybox-1.20.0-ext4.patch 35bfb15eb5ad77d392edb4addebcf2c9 busybox-1.20.0-find.patch 72959a6267138e0692f6a823f2afde7b busybox-1.20.0-getty.patch baa5aba9e52bc8ca8f1f7f120e82f80b busybox-1.20.0-lineedit.patch 276d3d140b35d8d02e05f725e40c4628 busybox-1.20.0-mdev.patch bf3b5cc9f831a2a89b280979aa19e40b busybox-1.20.0-sed.patch 2f0ee9409d33bf48c64144bd1871081e busyboxconfig"