annotate core/busybox/busybox.sh @ 1216:6710613b88b9

misc: remove build function
author David Demelier <markand@malikania.fr>
date Wed, 29 Sep 2021 13:49:32 +0200
parents 2fafcd07edb0
children 4ccc42bf0284
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1115
297b5eef115e vanilla: change shebangs to /bin/sh
David Demelier <markand@malikania.fr>
parents: 1068
diff changeset
1 #!/bin/sh
73
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Permission to use, copy, modify, and/or distribute this software for any
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # purpose with or without fee is hereby granted, provided that the above
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # copyright notice and this permission notice appear in all copies.
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 #
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 #
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
17
136
e737b80da269 core: merge .sh and .info
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
18 PKGNAME=busybox
e737b80da269 core: merge .sh and .info
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
19 PKGVERSION=1.30.1
e737b80da269 core: merge .sh and .info
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
20 PKGREVISION=1
e737b80da269 core: merge .sh and .info
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
21 PKGLICENSE="GPLv2"
e737b80da269 core: merge .sh and .info
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
22 PKGSUMMARY="swiss army knife for embedded"
1180
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
23 PKGWWW="https://busybox.net"
136
e737b80da269 core: merge .sh and .info
David Demelier <markand@malikania.fr>
parents: 73
diff changeset
24 PKGDOWNLOAD="https://busybox.net/downloads/$PKGNAME-$PKGVERSION.tar.bz2"
902
a133976e0783 vanilla: remove all origins, closes #2203
David Demelier <markand@malikania.fr>
parents: 654
diff changeset
25 PKGDEPENDS="linux-headers:build"
1166
72824bb09754 core/busybox: add STATIC option
David Demelier <markand@malikania.fr>
parents: 1115
diff changeset
26 PKGOPTIONS="CONFIG IPV6 PAM SELINUX STATIC"
604
ec4819b1579a core/busybox: add udhcp example and config
David Demelier <markand@malikania.fr>
parents: 563
diff changeset
27 PKGPROTECT="etc/udhcpd.conf"
73
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
1180
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
29 : ${AR:=llvm-ar}
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
30 : ${AS:=llvm-as}
549
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
31 : ${CC:=clang}
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
32 : ${CFLAGS:=-O2}
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
33 : ${LDFLAGS:=}
1180
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
34 : ${NM:=llvm-nm}
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
35 : ${OBJCOPY:=llvm-objcopy}
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
36 : ${OBJDUMP:=llvm-objdump}
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
37 : ${STRIP:=llvm-strip}
556
dea7c4365bbe core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
38 : ${CONFIG:=}
dea7c4365bbe core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
39 : ${IPV6:=yes}
1166
72824bb09754 core/busybox: add STATIC option
David Demelier <markand@malikania.fr>
parents: 1115
diff changeset
40 : ${PAM:=no}
556
dea7c4365bbe core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
41 : ${SELINUX:=no}
1180
99c240ea1b56 core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents: 1166
diff changeset
42 : ${STATIC:=yes}
549
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
43
1216
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
44 rm -rf $PKGNAME-$PKGVERSION
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
45 tar xvf $PKGNAME-$PKGVERSION.tar.bz2
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
46 cd $PKGNAME-$PKGVERSION
556
dea7c4365bbe core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
47
1216
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
48 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
49 # Allow user to specify a full config if specified, otherwise change
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
50 # package options.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
51 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
52 if [ -n "$CONFIG" ] && [ -r "$CONFIG" ]; then
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
53 cp $CONFIG .config
556
dea7c4365bbe core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents: 554
diff changeset
54
1186
2fafcd07edb0 core/busybox: fix crash under LLVM 9
David Demelier <markand@malikania.fr>
parents: 1180
diff changeset
55 #
1216
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
56 # When specifying a config file, force other selective options
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
57 # to a dummy value to avoid incorrect information in package
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
58 # file.
1186
2fafcd07edb0 core/busybox: fix crash under LLVM 9
David Demelier <markand@malikania.fr>
parents: 1180
diff changeset
59 #
1216
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
60 IPV6=""
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
61 SELINUX=""
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
62 PAM=""
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
63 STATIC=""
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
64 else
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
65 cp ../config .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
66
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
67 if [ "$SELINUX" = "yes" ]; then
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
68 echo "CONFIG_SELINUX=y" >> .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
69 echo "CONFIG_FEATURE_TAR_SELINUX=y" >> .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
70 echo "CONFIG_SELINUXENABLED=y" >> .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
71 fi
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
72
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
73 if [ "$PAM" = "yes" ]; then
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
74 echo "CONFIG_PAM=y" >> .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
75 fi
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
76
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
77 if [ "$IPV6" != "yes" ]; then
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
78 sed -i -e "/CONFIG_FEATURE_IPV6=y/ s/y/n/" .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
79 sed -i -e "/CONFIG_FEATURE_IFUPDOWN_IPV6=y/ s/y/n/" .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
80 fi
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
81
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
82 if [ "$STATIC" = "yes" ]; then
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
83 echo "CONFIG_STATIC=y" >> .config
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
84 fi
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
85 fi
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
86
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
87 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
88 # Our start script is located in /etc/rc.init.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
89 # Upstream: rejected a tunable option.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
90 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
91 sed -i -e 's|/etc/init.d/rcS|/etc/rc.init|' init/init.c
73
758b9a54f9cf core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
1216
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
93 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
94 # Change the redirection limit which is too small for vpk download.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
95 # Upstream: yes in Git.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
96 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
97 sed -i -e "/redir_limit = 5/ s/5/16/" networking/wget.c
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
98
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
99 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
100 # TODO: this is temporary, to build under clang.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
101 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
102 # CFLAGS="": fix build under clang by removing all non-standard
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
103 # options.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
104 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
105 # -O0: disable optimizations for the same reasons.
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
106 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
107 # See http://lists.busybox.net/pipermail/busybox/2019-October/087558.html
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
108 #
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
109 make \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
110 AR="$AR" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
111 AS="$AS" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
112 CC="$CC" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
113 CFLAGS="-DBB_GLOBAL_CONST=''" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
114 HOSTCC="$CC" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
115 HOSTCFLAGS="" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
116 EXTRA_CFLAGS="$CFLAGS -O0" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
117 EXTRA_LDFLAGS="$LDFLAGS" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
118 NM="$NM" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
119 OBJCOPY="$OBJCOPY" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
120 OBJDUMP="$OBJDUMP" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
121 STRIP="$STRIP" \
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
122 V=1
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
123 install -Dm0755 busybox $DESTDIR/bin/busybox
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
124 install -dm0755 $DESTDIR/share/udhcp
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
125 install -m0644 examples/udhcp/sample.* $DESTDIR/share/udhcp
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
126 install -Dm0644 examples/udhcp/udhcpd.conf $DESTDIR/etc/udhcpd.conf
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
127 install -Dm0644 ../busybox.crond $DESTDIR/etc/rc.d/busybox.crond
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
128 install -Dm0644 ../busybox.klogd $DESTDIR/etc/rc.d/busybox.klogd
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
129 install -Dm0644 ../busybox.mdev $DESTDIR/etc/rc.d/busybox.mdev
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
130 install -Dm0644 ../busybox.syslogd $DESTDIR/etc/rc.d/busybox.syslogd
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
131
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
132 cd ..
6710613b88b9 misc: remove build function
David Demelier <markand@malikania.fr>
parents: 1186
diff changeset
133 rm -rf $PKGNAME-$PKGVERSION