Merge remote-tracking branch 'origin/pull/229/head' into staging

This commit is contained in:
ryan 2024-09-21 02:48:43 -04:00
commit 949ca4c72c
No known key found for this signature in database
GPG key ID: 8E401478A3FBEF72
24 changed files with 600 additions and 84 deletions

View file

@ -0,0 +1,28 @@
FROM scratch AS base
ENV VERSION=20230628
ENV SRC_HASH=86876a745e3d224dcfd222ed3de465b47559e85811df2db9820ef09a9dff5cce
ENV SRC_FILE=acpica-unix-${VERSION}.tar.gz
ENV SRC_SITE=https://downloadmirror.intel.com/783549/${SRC_FILE}
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/musl . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/bison . /
COPY --from=stagex/flex . /
COPY --from=stagex/m4 . /
RUN tar -xf ${SRC_FILE}
WORKDIR /acpica-unix-${VERSION}
ENV LDFLAGS="-Wl,-z,pack-relative-relocs"
RUN --network=none make NOWERROR=TRUE -j "$(nproc)"
FROM build AS install
RUN --network=none DESTDIR=/rootfs make install
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

112
packages/edk2/Containerfile Normal file
View file

@ -0,0 +1,112 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=202408
ENV VERSION_OPENSSL=3.0.9
ENV VERSION_SOFTFLOAT=3e
ENV VERSION_MIPISYST=370b5944c046bab043dd8b133727b2135af7747a
ENV VERSION_MBEDTLS=8c89224991adff88d53cd380f42a2baa36f91454
ENV VERSION_LIBSPDM=50924a4c8145fc721e17208f55814d2b38766fe6
ENV SRC_HASH=63c99b6f9f7aa94e8d76c432bea05d0d4dd6600af78d6fd59a1aec5ce9cea8ce
ENV SRC_HASH_MIPISYST=9fda3b9a78343ab2be6f06ce6396536e7e065abac29b47c8eb2e42cbb4c4f00b
ENV SRC_HASH_SOFTFLOAT=21130ce885d35c1fe73fc1e1bf2244178167e05c6747cad5f450cc991714c746
ENV SRC_HASH_OPENSSL=eb1ab04781474360f77c318ab89d8c5a03abc38e63d65a603cabbf1b00a1dc90
ENV SRC_HASH_MBEDTLS=b5c7e7c54e013c168f4aae036e59912785f11b4aeebd57f6165a14e879b9a82c
ENV SRC_HASH_LIBSPDM=962aefeeddb130deeb68c6c60c4848ddedd09d7715ed1ba8a8dadabd032d6232
ENV SRC_FILE=edk2-stable${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/tianocore/edk2/archive/refs/tags/${SRC_FILE}
ENV SRC_FILE_MIPISYST=${VERSION_MIPISYST}.tar.gz
ENV SRC_SITE_MIPISYST=https://github.com/MIPI-Alliance/public-mipi-sys-t/archive/${SRC_FILE_MIPISYST}
ENV SRC_FILE_SOFTFLOAT=SoftFloat-${VERSION_SOFTFLOAT}.zip
ENV SRC_SITE_SOFTFLOAT=https://www.jhauser.us/arithmetic/${SRC_FILE_SOFTFLOAT}
ENV SRC_FILE_OPENSSL=openssl-${VERSION_OPENSSL}.tar.gz
ENV SRC_SITE_OPENSSL=https://www.openssl.org/source/${SRC_FILE_OPENSSL}
ENV SRC_FILE_MBEDTLS=${VERSION_MBEDTLS}.tar.gz
ENV SRC_SITE_MBEDTLS=https://github.com/Mbed-TLS/mbedtls/archive/${SRC_FILE_MBEDTLS}
ENV SRC_FILE_LIBSPDM=${VERSION_LIBSPDM}.tar.gz
ENV SRC_SITE_LIBSPDM=https://github.com/DMTF/libspdm/archive/${SRC_FILE_LIBSPDM}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
ADD --checksum=sha256:${SRC_HASH_OPENSSL} ${SRC_SITE_OPENSSL} .
ADD --checksum=sha256:${SRC_HASH_SOFTFLOAT} ${SRC_SITE_SOFTFLOAT} .
ADD --checksum=sha256:${SRC_HASH_MIPISYST} ${SRC_SITE_MIPISYST} .
ADD --checksum=sha256:${SRC_HASH_MBEDTLS} ${SRC_SITE_MBEDTLS} .
ADD --checksum=sha256:${SRC_HASH_LIBSPDM} ${SRC_SITE_LIBSPDM} .
FROM fetch AS build
COPY --from=stagex/busybox . /
COPY --from=stagex/binutils . /
COPY --from=stagex/pkgconf . /
COPY --from=stagex/musl . /
COPY --from=stagex/make . /
COPY --from=stagex/gcc . /
COPY --from=stagex/git . /
COPY --from=stagex/python . /
COPY --from=stagex/nasm . /
COPY --from=stagex/acpica . /
COPY --from=stagex/bash . /
COPY --from=stagex/util-linux . /
COPY --from=stagex/zlib . /
RUN tar -xf ${SRC_FILE}
RUN tar -xf ${SRC_FILE_OPENSSL}
RUN tar -xf ${SRC_FILE_MIPISYST}
RUN tar -xf ${SRC_FILE_MBEDTLS}
RUN tar -xf ${SRC_FILE_LIBSPDM}
RUN unzip ${SRC_FILE_SOFTFLOAT}
WORKDIR /edk2-edk2-stable${VERSION}
ENV WORKDIR=/edk2-edk2-stable${VERSION}
ENV PACKAGES_PATH=$WORKDIR
ENV WORKSPACE=$WORKDIR
ENV EDK_TOOLS_PATH=${WORKDIR}/BaseTools
ENV PATH=${EDK_TOOLS_PATH}/BinWrappers/PosixLike/:$PATH
ENV PYTHON_COMMAND=python3
ENV PLATFORMS="ShellPkg/ShellPkg.dsc OvmfPkg/OvmfPkgX64.dsc OvmfPkg/OvmfXen.dsc"
ENV TOOLCHAIN="GCC5"
ENV RELEASE="RELEASE"
ENV TARGET_ARCH=X64
RUN --network=none <<-EOF
set -ex
rm -rf CryptoPkg/Library/OpensslLib/openssl
ln -s /openssl-${VERSION_OPENSSL} CryptoPkg/Library/OpensslLib/openssl
rm -rf CryptoPkg/Library/MbedTlsLib/mbedtls
ln -s /mbedtls-${VERSION_MBEDTLS} CryptoPkg/Library/MbedTlsLib/mbedtls
rm -rf SecurityPkg/DeviceSecurity/SpdmLib/libspdm
ln -s /libspdm-${VERSION_LIBSPDM} SecurityPkg/DeviceSecurity/SpdmLib/libspdm
rm -rf ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
ln -s /SoftFloat-${VERSION_SOFTFLOAT} \
ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
rm -rf MdePkg/Library/MipiSysTLib/mipisyst
ln -s /public-mipi-sys-t-${VERSION_MIPISYST} \
MdePkg/Library/MipiSysTLib/mipisyst
sed -e '/BrotliCompress/d' -i BaseTools/Source/C/GNUmakefile
sed -e '/BrotliCustomDecompressLib/d' -i MdeModulePkg/MdeModulePkg.dec
sed -e 's/\r$//' -i BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp \
BaseTools/Source/C/VolInfo/VolInfo.c
bash -c ". edksetup.sh"
make -C BaseTools
for platform in $PLATFORMS; do
echo "Building Plaform Files: $platform"
command build -b $RELEASE \
-a $TARGET_ARCH \
-t $TOOLCHAIN \
-p $platform \
-n "$(nproc)" \
-DSECURE_BOOT_ENABLE=TRUE \
-DTPM2_ENABLE=TRUE
done
EOF
FROM build AS install
RUN <<-EOF
mkdir -p /rootfs/usr/bin \
/rootfs/usr/share/edk2/Conf \
/rootfs/usr/share/edk2/Scripts
install BaseTools/Source/C/bin/* BaseTools/BinWrappers/PosixLike/LzmaF86Compress \
/rootfs/usr/bin
install BaseTools/BuildEnv /rootfs/usr/share/edk2/
install BaseTools/Conf/*.template /rootfs/usr/share/edk2/Conf
install BaseTools/Scripts/GccBase.lds /rootfs/usr/share/edk2/Scripts
EOF
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,34 @@
FROM scratch AS base
ENV VERSION=6.10.0
ENV SRC_HASH=91a62f82737b44905a00fa803369c447d549e914e9a2a4018fdd75b1d54e8dce
ENV SRC_FILE=iproute2-${VERSION}.tar.xz
ENV SRC_SITE=http://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
FROM fetch AS build
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/linux-headers . /
COPY --from=stagex/m4 . /
COPY --from=stagex/bison . /
COPY --from=stagex/flex . /
COPY --from=stagex/elfutils . /
RUN tar -xvf $SRC_FILE
WORKDIR /iproute2-${VERSION}
RUN --network=none make -j "$(nproc)" V=1
FROM build AS install
RUN <<-EOF
make DESTDIR=/rootfs install
mv /rootfs/sbin /rootfs/usr/sbin
install -D -m644 include/libnetlink.h /rootfs/usr/include/libnetlink.h
install -D -m644 lib/libnetlink.a /rootfs/usr/lib/libnetlink.a
EOF
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,86 @@
FROM scratch AS base
ENV VERSION=6ca597eee9f95b846a3c2dc1231e63cfc02272c1
ENV SRC_FILE=${VERSION}.tar.gz
ENV SRC_SITE=https://github.com/ipxe/ipxe/archive/${SRC_FILE}
ENV SRC_HASH=f90cc9024d90e3fcbd738a3a1904dd552f276fcc52d177ebdd4e78d17e5c5b44
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} .
FROM fetch AS build
COPY --from=stagex/busybox . /
COPY --from=stagex/coreutils . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/openssl . /
COPY --from=stagex/make . /
COPY --from=stagex/perl . /
COPY --from=stagex/musl . /
COPY --from=stagex/edk2 . /
COPY --from=stagex/syslinux . /
COPY --from=stagex/xorriso . /
COPY --from=stagex/xz . /
RUN tar -xf ${SRC_FILE}
WORKDIR /ipxe-${VERSION}/src
ENV SOURCE_DATE_EPOCH=1
RUN --network=none <<-EOF
set -ex
mkdir -p out
make \
-j "$(nproc)" \
CC=x86_64-linux-musl-gcc \
NO_WERROR=1 \
EXTRA_CFLAGS="-fcommon" \
bin/ipxe.iso \
bin/ipxe.lkrn \
bin/ipxe.pxe \
bin/undionly.kpxe \
bin/ipxe.usb \
bin/ipxe.dsk \
bin-x86_64-efi/ipxe.efi
printf " \
e1000 8086 100e \n \
e1000e 8086 10d3 \n \
eepro100 8086 1209 \n \
ne2k_pci 1050 0940 \n \
pcnet 1022 2000 \n \
rtl8139 10ec 8139 \n \
virtio 1af4 1000 \n \
vmxnet3 15ad 07b0" \
| while IFS= read -r line; do
set -- $line;
target="$1";
vid="$2";
did="$3";
make \
-j "$(nproc)" \
CONFIG=qemu \
CC=x86_64-linux-musl-gcc \
NO_WERROR=1 \
EXTRA_CFLAGS="-fcommon" \
bin-x86_64-efi/${vid}${did}.efidrv \
bin/${vid}${did}.rom;
EfiRom \
-f "0x${vid}" \
-i "0x${did}" \
-l 0x02 \
-b bin/${vid}${did}.rom \
-ec bin-x86_64-efi/${vid}${did}.efidrv \
-o out/efi-${target}.rom;
done
EOF
FROM build AS install
RUN <<-EOF
set -eux
install -vDm 644 bin/*.lkrn -t /rootfs/usr/share/ipxe/
install -vDm 644 bin/*.dsk -t /rootfs/usr/share/ipxe/
install -vDm 644 bin/*.iso -t /rootfs/usr/share/ipxe/
install -vDm 644 bin/*.pxe -t /rootfs/usr/share/ipxe/
install -vDm 644 bin/*.kpxe -t /rootfs/usr/share/ipxe/
install -vDm 644 bin-x86_64-efi/*.efi -t /rootfs/usr/share/ipxe/x86_64/
install -vDm 644 out/efi-*.rom -t /rootfs/usr/share/qemu/
EOF
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -0,0 +1,50 @@
FROM scratch AS base
ARG ARCH=x86_64
ENV VERSION=4.8.0
ENV SRC_HASH=378216c88c021c9ed7de9006db291127d30a0da94a23dffefdb26b26a5849bf7
ENV SRC_FILE=libslirp-${VERSION}.tar.gz
ENV SRC_SITE=https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v${VERSION}/${SRC_FILE}
FROM base AS fetch
ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} ${SRC_FILE}
FROM fetch AS build
COPY --from=stagex/python . /
COPY --from=stagex/zlib . /
COPY --from=stagex/bzip2 . /
COPY --from=stagex/pkgconf . /
COPY --from=stagex/ncurses . /
COPY --from=stagex/meson . /
COPY --from=stagex/busybox . /
COPY --from=stagex/musl . /
COPY --from=stagex/gcc . /
COPY --from=stagex/binutils . /
COPY --from=stagex/make . /
COPY --from=stagex/cmake . /
COPY --from=stagex/pcre2 . /
COPY --from=stagex/python . /
COPY --from=stagex/bison . /
COPY --from=stagex/flex . /
COPY --from=stagex/py-packaging . /
COPY --from=stagex/xz . /
COPY --from=stagex/ninja . /
COPY --from=stagex/glib . /
COPY --from=stagex/linux-headers . /
RUN tar -xf ${SRC_FILE}
WORKDIR /libslirp-v${VERSION}-ce314e39458223c2c42245fe536fbe1bcd94e9b1
RUN --network=none <<-EOF
set -eux
meson setup \
--default-library=shared \
--prefix=/usr \
. output
meson compile -C output
meson install --no-rebuild -C output
EOF
FROM build AS install
RUN DESTDIR=/rootfs meson install --no-rebuild -C output
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -92,11 +92,12 @@ CONFIG_CONTEXT_TRACKING_IDLE=y
#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=125
# end of Timers subsystem
@ -256,6 +257,7 @@ CONFIG_RSEQ=y
CONFIG_CACHESTAT_SYSCALL=y
# CONFIG_DEBUG_RSEQ is not set
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_GUEST_PERF_EVENTS=y
# CONFIG_PC104 is not set
#
@ -316,9 +318,16 @@ CONFIG_X86_MPPARSE=y
CONFIG_IOSF_MBI=y
# CONFIG_SCHED_OMIT_FRAME_POINTER is not set
CONFIG_HYPERVISOR_GUEST=y
# CONFIG_PARAVIRT is not set
# CONFIG_ARCH_CPUIDLE_HALTPOLL is not set
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_X86_HV_CALLBACK_VECTOR=y
# CONFIG_XEN is not set
CONFIG_KVM_GUEST=y
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
# CONFIG_PVH is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
# CONFIG_JAILHOUSE_GUEST is not set
# CONFIG_ACRN_GUEST is not set
# CONFIG_INTEL_TDX_GUEST is not set
@ -404,6 +413,7 @@ CONFIG_X86_INTEL_TSX_MODE_OFF=y
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
# CONFIG_X86_SGX is not set
# CONFIG_X86_USER_SHADOW_STACK is not set
# CONFIG_INTEL_TDX_HOST is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_HANDOVER_PROTOCOL=y
@ -415,6 +425,7 @@ CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_SCHED_HRTICK=y
CONFIG_ARCH_SUPPORTS_KEXEC=y
CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
@ -563,6 +574,8 @@ CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
# CONFIG_CPU_IDLE_GOV_MENU is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
CONFIG_HALTPOLL_CPUIDLE=y
# end of CPU Idle
# CONFIG_INTEL_IDLE is not set
@ -592,7 +605,34 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
# end of Binary Emulations
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_PFNCACHE=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_DIRTY_RING=y
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
CONFIG_KVM_XFER_TO_GUEST_WORK=y
CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_WERROR=y
CONFIG_KVM_INTEL=y
CONFIG_KVM_AMD=y
CONFIG_KVM_SMM=y
# CONFIG_KVM_XEN is not set
# CONFIG_KVM_PROVE_MMU is not set
CONFIG_KVM_MAX_NR_VCPUS=1024
CONFIG_AS_AVX512=y
CONFIG_AS_SHA1_NI=y
CONFIG_AS_SHA256_NI=y
@ -615,6 +655,7 @@ CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_CALL_SELFTEST is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
@ -649,6 +690,8 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
CONFIG_MMU_GATHER_TABLE_FREE=y
CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
CONFIG_MMU_GATHER_MERGE_VMAS=y
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
@ -786,6 +829,7 @@ CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFQ_CGROUP_DEBUG is not set
# end of IO Schedulers
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
@ -859,6 +903,7 @@ CONFIG_ARCH_ENABLE_THP_MIGRATION=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PCP_BATCH_SCALE_MAX=5
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
@ -1935,13 +1980,14 @@ CONFIG_NET_CORE=y
# CONFIG_AMT is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_TUN is not set
CONFIG_TUN=y
# CONFIG_TUN_VNET_CROSS_LE is not set
CONFIG_VETH=y
CONFIG_VIRTIO_NET=y
# CONFIG_NLMON is not set
# CONFIG_NETKIT is not set
# CONFIG_NET_VRF is not set
# CONFIG_VSOCKMON is not set
# CONFIG_ARCNET is not set
CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
@ -2050,29 +2096,7 @@ CONFIG_USB_NET_DRIVERS=y
# CONFIG_USB_LAN78XX is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_IPHETH is not set
CONFIG_WLAN=y
CONFIG_WLAN_VENDOR_ADMTEK=y
CONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set
# CONFIG_ATH5K_PCI is not set
CONFIG_WLAN_VENDOR_ATMEL=y
CONFIG_WLAN_VENDOR_BROADCOM=y
CONFIG_WLAN_VENDOR_CISCO=y
CONFIG_WLAN_VENDOR_INTEL=y
CONFIG_WLAN_VENDOR_INTERSIL=y
# CONFIG_HOSTAP is not set
CONFIG_WLAN_VENDOR_MARVELL=y
CONFIG_WLAN_VENDOR_MEDIATEK=y
CONFIG_WLAN_VENDOR_MICROCHIP=y
CONFIG_WLAN_VENDOR_PURELIFI=y
CONFIG_WLAN_VENDOR_RALINK=y
CONFIG_WLAN_VENDOR_REALTEK=y
CONFIG_WLAN_VENDOR_RSI=y
CONFIG_WLAN_VENDOR_SILABS=y
CONFIG_WLAN_VENDOR_ST=y
CONFIG_WLAN_VENDOR_TI=y
CONFIG_WLAN_VENDOR_ZYDAS=y
CONFIG_WLAN_VENDOR_QUANTENNA=y
# CONFIG_WLAN is not set
# CONFIG_WAN is not set
#
@ -2869,11 +2893,7 @@ CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
# CONFIG_FRAMEBUFFER_CONSOLE is not set
# end of Console display driver support
# CONFIG_LOGO is not set
@ -3222,6 +3242,7 @@ CONFIG_RTC_MC146818_LIB=y
# CONFIG_UIO is not set
# CONFIG_VFIO is not set
CONFIG_IRQ_BYPASS_MANAGER=y
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
@ -3235,7 +3256,13 @@ CONFIG_VIRTIO_PCI_LEGACY=y
# CONFIG_VIRTIO_INPUT is not set
# CONFIG_VIRTIO_MMIO is not set
# CONFIG_VDPA is not set
# CONFIG_VHOST_MENU is not set
CONFIG_VHOST_IOTLB=y
CONFIG_VHOST_TASK=y
CONFIG_VHOST=y
CONFIG_VHOST_MENU=y
CONFIG_VHOST_NET=y
CONFIG_VHOST_VSOCK=y
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
#
# Microsoft Hyper-V guest support
@ -3975,6 +4002,7 @@ CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=y
CONFIG_TEXTSEARCH_BM=y
CONFIG_TEXTSEARCH_FSM=y
CONFIG_INTERVAL_TREE=y
CONFIG_XARRAY_MULTI=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
@ -4004,9 +4032,8 @@ CONFIG_HAVE_GENERIC_VDSO=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_VDSO_TIME_NS=y
CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_FONT_AUTOSELECT=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y
@ -4226,7 +4253,9 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# x86 Debugging
#
# CONFIG_X86_VERBOSE_BOOTUP is not set
# CONFIG_EARLY_PRINTK is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_EARLY_PRINTK_USB_XDBC is not set
# CONFIG_EFI_PGT_DUMP is not set
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y

View file

@ -0,0 +1,32 @@
FROM scratch AS base
ENV VERSION=2.16.03
ENV SRC_HASH=1412a1c760bbd05db026b6c0d1657affd6631cd0a63cddb6f73cc6d4aa616148
ENV SRC_FILE=nasm-${VERSION}.tar.xz
ENV SRC_SITE=https://www.nasm.us/pub/nasm/releasebuilds/${VERSION}/${SRC_FILE}
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/perl . /
RUN tar -xf ${SRC_FILE}
WORKDIR /nasm-${VERSION}
RUN --network=none <<-EOF
set -eux
./configure \
--build=x86_64-linux-musl \
--host=x86_64-linux-musl \
--prefix=/usr
make -j "$(nproc)"
EOF
FROM build AS install
RUN --network=none DESTDIR=/rootfs make install
FROM stagex/filesystem AS package
COPY --from=install /rootfs/. /

View file

@ -1,6 +1,6 @@
FROM scratch AS base
ENV VERSION=9.0.2
ENV SRC_HASH=a8c3f596aece96da3b00cafb74baafa0d14515eafb8ed1ee3f7f5c2d0ebf02b6
ENV VERSION=9.1.0
ENV SRC_HASH=816b7022a8ba7c2ac30e2e0cf973e826f6bcc8505339603212c5ede8e94d7834
ENV SRC_FILE=qemu-${VERSION}.tar.xz
ENV SRC_SITE=https://download.qemu.org/${SRC_FILE}
@ -48,6 +48,7 @@ COPY --from=stagex/libaio . /
COPY --from=stagex/libzstd . /
COPY --from=stagex/libseccomp . /
COPY --from=stagex/libcap-ng . /
COPY --from=stagex/libslirp . /
COPY --from=stagex/alsa-lib . /
COPY --from=stagex/ncurses . /
COPY --from=stagex/curl . /
@ -83,11 +84,37 @@ ENV CFLAGS=" \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
ENV CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
ENV LTOFLAGS="-flto=auto"
ENV TARGET_LIST="x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user"
COPY <<-EOF pc-bios/optionrom/config.mak
TOPSRC_DIR=/qemu-${VERSION}
CC=gcc
CCAS=gcc
AR=ar
AS=as
LD=ld
NM=nm
OBJCOPY=objcopy
RANLIB=ranlib
STRIP=strip
EOF
RUN --network=none <<-EOF
set -eux
# rm -rf pc-bios/*.bz2
rm -rf \
pc-bios/*.bin \
pc-bios/*.rom \
pc-bios/*.img \
pc-bios/*.e500 \
pc-bios/*.dtb \
pc-bios/*.lid \
pc-bios/*.ndrv \
pc-bios/palcode-clipper \
pc-bios/openbios-*
make -j "$(nproc)" -C pc-bios/optionrom all
./configure \
--build="x86_64-linux-musl" \
--host="x86_64-linux-musl" \
--target-list="$TARGET_LIST" \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@ -99,6 +126,12 @@ RUN --network=none <<-EOF
--enable-curses \
--enable-modules \
--enable-tpm \
--enable-vhost-net \
--enable-attr \
--enable-linux-user \
--enable-slirp \
--enable-tcg \
--disable-install-blobs \
--disable-docs \
--disable-sdl \
--disable-gtk \
@ -115,13 +148,12 @@ RUN --network=none <<-EOF
--disable-spice \
--disable-usb-redir \
--disable-vde \
--disable-vhost-net \
--disable-virglrenderer \
--disable-virtfs \
--disable-vnc \
--disable-vnc-jpeg \
--disable-xen
make ARFLAGS="rc"
make ARFLAGS="rc" -j "$(nproc)"
EOF
FROM build AS install
@ -129,50 +161,8 @@ RUN --network=none <<-EOF
make DESTDIR=/rootfs install
rm -rf /rootfs/var/run
strip /rootfs/usr/bin/qemu-*
# These are not currently deterministic so we can't release them yet
rm -rf /rootfs/usr/bin/qemu-aarch64
rm -rf /rootfs/usr/bin/qemu-aarch64_be
rm -rf /rootfs/usr/bin/qemu-arm
rm -rf /rootfs/usr/bin/qemu-armeb
rm -rf /rootfs/usr/bin/qemu-hexagon
rm -rf /rootfs/usr/bin/qemu-hppa
rm -rf /rootfs/usr/bin/qemu-loongarch64
rm -rf /rootfs/usr/bin/qemu-microblaze
rm -rf /rootfs/usr/bin/qemu-microblazeel
rm -rf /rootfs/usr/bin/qemu-mips
rm -rf /rootfs/usr/bin/qemu-mips64
rm -rf /rootfs/usr/bin/qemu-mips64el
rm -rf /rootfs/usr/bin/qemu-mipsel
rm -rf /rootfs/usr/bin/qemu-mipsn32
rm -rf /rootfs/usr/bin/qemu-mipsn32el
rm -rf /rootfs/usr/bin/qemu-or1k
rm -rf /rootfs/usr/bin/qemu-ppc
rm -rf /rootfs/usr/bin/qemu-ppc64
rm -rf /rootfs/usr/bin/qemu-ppc64le
rm -rf /rootfs/usr/bin/qemu-riscv32
rm -rf /rootfs/usr/bin/qemu-riscv64
rm -rf /rootfs/usr/bin/qemu-sparc
rm -rf /rootfs/usr/bin/qemu-sparc32plus
rm -rf /rootfs/usr/bin/qemu-sparc64
rm -rf /rootfs/usr/bin/qemu-system-aarch64
rm -rf /rootfs/usr/bin/qemu-system-arm
rm -rf /rootfs/usr/bin/qemu-system-avr
rm -rf /rootfs/usr/bin/qemu-system-hppa
rm -rf /rootfs/usr/bin/qemu-system-loongarch64
rm -rf /rootfs/usr/bin/qemu-system-microblaze
rm -rf /rootfs/usr/bin/qemu-system-microblazeel
rm -rf /rootfs/usr/bin/qemu-system-mips
rm -rf /rootfs/usr/bin/qemu-system-mips64
rm -rf /rootfs/usr/bin/qemu-system-mips64el
rm -rf /rootfs/usr/bin/qemu-system-mipsel
rm -rf /rootfs/usr/bin/qemu-system-or1k
rm -rf /rootfs/usr/bin/qemu-system-ppc
rm -rf /rootfs/usr/bin/qemu-system-ppc64
rm -rf /rootfs/usr/bin/qemu-system-riscv32
rm -rf /rootfs/usr/bin/qemu-system-riscv64
rm -rf /rootfs/usr/bin/qemu-system-rx
rm -rf /rootfs/usr/bin/qemu-system-sparc
rm -rf /rootfs/usr/bin/qemu-system-sparc64
install -vDm 644 pc-bios/optionrom/*.bin -t /rootfs/usr/share/qemu
install -vDm 644 pc-bios/optionrom/*.img -t /rootfs/usr/share/qemu
EOF
FROM stagex/filesystem AS package

View file

@ -0,0 +1,62 @@
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/. /

View file

@ -0,0 +1,2 @@
CONFIG_QEMU_HARDWARE=y
CONFIG_COREBOOT=y

View file

@ -0,0 +1,2 @@
CONFIG_QEMU_HARDWARE=y
CONFIG_CSM=y

View file

@ -0,0 +1,22 @@
# for qemu machine types 1.7 + older
# need to turn off features (bootsplash) to make it fit into 128k
CONFIG_QEMU=y
CONFIG_ROM_SIZE=128
CONFIG_ATA_DMA=n
CONFIG_BOOTSPLASH=n
CONFIG_XEN=n
CONFIG_USB_OHCI=n
CONFIG_USB_XHCI=n
CONFIG_USB_UAS=n
CONFIG_SDCARD=n
CONFIG_TCGBIOS=n
CONFIG_MPT_SCSI=n
CONFIG_ESP_SCSI=n
CONFIG_MEGASAS=n
CONFIG_PVSCSI=n
CONFIG_NVME=n
CONFIG_USE_SMM=n
CONFIG_VGAHOOKS=n
CONFIG_HOST_BIOS_GEOMETRY=n
CONFIG_ACPI_PARSE=n
CONFIG_SERCON=n

View file

@ -0,0 +1,4 @@
# for qemu machine types 2.0 + newer
CONFIG_QEMU=y
CONFIG_ROM_SIZE=256
CONFIG_ATA_DMA=n

View file

@ -0,0 +1,26 @@
CONFIG_QEMU=y
CONFIG_QEMU_HARDWARE=y
CONFIG_PERMIT_UNALIGNED_PCIROM=y
CONFIG_ROM_SIZE=128
CONFIG_XEN=n
CONFIG_BOOTSPLASH=n
CONFIG_ATA=n
CONFIG_AHCI=n
CONFIG_SDCARD=n
CONFIG_PVSCSI=n
CONFIG_ESP_SCSI=n
CONFIG_LSI_SCSI=n
CONFIG_MEGASAS=n
CONFIG_MPT_SCSI=n
CONFIG_FLOPPY=n
CONFIG_FLASH_FLOPPY=n
CONFIG_NVME=n
CONFIG_PS2PORT=n
CONFIG_USB=n
CONFIG_LPT=n
CONFIG_RTC_TIMER=n
CONFIG_USE_SMM=n
CONFIG_PMTIMER=n
CONFIG_TCGBIOS=n
CONFIG_HARDWARE_IRQ=n
CONFIG_ACPI_PARSE=y

View file

View file

@ -0,0 +1,4 @@
CONFIG_QEMU=y
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_ATI=y
CONFIG_VGA_PCI=y

View file

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_DISPLAY_BOCHS=y
CONFIG_VGA_PCI=y

View file

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_CIRRUS=y
CONFIG_VGA_PCI=y

View file

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=n

View file

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x1b36
CONFIG_VGA_DID=0x0100

View file

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_RAMFB=y
CONFIG_VGA_PCI=n

View file

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y

View file

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x1af4
CONFIG_VGA_DID=0x1050

View file

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x15ad
CONFIG_VGA_DID=0x0405