summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/qemu-linaro/PKGBUILD124
-rw-r--r--libre/qemu-linaro/qemu.install11
2 files changed, 135 insertions, 0 deletions
diff --git a/libre/qemu-linaro/PKGBUILD b/libre/qemu-linaro/PKGBUILD
new file mode 100644
index 000000000..f3b104a5e
--- /dev/null
+++ b/libre/qemu-linaro/PKGBUILD
@@ -0,0 +1,124 @@
+# Maintainer: Márcio Silva <coadde@parabola.nu>
+
+pkgbase='qemu'
+pkgname=("${pkgbase}-linaro"
+ "${pkgbase}-linaro-block-iscsi"
+ "${pkgbase}-linaro-block-rbd"
+ "${pkgbase}-linaro-block-gluster")
+_gitcount='r39004' # git rev-list <commit/branch> --count
+_gitcommit='e571600'
+pkgver="${_gitcount}.${_gitcommit}"
+pkgrel='1'
+arch=('i686' 'x86_64' 'armv7h')
+license=('GPL2' 'LGPL2.1')
+url="https://launchpad.net/${pkgbase}-linaro"
+makedepends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
+ 'gnutls' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl'
+ 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp'
+ 'libiscsi' 'libcacard' 'spice' 'spice-protocol' 'python2'
+ 'usbredir' 'ceph' 'glusterfs' 'libssh2' 'lzo' 'snappy' 'dtc' 'git')
+source=("${pkgname}-${pkgver}::git+http://git.linaro.org/${pkgbase}/${pkgbase}-linaro.git#commit=${_gitcommit}")
+md5sums=('SKIP')
+
+prepare() {
+ for _p in *.patch; do
+ [[ -e "$_p" ]] || continue
+ msg2 "Patching $_p"
+ patch -p1 -d ${pkgname}-${pkgver} < "$_p"
+ done
+}
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ # qemu vs. make 4 == bad
+ export ARFLAGS="rv"
+ # http://permalink.gmane.org/gmane.comp.emulators.qemu/238740
+ export CFLAGS+=' -fPIC'
+ # gtk gui breaks keymappings at the moment
+ ./configure --prefix='/usr' --sysconfdir='/etc' --audio-drv-list='pa alsa sdl' \
+ --python='/usr/bin/python2' --smbd=/usr/bin/smbd \
+ --disable-docs --libexecdir="/usr/lib/${pkgbase}-linaro" \
+ --disable-gtk --enable-linux-aio --enable-seccomp \
+ --enable-spice --with-confsuffix="/${pkgbase}-linaro" \
+ --enable-tpm --enable-guest-base --disable-guest-agent \
+ --enable-modules --enable-{rbd,glusterfs,libiscsi,curl} \
+ --target-list='aarch64-softmmu arm-softmmu aarch64-linux-user armeb-linux-user arm-linux-user'
+ make V=99
+}
+
+package_qemu-linaro() {
+ pkgdesc='QEMU with community improvements support for ARM architectures'
+ depends=('glibc' 'pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
+ 'gnutls' 'bluez-libs' 'vde2' 'util-linux' 'libsasl' 'libgl'
+ 'seabios' 'libcap' 'libcap-ng' 'libaio' 'libseccomp' 'libcacard'
+ 'spice' 'usbredir' 'lzo' 'snappy' 'gcc-libs' 'zlib' 'bzip2' 'nspr'
+ 'ncurses' 'libx11' 'libusb' 'libpulse' 'libssh2' 'curl')
+ optdepends=('samba: SMB/CIFS server support'
+ "${pkgbase}: KVM and extra docs/tools support"
+ "${pkgbase}-arch-extra: ARM generic architectures support"
+ "${pkgbase}-linaro-block-iscsi: iSCSI block support"
+ "${pkgbase}-linaro-block-rbd: RBD block support"
+ "${pkgbase}-linaro-block-gluster: glusterfs block support")
+ options=(!strip)
+ install=qemu.install
+
+ make -C "${pkgname}-${pkgver}" DESTDIR="${pkgdir}" libexecdir="/usr/lib/${pkgbase}-linaro" install
+
+ cd "${pkgdir}"
+
+ msg 'rm (and ln -s) files, due provided by seabios package'
+ rm -v "usr/share/${pkgbase}-linaro/acpi-dsdt.aml"
+ rm -v "usr/share/${pkgbase}-linaro/q35-acpi-dsdt.aml"
+ ln -vs "../${pkgbase}/acpi-dsdt.aml" "usr/share/${pkgbase}-linaro/acpi-dsdt.aml"
+ ln -vs "../${pkgbase}/q35-acpi-dsdt.aml" "usr/share/${pkgbase}-linaro/q35-acpi-dsdt.aml"
+
+ msg 'bridge_helper needs suid'
+ msg 'https://bugs.archlinux.org/task/32565'
+ chmod u+s "usr/lib/${pkgbase}-linaro/${pkgbase}-bridge-helper"
+
+ msg 'remove libcacard files'
+ rm -vr 'usr/include/cacard'
+ rm -v 'usr/lib/libcacard'*
+ rm -v 'usr/lib/pkgconfig/libcacard.pc'
+ rm -v 'usr/bin/vscclient'
+ rmdir -v 'usr/include'
+ rmdir -v 'usr/lib/pkgconfig'
+
+ msg 'remove splitted block modules'
+ rm -v "usr/lib/${pkgbase}-linaro/block-"{iscsi,rbd,gluster}'.so'
+
+ msg 'remove unused binaries'
+ rm -v "usr/bin/${pkgbase}-"{img,io,nbd}
+ rm -v 'usr/bin/virtfs-proxy-helper'
+
+ msg 'rename binaries'
+ mv -v "usr/bin/${pkgbase}"{,-linaro}'-aarch64'
+ mv -v "usr/bin/${pkgbase}"{,-linaro}'-arm'
+ mv -v "usr/bin/${pkgbase}"{,-linaro}'-armeb'
+ mv -v "usr/bin/${pkgbase}"{,-linaro}'-system-aarch64'
+ mv -v "usr/bin/${pkgbase}"{,-linaro}'-system-arm'
+
+ msg 'manually stripping'
+ find "${pkgdir}/usr/bin" -type f -exec strip {} \;
+}
+
+package_qemu-linaro-block-iscsi() {
+ pkgdesc='QEMU (Linaro) iSCSI block module'
+ depends=('glibc' 'glib2' 'libiscsi')
+
+ install -D "${pkgbase}-linaro-${pkgver}/block-iscsi.so" "${pkgdir}/usr/lib/${pkgbase}-linaro/block-iscsi.so"
+}
+
+package_qemu-linaro-block-rbd() {
+ pkgdesc='QEMU (Linaro) RBD block module'
+ depends=('glibc' 'glib2' 'ceph')
+
+ install -D "${pkgbase}-linaro-${pkgver}/block-rbd.so" "${pkgdir}/usr/lib/${pkgbase}-linaro/block-rbd.so"
+}
+
+package_qemu-linaro-block-gluster() {
+ pkgdesc='QEMU (Linaro) GlusterFS block module'
+ depends=('glibc' 'glib2' 'glusterfs')
+
+ install -D "${pkgbase}-linaro-${pkgver}/block-gluster.so" "${pkgdir}/usr/lib/${pkgbase}-linaro/block-gluster.so"
+}
diff --git a/libre/qemu-linaro/qemu.install b/libre/qemu-linaro/qemu.install
new file mode 100644
index 000000000..91546c3ee
--- /dev/null
+++ b/libre/qemu-linaro/qemu.install
@@ -0,0 +1,11 @@
+# Arg 1: the new package version
+post_install() {
+ # create kvm group
+ systemd-sysusers qemu.conf
+
+ # trigger events on modules files when already loaded
+ for _f in /sys/devices/virtual/misc/{kvm,vhost-net}; do
+ [[ -e "$_f" ]] && udevadm trigger "$_f"
+ done
+ :
+}