Date: Monday, August 3, 2015 @ 13:06:51 Author: seblu Revision: 242952
upgpkg: qemu 2.3.0-6 - fix FS#45830 - fix FS#45819 - fix FS#45821 - fix FS#45846 - fix path quoting - cleanup libcacard dependencies - clean qemu deps - move to systemd-sysusers Modified: qemu/trunk/PKGBUILD qemu/trunk/qemu.install --------------+ PKGBUILD | 136 ++++++++++++++++++++++++++++++++++++--------------------- qemu.install | 17 ++++--- 2 files changed, 98 insertions(+), 55 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-08-03 07:13:46 UTC (rev 242951) +++ PKGBUILD 2015-08-03 11:06:51 UTC (rev 242952) @@ -1,17 +1,23 @@ # $Id$ # Maintainer: Tobias Powalowski <[email protected]> -pkgname=('qemu' 'libcacard') +# Contributor: Sébastien "Seblu" Luttringer <[email protected]> + +pkgbase=qemu +pkgname=('qemu' + 'qemu-block-iscsi' + 'qemu-block-rbd' + 'qemu-block-gluster' + 'libcacard') pkgver=2.3.0 -pkgrel=5 +pkgrel=6 arch=('i686' 'x86_64') license=('GPL2' 'LGPL2.1') -url="http://wiki.qemu.org/Index.html" +url='http://wiki.qemu.org/' 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') -options=(!strip) + 'usbredir' 'ceph' 'glusterfs' 'libssh2' 'lzo' 'snappy') source=(http://wiki.qemu.org/download/${pkgname}-${pkgver}.tar.bz2 CVE-2015-3456.patch CVE-2015-5154.patch @@ -28,7 +34,7 @@ prepare() { for _p in *.patch; do [[ -e "$_p" ]] || continue - msg2 "Patching $_p" + msg2 "Patching $_p" patch -p1 -d ${pkgname}-${pkgver} < "$_p" done } @@ -35,7 +41,7 @@ build () { - cd "${srcdir}/${pkgname}-${pkgver}" + cd ${pkgname}-${pkgver} # qemu vs. make 4 == bad export ARFLAGS="rv" # http://permalink.gmane.org/gmane.comp.emulators.qemu/238740 @@ -52,66 +58,98 @@ } package_qemu() { - pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation." - depends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' - 'gnutls' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl' - 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp' - 'libcacard' 'spice' 'usbredir' 'lzo') + pkgdesc='A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation' + depends=('glibc' 'pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' + 'gnutls' 'bluez-libs' 'vde2' 'util-linux' 'libsasl' 'mesa-libgl' + 'seabios' 'libcap' 'libcap-ng' 'libaio' 'libseccomp' 'libcacard' + 'spice' 'usbredir' 'lzo' 'snappy' 'gcc-libs' 'zlib' 'bzip2' 'nspr' + 'ncurses' 'libx11' 'libusb' 'libpulse') backup=('etc/qemu/target-x86_64.conf') replaces=('qemu-kvm') - optdepends=('samba: for SMB server support' - 'libssh2: for remote disks over ssh support' - 'curl: for remote disks over http/ftp support' - 'libiscsi: for iSCSI support' - 'ceph: for RDB support' - 'glusterfs: for glusterfs support') + optdepends=('samba: SMB/CIFS server support' + 'qemu-block-iscsi: iSCSI block support' + 'qemu-block-rbd: RDB block support' + 'qemu-block-gluster: glusterfs block support') + options=(!strip) install=qemu.install - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" libexecdir="/usr/lib/qemu" install + + make -C ${pkgname}-${pkgver} DESTDIR="${pkgdir}" libexecdir="/usr/lib/qemu" install + + cd "${pkgdir}" + # provided by seabios package - rm "${pkgdir}/usr/share/qemu/bios.bin" - rm "${pkgdir}/usr/share/qemu/acpi-dsdt.aml" - rm "${pkgdir}/usr/share/qemu/q35-acpi-dsdt.aml" - rm "${pkgdir}/usr/share/qemu/bios-256k.bin" - rm "${pkgdir}/usr/share/qemu/vgabios-cirrus.bin" - rm "${pkgdir}/usr/share/qemu/vgabios-qxl.bin" - rm "${pkgdir}/usr/share/qemu/vgabios-stdvga.bin" - rm "${pkgdir}/usr/share/qemu/vgabios-vmware.bin" + rm usr/share/qemu/bios.bin + rm usr/share/qemu/acpi-dsdt.aml + rm usr/share/qemu/q35-acpi-dsdt.aml + rm usr/share/qemu/bios-256k.bin + rm usr/share/qemu/vgabios-cirrus.bin + rm usr/share/qemu/vgabios-qxl.bin + rm usr/share/qemu/vgabios-stdvga.bin + rm usr/share/qemu/vgabios-vmware.bin # remove conflicting /var/run directory - rm -r "${pkgdir}/var" - install -D -m644 "${srcdir}/65-kvm.rules" \ - "${pkgdir}/usr/lib/udev/rules.d/65-kvm.rules" + rm -r var + + # systemd stuff + install -D -m644 "${srcdir}/65-kvm.rules" usr/lib/udev/rules.d/65-kvm.rules + install -D -m644 "${srcdir}/qemu.sysusers" usr/lib/sysusers.d/qemu.conf + # bridge_helper needs suid # https://bugs.archlinux.org/task/32565 - chmod u+s "${pkgdir}/usr/lib/qemu/qemu-bridge-helper" + chmod u+s usr/lib/qemu/qemu-bridge-helper + # add sample config - echo "allow br0" > ${pkgdir}/etc/qemu/bridge.conf.sample - # strip scripts directory - find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do + echo 'allow br0' > etc/qemu/bridge.conf.sample + + # manual striping in scripts directory + find usr/src/linux-${_kernver}/scripts -type f -perm -u+w 2>/dev/null|while read binary ; do case "$(file -bi "$binary")" in *application/x-executable*) # Binaries /usr/bin/strip $STRIP_BINARIES "$binary";; esac done + # remove libcacard files - rm -rf ${pkgdir}/usr/include/cacard - rm -rf ${pkgdir}/usr/lib/libcacard* - rm -rf ${pkgdir}/usr/lib/pkgconfig/libcacard.pc - rm -rf ${pkgdir}/usr/bin/vscclient + rm -r usr/include/cacard + rm usr/lib/libcacard* + rm usr/lib/pkgconfig/libcacard.pc + rm usr/bin/vscclient + + # remove splited block modules + rm usr/lib/qemu/block-{iscsi,rbd,gluster}.so } package_libcacard() { - pkgdesc="Common Access Card (CAC) Emulation" - options=('strip') - depends=('nss' 'libaio' 'libcap-ng' 'libiscsi' 'curl' 'vde2' 'glib2') - mkdir -p ${pkgdir}/usr/bin - mkdir -p ${pkgdir}/usr/lib/pkgconfig - mkdir -p ${pkgdir}/usr/include/cacard - cp -a ${srcdir}/qemu-${pkgver}/libcacard/*.h ${pkgdir}/usr/include/cacard/ - cp -a ${srcdir}/qemu-${pkgver}/.libs/libcacard.so* ${pkgdir}/usr/lib/ - cp -a ${srcdir}/qemu-${pkgver}/libcacard.pc ${pkgdir}/usr/lib/pkgconfig/ - cp -a ${srcdir}/qemu-${pkgver}/.libs/vscclient ${pkgdir}/usr/bin/ + pkgdesc='Common Access Card (CAC) Emulation' + depends=('glibc' 'nss' 'nspr' 'glib2') + + cd "${pkgdir}" + install -d usr/{bin,lib/pkgconfig,include/cacard} + install "${srcdir}"/qemu-${pkgver}/libcacard/*.h usr/include/cacard/ + install "${srcdir}"/qemu-${pkgver}/.libs/libcacard.so* usr/lib/ + install "${srcdir}"/qemu-${pkgver}/libcacard.pc usr/lib/pkgconfig/ + install "${srcdir}"/qemu-${pkgver}/.libs/vscclient usr/bin/ } +package_qemu-block-iscsi() { + pkgdesc='Qemu iSCSI block module' + depends=('glibc' 'glib2' 'libiscsi') + + install -D qemu-${pkgver}/block-iscsi.so "${pkgdir}"/usr/lib/qemu/block-iscsi.so +} + +package_qemu-block-rbd() { + pkgdesc='Qemu RBD block module' + depends=('glibc' 'glib2' 'ceph') + + install -D qemu-${pkgver}/block-rbd.so "${pkgdir}"/usr/lib/qemu/block-rbd.so +} + +package_qemu-block-gluster() { + pkgdesc='Qemu GlusterFS block module' + depends=('glibc' 'glib2' 'glusterfs') + + install -D qemu-${pkgver}/block-gluster.so "${pkgdir}"/usr/lib/qemu/block-gluster.so +} + # vim:set ts=2 sw=2 et: Modified: qemu.install =================================================================== --- qemu.install 2015-08-03 07:13:46 UTC (rev 242951) +++ qemu.install 2015-08-03 11:06:51 UTC (rev 242952) @@ -1,19 +1,24 @@ -# kvm: the new package version +# Arg 1: the new package version post_install() { - # - groupadd kvm -f -g 78 + # create kvm group + systemd-sysusers qemu.conf + + # retrigger events on modules files when already loaded + [[ -e /dev/kvm ]] && udevadm trigger /dev/kvm + [[ -e /dev/vhost-net ]] && udevadm trigger /dev/vhost-net } +# arg 1: the new package version +# arg 2: the old package version post_upgrade() { - if [ "$(vercmp $2 0.11)" -lt 0 ]; then + if (( "$(vercmp $2 0.11)" < 0 )); then echo "With the release of qemu and qemu-kvm 0.12.X, the kqemu kernel module" echo "is no longer supported and will be removed from the repositories. You" echo "can safely uninstall it from your system." fi - if [ "$(vercmp $2 1.3.1)" -lt 0 ]; then + if (( "$(vercmp $2 1.3.1)" < 0 )); then echo "With the release of qemu 1.3.0, qemu-kvm binary is removed." echo "You need to change the emulator path, if you use libvirt by using:" echo "'virsh edit <vm-name>'" fi } -
