busybox

Details
Source
FROM scratch AS build
ARG VERSION
COPY --from=stagex/bootstrap-stage3 . /
ADD fetch/busybox-${VERSION}.tar.bz2 .
WORKDIR /busybox-${VERSION}
ENV KCONFIG_NOTIMESTAMP=1
RUN --network=none <<-EOF
	set -eux
	setConfs='
	    CONFIG_LAST_SUPPORTED_WCHAR=0
	    CONFIG_STATIC=y
	'
	unsetConfs='
	    CONFIG_FEATURE_SYNC_FANCY
	    CONFIG_FEATURE_HAVE_RPC
	    CONFIG_FEATURE_INETD_RPC
	    CONFIG_FEATURE_UTMP
	    CONFIG_FEATURE_WTMP
	'
	make defconfig
	for conf in $unsetConfs; do
		sed -i \
			-e "s!^$conf=.*\$!# $conf is not set!" \
		.config
	done
	for confV in $setConfs; do
		conf="${confV%=*}"
		sed -i \
			-e "s!^$conf=.*\$!$confV!" \
			-e "s!^# $conf is not set\$!$confV!" \
			.config
		if ! grep -q "^$confV\$" .config; then
			echo "$confV" >> .config
		fi
	done
	make oldconfig
	for conf in $unsetConfs; do
		! grep -q "^$conf=" .config
	done
	for confV in $setConfs; do
		grep -q "^$confV\$" .config
	done
	make -j$(nproc)
	mkdir -p /rootfs/usr/bin
	cp busybox /rootfs/usr/bin
	cp busybox /usr/bin
	cd /rootfs
	/usr/bin/busybox --install -s usr/bin
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs/ /
ENTRYPOINT ["/bin/sh"]