From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1347149-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 15E95158086
	for <garchives@archives.gentoo.org>; Wed,  8 Dec 2021 03:23:16 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 9886A2BC005;
	Wed,  8 Dec 2021 03:23:14 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id B73A42BC00D
	for <gentoo-commits@lists.gentoo.org>; Wed,  8 Dec 2021 03:23:12 +0000 (UTC)
Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 089943433CC
	for <gentoo-commits@lists.gentoo.org>; Wed,  8 Dec 2021 03:23:10 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 34D941F4
	for <gentoo-commits@lists.gentoo.org>; Wed,  8 Dec 2021 03:23:08 +0000 (UTC)
From: "Matthias Maier" <tamiko@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Matthias Maier" <tamiko@gentoo.org>
Message-ID: <1638933506.b1877e99f228d5c4ec84a49f8806d38c41ac77af.tamiko@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/libvirt/
X-VCS-Repository: repo/gentoo
X-VCS-Files: app-emulation/libvirt/Manifest app-emulation/libvirt/libvirt-7.10.0.ebuild app-emulation/libvirt/libvirt-7.9.0.ebuild
X-VCS-Directories: app-emulation/libvirt/
X-VCS-Committer: tamiko
X-VCS-Committer-Name: Matthias Maier
X-VCS-Revision: b1877e99f228d5c4ec84a49f8806d38c41ac77af
X-VCS-Branch: master
Date: Wed,  8 Dec 2021 03:23:08 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 86861781-0db6-49b6-90c6-8fd166abf075
X-Archives-Hash: 0cd3312158e405aed70cc4c249f3baac

commit:     b1877e99f228d5c4ec84a49f8806d38c41ac77af
Author:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
AuthorDate: Wed Dec  8 03:18:26 2021 +0000
Commit:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Wed Dec  8 03:18:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1877e99

app-emulation/libvirt: version bump to 7.9.0 and 7.10.0

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>

 app-emulation/libvirt/Manifest              |   4 +
 app-emulation/libvirt/libvirt-7.10.0.ebuild | 336 ++++++++++++++++++++++++++++
 app-emulation/libvirt/libvirt-7.9.0.ebuild  | 336 ++++++++++++++++++++++++++++
 3 files changed, 676 insertions(+)

diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest
index 64d3b21ae74d..5cde70f50158 100644
--- a/app-emulation/libvirt/Manifest
+++ b/app-emulation/libvirt/Manifest
@@ -2,6 +2,8 @@ DIST libvirt-7.0.0.tar.xz 8567648 BLAKE2B 0c0b360c371a14b6d82dc6bef4b228bf7a4a17
 DIST libvirt-7.0.0.tar.xz.asc 833 BLAKE2B 7cc16442f39de660caa38801b12994ca312b250d6c3e5bbef38613702a03cd31cb9b7eaa792af4f8c1b737d67e62f18baa02b481e7fa4d6ec8fc9a07a44db4de SHA512 fb0b6240dbb4e827456f6c573bb3466f19282383bcee5bae8ece923260eca6d252f64b1adfac9a26fdac2a57bb9390aa4c0071e54d16d3e294230b3562764f18
 DIST libvirt-7.1.0.tar.xz 8645944 BLAKE2B 97a76091616b427fc64a6a3caf5d9b04d7b9aed7ff7a6d70536ca2eb95d902f0f5ed4b5e56fbdfc6c40f443fb68f4850cff0545256826e575e78fea97158e8f7 SHA512 475b212e920bf8587db4a551126d9eb417d4e18a72550f94feb1aec94821fbac8c84d67ffd59cfe4f8289b6b10ae5f6b579ee170c0d72cb0493ec7ec52183cd6
 DIST libvirt-7.1.0.tar.xz.asc 833 BLAKE2B 2610cff98967260a5005840e1b03cff16790da82d9a51f14d6b34453db3ba89aa34915bba69d57b333f50d17e2492c77e85ee4e6282b8fe5f4cd0f7ace638334 SHA512 6c92c91bc7f23b32deee3442008b44d6469a9cabf2ed39459afcbfce9b3f2b1b655514a068c4bcdc8909ba02a0a4762e8f845ae4dba8da18719acf45614ca6da
+DIST libvirt-7.10.0.tar.xz 8798000 BLAKE2B 6cb2ab5913d382b11d24b46154dc3250355050cd3038f64ba571b35f33ae5bd0a322d4b96469bd6c78fd848c87f2e6fc7213c33e5bdb9d375a9b81d2a40899bb SHA512 c7eecc9538b68852a8cc67565566d64ec7b087b6f009858b2eb524bc3ef0f6ca3c0da67edf801e6a3ae3fcc0364e65e108fa92bcb01ee810c85fa5f37785aa32
+DIST libvirt-7.10.0.tar.xz.asc 833 BLAKE2B b9e129dcce43a87320b7284264c0689ce45742c0038a68c86fe7a0b789ddc2a49794fe89ae30d4d3675e884891a3b335b61beeb7ff0c5291fbc763ca6629de40 SHA512 41ef8e5fe9a8d1d6ba1c4fa8bd8204b0be83b50d3c936765d7ad005e75600287de0f13e0b14fab4d94d2d4b8bf8916fbe869cbfccf6293cc61c854513a0ef0c3
 DIST libvirt-7.2.0.tar.xz 8661052 BLAKE2B eae6b4e7422690dd780e1647e2a39dfdff0562f3e63bce9ca5ee34540dec3755269efaad459d1b516b56fdeb1503cc966ffa60378aaa18210b972b739716fe34 SHA512 f6bb26ca7cb5a8d342f1f39afd051ed76b71414e1b934557cf50784da17e4f2fb3301c2ace3b593fcdeb6a18ad559a007ad594111c2c348b9157d3a59d475928
 DIST libvirt-7.2.0.tar.xz.asc 833 BLAKE2B c389d80ef4f7627230b88446ef77daab1bf34e49e20cfb5c5418500fdf388af23aeb2458551548cb732c868f87f35a5c28acff8c01faebe985a6953953a69149 SHA512 526955a9f9d294635e63a4ed20c3e478fb4b5f3a63150a59ff30d84ad16a286ddb4c6508d0317c56df63a0d22a099085697df344fe2b15bce07acf9f05cda331
 DIST libvirt-7.3.0.tar.xz 8680468 BLAKE2B 88ad3dbac627203419eb80b28649613480a287014688b5b75b9a18d60b3d2b2c6628c803384ce0eed81bf84cdc0dd8539b072f32ccf0319f09bebaaeb0e089bf SHA512 e039d5cc000c0f29ead4faddf154852ee8d8b5943e940b717eabb33cc9990d3f257a942b05a661bf6c36df5b5763c31df3f8b5a0fc21e8111a81c57da42d903e
@@ -14,3 +16,5 @@ DIST libvirt-7.7.0.tar.xz 8670212 BLAKE2B 93c72117941b0a74484c7510c8437054e66fc3
 DIST libvirt-7.7.0.tar.xz.asc 833 BLAKE2B 86a77bf461e353776d79f31f1d0c82fa13e28348bd9c6ae7cb653b98886c7e070d67ed0db55f5e1f3b5e5bd2a3861a5cb08dbf95799b14df1037139f8001b030 SHA512 d5f8cd6accd3bfaebfb7c8761e321aaa9a090c7705256785c5507aa88d985f78a788047dc881f37ea6f64a4634c65c9718d8b1ee0a24744acc3ad5ed6e517bdf
 DIST libvirt-7.8.0.tar.xz 8735184 BLAKE2B 44ad9465a0bcb683777677de87e422741fe88d604297297f859ba94378b91b80855b9d4cd91de60a1c140c6dc2b4cb61020296933f68526605945e8accfadbcb SHA512 0fe31b70178d662a5c8019ef424568b95d9d4c2eb74113c1b697ccf4eef1e110c3095e19835cef2c9459a694a5f4785b0761c19ec78062af88c39651291fa040
 DIST libvirt-7.8.0.tar.xz.asc 833 BLAKE2B 10d315ec715a9ede62103276631ca4ac95feb543faea984e108f4d74857dbc3929d799a7b28d1816a3a6736fa388489a0c44ec01c6eef27528a94f997e8b2d65 SHA512 283c486ca9a56442f9aaead20e71e496a169f902ea33ad7ffe2a830630a50b4314abdd477727c502d3c273506f2a0014079420079907b568da449aaf546f3b60
+DIST libvirt-7.9.0.tar.xz 8785056 BLAKE2B 524b9bbddcf45d441a5b306bdb44bf1d1e54a9dd6867fb7daed833e58d5324cdc3f3d57601b4d2df7e19ace4df73868e45b291bf58813bbd9b746304ac940f55 SHA512 7185ac3da41f662b8142d144a1360f5ed5471812e6961933f2f404a7b88f32739b9b780c809bb8ce04dd56ff13d4486f60dd6725a660cf9f019e15cae49b36bf
+DIST libvirt-7.9.0.tar.xz.asc 833 BLAKE2B 295174bcf25352dec83508e7e36cc6e6d12ac514217ed6e27fa3d6dac8b1365d4b8f335ffadd8c33ab70e164f6f82639abf5e496844a23c3f0bf0c557dec56c8 SHA512 570b33dfc0f58c6322d41d3990e4d6f670a10311c221b1b3cd5a746e58e51e520214649891386e5b289c118735e9c17a1f9f478b50fa69c732ca3811074c8c8c

diff --git a/app-emulation/libvirt/libvirt-7.10.0.ebuild b/app-emulation/libvirt/libvirt-7.10.0.ebuild
new file mode 100644
index 000000000000..e20eaa25a6c2
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-7.10.0.ebuild
@@ -0,0 +1,336 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit meson bash-completion-r1 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}"
+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
+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
+"
+
+REQUIRED_USE="
+	firewalld? ( virt-network )
+	libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+	lxc? ( caps libvirtd )
+	openvz? ( libvirtd )
+	qemu? ( libvirtd )
+	virt-network? ( libvirtd )
+	virtualbox? ( libvirtd )
+	xen? ( libvirtd )"
+
+BDEPEND="
+	app-text/xhtml1
+	dev-lang/perl
+	dev-libs/libxslt
+	dev-perl/XML-XPath
+	dev-python/docutils
+	virtual/pkgconfig
+	bash-completion? ( >=app-shells/bash-completion-2.0 )
+	verify-sig? ( app-crypt/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
+RDEPEND="
+	acct-user/qemu
+	app-misc/scrub
+	>=dev-libs/glib-2.48.0
+	dev-libs/libgcrypt:0
+	dev-libs/libnl:3
+	>=dev-libs/libxml2-2.7.6
+	>=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-misc/curl-7.18.0
+	sys-apps/dbus
+	sys-apps/dmidecode
+	sys-devel/gettext
+	sys-libs/ncurses:0=
+	sys-libs/readline:=
+	virtual/acl
+	apparmor? ( sys-libs/libapparmor )
+	audit? ( sys-process/audit )
+	caps? ( sys-libs/libcap-ng )
+	dtrace? ( dev-util/systemtap )
+	firewalld? ( >=net-firewall/firewalld-0.6.3 )
+	fuse? ( sys-fs/fuse:0= )
+	glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+	iscsi? ( sys-block/open-iscsi )
+	iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+	libssh? ( net-libs/libssh )
+	lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+	lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+	nfs? ( net-fs/nfs-utils )
+	numa? (
+		>sys-process/numactl-2.0.2
+		sys-process/numad
+	)
+	parted? (
+		>=sys-block/parted-1.8[device-mapper]
+		sys-fs/lvm2[-device-mapper-only(-)]
+	)
+	pcap? ( >=net-libs/libpcap-1.0.0 )
+	policykit? (
+		acct-group/libvirt
+		>=sys-auth/polkit-0.9
+	)
+	qemu? (
+		>=app-emulation/qemu-2.11
+		dev-libs/yajl
+	)
+	rbd? ( sys-cluster/ceph )
+	sasl? ( dev-libs/cyrus-sasl )
+	selinux? ( >=sys-libs/libselinux-2.0.85 )
+	virt-network? (
+		net-dns/dnsmasq[dhcp,ipv6,script]
+		net-firewall/ebtables
+		>=net-firewall/iptables-1.4.10[ipv6]
+		net-misc/radvd
+		sys-apps/iproute2[-minimal]
+	)
+	wireshark-plugins? ( net-analyzer/wireshark:= )
+	xen? (
+		>=app-emulation/xen-4.9.0
+		app-emulation/xen-tools:=
+	)
+	udev? (
+		virtual/libudev
+		>=x11-libs/libpciaccess-0.10.9
+	)
+	zfs? ( sys-fs/zfs )"
+
+DEPEND="${BDEPEND}
+	${RDEPEND}
+	${PYTHON_DEPS}"
+
+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
+)
+
+pkg_setup() {
+	# Check kernel configuration:
+	CONFIG_CHECK=""
+	use fuse && CONFIG_CHECK+="
+		~FUSE_FS"
+
+	use lvm && CONFIG_CHECK+="
+		~BLK_DEV_DM
+		~DM_MULTIPATH
+		~DM_SNAPSHOT"
+
+	use lxc && CONFIG_CHECK+="
+		~BLK_CGROUP
+		~CGROUP_CPUACCT
+		~CGROUP_DEVICE
+		~CGROUP_FREEZER
+		~CGROUP_NET_PRIO
+		~CGROUP_PERF
+		~CGROUPS
+		~CGROUP_SCHED
+		~CPUSETS
+		~IPC_NS
+		~MACVLAN
+		~NAMESPACES
+		~NET_CLS_CGROUP
+		~NET_NS
+		~PID_NS
+		~POSIX_MQUEUE
+		~SECURITYFS
+		~USER_NS
+		~UTS_NS
+		~VETH
+		~!GRKERNSEC_CHROOT_MOUNT
+		~!GRKERNSEC_CHROOT_DOUBLE
+		~!GRKERNSEC_CHROOT_PIVOT
+		~!GRKERNSEC_CHROOT_CHMOD
+		~!GRKERNSEC_CHROOT_CAPS"
+
+	kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+		~DEVPTS_MULTIPLE_INSTANCES"
+
+	use virt-network && CONFIG_CHECK+="
+		~BRIDGE_EBT_MARK_T
+		~BRIDGE_NF_EBTABLES
+		~NETFILTER_ADVANCED
+		~NETFILTER_XT_CONNMARK
+		~NETFILTER_XT_MARK
+		~NETFILTER_XT_TARGET_CHECKSUM
+		~IP_NF_FILTER
+		~IP_NF_MANGLE
+		~IP_NF_NAT
+		~IP_NF_TARGET_MASQUERADE
+		~IP6_NF_FILTER
+		~IP6_NF_MANGLE
+		~IP6_NF_NAT"
+	# Bandwidth Limiting Support
+	use virt-network && CONFIG_CHECK+="
+		~BRIDGE_EBT_T_NAT
+		~IP_NF_TARGET_REJECT
+		~NET_ACT_POLICE
+		~NET_CLS_FW
+		~NET_CLS_U32
+		~NET_SCH_HTB
+		~NET_SCH_INGRESS
+		~NET_SCH_SFQ"
+
+	ERROR_USER_NS="Optional depending on LXC configuration."
+
+	if [[ -n ${CONFIG_CHECK} ]]; then
+		linux-info_pkg_setup
+	fi
+
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	touch "${S}/.mailmap" || die
+
+	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' '')/" \
+		-i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+	local emesonargs=(
+		$(meson_feature apparmor)
+		$(meson_feature apparmor apparmor_profiles)
+		$(meson_feature audit)
+		$(meson_feature caps capng)
+		$(meson_feature dtrace)
+		$(meson_feature firewalld)
+		$(meson_feature fuse)
+		$(meson_feature glusterfs)
+		$(meson_feature glusterfs storage_gluster)
+		$(meson_feature iscsi storage_iscsi)
+		$(meson_feature iscsi-direct storage_iscsi_direct)
+		$(meson_feature libvirtd driver_libvirtd)
+		$(meson_feature libssh)
+		$(meson_feature lvm storage_lvm)
+		$(meson_feature lvm storage_mpath)
+		$(meson_feature lxc driver_lxc)
+		$(meson_feature nls)
+		$(meson_feature numa numactl)
+		$(meson_feature numa numad)
+		$(meson_feature openvz driver_openvz)
+		$(meson_feature parted storage_disk)
+		$(meson_feature pcap libpcap)
+		$(meson_feature policykit polkit)
+		$(meson_feature qemu driver_qemu)
+		$(meson_feature qemu yajl)
+		$(meson_feature rbd storage_rbd)
+		$(meson_feature sasl)
+		$(meson_feature selinux)
+		$(meson_feature udev)
+		$(meson_feature virt-network driver_network)
+		$(meson_feature virtualbox driver_vbox)
+		$(meson_feature wireshark-plugins wireshark_dissector)
+		$(meson_feature xen driver_libxl)
+		$(meson_feature zfs storage_zfs)
+
+		-Dnetcf=disabled
+		-Dsanlock=disabled
+
+		-Ddriver_esx=enabled
+		-Dinit_script=systemd
+		-Dqemu_user=$(usex caps qemu root)
+		-Dqemu_group=$(usex caps qemu root)
+		-Ddriver_remote=enabled
+		-Dstorage_fs=enabled
+		-Ddriver_vmware=enabled
+
+		--localstatedir="${EPREFIX}/var"
+		-Drunstatedir="${EPREFIX}/run"
+		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+	)
+
+	meson_src_configure
+}
+
+src_test() {
+	export VIR_TEST_DEBUG=1
+	# 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() {
+	meson_src_install
+
+	# Depending on configuration option, libvirt will create some bogus
+	# directoreis. They are either not used, or libvirtd is able to create
+	# them on demand, so let's remove them.
+	#
+	# Note, we are using -f here so that rm does not fail or warn if the
+	# directory is nonexistent.
+	rm -rf "${D}"/etc/sysconfig
+	rm -rf "${D}"/var
+	rm -rf "${D}"/run
+
+	use libvirtd || return 0
+	# From here, only libvirtd-related instructions, be warned!
+
+	newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+	newinitd "${S}/libvirtd.init" libvirtd
+	newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+	newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+	newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+	newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+	newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+	DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+	DISABLE_AUTOFORMATTING=true
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+		touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+	fi
+
+	use libvirtd || return 0
+	# From here, only libvirtd-related instructions, be warned!
+	tmpfiles_process libvirtd.conf
+	readme.gentoo_print_elog
+}

diff --git a/app-emulation/libvirt/libvirt-7.9.0.ebuild b/app-emulation/libvirt/libvirt-7.9.0.ebuild
new file mode 100644
index 000000000000..e20eaa25a6c2
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-7.9.0.ebuild
@@ -0,0 +1,336 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit meson bash-completion-r1 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}"
+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
+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
+"
+
+REQUIRED_USE="
+	firewalld? ( virt-network )
+	libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+	lxc? ( caps libvirtd )
+	openvz? ( libvirtd )
+	qemu? ( libvirtd )
+	virt-network? ( libvirtd )
+	virtualbox? ( libvirtd )
+	xen? ( libvirtd )"
+
+BDEPEND="
+	app-text/xhtml1
+	dev-lang/perl
+	dev-libs/libxslt
+	dev-perl/XML-XPath
+	dev-python/docutils
+	virtual/pkgconfig
+	bash-completion? ( >=app-shells/bash-completion-2.0 )
+	verify-sig? ( app-crypt/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
+RDEPEND="
+	acct-user/qemu
+	app-misc/scrub
+	>=dev-libs/glib-2.48.0
+	dev-libs/libgcrypt:0
+	dev-libs/libnl:3
+	>=dev-libs/libxml2-2.7.6
+	>=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-misc/curl-7.18.0
+	sys-apps/dbus
+	sys-apps/dmidecode
+	sys-devel/gettext
+	sys-libs/ncurses:0=
+	sys-libs/readline:=
+	virtual/acl
+	apparmor? ( sys-libs/libapparmor )
+	audit? ( sys-process/audit )
+	caps? ( sys-libs/libcap-ng )
+	dtrace? ( dev-util/systemtap )
+	firewalld? ( >=net-firewall/firewalld-0.6.3 )
+	fuse? ( sys-fs/fuse:0= )
+	glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+	iscsi? ( sys-block/open-iscsi )
+	iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+	libssh? ( net-libs/libssh )
+	lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+	lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+	nfs? ( net-fs/nfs-utils )
+	numa? (
+		>sys-process/numactl-2.0.2
+		sys-process/numad
+	)
+	parted? (
+		>=sys-block/parted-1.8[device-mapper]
+		sys-fs/lvm2[-device-mapper-only(-)]
+	)
+	pcap? ( >=net-libs/libpcap-1.0.0 )
+	policykit? (
+		acct-group/libvirt
+		>=sys-auth/polkit-0.9
+	)
+	qemu? (
+		>=app-emulation/qemu-2.11
+		dev-libs/yajl
+	)
+	rbd? ( sys-cluster/ceph )
+	sasl? ( dev-libs/cyrus-sasl )
+	selinux? ( >=sys-libs/libselinux-2.0.85 )
+	virt-network? (
+		net-dns/dnsmasq[dhcp,ipv6,script]
+		net-firewall/ebtables
+		>=net-firewall/iptables-1.4.10[ipv6]
+		net-misc/radvd
+		sys-apps/iproute2[-minimal]
+	)
+	wireshark-plugins? ( net-analyzer/wireshark:= )
+	xen? (
+		>=app-emulation/xen-4.9.0
+		app-emulation/xen-tools:=
+	)
+	udev? (
+		virtual/libudev
+		>=x11-libs/libpciaccess-0.10.9
+	)
+	zfs? ( sys-fs/zfs )"
+
+DEPEND="${BDEPEND}
+	${RDEPEND}
+	${PYTHON_DEPS}"
+
+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
+)
+
+pkg_setup() {
+	# Check kernel configuration:
+	CONFIG_CHECK=""
+	use fuse && CONFIG_CHECK+="
+		~FUSE_FS"
+
+	use lvm && CONFIG_CHECK+="
+		~BLK_DEV_DM
+		~DM_MULTIPATH
+		~DM_SNAPSHOT"
+
+	use lxc && CONFIG_CHECK+="
+		~BLK_CGROUP
+		~CGROUP_CPUACCT
+		~CGROUP_DEVICE
+		~CGROUP_FREEZER
+		~CGROUP_NET_PRIO
+		~CGROUP_PERF
+		~CGROUPS
+		~CGROUP_SCHED
+		~CPUSETS
+		~IPC_NS
+		~MACVLAN
+		~NAMESPACES
+		~NET_CLS_CGROUP
+		~NET_NS
+		~PID_NS
+		~POSIX_MQUEUE
+		~SECURITYFS
+		~USER_NS
+		~UTS_NS
+		~VETH
+		~!GRKERNSEC_CHROOT_MOUNT
+		~!GRKERNSEC_CHROOT_DOUBLE
+		~!GRKERNSEC_CHROOT_PIVOT
+		~!GRKERNSEC_CHROOT_CHMOD
+		~!GRKERNSEC_CHROOT_CAPS"
+
+	kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+		~DEVPTS_MULTIPLE_INSTANCES"
+
+	use virt-network && CONFIG_CHECK+="
+		~BRIDGE_EBT_MARK_T
+		~BRIDGE_NF_EBTABLES
+		~NETFILTER_ADVANCED
+		~NETFILTER_XT_CONNMARK
+		~NETFILTER_XT_MARK
+		~NETFILTER_XT_TARGET_CHECKSUM
+		~IP_NF_FILTER
+		~IP_NF_MANGLE
+		~IP_NF_NAT
+		~IP_NF_TARGET_MASQUERADE
+		~IP6_NF_FILTER
+		~IP6_NF_MANGLE
+		~IP6_NF_NAT"
+	# Bandwidth Limiting Support
+	use virt-network && CONFIG_CHECK+="
+		~BRIDGE_EBT_T_NAT
+		~IP_NF_TARGET_REJECT
+		~NET_ACT_POLICE
+		~NET_CLS_FW
+		~NET_CLS_U32
+		~NET_SCH_HTB
+		~NET_SCH_INGRESS
+		~NET_SCH_SFQ"
+
+	ERROR_USER_NS="Optional depending on LXC configuration."
+
+	if [[ -n ${CONFIG_CHECK} ]]; then
+		linux-info_pkg_setup
+	fi
+
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	touch "${S}/.mailmap" || die
+
+	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' '')/" \
+		-i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+	local emesonargs=(
+		$(meson_feature apparmor)
+		$(meson_feature apparmor apparmor_profiles)
+		$(meson_feature audit)
+		$(meson_feature caps capng)
+		$(meson_feature dtrace)
+		$(meson_feature firewalld)
+		$(meson_feature fuse)
+		$(meson_feature glusterfs)
+		$(meson_feature glusterfs storage_gluster)
+		$(meson_feature iscsi storage_iscsi)
+		$(meson_feature iscsi-direct storage_iscsi_direct)
+		$(meson_feature libvirtd driver_libvirtd)
+		$(meson_feature libssh)
+		$(meson_feature lvm storage_lvm)
+		$(meson_feature lvm storage_mpath)
+		$(meson_feature lxc driver_lxc)
+		$(meson_feature nls)
+		$(meson_feature numa numactl)
+		$(meson_feature numa numad)
+		$(meson_feature openvz driver_openvz)
+		$(meson_feature parted storage_disk)
+		$(meson_feature pcap libpcap)
+		$(meson_feature policykit polkit)
+		$(meson_feature qemu driver_qemu)
+		$(meson_feature qemu yajl)
+		$(meson_feature rbd storage_rbd)
+		$(meson_feature sasl)
+		$(meson_feature selinux)
+		$(meson_feature udev)
+		$(meson_feature virt-network driver_network)
+		$(meson_feature virtualbox driver_vbox)
+		$(meson_feature wireshark-plugins wireshark_dissector)
+		$(meson_feature xen driver_libxl)
+		$(meson_feature zfs storage_zfs)
+
+		-Dnetcf=disabled
+		-Dsanlock=disabled
+
+		-Ddriver_esx=enabled
+		-Dinit_script=systemd
+		-Dqemu_user=$(usex caps qemu root)
+		-Dqemu_group=$(usex caps qemu root)
+		-Ddriver_remote=enabled
+		-Dstorage_fs=enabled
+		-Ddriver_vmware=enabled
+
+		--localstatedir="${EPREFIX}/var"
+		-Drunstatedir="${EPREFIX}/run"
+		-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+	)
+
+	meson_src_configure
+}
+
+src_test() {
+	export VIR_TEST_DEBUG=1
+	# 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() {
+	meson_src_install
+
+	# Depending on configuration option, libvirt will create some bogus
+	# directoreis. They are either not used, or libvirtd is able to create
+	# them on demand, so let's remove them.
+	#
+	# Note, we are using -f here so that rm does not fail or warn if the
+	# directory is nonexistent.
+	rm -rf "${D}"/etc/sysconfig
+	rm -rf "${D}"/var
+	rm -rf "${D}"/run
+
+	use libvirtd || return 0
+	# From here, only libvirtd-related instructions, be warned!
+
+	newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+	newinitd "${S}/libvirtd.init" libvirtd
+	newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+	newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+	newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+	newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+	newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+	DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+	DISABLE_AUTOFORMATTING=true
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+		touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+	fi
+
+	use libvirtd || return 0
+	# From here, only libvirtd-related instructions, be warned!
+	tmpfiles_process libvirtd.conf
+	readme.gentoo_print_elog
+}