pkgname=(qemu qemu-headless qemu-arch-extra qemu-headless-arch-extra
qemu-block-{iscsi,rbd,gluster} qemu-guest-agent)
pkgdesc="A generic and open source machine emulator and virtualizer"
-pkgver=3.1.0
+pkgver=4.0.0
pkgrel=2
arch=(x86_64)
license=(GPL2 LGPL2.1)
-url="http://wiki.qemu.org/"
+url="https://wiki.qemu.org/"
_headlessdeps=(seabios gnutls libpng libaio numactl jemalloc xfsprogs libnfs
lzo snappy curl vde2 libcap-ng spice libcacard usbredir)
depends=(virglrenderer sdl2 vte3 libpulse "${_headlessdeps[@]}")
-makedepends=(spice-protocol python2 ceph libiscsi glusterfs)
+makedepends=(spice-protocol python2 ceph libiscsi glusterfs python-sphinx)
source=(https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
qemu-ga.service
65-kvm.rules
allow_elf64.patch)
-sha512sums=('7e8dae823937cfac2f0c60406bd3bdcb89df40313dab2a4bed327d5198f7fcc68ac8b31e44692caa09299cc71256ee0b8c17e4f49f78ada8043d424f5daf82fe'
+sha512sums=('952e94194ce9e64c15388c59035cb31fb9f761d30095c2fb9441012b609c18c9976285727b93bf37b95e15675802d73f8e1c4619ebecd23606675bb503646b13'
'SKIP'
'269c0f0bacbd06a3d817fde02dce26c99d9f55c9e3b74bb710bd7e5cdde7a66b904d2eb794c8a605bf9305e4e3dee261a6e7d4ec9d9134144754914039f176e4'
'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99'
cd ${pkgname}-${pkgver}
sed -i 's/vte-2\.90/vte-2.91/g' configure
- patch -p1 < ../allow_elf64.patch
+ # patch -p1 < ../allow_elf64.patch
}
build() {
--libexecdir=/usr/lib/qemu \
--python=/usr/bin/python2 \
--smbd=/usr/bin/smbd \
- --with-sdlabi=2.0 \
--enable-modules \
+ --enable-sdl \
--enable-jemalloc \
"${@:2}"
+++ /dev/null
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Contributor: Sébastien "Seblu" Luttringer <seblu@seblu.net>
-
-pkgbase=qemu
-pkgname=(qemu qemu-headless qemu-arch-extra qemu-headless-arch-extra
- qemu-block-{iscsi,rbd,gluster} qemu-guest-agent)
-pkgdesc="A generic and open source machine emulator and virtualizer"
-pkgver=4.0.0
-pkgrel=2
-arch=(x86_64)
-license=(GPL2 LGPL2.1)
-url="https://wiki.qemu.org/"
-_headlessdeps=(seabios gnutls libpng libaio numactl jemalloc xfsprogs libnfs
- lzo snappy curl vde2 libcap-ng spice libcacard usbredir)
-depends=(virglrenderer sdl2 vte3 libpulse "${_headlessdeps[@]}")
-makedepends=(spice-protocol python2 ceph libiscsi glusterfs python-sphinx)
-source=(https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
- qemu-ga.service
- 65-kvm.rules
- allow_elf64.patch)
-sha512sums=('952e94194ce9e64c15388c59035cb31fb9f761d30095c2fb9441012b609c18c9976285727b93bf37b95e15675802d73f8e1c4619ebecd23606675bb503646b13'
- 'SKIP'
- '269c0f0bacbd06a3d817fde02dce26c99d9f55c9e3b74bb710bd7e5cdde7a66b904d2eb794c8a605bf9305e4e3dee261a6e7d4ec9d9134144754914039f176e4'
- 'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99'
- 'b450625ff1e705f8c7eed9e2c0c4fe2179ca061df88a1a777c861c11d543c151cd0160f7f7227babdfe8b36000de084cbcb6fd7bf0f93d2f936c2e65082c82bf')
-validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584')
-
-case $CARCH in
- i?86) _corearch=i386 ;;
- x86_64) _corearch=x86_64 ;;
-esac
-
-prepare() {
- mkdir build-{full,headless}
- mkdir -p extra-arch-{full,headless}/usr/{bin,share/qemu}
-
- cd ${pkgname}-${pkgver}
- sed -i 's/vte-2\.90/vte-2.91/g' configure
-
- # patch -p1 < ../allow_elf64.patch
-}
-
-build() {
- _build full \
- --audio-drv-list="pa alsa sdl"
-
- _build headless \
- --audio-drv-list= \
- --disable-bluez \
- --disable-sdl \
- --disable-gtk \
- --disable-vte \
- --disable-opengl \
- --disable-virglrenderer
-}
-
-_build() (
- cd build-$1
-
- # qemu vs. make 4 == bad
- export ARFLAGS=rv
-
- # http://permalink.gmane.org/gmane.comp.emulators.qemu/238740
- export CFLAGS+=" -fPIC"
-
- ../${pkgname}-${pkgver}/configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --libexecdir=/usr/lib/qemu \
- --python=/usr/bin/python2 \
- --smbd=/usr/bin/smbd \
- --enable-modules \
- --enable-sdl \
- --enable-jemalloc \
- "${@:2}"
-
- make
-)
-
-package_qemu() {
- optdepends=('qemu-arch-extra: extra architectures support')
- provides=(qemu-headless)
- conflicts=(qemu-headless)
- replaces=(qemu-kvm)
-
- _package full
-}
-
-package_qemu-headless() {
- pkgdesc="QEMU without GUI"
- depends=("${_headlessdeps[@]}")
- optdepends=('qemu-headless-arch-extra: extra architectures support')
-
- _package headless
-}
-
-_package() {
- optdepends+=('samba: SMB/CIFS server support'
- 'qemu-block-iscsi: iSCSI block support'
- 'qemu-block-rbd: RBD block support'
- 'qemu-block-gluster: glusterfs block support')
- install=qemu.install
- options=(!strip)
-
- make -C build-$1 DESTDIR="$pkgdir" install "${@:2}"
-
- # systemd stuff
- install -Dm644 65-kvm.rules "$pkgdir/usr/lib/udev/rules.d/65-kvm.rules"
-
- # remove conflicting /var/run directory
- cd "$pkgdir"
- rm -r var
-
- cd usr/lib
- tidy_strip
-
- # bridge_helper needs suid
- # https://bugs.archlinux.org/task/32565
- chmod u+s qemu/qemu-bridge-helper
-
- # remove split block modules
- rm qemu/block-{iscsi,rbd,gluster}.so
-
- cd ../bin
- tidy_strip
-
- # remove extra arch
- for _bin in qemu-*; do
- [[ -f $_bin ]] || continue
-
- case ${_bin#qemu-} in
- # guest agent
- ga) rm "$_bin"; continue ;;
-
- # tools
- img|io|nbd) continue ;;
-
- # core emu
- system-${_corearch}) continue ;;
- esac
-
- mv "$_bin" "$srcdir/extra-arch-$1/usr/bin"
- done
-
- cd ../share/qemu
- for _blob in *; do
- [[ -f $_blob ]] || continue
-
- case $_blob in
- # provided by seabios package
- bios.bin|acpi-dsdt.aml|bios-256k.bin|vgabios-cirrus.bin|vgabios-qxl.bin|\
- vgabios-stdvga.bin|vgabios-vmware.bin|vgabios-virtio.bin|vgabios-bochs-display.bin|\
- vgabios-ramfb.bin) rm "$_blob"; continue ;;
-
- # iPXE ROMs
- efi-*|pxe-*) continue ;;
-
- # core blobs
- kvmvapic.bin|linuxboot*|multiboot.bin|sgabios.bin|vgabios*) continue ;;
-
- # Trace events definitions
- trace-events*) continue ;;
-
- # Logos
- *.bmp|*.svg) continue ;;
- esac
-
- mv "$_blob" "$srcdir/extra-arch-$1/usr/share/qemu"
- done
-}
-
-package_qemu-arch-extra() {
- pkgdesc="QEMU for foreign architectures"
- depends=(qemu)
- provides=(qemu-headless-arch-extra)
- conflicts=(qemu-headless-arch-extra)
- options=(!strip)
-
- mv extra-arch-full/usr "$pkgdir"
-}
-
-package_qemu-headless-arch-extra() {
- pkgdesc="QEMU without GUI, for foreign architectures"
- depends=(qemu-headless)
- options=(!strip)
-
- mv extra-arch-headless/usr "$pkgdir"
-}
-
-package_qemu-block-iscsi() {
- pkgdesc="QEMU iSCSI block module"
- depends=(glib2 libiscsi jemalloc)
-
- install -D build-full/block-iscsi.so "$pkgdir/usr/lib/qemu/block-iscsi.so"
-}
-
-package_qemu-block-rbd() {
- pkgdesc="QEMU RBD block module"
- depends=(glib2 ceph)
-
- install -D build-full/block-rbd.so "$pkgdir/usr/lib/qemu/block-rbd.so"
-}
-
-package_qemu-block-gluster() {
- pkgdesc="QEMU GlusterFS block module"
- depends=(glib2 glusterfs)
-
- install -D build-full/block-gluster.so "$pkgdir/usr/lib/qemu/block-gluster.so"
-}
-
-package_qemu-guest-agent() {
- pkgdesc="QEMU Guest Agent"
- depends=(gcc-libs glib2)
-
- install -D build-full/qemu-ga "$pkgdir/usr/bin/qemu-ga"
- install -Dm644 qemu-ga.service "$pkgdir/usr/lib/systemd/system/qemu-ga.service"
- install -Dm755 "$srcdir/qemu-$pkgver/scripts/qemu-guest-agent/fsfreeze-hook" "$pkgdir/etc/qemu/fsfreeze-hook"
-}
-
-# vim:set ts=2 sw=2 et:
+++ /dev/null
-commit cb61bc8a42da1a971079767e63df4503b6ab2efb
-Author: Anatol Pomozov <anatol.pomozov@gmail.com>
-Date: Mon Jan 29 10:08:53 2018 -0800
-
- multiboot: Make elf64 loading functionality compatible with GRUB
-
- GRUB is a reference multiboot implementation and supports loading elf64
- binaries. Make QEMU to work similar was as GRUB.
-
-diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
-index 5bc0a2cddb..0907e42a39 100644
---- a/hw/i386/multiboot.c
-+++ b/hw/i386/multiboot.c
-@@ -193,11 +193,6 @@ int load_multiboot(FWCfgState *fw_cfg,
- int kernel_size;
- fclose(f);
-
-- if (((struct elf64_hdr*)header)->e_machine == EM_X86_64) {
-- error_report("Cannot load x86-64 image, give a 32bit one.");
-- exit(1);
-- }
--
- kernel_size = load_elf(kernel_filename, NULL, NULL, &elf_entry,
- &elf_low, &elf_high, 0, I386_ELF_MACHINE,
- 0, 0);