name=busybox version=1.37.0 release=6 source="https://${name}.net/downloads/${name}-${version}.tar.bz2 0001-awk-fix-handling-of-literal-backslashes-in-replaceme.patch 0016-ping-make-ping-work-without-root-privileges.patch 0006-modinfo-add-k-option-for-kernel-version.patch 0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch 0034-adduser-remove-preconfigured-GECOS-full-name-field.patch kernel-6.8-tca.patch fsck-resolve-uuid.patch adduser-no-setgid.patch print-unicode.patch modprobe-kernel-version.patch busybox-suidwrapper.c mdev.conf udhcpc.conf net-static.conf acpid.run crond.run ntpd.run syslogd.run udhcpc.run klogd.run inetd.run httpd.run mdev.run net-static.run tty1.run tty2.run tty3.run tty4.run tty5.run ttyS0.run pause.c pause.1 default.script" sv="acpid.run crond.run ntpd.run syslogd.run klogd.run inetd.run httpd.run mdev.run tty1.run tty2.run tty3.run tty4.run tty5.run ttyS0.run net-static.run net-static.conf udhcpc.run udhcpc.conf" _disable() { while [ "$1" ]; do sed "s/^CONFIG_${1}=y/# CONFIG_${1} is not set/" -i .config shift done } _enable() { while [ "$1" ]; do sed "s/^# CONFIG_${1}.*/CONFIG_${1}=y/" -i .config shift done } build() { make defconfig _disable XZCAT XZ UNXZ UNLZMA LZCAT LZMA # provided by xz _disable STRINGS # provided by llvm #_disable CLEAR RESET # provided by ncurses _disable PATCH # provided by patch (GNU patch works better) _disable BZCAT BUNZIP2 BZIP2 # provided by bzip2 _disable CHATTR LSATTR MKE2FS FINDFS MKFS_EXT2 BLKID # provided by e2fsprogs _disable MKDOSFS MKFS_VFAT # provided by dosfstools _disable FSCK_MINIX MKFS_MINIX DPKG DPKG_DEB MAN # _disable MODPROBE_SMALL HUSH SHELL_HUSH RPM2CPIO # JUNKS _disable RX CHAT LINUXRC RPM RUN_PARTS # _enable STATIC # enable static build _enable FEATURE_MODUTILS_ALIAS FEATURE_MODUTILS_SYMBOLS # enable some kmod features # install nologin to /sbin sed 's/BB_DIR_USR_SBIN/BB_DIR_SBIN/' -i util-linux/nologin.c # install diff to /bin sed 's/BB_DIR_USR_BIN/BB_DIR_BIN/' -i editors/diff.c make make CONFIG_PREFIX=$PKG install mkdir -p $PKG/usr/share/busybox cat .config > $PKG/usr/share/busybox/config ${CC:-cc} -o $PKG/bin/busybox-suidwrapper $SRC/busybox-suidwrapper.c chmod u+s $PKG/bin/busybox-suidwrapper for i in $($PKG/bin/busybox-suidwrapper -l); do [ -e /bin/$i ] && ln -svf busybox-suidwrapper $PKG/bin/$i [ -e /usr/bin/$i ] && ln -svf ../../bin/busybox-suidwrapper $PKG/usr/bin/$i done # mdev mkdir -p $PKG/etc install -m644 $SRC/mdev.conf $PKG/etc/mdev.conf # udhcpc script mkdir -p $PKG/usr/share/udhcpc install -m755 $SRC/default.script $PKG/usr/share/udhcpc/default.script # crond mkdir -p $PKG/var/spool/cron/crontabs ${CC:-gcc} ${CFLAGS} $SRC/pause.c -o $PKG/usr/bin/pause install -d $PKG/usr/share/man/man1 install -m644 $SRC/pause.1 $PKG/usr/share/man/man1/pause.1 }