ac0bf8bd58
This was deleted in b393370212
, but was
still necessary. Without it, qemu in user mode has the wrong return
value for mremap, which leads to infinite looping in some
situations (afaik only with musl). This could be observed with
qemu-user-static when crossbuilding webkit2gtk for armv*-musl, where
strace(1) showed infinite looping:
mremap(0x6525a000, 4096, 8192, 0^C) = -1 ENOMEM (Out of memory)
The command being used was:
/usr/bin/qemu-arm-static -L /usr/arm-linux-musleabihf -E LD_LIBRARY_PATH=/usr/arm-linux-musleabihf/usr/lib:.libs: /builddir/webkitgtk-2.32.1/build/Source/WebKit/tmp-introspecth0go8pvu/WebKit2-4.0 --introspect-dump=/builddir/webkitgtk-2.32.1/build/Source/WebKit/tmp-introspecth0go8pvu/functions.txt,/builddir/webkitgtk-2.32.1/build/Source/WebKit/tmp-introspecth0go8pvu/dump.xml
98 lines
3.4 KiB
Bash
98 lines
3.4 KiB
Bash
# Template file for 'qemu'
|
|
# This package should be updated together with qemu-user-static
|
|
pkgname=qemu
|
|
version=6.0.0
|
|
revision=2
|
|
build_style=configure
|
|
hostmakedepends="gettext pkg-config perl python3 automake libtool flex
|
|
python3-Sphinx texinfo ninja"
|
|
makedepends="libpng-devel libjpeg-turbo-devel pixman-devel snappy-devel
|
|
libuuid-devel libX11-devel alsa-lib-devel libaio-devel gnutls-devel
|
|
libsasl-devel libglib-devel ncurses-devel libseccomp-devel nss-devel
|
|
libcurl-devel xfsprogs-devel libcap-ng-devel libcap-devel vde2-devel usbredir-devel
|
|
libbluetooth-devel libssh2-devel libusb-devel pulseaudio-devel libnfs-devel
|
|
libzstd-devel $(vopt_if sdl2 'SDL2-devel SDL2_image-devel')
|
|
$(vopt_if gtk3 "gtk+3-devel vte3-devel")
|
|
$(vopt_if spice spice-devel) $(vopt_if virgl virglrenderer-devel)
|
|
$(vopt_if opengl 'libepoxy-devel libdrm-devel MesaLib-devel')
|
|
$(vopt_if iscsi 'libiscsi-devel')
|
|
$(vopt_if smartcard libcacard-devel) $(vopt_if numa 'libnuma-devel')
|
|
$(vopt_if spice 'pcsclite-devel')"
|
|
short_desc="Open Source Processor Emulator"
|
|
maintainer="Helmut Pozimski <helmut@pozimski.eu>"
|
|
license="GPL-2.0-or-later, LGPL-2.1-or-later"
|
|
homepage="https://www.qemu.org"
|
|
distfiles="https://wiki.qemu.org/download/qemu-${version}.tar.bz2"
|
|
checksum=7d306a03c67c0b667d21b55e1b172f5e55a9af5ee09cbd739fb2395aeca7860c
|
|
ignore_elf_dirs="/usr/share/qemu"
|
|
nostrip_files="hppa-firmware.img openbios-ppc openbios-sparc32 openbios-sparc64
|
|
palcode-clipper s390-ccw.img s390-netboot.img u-boot.e500 opensbi-riscv32-generic-fw_dynamic.elf
|
|
opensbi-riscv64-generic-fw_dynamic.elf"
|
|
# FIXME
|
|
make_check=extended
|
|
|
|
build_options="gtk3 opengl sdl2 spice virgl smartcard numa iscsi"
|
|
build_options_default="opengl gtk3 virgl sdl2 numa iscsi"
|
|
desc_option_sdl2="Enable SDL (2.x) video output"
|
|
desc_option_spice="Enable support for SPICE"
|
|
desc_option_virgl="Enable support for VirGL (A Virtual 3D GPU renderer)"
|
|
desc_option_smartcard="Enable smartcard support"
|
|
desc_option_numa="Enable support for host NUMA"
|
|
desc_option_iscsi="Enable support for iSCSI"
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
i686*|x86_64*|ppc64le*) build_options_default+=" spice";;
|
|
aarch64-musl) CFLAGS="-D_LINUX_SYSINFO_H";;
|
|
esac
|
|
|
|
if [ -z "$CROSS_BUILD" ]; then
|
|
build_options_default+=" smartcard"
|
|
fi
|
|
|
|
pre_configure() {
|
|
vsed -i 's/__u64/unsigned long/' linux-user/host/aarch64/hostdep.h
|
|
}
|
|
|
|
do_configure() {
|
|
local args=
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
args+=" --cross-prefix=${XBPS_CROSS_TRIPLET}-"
|
|
export LIBTOOL=libtool
|
|
fi
|
|
unset CPP
|
|
|
|
local want_sdl="--disable-sdl"
|
|
local audio_sdl=""
|
|
if [ "$build_option_sdl2" ]; then
|
|
want_sdl="--enable-sdl"
|
|
audio_sdl=",sdl"
|
|
fi
|
|
|
|
./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/libexec \
|
|
--enable-kvm --audio-drv-list=alsa,pa${audio_sdl} \
|
|
--disable-xen --enable-tpm \
|
|
--enable-vhost-net --enable-vnc-png --enable-virtfs \
|
|
--enable-libusb --disable-glusterfs --enable-snappy --enable-usb-redir \
|
|
--enable-pie --localstatedir=/var --enable-docs \
|
|
$(vopt_enable virgl virglrenderer) $(vopt_enable opengl) $(vopt_enable spice) \
|
|
${want_sdl} \
|
|
$(vopt_enable smartcard) \
|
|
$(vopt_if gtk3 "--enable-gtk") ${args}
|
|
}
|
|
|
|
do_install() {
|
|
make DESTDIR=${DESTDIR} install
|
|
# qemu-bridge-helper must be setuid for non privileged users.
|
|
chmod u+s ${DESTDIR}/usr/libexec/qemu-bridge-helper
|
|
|
|
vsv qemu-ga
|
|
}
|
|
|
|
qemu-ga_package() {
|
|
short_desc="QEMU Guest Agent"
|
|
pkg_install() {
|
|
vmove usr/bin/qemu-ga
|
|
vmove etc/sv/qemu-ga
|
|
}
|
|
}
|