abuild (3192B)
1 name=busybox 2 version=1.37.0 3 release=4 4 source="https://${name}.net/downloads/${name}-${version}.tar.bz2 5 0001-awk-fix-handling-of-literal-backslashes-in-replaceme.patch 6 0016-ping-make-ping-work-without-root-privileges.patch 7 0006-modinfo-add-k-option-for-kernel-version.patch 8 0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch 9 0034-adduser-remove-preconfigured-GECOS-full-name-field.patch 10 kernel-6.8-tca.patch 11 fsck-resolve-uuid.patch 12 adduser-no-setgid.patch 13 print-unicode.patch 14 modprobe-kernel-version.patch 15 busybox-suidwrapper.c 16 mdev.conf 17 udhcpc.conf 18 net-static.conf 19 acpid.run 20 crond.run 21 ntpd.run 22 syslogd.run 23 udhcpc.run 24 klogd.run 25 inetd.run 26 httpd.run 27 mdev.run 28 net-static.run 29 tty1.run 30 tty2.run 31 tty3.run 32 tty4.run 33 tty5.run 34 ttyS0.run 35 pause.c 36 pause.1 37 default.script" 38 sv="acpid.run 39 crond.run 40 ntpd.run 41 syslogd.run 42 klogd.run 43 inetd.run 44 httpd.run 45 mdev.run 46 tty1.run 47 tty2.run 48 tty3.run 49 tty4.run 50 tty5.run 51 ttyS0.run 52 net-static.run 53 net-static.conf 54 udhcpc.run 55 udhcpc.conf" 56 57 _disable() { 58 while [ "$1" ]; do 59 sed "s/^CONFIG_${1}=y/# CONFIG_${1} is not set/" -i .config 60 shift 61 done 62 } 63 64 _enable() { 65 while [ "$1" ]; do 66 sed "s/^# CONFIG_${1}.*/CONFIG_${1}=y/" -i .config 67 shift 68 done 69 } 70 71 build() { 72 make defconfig 73 74 _disable XZCAT XZ UNXZ UNLZMA LZCAT LZMA # provided by xz 75 _disable STRINGS # provided by llvm 76 #_disable CLEAR RESET # provided by ncurses 77 _disable PATCH # provided by patch (GNU patch works better) 78 _disable BZCAT BUNZIP2 BZIP2 # provided by bzip2 79 _disable CHATTR LSATTR MKE2FS FINDFS MKFS_EXT2 BLKID # provided by e2fsprogs 80 _disable MKDOSFS MKFS_VFAT # provided by dosfstools 81 82 _disable FSCK_MINIX MKFS_MINIX DPKG DPKG_DEB MAN # 83 _disable MODPROBE_SMALL HUSH SHELL_HUSH RPM2CPIO # JUNKS 84 _disable RX CHAT LINUXRC RPM RUN_PARTS # 85 86 _enable STATIC # enable static build 87 _enable FEATURE_MODUTILS_ALIAS FEATURE_MODUTILS_SYMBOLS # enable some kmod features 88 89 # install nologin to /sbin 90 sed 's/BB_DIR_USR_SBIN/BB_DIR_SBIN/' -i util-linux/nologin.c 91 92 # install diff to /bin 93 sed 's/BB_DIR_USR_BIN/BB_DIR_BIN/' -i editors/diff.c 94 95 make 96 make CONFIG_PREFIX=$PKG install 97 mkdir -p $PKG/usr/share/busybox 98 cat .config > $PKG/usr/share/busybox/config 99 100 ${CC:-cc} -o $PKG/bin/busybox-suidwrapper $SRC/busybox-suidwrapper.c 101 chmod u+s $PKG/bin/busybox-suidwrapper 102 103 for i in $($PKG/bin/busybox-suidwrapper -l); do 104 [ -e /bin/$i ] && ln -svf busybox-suidwrapper $PKG/bin/$i 105 [ -e /usr/bin/$i ] && ln -svf ../../bin/busybox-suidwrapper $PKG/usr/bin/$i 106 done 107 108 # mdev 109 mkdir -p $PKG/etc 110 install -m644 $SRC/mdev.conf $PKG/etc/mdev.conf 111 112 # udhcpc script 113 mkdir -p $PKG/usr/share/udhcpc 114 install -m755 $SRC/default.script $PKG/usr/share/udhcpc/default.script 115 116 # crond 117 mkdir -p $PKG/var/spool/cron/crontabs 118 119 ${CC:-gcc} ${CFLAGS} $SRC/pause.c -o $PKG/usr/bin/pause 120 install -d $PKG/usr/share/man/man1 121 install -m644 $SRC/pause.1 $PKG/usr/share/man/man1/pause.1 122 }