void-packages/srcpkgs/libvirt/template

119 lines
3.7 KiB
Bash

# Template file for 'libvirt'
pkgname=libvirt
version=8.8.0
revision=1
build_style=meson
configure_args="-Dqemu_user=libvirt -Dqemu_group=libvirt -Drunstatedir=/run
-Dpolkit=enabled"
hostmakedepends="automake dnsmasq docbook-xsl gettext gettext-devel iptables
libapparmor-devel libtool libxslt lvm2 parted perl pkg-config python3-docutils
rpcsvc-proto"
makedepends="readline-devel libcap-ng-devel attr-devel gnutls-devel
libsasl-devel libcurl-devel libpcap-devel libxml2-devel libparted-devel
device-mapper-devel eudev-libudev-devel libblkid-devel libpciaccess-devel
avahi-libs-devel polkit-devel yajl-devel jansson-devel python3-devel
libssh2-devel fuse-devel libtirpc-devel libapparmor-devel"
depends="iptables dnsmasq"
short_desc="Virtualization API for controlling virtualization engines"
maintainer="Helmut Pozimski <helmut@pozimski.eu>"
license="LGPL-2.1-or-later"
homepage="https://libvirt.org"
changelog="https://libvirt.org/news.html"
distfiles="https://libvirt.org/sources/${pkgname}-${version}.tar.xz"
checksum=eb0cbb6cd199e7a2f341e62f5410ca2daf65a0bf91bd522d951c1a18f0df0fa3
# At least one test times out on CI but works locally
make_check=ci-skip
# FIX https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701649
system_accounts="libvirt"
libvirt_groups="disk,kvm"
case "$XBPS_TARGET_MACHINE" in
i686*) makedepends+=" libnuma-devel" ;;
x86_64*) makedepends+=" libnuma-devel xen-devel" ;;
*) ;;
esac
case "$XBPS_TARGET_MACHINE" in
*-musl) ;;
*)
# LTO apparently causes the linker to confuse the glibc symbol
# xdr_int64_t with that provided by libtirpc, causing a crash.
# https://gitlab.com/libvirt/libvirt/-/issues/92
configure_args+=" -Db_lto=false"
;;
esac
conf_files="
/etc/libvirt/nwfilter/*.xml
/etc/libvirt/qemu/networks/*.xml
/etc/libvirt/*.conf"
make_dirs="
/var/lib/libvirt/uml 0755 root root
/var/lib/libvirt/qemu/nvram 0755 root root
/var/lib/libvirt/qemu/channel/target 0755 root root
/var/lib/libvirt/network 0755 root root
/var/lib/libvirt/lxc 0755 root root
/var/lib/libvirt/lockd/files 0755 root root
/var/lib/libvirt/libxl 0755 root root
/var/lib/libvirt/images 0755 root root
/var/lib/libvirt/filesystems 0755 root root
/var/lib/libvirt/dnsmasq 0755 root root
/var/libvirt/boot 0755 root root
/var/cache/libvirt/qemu 0755 root root"
post_patch() {
# Upstream doesn't want to accept this patch from Alpine, but libvirt
# is broken on musl without it, so apply it only for musl
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
patch -Np0 < ${FILESDIR}/musl-fork-nofree.patch
fi
}
pre_build() {
# racey custom targets; prevent parallelism issues
ninja -C build \
src/remote/lxc_protocol.h \
src/remote/qemu_protocol.h \
src/remote/remote_protocol.h \
src/util/virkeycodetable_linux.h \
src/util/virkeycodetable_osx.h \
src/util/virkeycodetable_win32.h \
src/util/virkeynametable_linux.h \
src/util/virkeynametable_osx.h \
src/util/virkeynametable_win32.h
}
post_install() {
local _services _srv
# runit services; libvirtd is for legacy use
_services="libvirt-generic libvirtd virtqemud virtvboxd virtxend
virtlxcd virtlockd virtlogd virtproxyd virtinterfaced virtnetworkd
virtnodedevd virtnwfilterd virtsecretd virtstoraged"
for _srv in $_services; do
vsv $_srv
done
# Remove unused stuff.
rm -rf ${DESTDIR}/etc/sysconfig
rm -rf ${DESTDIR}/var/log
# workaround for musl not providing an utmpx implementation
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
echo "remember_owner = 0" >> ${DESTDIR}/etc/libvirt/qemu.conf
fi
}
libvirt-devel_package() {
depends="libvirt>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/lib/pkgconfig
vmove "usr/lib/*.so"
vmove usr/share/doc
}
}