blob: 0d3378b9453f087bbbba97b8de4deeb3be2b8f4b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
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
}
|