alicelinux

A lightweight musl + clang/llvm + libressl + busybox distro
git clone https://codeberg.org/emmett1/alicelinux
Log | Files | Refs | README | LICENSE

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 }