diff options
author | Ryszard Knop | 2018-02-08 18:40:13 +0100 |
---|---|---|
committer | Ryszard Knop | 2018-02-08 18:40:13 +0100 |
commit | e07b610f20ddd6680d1adaab046051370aae1857 (patch) | |
tree | 1af239031d54e6d675820e23a1d6d0c1097a8ed0 /PKGBUILD | |
download | aur-e07b610f20ddd6680d1adaab046051370aae1857.tar.gz |
Initial commit (and hopefully the only one)
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..69561b3fd35b --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,223 @@ +# Maintainer: Vaporeon <vaporeon@vaporeon.io> +# Contributor: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: Sébastien "Seblu" Luttringer <seblu@seblu.net> + +pkgbase=qemu-patched-vfiomsitest +pkgname=(qemu-patched-vfiomsitest qemu-patched-vfiomsitest-headless + qemu-patched-vfiomsitest-block-{iscsi,rbd,gluster} qemu-patched-vfiomsitest-guest-agent) +_pkgname=qemu +pkgdesc="A generic and open source machine emulator and virtualizer - Patched for extra functionality" +pkgver=2.11.0 +pkgrel=3 +arch=(x86_64) +license=(GPL2 LGPL2.1) +url="http://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) +source=("$url/download/${_pkgname}-${pkgver}.tar.xz"{,.sig} + qemu-ga.service + 65-kvm.rules + allow_elf64.patch + cpu-pinning.patch + audio-improvements.patch + v2_qemu_zen_smt_cache.patch + v4_ivshmem.patch + vfio-msi-1.patch + vfio-msi-2.patch + vfio-msi-3.patch + vfio-msi-4.patch + vfio-msi-5.patch) +sha256sums=('c9d34a79024eae080ce3853aa9afe503824520eefb440190383003081ce7f437' + 'SKIP' + 'c39bcde4a09165e64419fd2033b3532378bba84d509d39e2d51694d44c1f8d88' + 'a66f0e791b16b03b91049aac61a25950d93e962e1b2ba64a38c6ad7f609b532c' + '13a6d9e678bdc9e1f051006cfd0555f5a80582368f54c8a1bb5a78ece3832ac4' + '8d4a7e35ab1a0a465f737cf60fc0392afc430e22354a40a89505f8766a3a3ee8' + '23338655345d0ee535f34acc124f1ddd75e5ad4483e2bd87294b7ac4fe3fa859' + 'adf3f389849e92c5ea4c4cee0abf1ac5df61a176d296e9263ac773194ba86e57' + '4acbbd8834dc5782feb86795748f37e1b1aa4f61b54303234ea4f13bd4c0e068' + '9e7b0c7e54ae0f5a9288b1e65421ecec3f369e5ac34a8660c516897419090c07' + 'f6c12889551a22a2a6d78d106022b47a652987b9b0ab3fbd7494a86400491e26' + 'bbeacc088f39d5baf42281bac1efa930a8eb3277a455e858a8edafdd021b3446' + 'e8935e9e318f4d497ecade9a4b667ed494feba6304b1b4f08f9fd18c9a53c3fa' + '8f105c549f565f61b1e4f6e2f91109620721cc0d5fd88407aebfdba55440ddf8') +validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') + +case $CARCH in + i?86) _corearch=i386 ;; + x86_64) _corearch=x86_64 ;; +esac + +prepare() { + mkdir build-{full,headless} + + cd ${_pkgname}-${pkgver} + sed -i 's/vte-2\.90/vte-2.91/g' configure + + patch -p1 < ../allow_elf64.patch + patch -p1 < ../cpu-pinning.patch + patch -p0 < ../audio-improvements.patch + patch -p1 < ../v2_qemu_zen_smt_cache.patch + patch -p1 < ../v4_ivshmem.patch + + # Experimental VFIO MSI interrupt patches, please read before using: + # https://redd.it/7vsfv7 and on the QEMU mailing list: + # https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg01543.html + patch -p1 < ../vfio-msi-1.patch + patch -p1 < ../vfio-msi-2.patch + patch -p1 < ../vfio-msi-3.patch + patch -p1 < ../vfio-msi-4.patch + patch -p1 < ../vfio-msi-5.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 \ + --target-list=x86_64-softmmu,x86_64-linux-user \ + --with-gtkabi=3.0 \ + --with-sdlabi=2.0 \ + --enable-modules \ + --enable-jemalloc \ + "${@:2}" + + make +) + +package_qemu-patched-vfiomsitest() { + provides=(qemu-headless qemu) + conflicts=(qemu-headless qemu) + replaces=(qemu-kvm) + + _package full +} + +package_qemu-patched-vfiomsitest-headless() { + pkgdesc="QEMU without GUI" + depends=("${_headlessdeps[@]}") + conflicts=(qemu-headless) + _package headless +} + +_package() { + optdepends+=('ovmf: Tianocore UEFI firmware for qemu' + 'samba: SMB/CIFS server support' + 'qemu-patched-vfiomsitest-block-iscsi: iSCSI block support' + 'qemu-patched-vfiomsitest-block-rbd: RBD block support' + 'qemu-patched-vfiomsitest-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 + + 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) 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 + done +} + +package_qemu-patched-vfiomsitest-block-iscsi() { + pkgdesc="QEMU iSCSI block module" + depends=(glib2 libiscsi jemalloc) + conflicts=(qemu-block-iscsi) + provides=(qemu-block-iscsi) + + install -D build-full/block-iscsi.so "$pkgdir/usr/lib/qemu/block-iscsi.so" +} + +package_qemu-patched-vfiomsitest-block-rbd() { + pkgdesc="QEMU RBD block module" + depends=(glib2 ceph) + conflicts=(qemu-block-rbd) + provides=(qemu-block-rbd) + + install -D build-full/block-rbd.so "$pkgdir/usr/lib/qemu/block-rbd.so" +} + +package_qemu-patched-vfiomsitest-block-gluster() { + pkgdesc="QEMU GlusterFS block module" + depends=(glib2 glusterfs) + conflicts=(qemu-block-gluster) + provides=(qemu-block-gluster) + + install -D build-full/block-gluster.so "$pkgdir/usr/lib/qemu/block-gluster.so" +} + +package_qemu-patched-vfiomsitest-guest-agent() { + pkgdesc="QEMU Guest Agent" + depends=(gcc-libs glib2) + conflicts=(qemu-guest-agent) + provides=(qemu-guest-agent) + + 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/${_pkgname}-${pkgver}/scripts/qemu-guest-agent/fsfreeze-hook" "$pkgdir/etc/qemu/fsfreeze-hook" +} + +# vim:set ts=2 sw=2 et: |