# Maintainer: Robin Broda # Contributor: Christian Rebischke # Contributor: Sergej Pupykin # Contributor: Jonathan Wiersma # ALARM: Kevin Mihelich # - removed ceph makedepend, libvirt-storage-rbd package # - removed qemu makedepend pkgname=(libvirt libvirt-storage-gluster libvirt-storage-iscsi-direct) pkgver=6.8.0 pkgrel=1 pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" arch=('x86_64') url="https://libvirt.org/" license=('LGPL' 'GPL3') #libvirt_parthelper links to libparted which is GPL3 only install=libvirt.install depends=('libpciaccess' 'yajl' 'fuse2' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit') makedepends=('libxslt' 'python-docutils' 'lvm2' 'open-iscsi' 'libiscsi' 'glusterfs' 'bash-completion' 'rpcsvc-proto' 'dnsmasq' 'iproute2' 'meson') checkdepends=('ebtables') optdepends=('libvirt-storage-gluster: Gluster storage backend' 'libvirt-storage-iscsi-direct: iSCSI-direct storage backend' 'gettext: required for libvirt-guests.service' 'openbsd-netcat: for remote management over ssh' 'dmidecode: DMI system info support' 'dnsmasq: required for default NAT/DHCP for guests' 'radvd: IPv6 RAD support' 'ebtables: required for default NAT networking' 'lvm2: Logical Volume Manager support' 'open-iscsi: iSCSI support via iscsiadm') backup=( 'etc/conf.d/libvirtd' 'etc/conf.d/libvirt-guests' 'etc/conf.d/virtinterfaced' 'etc/conf.d/virtlockd' 'etc/conf.d/virtlogd' 'etc/conf.d/virtlxcd' 'etc/conf.d/virtnetworkd' 'etc/conf.d/virtnodedevd' 'etc/conf.d/virtnwfilterd' 'etc/conf.d/virtproxyd' 'etc/conf.d/virtqemud' 'etc/conf.d/virtsecretd' 'etc/conf.d/virtstoraged' 'etc/conf.d/virtvboxd' 'etc/libvirt/libvirt-admin.conf' 'etc/libvirt/libvirt.conf' 'etc/libvirt/libvirtd.conf' 'etc/libvirt/lxc.conf' 'etc/libvirt/nwfilter/allow-arp.xml' 'etc/libvirt/nwfilter/allow-dhcp-server.xml' 'etc/libvirt/nwfilter/allow-dhcp.xml' 'etc/libvirt/nwfilter/allow-incoming-ipv4.xml' 'etc/libvirt/nwfilter/allow-ipv4.xml' 'etc/libvirt/nwfilter/clean-traffic-gateway.xml' 'etc/libvirt/nwfilter/clean-traffic.xml' 'etc/libvirt/nwfilter/no-arp-ip-spoofing.xml' 'etc/libvirt/nwfilter/no-arp-mac-spoofing.xml' 'etc/libvirt/nwfilter/no-arp-spoofing.xml' 'etc/libvirt/nwfilter/no-ip-multicast.xml' 'etc/libvirt/nwfilter/no-ip-spoofing.xml' 'etc/libvirt/nwfilter/no-mac-broadcast.xml' 'etc/libvirt/nwfilter/no-mac-spoofing.xml' 'etc/libvirt/nwfilter/no-other-l2-traffic.xml' 'etc/libvirt/nwfilter/no-other-rarp-traffic.xml' 'etc/libvirt/nwfilter/qemu-announce-self-rarp.xml' 'etc/libvirt/nwfilter/qemu-announce-self.xml' 'etc/libvirt/qemu.conf' 'etc/libvirt/qemu-lockd.conf' 'etc/libvirt/qemu/networks/default.xml' 'etc/libvirt/virtinterfaced.conf' 'etc/libvirt/virtlockd.conf' 'etc/libvirt/virtlogd.conf' 'etc/libvirt/virt-login-shell.conf' 'etc/libvirt/virtlxcd.conf' 'etc/libvirt/virtnetworkd.conf' 'etc/libvirt/virtnodedevd.conf' 'etc/libvirt/virtnwfilterd.conf' 'etc/libvirt/virtproxyd.conf' 'etc/libvirt/virtqemud.conf' 'etc/libvirt/virtsecretd.conf' 'etc/libvirt/virtstoraged.conf' 'etc/libvirt/virtvboxd.conf' 'etc/logrotate.d/libvirtd' 'etc/logrotate.d/libvirtd.lxc' 'etc/logrotate.d/libvirtd.qemu' 'etc/sasl2/libvirt.conf' ) source=("https://libvirt.org/sources/$pkgname-$pkgver.tar.xz"{,.asc}) b2sums=('c118ca6b263054bb6941c62f3d1415f7ed1a3f29a35294272d04bc726643247ee5691e0310a1bf013faeba856d7aadd00a90fe8dbdca6ff4c7eb480e94d92fa2' 'SKIP') validpgpkeys=('C74415BA7C9C7F78F02E1DC34606B8A5DE95BC1F' # Daniel Veillard '453B65310595562855471199CA68BE8010084C9C') # Jiří Denemark > build/meson-config.h echo '#define ZPOOL "/usr/bin/zpool"' >> build/meson-config.h meson compile -C build } check() { meson test -C build --print-errorlogs } package_libvirt() { provides=('libvirt.so' 'libvirt-admin.so' 'libvirt-lxc.so' 'libvirt-qemu.so') install=libvirt.install DESTDIR="$pkgdir" meson install -C build mv "$pkgdir"/etc/{sysconfig,conf.d} mkdir "$pkgdir"/usr/lib/{sysusers,tmpfiles}.d echo "g libvirt - -" > "$pkgdir/usr/lib/sysusers.d/libvirt.conf" echo "z /var/lib/libvirt/qemu 0751" > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf" chown 0:102 "$pkgdir/usr/share/polkit-1/rules.d" chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d" chmod 600 "$pkgdir"/etc/libvirt/nwfilter/*.xml \ "$pkgdir/etc/libvirt/qemu/networks/default.xml" # Strip auto-generated UUID, so it will be generated per-install. (reproducible builds) sed -i 's|.*||' "$pkgdir"/etc/libvirt/qemu/networks/default.xml rm -rf \ "$pkgdir/run" \ "$pkgdir/var/lib/libvirt/qemu" \ "$pkgdir/var/cache/libvirt/qemu" \ "$pkgdir/etc/logrotate.d/libvirtd.libxl" rm -f "$pkgdir/etc/libvirt/qemu/networks/autostart/default.xml" # move split modules mkdir "$srcdir"/split mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_{rbd,gluster}.so "$srcdir"/split mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so "$srcdir"/split mv "$pkgdir"/usr/lib/libvirt/storage-file/libvirt_storage_file_gluster.so "$srcdir"/split } package_libvirt-storage-gluster() { pkgdesc="Libvirt Gluster storage backend" depends=("libvirt=$pkgver" 'glusterfs') optdepends=() backup=() install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$srcdir/split/libvirt_storage_backend_gluster.so" install -Dv -t "$pkgdir/usr/lib/libvirt/storage-file" "$srcdir/split/libvirt_storage_file_gluster.so" } package_libvirt-storage-iscsi-direct() { pkgdesc="Libvirt iSCSI-direct storage backend" depends=("libvirt=$pkgver" 'libiscsi') optdepends=() backup=() install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$srcdir/split/libvirt_storage_backend_iscsi-direct.so" }