mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-09-01 15:08:33 +00:00
Build coreos grub off of alpine:3.9 and separate build steps for caching
Signed-off-by: Avi Deitcher <avi@deitcher.net>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
FROM linuxkit/alpine:3683c9a66cd4da40bd7d6c7da599b2dcd738b559 AS grub-build
|
||||
FROM linuxkit/alpine:86cd4f51b49fb9a078b50201d892a3c7973d48ec AS grub-build
|
||||
RUN apk add \
|
||||
automake \
|
||||
make \
|
||||
@@ -18,18 +18,24 @@ RUN ln -s python3 /usr/bin/python
|
||||
|
||||
ENV GRUB_MODULES="part_gpt fat ext2 iso9660 gzio linux acpi normal cpio crypto disk boot crc64 gpt \
|
||||
search_disk_uuid tftp verify xzio xfs video"
|
||||
ENV GRUB_COMMIT=d3fd939f18446b05d1d5456f23823498a1eb3fb4
|
||||
|
||||
RUN mkdir /grub-lib && \
|
||||
set -e && \
|
||||
git clone https://github.com/coreos/grub.git && \
|
||||
cd grub && \
|
||||
git checkout -b grub-build ${GRUB_COMMIT} && \
|
||||
./autogen.sh && \
|
||||
./configure --libdir=/grub-lib --with-platform=efi CFLAGS="-Os -Wno-unused-value" && \
|
||||
make -j "$(getconf _NPROCESSORS_ONLN)" && \
|
||||
make install && \
|
||||
case $(uname -m) in \
|
||||
ENV GRUB_COMMIT=2f868ac992be2ae3ab838951aa3e260c045f20f9
|
||||
|
||||
COPY patches/* /patches/
|
||||
|
||||
WORKDIR /src
|
||||
RUN git clone https://github.com/coreos/grub.git grub
|
||||
WORKDIR /src/grub
|
||||
RUN git checkout -b grub-build ${GRUB_COMMIT}
|
||||
RUN for patch in /patches/*.patch; do \
|
||||
echo "Applying $patch"; \
|
||||
patch -p1 < "$patch"; \
|
||||
done
|
||||
|
||||
RUN ./autogen.sh
|
||||
RUN ./configure --libdir=/grub-lib --with-platform=efi CFLAGS="-Os -Wno-unused-value"
|
||||
RUN make -j "$(getconf _NPROCESSORS_ONLN)"
|
||||
RUN make install
|
||||
RUN case $(uname -m) in \
|
||||
x86_64) \
|
||||
./grub-mkimage -O x86_64-efi -d /grub-lib/grub/x86_64-efi -o /grub-lib/BOOTX64.EFI -p /EFI/BOOT ${GRUB_MODULES} linuxefi; \
|
||||
;; \
|
||||
|
@@ -0,0 +1,30 @@
|
||||
---
|
||||
util/grub-module-verifier.c | 1 +
|
||||
util/grub-mkimagexx.c | 1 +
|
||||
2 files changed, 2 insertion(+)
|
||||
|
||||
diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c
|
||||
|
||||
--- a/util/grub-mkimagexx.c
|
||||
+++ b/util/grub-mkimagexx.c
|
||||
@@ -832,6 +832,7 @@
|
||||
break;
|
||||
|
||||
case R_X86_64_PC32:
|
||||
+ case R_X86_64_PLT32:
|
||||
{
|
||||
grub_uint32_t *t32 = (grub_uint32_t *) target;
|
||||
*t32 = grub_host_to_target64 (grub_target_to_host32 (*t32)
|
||||
|
||||
diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c
|
||||
|
||||
--- a/util/grub-module-verifier.c
|
||||
+++ b/util/grub-module-verifier.c
|
||||
@@ -19,6 +19,7 @@
|
||||
-1
|
||||
}, (int[]){
|
||||
R_X86_64_PC32,
|
||||
+ R_X86_64_PLT32,
|
||||
-1
|
||||
}
|
||||
},
|
@@ -1,4 +1,4 @@
|
||||
FROM linuxkit/grub:a4ba33f2ef880947862eaaeceadb2a51bfebb688 AS grub
|
||||
FROM linuxkit/grub:a0e2211d39c3c71613f902b3e29746badee3295e AS grub
|
||||
|
||||
FROM linuxkit/alpine:86cd4f51b49fb9a078b50201d892a3c7973d48ec AS mirror
|
||||
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
|
||||
|
@@ -1,4 +1,4 @@
|
||||
FROM linuxkit/grub:a4ba33f2ef880947862eaaeceadb2a51bfebb688 AS grub
|
||||
FROM linuxkit/grub:a0e2211d39c3c71613f902b3e29746badee3295e AS grub
|
||||
|
||||
FROM linuxkit/alpine:86cd4f51b49fb9a078b50201d892a3c7973d48ec AS mirror
|
||||
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
|
||||
|
@@ -1,4 +1,4 @@
|
||||
FROM linuxkit/grub:a4ba33f2ef880947862eaaeceadb2a51bfebb688 AS grub
|
||||
FROM linuxkit/grub:a0e2211d39c3c71613f902b3e29746badee3295e AS grub
|
||||
|
||||
FROM linuxkit/alpine:86cd4f51b49fb9a078b50201d892a3c7973d48ec AS mirror
|
||||
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
|
||||
|
Reference in New Issue
Block a user