# Build template for 'busybox'. pkgname=busybox version=1.28.3 revision=1 hostmakedepends="perl" checkdepends="zip" short_desc="The Swiss Army Knife of Embedded Linux" maintainer="Juan RP " license="GPL-2.0-only" homepage="http://www.busybox.net" distfiles="${homepage}/downloads/busybox-$version.tar.bz2" checksum=ad0d22033f23e696f9a71a4c2f9210194dda39b024a79151f4ac278995332a6e alternatives=" awk:awk:/usr/bin/busybox hostname:hostname:/usr/bin/busybox sh:sh:/usr/bin/busybox ntpd:ntpd:/usr/bin/busybox ntpd:ntpd:/etc/sv/busybox-ntpd vi:vi:/usr/bin/busybox" do_configure() { mkdir -p src mv * src || true local t for t in busybox busybox-static; do mkdir -p $t cp -f ${FILESDIR}/${t}.dotconfig ${t}/.config case "$XBPS_TARGET_MACHINE" in *-musl) sed -i -e /CONFIG_FEATURE_VI_REGEX_SEARCH/s/y/n/ \ -e /CONFIG_FEATURE_MOUNT_NFS/s/y/n/ \ ${t}/.config;; esac if [ "$CROSS_BUILD" ]; then sed -i -e \ "s,\(CONFIG_CROSS_COMPILER_PREFIX\).*,\1=\"${XBPS_CROSS_TRIPLET}-\",g" \ ${t}/.config fi make -C $t KBUILD_SRC=${wrksrc}/src -f ${wrksrc}/src/Makefile prepare ${makejobs} done sed -i -e '/CONFIG_STATIC/ s/.*/CONFIG_STATIC=y/' busybox-static/.config if [ "$SOURCE_DATE_EPOCH" ]; then # rewrite date with the one from the date wrapper. d=$(date +"%F %T %Z") sed -i "s/\(#define AUTOCONF_TIMESTAMP\).*/\1 \"$d\"/" */include/autoconf.h fi } do_build() { make -C busybox SKIP_STRIP=y ${makejobs} make -C busybox-static SKIP_STRIP=y ${makejobs} } do_check() { # Copy the testsuite into the busybox and it's static counterpart # directory cp -r src/testsuite busybox cp -r src/testsuite busybox-static # This is required by the testsuite cp src/scripts/echo.c busybox/scripts cp src/scripts/echo.c busybox-static/scripts # Run testsuite for busybox ( cd busybox/testsuite SKIP_KNOWN_BUGS=yes ./runtest -v ) # Run testsuite for busybox-static ( cd busybox-static/testsuite SKIP_KNOWN_BUGS=yes ./runtest -v ) } do_install() { vbin busybox/busybox_unstripped busybox vman busybox/docs/busybox.1 vsv busybox-ntpd } busybox-static_package() { short_desc+=" (statically linked)" pkg_install() { vbin busybox-static/busybox busybox.static } }