1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 19:17:44 +00:00

Ports: Add a QEMU port

This commit is contained in:
Tim Schumacher 2022-04-22 04:52:55 +02:00 committed by Brian Gianforcaro
parent 5835373fc6
commit a813b941b8
5 changed files with 119 additions and 0 deletions

35
Ports/qemu/package.sh Executable file
View file

@ -0,0 +1,35 @@
#!/usr/bin/env -S bash ../.port_include.sh
port='qemu'
version='7.0.0'
useconfigure='true'
configopts=(
"--target-list=aarch64-softmmu,i386-softmmu,x86_64-softmmu"
"--cross-prefix=${SERENITY_ARCH}-pc-serenity-"
"--extra-ldflags=-lm"
"--without-default-features"
"--disable-strip"
"--enable-pie"
"--enable-sdl"
"--enable-tcg"
"--enable-tools"
)
depends=("glib" "pixman" "SDL2")
files="https://download.qemu.org/qemu-${version}.tar.xz qemu-${version}.tar.xz f6b375c7951f728402798b0baabb2d86478ca53d44cedbefabbe1c46bf46f839"
auth_type='sha256'
pre_patch() {
# Disable tests (those need way more stuff than QEMU itself) by clearing the respective meson file.
echo '' > "${workdir}/tests/meson.build"
}
post_install() {
# Add a drop-in fstab entry to make sure that we can use anonymous executable memory and bypass W^X
mkdir -p "${SERENITY_INSTALL_ROOT}/etc/fstab.d"
rm -rf "${SERENITY_INSTALL_ROOT}/etc/fstab.d/qemu"
for i in /usr/local/bin/qemu-system-{aarch64,i386,x86_64}; do
echo "${i} ${i} bind bind,wxallowed,axallowed" >> "${SERENITY_INSTALL_ROOT}/etc/fstab.d/qemu"
done
}
# We don't have '<arch>-pc-serenity-pkg-config', so just use the "normal" one.
export PKG_CONFIG="pkg-config"