ladybird/Ports/qemu/package.sh
Kenneth Myhra 1cc095c5ab Toolchain+Ports: Consolidate version information for QEMU
This consolidates version information, archive's download location,
filename and SHA256 checksum into version.sh. This file is then sourced
from the port script and toolchain build script.

The version.sh script contains the following variables:
- QEMU_VERSION           - Version number
- QEMU_ARCHIVE           - Filename
- QEMU_ARCHIVE_URL       - Full url to download location
- QEMU_ARCHIVE_SHA256SUM - The SHA256 checksum
2023-04-23 14:20:42 +02:00

45 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env -S bash ../.port_include.sh
source version.sh
port='qemu'
version="${QEMU_VERSION}"
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-slirp'
'--enable-tcg'
'--enable-tools'
)
depends=(
'glib'
'libslirp'
'pixman'
'SDL2'
)
auth_type='sha256'
files="${QEMU_ARCHIVE_URL} ${QEMU_ARCHIVE} ${QEMU_ARCHIVE_SHA256SUM}"
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"