aboutsummaryrefslogtreecommitdiff
path: root/busybox/abuild
diff options
context:
space:
mode:
Diffstat (limited to 'busybox/abuild')
-rw-r--r--busybox/abuild102
1 files changed, 102 insertions, 0 deletions
diff --git a/busybox/abuild b/busybox/abuild
new file mode 100644
index 00000000..b1b92271
--- /dev/null
+++ b/busybox/abuild
@@ -0,0 +1,102 @@
+name=busybox
+version=1.37.0
+release=1
+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
+ 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
+ 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
+ pause.c
+ pause.1"
+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"
+
+_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
+
+ mkdir -p $PKG/etc
+ install -m644 $SRC/mdev.conf $PKG/etc/mdev.conf
+
+ ${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
+}