# Maintainer: Francesco Colista pkgname=libvirt pkgver=9.1.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="$pkgname=$pkgver-r$pkgrel libtirpc-dev" makedepends=" $_client_deps $_daemon_deps $depends_dev augeas-dev bash-completion ceph-dev curl-dev cyrus-sasl-dev device-mapper e2fsprogs-dev eudev-dev fuse-dev gnutls-dev jansson-dev libcap-ng-dev libgcrypt-dev libgpg-error-dev libnl3-dev libpcap-dev libpciaccess-dev libtasn1-dev libxml2-dev libxml2-utils libxslt-dev linux-headers lvm2-dev lxc-dev meson netcf-dev parted-dev perl perl-xml-xpath polkit-dev py3-docutils qemu qemu-pr-helper readline-dev rpcsvc-proto util-linux yajl-dev zlib-dev " install="$pkgname.post-install" subpackages=" $pkgname-dbg $pkgname-libs $pkgname-dev $pkgname-doc $pkgname-client $pkgname-daemon $pkgname-lang $pkgname-lxc $pkgname-qemu $pkgname-uml::noarch $pkgname-vbox $pkgname-bash-completion " source="https://libvirt.org/sources/libvirt-$pkgver.tar.xz libvirt.confd libvirt.initd libvirt-guests.confd libvirt-guests.initd virtlogd.initd virtlockd.initd libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch " if [ "$CARCH" = "x86_64" ]; then subpackages="$subpackages $pkgname-xen" makedepends="$makedepends xen-dev zfs" fi subpackages="$subpackages $pkgname-common-drivers:_common_drivers" # secfixes: # 7.5.0-r0: # - CVE-2021-3631 # 6.8.0-r0: # - CVE-2020-25637 # 6.6.0-r0: # - CVE-2020-14339 # 5.5.0-r0: # - CVE-2019-10168 # - CVE-2019-10167 # - CVE-2019-10166 # - CVE-2019-10161 case "$CARCH" in riscv64) options="$options textrels" ;; esac build() { abuild-meson \ -Db_lto=true \ --libexec=/usr/lib/$pkgname \ . output meson configure --no-pager output meson compile -C output } check() { meson test --no-rebuild --print-errorlogs -C output } package() { DESTDIR="$pkgdir" meson install --no-rebuild -C output install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/libvirtd install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/libvirtd install -Dm755 "$srcdir"/$pkgname-guests.initd "$pkgdir"/etc/init.d/libvirt-guests install -Dm644 "$srcdir"/$pkgname-guests.confd "$pkgdir"/etc/conf.d/libvirt-guests install -Dm755 "$srcdir"/virtlogd.initd "$pkgdir"/etc/init.d/virtlogd install -Dm755 "$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"/etc/sysconfig rm -rf "$pkgdir"/usr/lib/charset.alias rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true } dev() { default_dev amove usr/share/libvirt/api } daemon() { cd "$builddir" pkgdesc="libvirt daemon package" depends="libvirt-client=$pkgver-r$pkgrel $_daemon_deps" replaces="libvirt" amove etc/init.d amove etc/conf.d amove lib/modules-load.d amove etc/libvirt/libvirtd.conf amove usr/sbin/libvirtd amove etc/logrotate.d/libvirtd } client() { cd "$builddir" pkgdesc="libvirt client package" depends="libvirt=$pkgver-r$pkgrel $_client_deps" replaces="libvirt" amove etc/libvirt/libvirt.conf amove usr/bin } _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 # shellcheck disable=1087 find . -name "*$_d[.-]*" -o -name "*$_d" | while read -r _f; do amove $_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" amove etc/libvirt/nwfilter amove usr/lib/libvirt/connection-driver } sha512sums=" f4c11ef4e5d29ffde9b91aed1f4fa466f827471d8cbdf6208b54e58b9f1f5cd8dd4fe8ca128aeea1d984f42f47b1ed7d99bbf2a5bb7264ab3943641310f36cd6 libvirt-9.1.0.tar.xz c3647366e589f2134599baefcbd7ec480cbc0830c71f95cd903cacb28e463d4cd8d972fbd1db81aa17eef81c1f701bd3937c9b8eb71d56ee630e1ed8b89887e9 libvirt.confd 4e28dc733a5db0e102ed529f3215d44c52ce0495dc109e2ef53465a0e205e2ba6f5f0ff56cc6e27318572ca560d778dd24a3faf092e7ab7819674c42876aa764 libvirt.initd 78f419a89de7aabaad860903c24f1c070786fc1296d987e61dd537705b0e7f71a46c315888028f3826c3417e42861ca8471788be4ec5695e98427c5f18ae63fc libvirt-guests.confd ec2bc46d72afa61513983b777e2d49da618a35a4687bc75674b3a49ababd4e2e387661010d342fee86c7a73d259644985a263a6c2976e29a436d88921bb040b0 libvirt-guests.initd f93313c387c21bafb760f599942f1cdecfe952af80af42a28e8525118e5a7fd512d9f909039d8b15f1a544957f1d70a0728c55de2bae41a87e5be6dbbb4f6208 virtlogd.initd d8ef64d76e8be521a6551893cc7c6aa7e5d8c627a9aed87beefefc126798dc0f98bf420609b6afc027ad96cca347a1c5db8f703d09853efde4d1a6a35572fbf1 virtlockd.initd dc80c9fc459207dd1ff77548054ea5a51c41a2d36e1b8917eca5f69293a86168af3da47466d8ff954a8b2e0ead9f28ed7d6c2c3671cf67d0ebb4039003a0dde2 libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch "