annotate core/grub/grub.sh @ 1019:ddab65a5b3f5

vanilla: use /bin/busybox sh as default shell
author David Demelier <markand@malikania.fr>
date Thu, 29 Aug 2019 23:35:00 +0200
parents a133976e0783
children 7791d3dbfecf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1019
ddab65a5b3f5 vanilla: use /bin/busybox sh as default shell
David Demelier <markand@malikania.fr>
parents: 902
diff changeset
1 #!/bin/busybox sh
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 # Copyright (c) 2020 David Demelier <markand@malikania.fr>
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Permission to use, copy, modify, and/or distribute this software for any
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # purpose with or without fee is hereby granted, provided that the above
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # copyright notice and this permission notice appear in all copies.
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 #
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
17
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 PKGNAME=grub
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 PKGVERSION=2.02
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 PKGREVISION=1
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 PKGLICENSE="GPLv3+"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 PKGSUMMARY="GNU boot loader"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 PKGDOWNLOAD="ftp://ftp.gnu.org/gnu/$PKGNAME/$PKGNAME-$PKGVERSION.tar.xz"
902
a133976e0783 vanilla: remove all origins, closes #2203
David Demelier <markand@malikania.fr>
parents: 831
diff changeset
24 PKGDEPENDS="lvm2 binutils:build bison flex linux-headers"
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 PKGOPTIONS="LZMA NLS"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 : ${CHOST:=$(uname -m)-linux-musl}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 : ${CBUILD:=$(uname -m)-linux-musl}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 : ${CTARGET:=$(uname -m)-linux-musl}
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
30 : ${CC:=clang}
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 : ${CFLAGS:=-O2}
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
32 : ${CXX:=clang++}
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 : ${CXXFLAGS:=-O2}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 : ${LDFLAGS:=}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 : ${LIBS:=}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 : ${LZMA:=no}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 : ${NLS:=yes}
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 if [ "$LZMA" = "yes" ]; then
902
a133976e0783 vanilla: remove all origins, closes #2203
David Demelier <markand@malikania.fr>
parents: 831
diff changeset
40 PKGDEPENDS="xz $PKGDEPENDS"
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 with_lzma="--enable-liblzma"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 else
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 with_lzma="--disable-liblzma"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 fi
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 if [ "$NLS" = "yes" ]; then
902
a133976e0783 vanilla: remove all origins, closes #2203
David Demelier <markand@malikania.fr>
parents: 831
diff changeset
47 PKGDEPENDS="gettext $PKGDEPENDS"
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 with_nls="--enable-nls"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 else
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 with_nls="--disable-nls"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 fi
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 case $(uname -m) in
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 "x86_64")
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 platforms="efi pc"
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 ;;
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 esac
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 build_grub()
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 {
606
25cecc6dca48 vanilla: use POSIX shell and busybox tar
David Demelier <markand@malikania.fr>
parents: 582
diff changeset
61 mkdir build && cd build
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
62 BUILD_CC="$CC" \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
63 BUILD_CFLAGS="$CFLAGS" \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
64 BUILD_CXX="$CXX" \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
65 BUILD_CXXFLAGS="$CXXFLAGS" \
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 CC="$CC" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 CFLAGS="$CFLAGS" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 CXX="$CXX" \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 CXXFLAGS="$CXXFLAGS" \
765
859f76ffb512 vanilla: revert binutils for now
David Demelier <markand@malikania.fr>
parents: 764
diff changeset
70 LDFLAGS="$LDFLAGS" \
859f76ffb512 vanilla: revert binutils for now
David Demelier <markand@malikania.fr>
parents: 764
diff changeset
71 LIBS="$LIBS" \
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
72 TARGET_CC="$CC" \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
73 TARGET_CFLAGS="$CFLAGS" \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
74 TARGET_CXX="$CXX" \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
75 TARGET_CXXFLAGS="$CXXFLAGS" \
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 ../configure \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 --build=$CBUILD \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 --host=$CHOST \
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 --target=$CTARGET \
549
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
80 --prefix= \
bad483aace64 vanilla: use prefix= instead
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
81 --sbindir=/bin \
173
79b65e5164dd core/grub: fix build on musl
David Demelier <markand@malikania.fr>
parents: 167
diff changeset
82 --disable-werror \
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 $with_lzma \
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
84 $with_nls \
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
85 "$@"
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 make
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 make install DESTDIR=$DESTDIR
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
606
25cecc6dca48 vanilla: use POSIX shell and busybox tar
David Demelier <markand@malikania.fr>
parents: 582
diff changeset
89 cd ..
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 rm -rf build
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 }
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 build()
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 {
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 rm -rf $PKGNAME-$PKGVERSION
606
25cecc6dca48 vanilla: use POSIX shell and busybox tar
David Demelier <markand@malikania.fr>
parents: 582
diff changeset
96 tar xvf $PKGNAME-$PKGVERSION.tar.xz
25cecc6dca48 vanilla: use POSIX shell and busybox tar
David Demelier <markand@malikania.fr>
parents: 582
diff changeset
97 cd $PKGNAME-$PKGVERSION
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
99 if [ "$CC" = "clang" ]; then
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
100 patch -p0 < ../patch-clang.patch
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
101 fi
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
102
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 for p in $platforms; do
764
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
104 case $p in
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
105 efi)
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
106 build_grub --with-platform=$p --disable-efiemu
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
107 ;;
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
108 *)
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
109 build_grub --with-platform=$p
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
110 ;;
fc7a2268d9a6 core/grub: fix build with llvm, but still requires binutils
David Demelier <markand@malikania.fr>
parents: 606
diff changeset
111 esac
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 done
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
606
25cecc6dca48 vanilla: use POSIX shell and busybox tar
David Demelier <markand@malikania.fr>
parents: 582
diff changeset
114 cd ..
167
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 rm -rf $PKGNAME-$PKGVERSION
d2962e105ee9 core/grub: initial import, closes #1027
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 }