Builds static QEMU binaries using Docker and Alpine Linux.
  • Shell 79.6%
  • Dockerfile 20.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Michael Dusan 2122cb03b5
bump alpine-3.24.2, mips nan2008
* linux-user/mips: pick Loongson-3A4000 if a pre-r6 mips64 binary needs nan2008
* target/mips: fix Loongson-3A4000 definition to have abs2008 and nan2008
* linux-user/sparc: fix register window flush/fill in signal handling
* linux-user: add MADV_POPULATE_READ and WRITE defs
* linux-user/syscall.c: zero-initialize msg in do_sendrecvmsg_locked()
* linux-user/signal.c: define __SIGRTMIN/MAX for non-GNU platforms
2026-09-26 09:40:36 -04:00
.dockerignore bump: qemu 5.0.0-z1 2020-05-02 02:19:55 -04:00
build bump alpine-3.24.2, mips nan2008 2026-09-26 09:40:36 -04:00
Dockerfile bump alpine-3.24.2, mips nan2008 2026-09-26 09:40:36 -04:00
LICENSE init 2020-04-11 08:10:08 -04:00
README.md add maintainer note in readme 2025-11-29 14:19:22 -05:00

qemu-static

The purpose of this project is to build a highly compatible linux QEMU binary package for Zig CI testing.

Zig requires a very recent QEMU version, sometimes unreleased commit-revs, and sometimes with custom patches. For this reason, distro-based QEMU packages are unsuitable.

The overall strategy is to use Alpine Linux to host a QEMU build and link statically to all possible libraries.

It is a non-goal to build QEMU with all features enabled. It is a non-goal to build QEMU with system emulation enabled. It is a non-goal to build older versions of QEMU.

maintainer note: ZSF qemu fork updates

  • edit the following values in build script:
    • ARTIFACT_BASE_VERSION
    • ARTIFACT_SERIAL
    • QEMU_REV

build docker image

docker build --tag qemu .

run container, save ID, copy artifact(s)

mkdir ../artifact
docker run -it --cidfile=qemu.cid qemu true
docker cp "$(cat qemu.cid):work/artifact/." ../artifact/.

review final artifact(s)

ls -al ../artifact/

cleanup container, ID-file, and image

docker container rm $(cat qemu.cid)
rm qemu.cid
docker image rm qemu

really, really cleanup docker

docker system prune --force