Files
omarchy-pkgs/pkgbuilds/qemu-user-static/PKGBUILD
T
Marcelo Alcantara 90fee672ce Register 32-bit ARM binfmt rules and keep QEMU changes package-local
qemu-binfmt-conf.sh groups arm with aarch64 and skipped it; Apple Silicon has
no AArch32 execution, so --ignore-family is needed for ARM32 programs. The
bin/sync-upstream extension, its tests and the Tests workflow edit are
reverted; QEMU updates become reviewed pins.
2026-09-24 16:05:38 +10:00

74 lines
3.1 KiB
Bash

# aarch64-only build: Arch Linux ARM builds qemu without the static user-mode
# binaries, so the Omarchy default set (qemu-user-static-binfmt, used for
# foreign-architecture containers) repackages Debian's statically linked
# qemu-user build. On x86_64 both packages come from the Arch extra repository.
pkgbase=qemu-user-static
pkgname=('qemu-user-static' 'qemu-user-static-binfmt')
# One-time epoch moves from upstream-only to full Debian revision ordering.
# pkgver records Debian epoch.upstream.revision. Updates are reviewed pins:
# bump _debver, pkgver, _snapshot and the checksum together.
epoch=1
pkgver=1.10.0.13+ds.0+deb13u1
_debver=1:10.0.13+ds-0+deb13u1
_snapshot=02b553a4532192bc999d15408d1e56d7b254906f
pkgrel=1
pkgdesc="A generic and open source machine emulator and virtualizer - static user-mode emulation"
arch=('aarch64')
url="https://www.qemu.org"
license=('GPL-2.0-only' 'LGPL-2.1-only')
source=("qemu-binfmt-conf.sh")
# Debian removes superseded pool files. Pin the official archive snapshot so
# the same checksum-verified binary remains rebuildable. _snapshot is the
# content-addressed snapshot SHA1; SHA256 below remains the integrity check.
source_aarch64=("qemu-user_${pkgver}_arm64.deb::https://snapshot.debian.org/file/$_snapshot")
sha256sums=('5e12ef484b8364e1ba7bae4acda837d2e6320ffbeb7fab341034124553cdb137')
sha256sums_aarch64=('c73711af02b97cd5e2667e735d9c06890c57165517110ca4e646c95a7083158d')
noextract=("qemu-user_${pkgver}_arm64.deb")
prepare() {
mkdir -p deb
bsdtar -C deb -xf "qemu-user_${pkgver}_arm64.deb" data.tar.xz
bsdtar -C deb -xf deb/data.tar.xz ./usr/bin ./usr/share/doc/qemu-user/copyright
}
package_qemu-user-static() {
pkgdesc="A generic and open source machine emulator and virtualizer - static user-mode emulation"
depends=('glibc')
optdepends=('qemu-user-static-binfmt: binary format rules for foreign-architecture binaries')
provides=('qemu-user-static')
conflicts=('qemu-user-static-bin')
install -dm755 "$pkgdir/usr/bin"
local binary
for binary in deb/usr/bin/qemu-*; do
install -Dm755 "$binary" "$pkgdir/usr/bin/$(basename "$binary")-static"
done
install -Dm644 deb/usr/share/doc/qemu-user/copyright "$pkgdir/usr/share/licenses/$pkgname/copyright"
}
package_qemu-user-static-binfmt() {
pkgdesc="Binary format rules for the static QEMU user-mode emulators"
depends=('qemu-user-static')
provides=('qemu-user-binfmt-provider')
conflicts=('qemu-user-binfmt-provider' 'binfmt-qemu-static')
install -dm755 "$pkgdir/usr/lib/binfmt.d"
# HOST_ARCH keeps the native architecture out of the rule set regardless
# of the build host, so the package is identical under native and QEMU builds.
# --ignore-family keeps 32-bit ARM: the script groups it with aarch64, but
# Apple Silicon cannot execute AArch32 natively.
HOST_ARCH=aarch64 sh "$srcdir/qemu-binfmt-conf.sh" \
--systemd ALL \
--exportdir "$pkgdir/usr/lib/binfmt.d/" \
--qemu-path /usr/bin \
--qemu-suffix -static \
--persistent yes \
--preserve-argv0 yes \
--ignore-family yes
local conf
for conf in "$pkgdir"/usr/lib/binfmt.d/*.conf; do
mv "$conf" "${conf%.conf}-static.conf"
done
}