Mercurial > vanilla
annotate core/busybox/busybox.sh @ 1220:4ccc42bf0284
misc: split .sh with .info
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 30 Sep 2021 09:26:38 +0200 |
parents | 6710613b88b9 |
children | a47aaf9743a0 |
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 |
1220
4ccc42bf0284
misc: split .sh with .info
David Demelier <markand@malikania.fr>
parents:
1216
diff
changeset
|
18 . ./busybox.info |
73
758b9a54f9cf
core/busybox: initial import, closes #1162
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 |
1180
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
20 : ${AR:=llvm-ar} |
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
21 : ${AS:=llvm-as} |
549
bad483aace64
vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
22 : ${CC:=clang} |
bad483aace64
vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
23 : ${CFLAGS:=-O2} |
bad483aace64
vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
24 : ${LDFLAGS:=} |
1180
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
25 : ${NM:=llvm-nm} |
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
26 : ${OBJCOPY:=llvm-objcopy} |
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
27 : ${OBJDUMP:=llvm-objdump} |
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
28 : ${STRIP:=llvm-strip} |
556
dea7c4365bbe
core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents:
554
diff
changeset
|
29 : ${CONFIG:=} |
dea7c4365bbe
core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents:
554
diff
changeset
|
30 : ${IPV6:=yes} |
1166
72824bb09754
core/busybox: add STATIC option
David Demelier <markand@malikania.fr>
parents:
1115
diff
changeset
|
31 : ${PAM:=no} |
556
dea7c4365bbe
core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents:
554
diff
changeset
|
32 : ${SELINUX:=no} |
1180
99c240ea1b56
core/busybox: disable compiler extensions for clang
David Demelier <markand@malikania.fr>
parents:
1166
diff
changeset
|
33 : ${STATIC:=yes} |
549
bad483aace64
vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
34 |
1216
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
35 rm -rf $PKGNAME-$PKGVERSION |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
36 tar xvf $PKGNAME-$PKGVERSION.tar.bz2 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
37 cd $PKGNAME-$PKGVERSION |
556
dea7c4365bbe
core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents:
554
diff
changeset
|
38 |
1216
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
39 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
40 # 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
|
41 # package options. |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
42 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
43 if [ -n "$CONFIG" ] && [ -r "$CONFIG" ]; then |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
44 cp $CONFIG .config |
556
dea7c4365bbe
core/busybox: add options, closes #1664
David Demelier <markand@malikania.fr>
parents:
554
diff
changeset
|
45 |
1186
2fafcd07edb0
core/busybox: fix crash under LLVM 9
David Demelier <markand@malikania.fr>
parents:
1180
diff
changeset
|
46 # |
1216
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
47 # When specifying a config file, force other selective options |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
48 # to a dummy value to avoid incorrect information in package |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
49 # file. |
1186
2fafcd07edb0
core/busybox: fix crash under LLVM 9
David Demelier <markand@malikania.fr>
parents:
1180
diff
changeset
|
50 # |
1216
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
51 IPV6="" |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
52 SELINUX="" |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
53 PAM="" |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
54 STATIC="" |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
55 else |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
56 cp ../config .config |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
57 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
58 if [ "$SELINUX" = "yes" ]; then |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
59 echo "CONFIG_SELINUX=y" >> .config |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
60 echo "CONFIG_FEATURE_TAR_SELINUX=y" >> .config |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
61 echo "CONFIG_SELINUXENABLED=y" >> .config |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
62 fi |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
63 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
64 if [ "$PAM" = "yes" ]; then |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
65 echo "CONFIG_PAM=y" >> .config |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
66 fi |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
67 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
68 if [ "$IPV6" != "yes" ]; then |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
69 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
|
70 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
|
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 [ "$STATIC" = "yes" ]; then |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
74 echo "CONFIG_STATIC=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 fi |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
77 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
78 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
79 # Our start script is located in /etc/rc.init. |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
80 # Upstream: rejected a tunable option. |
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 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
|
83 |
1216
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
84 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
85 # 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
|
86 # Upstream: yes in Git. |
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 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
|
89 |
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 # TODO: this is temporary, to build under clang. |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
92 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
93 # CFLAGS="": fix build under clang by removing all non-standard |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
94 # options. |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
95 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
96 # -O0: disable optimizations for the same reasons. |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
97 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
98 # 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
|
99 # |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
100 make \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
101 AR="$AR" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
102 AS="$AS" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
103 CC="$CC" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
104 CFLAGS="-DBB_GLOBAL_CONST=''" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
105 HOSTCC="$CC" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
106 HOSTCFLAGS="" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
107 EXTRA_CFLAGS="$CFLAGS -O0" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
108 EXTRA_LDFLAGS="$LDFLAGS" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
109 NM="$NM" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
110 OBJCOPY="$OBJCOPY" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
111 OBJDUMP="$OBJDUMP" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
112 STRIP="$STRIP" \ |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
113 V=1 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
114 install -Dm0755 busybox $DESTDIR/bin/busybox |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
115 install -dm0755 $DESTDIR/share/udhcp |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
116 install -m0644 examples/udhcp/sample.* $DESTDIR/share/udhcp |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
117 install -Dm0644 examples/udhcp/udhcpd.conf $DESTDIR/etc/udhcpd.conf |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
118 install -Dm0644 ../busybox.crond $DESTDIR/etc/rc.d/busybox.crond |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
119 install -Dm0644 ../busybox.klogd $DESTDIR/etc/rc.d/busybox.klogd |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
120 install -Dm0644 ../busybox.mdev $DESTDIR/etc/rc.d/busybox.mdev |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
121 install -Dm0644 ../busybox.syslogd $DESTDIR/etc/rc.d/busybox.syslogd |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
122 |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
123 cd .. |
6710613b88b9
misc: remove build function
David Demelier <markand@malikania.fr>
parents:
1186
diff
changeset
|
124 rm -rf $PKGNAME-$PKGVERSION |