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/. /