# Maintainer: Francesco Colista pkgname=libvirt pkgver=6.0.0 _ver="${pkgver/_rc/-rc}" pkgrel=1 pkgdesc="A virtualization API for several hypervisor and container systems" url="https://libvirt.org/" arch="all" options="!check" license="LGPL-2.1-or-later" _daemon_deps="bridge-utils dmidecode dnsmasq ip6tables iptables" _client_deps="pm-utils gnutls-utils netcat-openbsd" depends="lvm2" depends_dev="libtirpc-dev" makedepends="augeas-dev cyrus-sasl-dev device-mapper e2fsprogs-dev gnutls-dev libcap-ng-dev libgpg-error-dev netcf-dev libnl3-dev libxml2-dev libxslt-dev libtasn1-dev lvm2-dev lxc-dev libgcrypt-dev parted-dev perl pkgconfig eudev-dev zlib-dev yajl-dev libpcap-dev curl-dev libpciaccess-dev polkit-dev readline-dev linux-headers jansson-dev $depends_dev perl-xml-xpath fuse-dev util-linux libxml2-utils bash-completion $_daemon_deps $_client_deps automake autoconf libtool rpcsvc-proto py3-docutils " install="$pkgname.post-install" subpackages="$pkgname-static $pkgname-libs $pkgname-dev $pkgname-doc $pkgname-client $pkgname-daemon $pkgname-lang $pkgname-lxc $pkgname-qemu $pkgname-uml::noarch $pkgname-vbox $pkgname-bash-completion:bashcomp:noarch" source="https://libvirt.org/sources/libvirt-$pkgver.tar.xz libvirt.confd libvirt.initd virtlogd.initd virtlockd.initd musl-fix-includes.patch stderr-fix.patch " if [ "$CARCH" = "x86_64" ]; then subpackages="$subpackages $pkgname-xen" makedepends="$makedepends xen-dev zfs" fi subpackages="$subpackages $pkgname-common-drivers:_common_drivers" # secfixes: # 5.5.0-r0: # - CVE-2019-10168 # - CVE-2019-10167 # - CVE-2019-10166 # - CVE-2019-10161 prepare() { default_prepare mkdir -p build cd build autoreconf -fi ../ } build() { cd build # qemu sets libexec dir to /usr/lib/qemu export ac_cv_path_QEMU_BRIDGE_HELPER="/usr/lib/qemu/qemu-bridge-helper" [ "$CARCH" = x86_64 ] && local _xen_opt="--with-libxl" [ "$CARCH" = x86_64 ] && local _zfs_opt="--with-storage-zfs" ../configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --libexec=/usr/lib/"$pkgname" \ $_xen_opt \ $_zfs_opt \ --with-polkit \ --with-storage-fs \ --with-storage-lvm \ --enable-static \ --with-qemu \ --with-qemu-group=kvm \ --with-qemu-user=qemu make } package() { cd build make DESTDIR="$pkgdir" install install -D -m755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/libvirtd install -D -m755 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/libvirtd install -D -m755 $srcdir/virtlogd.initd $pkgdir/etc/init.d/virtlogd install -D -m755 $srcdir/virtlockd.initd $pkgdir/etc/init.d/virtlockd install -d "$pkgdir"/lib/modules-load.d echo "tun" > "$pkgdir"/lib/modules-load.d/libvirt.conf rm -rf "$pkgdir"/usr/lib/charset.alias rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true } dev() { default_dev mkdir -p "$subpkgdir"/usr/share/libvirt mv "$pkgdir"/usr/share/libvirt/api \ "$subpkgdir"/usr/share/libvirt/ } daemon() { cd "$builddir" pkgdesc="libvirt daemon package" depends="libvirt-client $_daemon_deps" replaces="libvirt" mkdir -p "$subpkgdir"/etc/$pkgname \ "$subpkgdir"/etc/logrotate.d \ "$subpkgdir"/usr/sbin mv "$pkgdir"/etc/init.d "$subpkgdir"/etc mv "$pkgdir"/etc/conf.d "$subpkgdir"/etc mv "$pkgdir"/lib/modules-load.d "$subpkgdir"/lib mv "$pkgdir"/etc/$pkgname/libvirtd.conf "$subpkgdir"/etc/libvirt/ mv "$pkgdir"/usr/sbin/libvirtd "$subpkgdir"/usr/sbin/ mv "$pkgdir"/etc/logrotate.d/libvirtd "$subpkgdir"/etc/logrotate.d/ } client() { cd "$builddir" pkgdesc="libvirt client package" depends="libvirt $_client_deps" replaces="libvirt" mkdir -p "$subpkgdir"/etc/$pkgname "$subpkgdir"/usr/bin \ "$subpkgdir"/usr/lib mv "$pkgdir"/etc/$pkgname/$pkgname.conf "$subpkgdir"/etc/libvirt/ mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/ } static() { pkgdesc="$pkgname static libraries" mkdir -p "$subpkgdir"/usr/lib cd "$pkgdir" for _lib in $(find . -name '*.a'); do mkdir -p "$subpkgdir"/${_lib%/*} mv "$_lib" "$subpkgdir"/${_lib%/*}/ done } bashcomp() { depends="" pkgdesc="Bash completions for $pkgname" install_if="$pkgname=$pkgver-r$pkgrel bash-completion" mkdir -p "$subpkgdir"/usr/share/ mv "$pkgdir"/usr/share/bash-completion \ "$subpkgdir"/usr/share/ } _mv_driver() { local _name="$1" _drivers="$2" _pkg="$3" pkgdesc="$_name driver for libvirt" depends="$pkgname-daemon=$pkgver-r$pkgrel $pkgname-common-drivers=$pkgver-r$pkgrel" replaces="libvirt" if [ -n "$_pkg" ]; then install_if="$pkgname-daemon=$pkgver-r$pkgrel $_pkg" else install_if= fi local _dir=/usr/lib/libvirt/connection-driver mkdir -p "$subpkgdir"/$_dir \ "$subpkgdir"/etc/libvirt \ "$subpkgdir"/etc/logrotate.d local _d cd "$pkgdir" for _d in $_drivers; do find * -name "*$_d[.-]*" -o -name "*$_d" | while read _f; do mkdir -p "$subpkgdir"/${_f%/*} mv "$pkgdir"/$_f "$subpkgdir"/$_f done done } qemu() { _mv_driver "QEMU" qemu qemu; } xen() { _mv_driver "XEN" "libxl xen" xen; } lxc() { _mv_driver "LXC" lxc lxc; } uml() { _mv_driver "UML" uml; } vbox() { _mv_driver "VirtualBox" vbox; } _common_drivers() { pkgdesc="Common libvirt daemon drivers" replaces="libvirt" mkdir -p "$subpkgdir"/usr/lib/libvirt \ "$subpkgdir"/etc/libvirt/nwfilter mv "$pkgdir"/usr/lib/libvirt/connection-driver \ "$subpkgdir"/usr/lib/libvirt/ mv "$pkgdir"/etc/libvirt/nwfilter \ "$subpkgdir"/etc/libvirt/ } sha512sums="64259c0cffa9fc01192c5474f69d88a61ed0bae0a100379fed6112723a37eff1865ccfc85a19d6b8cd39ed504f04998bb3f6390aaafff797bb41ef65b6ec413c libvirt-6.0.0.tar.xz 9aba6ab73219a635c64a340ee8887356e644445c9128734cbce73f5d54778378da2f10a190365ad88a7db8bc95b1fb17f0c6ca41fc41bb786c09e1afe84d65dc libvirt.confd 734afb83b7a4703dd238f1d89dbc853a8c73bcf1994af648c41ab01ae4088e5c7a423f0cb91e5e31f2ae5e60c66d08a6e1583a1e3b88bb5554e0f9fd15ecc15c libvirt.initd 36b85f473d292be8df415256d01a562131d8ae61450ba3893658090a12d589ca32215382f56f286a830b4e59ffd98fbe1d92004f2ce14ca0834451b943cd8f2f virtlogd.initd a4c4d26e4111931acbe7594451bf963a36c8db33c64b1bc447ab4758bb92803510bebee0511d6bc16ba80c289ab6f87e74377d47bf560412f9adb9c161a206d9 virtlockd.initd dfe042c596028125bf8548115de2922683829c4716f6b0efb8efc38518670e3e848481661b9714bb0664c1022b87e8f3c0773611fe10187b0bc588e2336ada0c musl-fix-includes.patch d32551d56eae2c33bab7571964f76421336967918c293cd1d18fc66626a7ead3551b5672a9e3fc3d8b7bca82cc0abb17e428ee8271d04d73bc06fd16309918b3 stderr-fix.patch"