4c396d23a6
For awhile, libvirt has moved away from the monolithic libvirtd in favor of modular virt${DRIVER}d daemons that each manage a specific function. This is the default behavior for per-user "session" instances that launch on demand. We still provide a legacy libvirtd service, but let's add services for the modular daemons favored by upstream.
118 lines
3.7 KiB
Bash
118 lines
3.7 KiB
Bash
# Template file for 'libvirt'
|
|
pkgname=libvirt
|
|
version=7.10.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=cb318014af097327928c6e3d72922e3be02a3e6401247b2aa52d9ab8e0b480f9
|
|
# 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
|
|
}
|
|
}
|