blob: a34e5e3c1029379ee883e4467bd25205b0b67ea6 (
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
|
#!/bin/sh -e
kinstall() {
# usage: kisntall 755 filename /usr/bin/file
mkdir -p "${3%/*}"; cp "$2" "$3"
chmod "$1" "$3"
}
for patch in *.patch; do
patch -p1 < "$patch"
done
if [ "$CPT_CROSS_TRIPLET" ]; then
mk() { make "ARCH=${CPT_CROSS_TRIPLET%%-*}" "CROSS_COMPILE=$CPT_CROSS_TRIPLET-" "$@" ;}
else
mk() { make "$@" ;}
fi
# Build and install regular busybox.
# This excludes utilities which require 'suid' to function.
mk
mk CONFIG_PREFIX="$1/usr" install
# Rename the binary temporarily.
mv "$1/usr/bin/busybox" "$1/usr/bin/busybox-nosuid"
# Build and install suid busybox.
# This _only_ includes utlities which require 'suid' to function.
cp -f .config-suid .config
mk
mk CONFIG_PREFIX="$1/usr" install
# Aptly name the busybox binaries.
mv "$1/usr/bin/busybox" "$1/usr/bin/busybox-suid"
mv "$1/usr/bin/busybox-nosuid" "$1/usr/bin/busybox"
# Install the non-suid symlinks.
"$1/usr/bin/busybox" --list | while read -r bin; do
ln -s busybox "$1/usr/bin/$bin"
done
# Install the suid symlinks.
"$1/usr/bin/busybox-suid" --list | while read -r bin; do
ln -s busybox-suid "$1/usr/bin/$bin"
done
# Set suid on busybox suid.
chmod u+s "$1/usr/bin/busybox-suid"
# Install runit and sysmgr services.
for service in crond.run mdev.run ntpd.run syslogd.run acpid.run ; do
kinstall 755 "$service" "$1/etc/sv/${service%.*}/run"
kinstall 755 "$service" "$1/etc/sysmgr/${service%.*}"
ln -s /run/runit/supervise.${service%.*} "$1/etc/sv/${service%.*}/supervise"
done
# Install configurations for ntp, init, and mdev.
kinstall 644 ntp.conf "$1/etc/ntp.conf"
kinstall 644 inittab "$1/etc/inittab"
kinstall 644 mdev.conf "$1/etc/mdev.conf"
# Install udhcpc configuration script.
kinstall 755 udhcpc.script "$1/etc/udhcpc"
|