Skip to content

Commit

Permalink
app-emulation/libvirt: Version updated to 7.2.0, with changes:
Browse files Browse the repository at this point in the history
* Dropped 6.7.0-doc-path.patch - use meson docdir option instead.

Signed-off-by: Jonathan Davies <[email protected]>
Signed-off-by: Matthias Maier <[email protected]>
  • Loading branch information
jpds authored and tamiko committed Apr 4, 2021
1 parent 56cc47f commit b618327
Show file tree
Hide file tree
Showing 2 changed files with 336 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app-emulation/libvirt/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ 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.2.0.tar.xz 8661052 BLAKE2B eae6b4e7422690dd780e1647e2a39dfdff0562f3e63bce9ca5ee34540dec3755269efaad459d1b516b56fdeb1503cc966ffa60378aaa18210b972b739716fe34 SHA512 f6bb26ca7cb5a8d342f1f39afd051ed76b71414e1b934557cf50784da17e4f2fb3301c2ace3b593fcdeb6a18ad559a007ad594111c2c348b9157d3a59d475928
DIST libvirt-7.2.0.tar.xz.asc 833 BLAKE2B c389d80ef4f7627230b88446ef77daab1bf34e49e20cfb5c5418500fdf388af23aeb2458551548cb732c868f87f35a5c28acff8c01faebe985a6953953a69149 SHA512 526955a9f9d294635e63a4ed20c3e478fb4b5f3a63150a59ff30d84ad16a286ddb4c6508d0317c56df63a0d22a099085697df344fe2b15bce07acf9f05cda331
334 changes: 334 additions & 0 deletions app-emulation/libvirt/libvirt-7.2.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,334 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

PYTHON_COMPAT=( python3_{7,8,9} )

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"
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=/usr/share/openpgp-keys/libvirt.org.asc
IUSE="
apparmor audit +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
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-1.5.0
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.6.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 .

# 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_use 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
meson_src_test
}

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

# Fix up doc paths for revisions
if [[ $PV != $PVR ]]; then
mv "${D}"/usr/share/doc/${PN}-${PV}/* "${D}"/usr/share/doc/${PF} || die
rmdir "${D}"/usr/share/doc/${PN}-${PV} || die
fi

newbashcomp "${S}/tools/bash-completion/vsh" virsh
bashcomp_alias virsh virt-admin

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!

readme.gentoo_print_elog
}

0 comments on commit b618327

Please sign in to comment.