62 lines
2 KiB
Docker
62 lines
2 KiB
Docker
FROM scratch AS base
|
|
ENV VERSION=1.16.3
|
|
ENV SRC_FILE=rel-${VERSION}.tar.gz
|
|
ENV SRC_SITE=https://github.com/coreboot/seabios/archive/${SRC_FILE}
|
|
ENV SRC_HASH=1c1742a315b0c2fefa9390c8a50e2ac1a6f4806e0715aece6595eaf4477fcd8a
|
|
|
|
FROM base AS fetch
|
|
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
|
|
|
|
FROM fetch AS build
|
|
COPY --from=stagex/busybox . /
|
|
COPY --from=stagex/gcc . /
|
|
COPY --from=stagex/binutils . /
|
|
COPY --from=stagex/make . /
|
|
COPY --from=stagex/musl . /
|
|
COPY --from=stagex/python . /
|
|
RUN tar -xf ${SRC_FILE}
|
|
RUN ls -lah .
|
|
WORKDIR /seabios-rel-${VERSION}
|
|
ADD config.* .
|
|
RUN --network=none <<-EOF
|
|
set -ex
|
|
mkdir output
|
|
echo "Stagex ${VERSION}" > .version
|
|
printf " \
|
|
coreboot bios.bin.elf bios-coreboot.bin\n \
|
|
csm Csm16.bin bios-csm.bin\n \
|
|
seabios-128k bios.bin bios.bin\n \
|
|
seabios-256k bios.bin bios-256k.bin\n \
|
|
seabios-microvm bios.bin bios-microvm.bin\n \
|
|
vga-ati vgabios.bin vgabios-ati.bin out/vgabios.bin\n \
|
|
vga-bochs-display vgabios.bin vgabios-bochs-display.bin out/vgabios.bin\n \
|
|
vga-cirrus vgabios.bin vgabios-cirrus.bin out/vgabios.bin\n \
|
|
vga-isavga vgabios.bin vgabios-isavga.bin out/vgabios.bin\n \
|
|
vga-qxl vgabios.bin vgabios-qxl.bin out/vgabios.bin\n \
|
|
vga-ramfb vgabios.bin vgabios-ramfb.bin out/vgabios.bin\n \
|
|
vga-stdvga vgabios.bin vgabios-stdvga.bin out/vgabios.bin\n \
|
|
vga-virtio vgabios.bin vgabios-virtio.bin out/vgabios.bin\n \
|
|
vga-vmware vgabios.bin vgabios-vmware.bin out/vgabios.bin" \
|
|
| while IFS= read -r line; do
|
|
set -- $line;
|
|
config_name="$1";
|
|
output_name="$2";
|
|
binary_name="$3";
|
|
build_target="$4";
|
|
make clean distclean;
|
|
cp "config.${config_name}" .config;
|
|
make oldnoconfig V=1;
|
|
make V=1 EXTRAVERSION=-1 PYTHON=python3 $build_target
|
|
cp "out/${output_name}" "output/${binary_name}"
|
|
done
|
|
|
|
EOF
|
|
|
|
FROM build AS install
|
|
RUN <<-EOF
|
|
set -eux
|
|
install -vDm 644 output/*.bin -t /rootfs/usr/share/qemu/
|
|
EOF
|
|
|
|
FROM stagex/filesystem AS package
|
|
COPY --from=install /rootfs/. /
|