ziglang/qemu-static

build qemu-static binaries using Alpine Linux docker

49

stars

52

commits

Shell

primary language

Nov 7, 2025

updated

codeberg.org/ziglang/qemu-static

README

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.

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

Contributors

mikdusan

48 commits

marler8997

2 commits

noisegul

1 commits

XVilka

1 commits

ziglang/qemu-static

build qemu-static binaries using Alpine Linux docker

49

stars

52

commits

Shell

primary language

Nov 7, 2025

updated

codeberg.org/ziglang/qemu-static

README

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.

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

Contributors

mikdusan

48 commits

marler8997

2 commits

noisegul

1 commits

XVilka

1 commits

Languages

Shell

54.9%

Dockerfile

45.1%