summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/libvirt/libvirt-9999.ebuild')
-rw-r--r--app-emulation/libvirt/libvirt-9999.ebuild130
1 files changed, 84 insertions, 46 deletions
diff --git a/app-emulation/libvirt/libvirt-9999.ebuild b/app-emulation/libvirt/libvirt-9999.ebuild
index 34cffee86294..f1c08714d713 100644
--- a/app-emulation/libvirt/libvirt-9999.ebuild
+++ b/app-emulation/libvirt/libvirt-9999.ebuild
@@ -1,35 +1,40 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9} )
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
-inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
if [[ ${PV} = *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
EGIT_BRANCH="master"
- SRC_URI=""
- SLOT="0"
else
SRC_URI="https://libvirt.org/sources/${P}.tar.xz
verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
- SLOT="0/${PV}"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
LICENSE="LGPL-2.1"
-VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libvirt.org.asc
+SLOT="0/${PV}"
IUSE="
apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
- iscsi iscsi-direct +libvirtd lvm libssh lxc nfs nls numa openvz
- parted pcap policykit +qemu rbd sasl selinux +udev
- virtualbox +virt-network wireshark-plugins xen zfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
"
+RESTRICT="!test? ( test )"
REQUIRED_USE="
firewalld? ( virt-network )
@@ -49,44 +54,43 @@ BDEPEND="
dev-python/docutils
virtual/pkgconfig
bash-completion? ( >=app-shells/bash-completion-2.0 )
- verify-sig? ( app-crypt/openpgp-keys-libvirt )"
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
# gettext.sh command is used by the libvirt command wrappers, and it's
# non-optional, so put it into RDEPEND.
# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
# package will use 3 by default. Since we don't have slot pinning in an API,
-# we must go with the most recent
+# we must go with the most recent.
RDEPEND="
acct-user/qemu
app-misc/scrub
- >=dev-libs/glib-2.48.0
- dev-libs/libgcrypt:0
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
+ >=dev-libs/libxml2-2.9.1
>=net-analyzer/openbsd-netcat-1.105-r1
- >=net-libs/gnutls-1.0.25:0=
- net-libs/libssh2
- net-libs/libtirpc
- net-libs/rpcsvc-proto
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
>=net-misc/curl-7.18.0
sys-apps/dbus
sys-apps/dmidecode
sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
+ >=sys-libs/readline-7.0:=
virtual/acl
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dtrace? ( dev-util/systemtap )
+ dtrace? ( dev-debug/systemtap )
firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( sys-fs/fuse:0= )
+ fuse? ( sys-fs/fuse:= )
glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
nfs? ( net-fs/nfs-utils )
numa? (
>sys-process/numactl-2.0.2
@@ -94,46 +98,55 @@ RDEPEND="
)
parted? (
>=sys-block/parted-1.8[device-mapper]
- sys-fs/lvm2[-device-mapper-only(-)]
+ sys-fs/lvm2[lvm]
)
- pcap? ( >=net-libs/libpcap-1.0.0 )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
policykit? (
acct-group/libvirt
>=sys-auth/polkit-0.9
)
qemu? (
- >=app-emulation/qemu-2.11
- dev-libs/yajl
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
selinux? ( >=sys-libs/libselinux-2.0.85 )
virt-network? (
- net-dns/dnsmasq[dhcp,ipv6,script]
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
net-misc/radvd
sys-apps/iproute2[-minimal]
)
- wireshark-plugins? ( net-analyzer/wireshark:= )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
xen? (
>=app-emulation/xen-4.9.0
app-emulation/xen-tools:=
)
udev? (
- virtual/libudev
+ virtual/libudev:=
>=x11-libs/libpciaccess-0.10.9
)
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${BDEPEND}
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
${RDEPEND}
- ${PYTHON_DEPS}"
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch
- "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
)
pkg_setup() {
@@ -187,10 +200,21 @@ pkg_setup() {
~IP_NF_FILTER
~IP_NF_MANGLE
~IP_NF_NAT
- ~IP_NF_TARGET_MASQUERADE
~IP6_NF_FILTER
~IP6_NF_MANGLE
~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
# Bandwidth Limiting Support
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_T_NAT
@@ -217,6 +241,11 @@ src_prepare() {
default
python_fix_shebang .
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
# Tweak the init script:
cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
@@ -238,9 +267,11 @@ src_configure() {
$(meson_feature iscsi-direct storage_iscsi_direct)
$(meson_feature libvirtd driver_libvirtd)
$(meson_feature libssh)
+ $(meson_feature libssh2)
$(meson_feature lvm storage_lvm)
$(meson_feature lvm storage_mpath)
$(meson_feature lxc driver_lxc)
+ $(meson_feature nbd nbdkit)
$(meson_feature nls)
$(meson_feature numa numactl)
$(meson_feature numa numad)
@@ -253,6 +284,7 @@ src_configure() {
$(meson_feature rbd storage_rbd)
$(meson_feature sasl)
$(meson_feature selinux)
+ $(meson_feature test tests)
$(meson_feature udev)
$(meson_feature virt-network driver_network)
$(meson_feature virtualbox driver_vbox)
@@ -262,6 +294,7 @@ src_configure() {
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -272,6 +305,7 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
@@ -281,7 +315,11 @@ src_configure() {
src_test() {
export VIR_TEST_DEBUG=1
- meson_src_test
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
}
src_install() {