blob: 08c5170482c5fbd2dc23422c67b1d149ade1e03c (
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
name=busybox
version=1.37.0
release=7
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
_enable NETCAT # enable netcat
# 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
cd $PKG
rm \
bin/chattr \
bin/lsattr \
sbin/blkid \
sbin/findfs \
sbin/mkdosfs \
sbin/mke2fs \
sbin/mkfs.ext2 \
sbin/mkfs.vfat \
usr/bin/bunzip2 \
usr/bin/bzcat \
usr/bin/bzip2 \
usr/bin/lzcat \
usr/bin/lzma \
usr/bin/patch \
usr/bin/unlzma \
usr/bin/unxz \
usr/bin/xz \
usr/bin/xzcat
}
|