Adding python3.10, podman
This commit is contained in:
3
app-emulation/conmon/Manifest
Normal file
3
app-emulation/conmon/Manifest
Normal file
@ -0,0 +1,3 @@
|
||||
DIST conmon-2.0.24.tar.gz 104680 BLAKE2B c2ca7197e6ba15eac948b292b34b8d6c4ebb4471c019ff5925f20c65f885c89093b8e6cc88a39acfac2950dbb9f4f1261aba365c86adc62450d887e77bda0317 SHA512 96e86ead995a4c18044ab1434e256126a2c58b4a1ce57ebf469b185571509ab9a5f01c25b379441d6a0e210743a63c72c5f7b1a8552289f4e720f76b2956723b
|
||||
EBUILD conmon-2.0.24.ebuild 950 BLAKE2B e3fa274988abe852ae7d1a08ee63c041dd1966d09bbb6f70f3b933a01f151593eec1136baf7a0f3753a2a45402cfbf680e56a9b1a3cea821fbd74958616472e6 SHA512 aa7e8a7441a29068a8ab97a681c927031b94caa111e01b34f2005e7e63c8ec40cea8a51fa8e074300b518900896a4ca554acbe2b964633fb7df8dc1a62d1b1ed
|
||||
MISC metadata.xml 326 BLAKE2B 88e40bbfd92c360f7ed559dc1f3ebe8d35a4905c413de8208a72e255e531d32f61dea3ad710b3a2743df01b29f3f5426440beff3ffcd59139d6f5ce118c17557 SHA512 0709bf7dd7300225974bbf974a3c90c27a368ae6862e080c95f0fb30f314b94c0502258773649fe2cdeba22ad9f5c0d29d000f95e8f7d961e9cdfbea108b4775
|
43
app-emulation/conmon/conmon-2.0.24.ebuild
Normal file
43
app-emulation/conmon/conmon-2.0.24.ebuild
Normal file
@ -0,0 +1,43 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
KEYWORDS="~amd64"
|
||||
DESCRIPTION="An OCI container runtime monitor"
|
||||
HOMEPAGE="https://github.com/containers/conmon"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="systemd crio +podman"
|
||||
EGIT_COMMIT="59952292a3b07ac125575024ae21956efe0ecdfb"
|
||||
SRC_URI="${HOMEPAGE}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
RDEPEND="dev-libs/glib:=
|
||||
systemd? ( sys-apps/systemd:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if ! use systemd; then
|
||||
sed -e 's| pkg-config --exists libsystemd-journal | false |' \
|
||||
-e 's| pkg-config --exists libsystemd | false |' \
|
||||
-i Makefile || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
make
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/conmon
|
||||
if use podman; then
|
||||
dodir /usr/libexec/podman
|
||||
ln /usr/bin/conmon /usr/libexec/podman/conmon
|
||||
fi
|
||||
if use crio; then
|
||||
dodir /usr/libexec/crio
|
||||
ln /usr/bin/conmon /usr/libexec/crio/conmon
|
||||
fi
|
||||
dodoc README.md
|
||||
}
|
11
app-emulation/conmon/metadata.xml
Normal file
11
app-emulation/conmon/metadata.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>zmedico@gentoo.org</email>
|
||||
<name>Zac Medico</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">containers/conmon</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
11
app-emulation/libvirt/Manifest
Normal file
11
app-emulation/libvirt/Manifest
Normal file
@ -0,0 +1,11 @@
|
||||
AUX README.gentoo-r3 1852 BLAKE2B f9525ddc3ab50958cb83dc9b9a64b29db526e7e9a7c06ac20224c0637f2425c96f0bdb5e484c744d0888cbb5a1dd518ab065e82655732fc8db5a2030d10f3346 SHA512 b56e41a895afdeee8ec690f9992ba2f0db285847337210a18102974558fa01a93c24ceaa1bab22390a0f0bbda0a5c837187098f2a7786afa86ac5b5c23614b0f
|
||||
AUX libvirt-guests.confd 2430 BLAKE2B 9d56477c9377e02503782e6d653579c6d149b292c43f37926f4646374e8aae05ca812b6a3a561811482861f8fe67dfdbe63851963326ddbbf2f4644c85411120 SHA512 78f419a89de7aabaad860903c24f1c070786fc1296d987e61dd537705b0e7f71a46c315888028f3826c3417e42861ca8471788be4ec5695e98427c5f18ae63fc
|
||||
AUX libvirt-guests.init-r4 5591 BLAKE2B e745692a7ea706c8367cdb7ee2114565770bda5be5675ba3a541555659d17875f7996ff7028bf415224d095b49b71205a3d77f420464d5579ccc189def5e434d SHA512 ec2bc46d72afa61513983b777e2d49da618a35a4687bc75674b3a49ababd4e2e387661010d342fee86c7a73d259644985a263a6c2976e29a436d88921bb040b0
|
||||
AUX libvirtd.confd-r5 740 BLAKE2B 74a069f4902dd1352f06029c886200615a35870ff88496c91956d23a3172db0789086622422f545498e92b7f8de41225022185fe291dd580cbacdeb783163f4b SHA512 98f935589dbc5f2a99329f77fdf84c563fa0dc99404b7476603679478d68ce8dbea2c88645251d3c28f59e7bcae124ae632972146e8a8c3e0e9fcbfb27296f91
|
||||
AUX libvirtd.init-r19 1114 BLAKE2B a69f5a07e0b946a3167ac4509611d08a8b848e7337677cce36f0eff8e2f646fb03d92279eb3c4427b25649210c8acf280cb9877e0c5c363f1f358b211b208d9d SHA512 6192888e5dbf384cfecab2c1e55fb9a2ceba83390aa71cd8c0be0526a7cc3f9c2a9d7a71d4fe6bbb528871e8e7bc5c73e385ef56eec2366bcc75eb361e7d1894
|
||||
AUX libvirtd.tmpfiles.conf 36 BLAKE2B fa0e1dac4117dcb2a2e826c82c4c63e20156db47abf4088167484f1f3149a4998840cf1aba745621851d7e2653df5c7f7268d8d61be3a3731ea053a88f35c13b SHA512 2b1c3c64dd6fa03d8c2ae24e7ce4aa7d754913214542a68a4e99f10fbc251fd23ee26e297a957d7b4b70eec8ef028c41fc915da3a85fbbd16143bb92d1de3aed
|
||||
AUX virtlockd.init-r2 573 BLAKE2B 83bbd228bd59fa29f1d974bc5eec8af0b701328a0a64bbb9e2d9cb918d5d0b3c0d5e791afa18f47ffa2c429082083912fda3f2401c3c5b3d8d85ea8b7cacf440 SHA512 11bf7208e8da8cf7b907049100d095f4d6b5d215a0955fa620e50d6d541d3ecd9d779a7903c64feb25d17545c45491d52441e14a04f2c793f3b03dee7784c482
|
||||
AUX virtlogd.init-r2 572 BLAKE2B e6a86e34eda78fc032df17e1bd94095e357770f4036e19fff895266b58df7e31774f6004fec56fad9e69bf7d1afa5d898bdebe018013877f8844d05b3a46d509 SHA512 d5d83edee8a4bdf0dac79abc129ff7ec11573aa580e32963d7c7d47133e276a4427d8653683fc8b0a6c1c2aba631e5875c73454d6fef3bcac6dcaca542e69f34
|
||||
DIST libvirt-7.5.0.tar.xz 8642788 BLAKE2B 467dbd2a337beee5d9f10de7bc37ca988e85fad17fb75e6ab73c13cf79eceab27c9ff51bbe2ac9f6c121feed4c67860fa263e601e10f6b1dd7b8a647b53228a7 SHA512 cf89800c8970b8b1373ee32cc49ea88b87e76b50fd134df5da354be83e0ef490e514f16425c1c16eb3989fbadd3ba7d9976972fbbae6cb40db3d2ae94863219d
|
||||
EBUILD libvirt-7.5.0.ebuild 8485 BLAKE2B 8c2c01de8d2ec29e2b26405eaec89f4ddbaf6816791f900854bbed93758804c64ae567d5a5c1d74d38af79f8603bace73864c416abf02d73b2982c5831b2e5af SHA512 c91e53751493902a5be3b676c157af45cf21241a768dbba90d27a6a5d812039a6d40ea3586e20f31f9402b194891043aeb952a714d44b3bac385169a0d41d73d
|
||||
MISC autogen.py 941 BLAKE2B e13858a41641f4519794781be66a19264f82788bf9c61246190ff2a5e52280c1b807bd6fed40492e90c6e961c76d87138701b699b7981863e094cb5397d1612b SHA512 fd24384f02535a23b5d61ca9a44d634209bb292b49345610718fd77d2cd659fbaa74b1f7edfa224d6aafecf70e38961a5fd2bfd03babe3b6581d3b8c720c811f
|
36
app-emulation/libvirt/autogen.py
Normal file
36
app-emulation/libvirt/autogen.py
Normal file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
|
||||
|
||||
async def generate(hub, **pkginfo):
|
||||
|
||||
json_data = await hub.pkgtools.fetch.get_page("https://gitlab.com/api/v4/projects/192693/repository/tags")
|
||||
json_list = json.loads(json_data)
|
||||
for tag in json_list:
|
||||
v = tag["name"].lstrip("v")
|
||||
if "-rc" in v:
|
||||
continue
|
||||
version = v
|
||||
break
|
||||
url = f"https://libvirt.org/sources/libvirt-{version}.tar.xz"
|
||||
urlpy = f"https://libvirt.org/sources/python/libvirt-python-{version}.tar.gz"
|
||||
python_compat = "python3+"
|
||||
|
||||
ebuild = hub.pkgtools.ebuild.BreezyBuild(
|
||||
**pkginfo, version=version, python_compat=python_compat, artifacts=[hub.pkgtools.ebuild.Artifact(url=url)]
|
||||
)
|
||||
ebuild.push()
|
||||
|
||||
ebuildpy = hub.pkgtools.ebuild.BreezyBuild(
|
||||
template_path=ebuild.template_path,
|
||||
cat="dev-python",
|
||||
name="libvirt-python",
|
||||
python_compat=python_compat,
|
||||
version=version,
|
||||
artifacts=[hub.pkgtools.ebuild.Artifact(url=urlpy)],
|
||||
)
|
||||
ebuildpy.push()
|
||||
|
||||
|
||||
# vim: ts=4 sw=4 noet
|
49
app-emulation/libvirt/files/README.gentoo-r3
Normal file
49
app-emulation/libvirt/files/README.gentoo-r3
Normal file
@ -0,0 +1,49 @@
|
||||
Important: The openrc libvirtd init script is now broken up into two
|
||||
separate services: libvirtd, that solely handles the daemon, and
|
||||
libvirt-guests, that takes care of clients during shutdown/restart of the
|
||||
host. In order to reenable client handling, edit /etc/conf.d/libvirt-guests
|
||||
and enable the service and start it:
|
||||
|
||||
$ rc-update add libvirt-guests
|
||||
$ service libvirt-guests start
|
||||
|
||||
|
||||
For the basic networking support (bridged and routed networks) you don't
|
||||
need any extra software. For more complex network modes including but not
|
||||
limited to NATed network, you can enable the 'virt-network' USE flag. It
|
||||
will pull in required runtime dependencies
|
||||
|
||||
|
||||
If you are using dnsmasq on your system, you will have to configure
|
||||
/etc/dnsmasq.conf to enable the following settings:
|
||||
|
||||
bind-interfaces
|
||||
interface or except-interface
|
||||
|
||||
Otherwise you might have issues with your existing DNS server.
|
||||
|
||||
|
||||
For openrc users:
|
||||
|
||||
Please use /etc/conf.d/libvirtd to control the '--listen' parameter for
|
||||
libvirtd.
|
||||
|
||||
Use /etc/init.d/libvirt-guests to manage clients on restart/shutdown of
|
||||
the host. The default configuration will suspend and resume running kvm
|
||||
guests with 'managedsave'. This behavior can be changed under
|
||||
/etc/conf.d/libvirt-guests
|
||||
|
||||
|
||||
If you have built libvirt with policykit support, a new group "libvirt" has
|
||||
been created. Simply add a user to the libvirt group in order to grant
|
||||
administrative access to libvirtd. Alternatively, drop a custom policykit
|
||||
rule into /etc/polkit-1/rules.d.
|
||||
|
||||
If you have built libvirt without policykit support (USE=-policykit), you
|
||||
must change the unix sock group and/or perms in /etc/libvirt/libvirtd.conf
|
||||
in order to allow normal users to connect to libvirtd.
|
||||
|
||||
|
||||
If libvirt is built with USE=caps, libvirt will now start qemu/kvm VMs
|
||||
with non-root privileges. Ensure any resources your VMs use are accessible
|
||||
by qemu:qemu.
|
68
app-emulation/libvirt/files/libvirt-guests.confd
Normal file
68
app-emulation/libvirt/files/libvirt-guests.confd
Normal file
@ -0,0 +1,68 @@
|
||||
# /etc/conf.d/libvirtd
|
||||
|
||||
# LIBVIRT_URIS
|
||||
# space separated list of libvirt URIs to communicate with to start/stop guests
|
||||
# Valid values are anything that can be passed to 'virsh connect'
|
||||
|
||||
#LIBVIRT_URIS="qemu:///system"
|
||||
|
||||
|
||||
# LIBVIRT_SHUTDOWN
|
||||
# Valid options:
|
||||
# * managedsave - Performs a state save external to the VM (for hypervisors
|
||||
# supporting this operation). qemu-kvm will stop the CPU
|
||||
# and save off all state to a separate file. When the
|
||||
# machine is started again, it will resume like nothing
|
||||
# ever happened. This is guarenteed to always successfully
|
||||
# stop your machine and restart it.
|
||||
#
|
||||
# * shutdown - Sends an ACPI shutdown (think of this as a request to
|
||||
# your guest to shutdown). There is no way to distinguish
|
||||
# between guests that are ignoring the shutdown request or
|
||||
# are stuck or are taking a long time to shutdown. We will
|
||||
# wait LIBVIRT_MAXWAIT seconds before yanking the power
|
||||
# out.
|
||||
#
|
||||
# * destroy - Immediately stop all running guests. Use with caution as
|
||||
# this can leave the guest in a corrupted state and might
|
||||
# lead to data loss.
|
||||
#
|
||||
|
||||
#LIBVIRT_SHUTDOWN="managedsave"
|
||||
|
||||
|
||||
# LIBVIRT_MAXWAIT
|
||||
# Timeout in seconds until stopping a guest and "pulling the plug" on the
|
||||
# guest
|
||||
# Valid values are any integer over 0
|
||||
|
||||
#LIBVIRT_MAXWAIT="500"
|
||||
|
||||
|
||||
# LIBVIRT_START
|
||||
# If this value is set to 'no', then guests and networks that were shutdown
|
||||
# by this script when it was stopped will not be started when it is started
|
||||
# back up.
|
||||
# Valid values are yes or no
|
||||
|
||||
#LIBVIRT_START="yes"
|
||||
|
||||
|
||||
# LIBVIRT_IGNORE_AUTOSTART
|
||||
# If the VM is marked for autostart in its XML configuration then we won't
|
||||
# save its start when the init script is stopped. The result is that when
|
||||
# the init script starts back up, no attempt will be made to start the VM or
|
||||
# confirm it is started.
|
||||
# Valid values are yes or no
|
||||
|
||||
#LIBVIRT_IGNORE_AUTOSTART="no"
|
||||
|
||||
|
||||
# LIBVIRT_NET_SHUTDOWN
|
||||
# If libvirtd created networks for you (e.g. NATed networks) then this init
|
||||
# script will shut them down for you if this is set to 'yes'. Otherwise,
|
||||
# the networks will be left running. For this option to be useful you must
|
||||
# have enabled the 'virt-network' USE flag and have had libvirt create a
|
||||
# NATed network for you. Valid values: 'yes' or 'no'
|
||||
|
||||
#LIBVIRT_NET_SHUTDOWN="yes"
|
237
app-emulation/libvirt/files/libvirt-guests.init-r4
Normal file
237
app-emulation/libvirt/files/libvirt-guests.init-r4
Normal file
@ -0,0 +1,237 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
description="Virtual Machine Management (libvirt) Guests"
|
||||
|
||||
depend() {
|
||||
use libvirtd
|
||||
}
|
||||
|
||||
# set the default to QEMU
|
||||
[ -z "${LIBVIRT_URIS}" ] && LIBVIRT_URIS="qemu:///system"
|
||||
|
||||
# default to suspending the VM via managedsave
|
||||
case "${LIBVIRT_SHUTDOWN}" in
|
||||
managedsave|shutdown|destroy) ;;
|
||||
*) LIBVIRT_SHUTDOWN="managedsave" ;;
|
||||
esac
|
||||
|
||||
# default to 500 seconds
|
||||
[ -z ${LIBVIRT_MAXWAIT} ] && LIBVIRT_MAXWAIT=500
|
||||
|
||||
gueststatefile="/var/lib/libvirt/libvirt-guests.state"
|
||||
netstatefile="/var/lib/libvirt/libvirt-net.state"
|
||||
|
||||
do_virsh() {
|
||||
local hvuri=$1
|
||||
shift
|
||||
|
||||
# if unset, default to qemu
|
||||
[ -z ${hvuri} ] && hvuri="qemu:///system"
|
||||
# if only qemu was supplied then correct the value
|
||||
[ "xqemu" = x${hvuri} ] && hvuri="qemu:///system"
|
||||
|
||||
# Silence errors because virsh always throws an error about
|
||||
# not finding the hypervisor version when connecting to libvirtd
|
||||
# lastly strip the blank line at the end
|
||||
LC_ALL=C virsh -c ${hvuri} "$@" 2>/dev/null | head -n -1
|
||||
}
|
||||
|
||||
libvirtd_dom_list() {
|
||||
# Only work with domains by their UUIDs
|
||||
local hvuri=$1
|
||||
shift
|
||||
|
||||
# The grep is to remove dom0 for xen domains. Otherwise we never hit 0
|
||||
do_virsh "${hvuri}" list --uuid $@ | grep -v 00000000-0000-0000-0000-000000000000
|
||||
}
|
||||
|
||||
libvirtd_dom_count() {
|
||||
local hvuri=$1
|
||||
shift
|
||||
|
||||
libvirtd_dom_list "${hvuri}" $@ | wc -l
|
||||
}
|
||||
|
||||
libvirtd_net_list() {
|
||||
# Only work with networks by their UUIDs
|
||||
local hvuri=$1
|
||||
shift
|
||||
|
||||
do_virsh "${hvuri}" net-list --uuid $@
|
||||
}
|
||||
|
||||
libvirtd_net_count() {
|
||||
local hvuri=$1
|
||||
shift
|
||||
|
||||
libvirtd_net_list "${hvuri}" $@ | wc -l
|
||||
}
|
||||
|
||||
libvirtd_dom_stop() {
|
||||
# stops all persistent or transient domains for a given URI
|
||||
# $1 - uri
|
||||
# $2 - persisent/transient
|
||||
|
||||
local uri=$1
|
||||
local persist=$2
|
||||
local shutdown_type=${LIBVIRT_SHUTDOWN}
|
||||
local counter=${LIBVIRT_MAXWAIT}
|
||||
local dom_name=
|
||||
local dom_as=
|
||||
local dom_ids=
|
||||
local uuid=
|
||||
local dom_count=
|
||||
|
||||
[ "${persist}" = "--transient" ] && shutdown_type="shutdown"
|
||||
[ -n "${counter}" ] || counter=500
|
||||
|
||||
einfo " Shutting down domain(s) ..."
|
||||
|
||||
# grab all persistent or transient domains running
|
||||
dom_ids=$(libvirtd_dom_list ${uri} ${persist})
|
||||
|
||||
for uuid in ${dom_ids}; do
|
||||
# Get the name
|
||||
dom_name=$(do_virsh ${uri} domname ${uuid})
|
||||
einfo " ${dom_name}"
|
||||
# Get autostart state
|
||||
dom_as=$(do_virsh ${uri} dominfo ${uuid} | \
|
||||
awk '$1 == "Autostart:" { print $2 }')
|
||||
|
||||
if [ "${persist}" = "--persistent" ]; then
|
||||
# Save our running state only if LIBVIRT_IGNORE_AUTOSTART != yes
|
||||
if [ "x${LIBVIRT_IGNORE_AUTOSTART}" = "xyes" ] && \
|
||||
[ ${dom_as} = "enabled" ]; then
|
||||
:
|
||||
else
|
||||
echo "${uri} ${uuid}" >> ${gueststatefile}
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Now let's stop it
|
||||
do_virsh "${uri}" ${shutdown_type} ${uuid} > /dev/null
|
||||
|
||||
done
|
||||
|
||||
dom_count="$(libvirtd_dom_count ${uri} ${persist})"
|
||||
while [ ${dom_count} -gt 0 ] && [ ${counter} -gt 0 ] ; do
|
||||
dom_count="$(libvirtd_dom_count ${uri} ${persist})"
|
||||
sleep 1
|
||||
if [ "${shutdown_type}" = "shutdown" ]; then
|
||||
counter=$((${counter} - 1))
|
||||
fi
|
||||
printf "."
|
||||
done
|
||||
|
||||
if [ "${shutdown_type}" = "shutdown" ]; then
|
||||
# grab all domains still running
|
||||
dom_ids=$(libvirtd_dom_list ${uri} ${persist})
|
||||
for uuid in ${dom_ids}; do
|
||||
dom_name=$(do_virsh ${uri} domname ${uuid})
|
||||
eerror " ${dom_name} forcibly stopped"
|
||||
do_virsh "${uri}" destroy ${uuid} > /dev/null
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
libvirtd_net_stop() {
|
||||
# stops all persistent or transient domains for a given URI
|
||||
# $1 - uri
|
||||
# $2 - persisent/transient
|
||||
|
||||
local uri=$1
|
||||
local persist=$2
|
||||
local uuid=
|
||||
local net_name=
|
||||
|
||||
if [ "${LIBVIRT_NET_SHUTDOWN}" != "no" ]; then
|
||||
|
||||
einfo " Shutting down network(s):"
|
||||
for uuid in $(libvirtd_net_list ${uri} ${persist}); do
|
||||
net_name=$(do_virsh ${uri} net-name ${uuid})
|
||||
einfo " ${net_name}"
|
||||
|
||||
if [ "${persist}" = "--persistent" ]; then
|
||||
# Save our running state
|
||||
echo "${uri} ${uuid}" >> ${netstatefile}
|
||||
|
||||
fi
|
||||
|
||||
# Actually stop the network
|
||||
do_virsh qemu net-destroy ${uuid} > /dev/null
|
||||
done
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
local uri=
|
||||
local uuid=
|
||||
local name=
|
||||
|
||||
for uri in ${LIBVIRT_URIS}; do
|
||||
do_virsh "${uri}" connect
|
||||
if [ $? -ne 0 ]; then
|
||||
eerror "Failed to connect to '${uri}'. Domains may not start."
|
||||
fi
|
||||
done
|
||||
|
||||
[ ! -e "${netstatefile}" ] && touch "${netstatefile}"
|
||||
[ ! -e "${gueststatefile}" ] && touch "${gueststatefile}"
|
||||
|
||||
# if the user didn't want to start any guests up then respect their wish
|
||||
[ "x${LIBVIRT_START}" = "xno" ] && return 0
|
||||
|
||||
# start networks
|
||||
ebegin "Starting libvirt networks"
|
||||
while read -r uri uuid
|
||||
do
|
||||
# ignore trash
|
||||
[ -z "${uri}" ] || [ -z "${uuid}" ] && continue
|
||||
|
||||
name=$(do_virsh "${uri}" net-name ${uuid})
|
||||
einfo " ${name}"
|
||||
do_virsh "${uri}" net-start ${uuid} > /dev/null
|
||||
done <"${netstatefile}"
|
||||
eend 0
|
||||
|
||||
# start domains
|
||||
ebegin "Starting libvirt domains"
|
||||
while read -r uri uuid
|
||||
do
|
||||
# ignore trash
|
||||
[ -z "${uri}" ] || [ -z "${uuid}" ] && continue
|
||||
|
||||
name=$(do_virsh "${uri}" domname ${uuid})
|
||||
einfo " ${name}"
|
||||
do_virsh "${uri}" start ${uuid} > /dev/null
|
||||
do_virsh "${uri}" domtime --sync ${uuid} > /dev/null
|
||||
done <"${gueststatefile}"
|
||||
eend 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
local counter=
|
||||
local dom_name=
|
||||
local net_name=
|
||||
local dom_ids=
|
||||
local uuid=
|
||||
local dom_count=
|
||||
|
||||
rm -f "${gueststatefile}"
|
||||
[ $? -ne 0 ] && eerror "Unable to save domain state"
|
||||
rm -f "${netstatefile}"
|
||||
[ $? -ne 0 ] && eerror "Unable to save net state"
|
||||
|
||||
for uri in ${LIBVIRT_URIS}; do
|
||||
einfo "Stopping libvirt domains and networks for ${uri}"
|
||||
|
||||
libvirtd_dom_stop "${uri}" "--persistent"
|
||||
libvirtd_dom_stop "${uri}" "--transient"
|
||||
libvirtd_net_stop "${uri}" "--persistent"
|
||||
libvirtd_net_stop "${uri}" "--transient"
|
||||
|
||||
einfo "Done stopping domains and networks for ${uri}"
|
||||
done
|
||||
}
|
18
app-emulation/libvirt/files/libvirtd.confd-r5
Normal file
18
app-emulation/libvirt/files/libvirtd.confd-r5
Normal file
@ -0,0 +1,18 @@
|
||||
# /etc/conf.d/libvirtd
|
||||
|
||||
# Startup dependency
|
||||
# libvirtd typically requires all networks to be up and settled which
|
||||
# is what rc_need="net" provides. However if you only use specific networks
|
||||
# for libvirtd, you may override this. Or if you only use libvirtd locally.
|
||||
rc_need="net"
|
||||
|
||||
# The termination timeout (start-stop-daemon parameter "retry") ensures
|
||||
# that the service will be terminated within a given time (25 + 5 seconds
|
||||
# per default) when you are stopping the service.
|
||||
#LIBVIRTD_TERMTIMEOUT="TERM/25/KILL/5"
|
||||
|
||||
# LIBVIRTD_OPTS
|
||||
# You may want to add '--listen' to have libvirtd listen for tcp/ip connections
|
||||
# if you want to use libvirt for remote control
|
||||
# Please consult 'libvirtd --help' for more options
|
||||
#LIBVIRTD_OPTS="--listen"
|
33
app-emulation/libvirt/files/libvirtd.init-r19
Normal file
33
app-emulation/libvirt/files/libvirtd.init-r19
Normal file
@ -0,0 +1,33 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
description="Virtual Machine Management daemon (libvirt)"
|
||||
|
||||
LIBVIRTD_OPTS=${LIBVIRTD_OPTS:-"${LIBVIRTD_OPTS}"}
|
||||
LIBVIRTD_TIMEOUT=${LIBVIRTD_TERMTIMEOUT:-"TERM/25/KILL/5"}
|
||||
|
||||
command="/usr/sbin/libvirtd"
|
||||
command_args="${LIBVIRTD_OPTS}"
|
||||
start_stop_daemon_args="-b --env KRB5_KTNAME=/etc/libvirt/krb5.tab"
|
||||
pidfile="/run/libvirtd.pid"
|
||||
retry="${LIBVIRTD_TERMTIMEOUT}"
|
||||
|
||||
depend() {
|
||||
need virtlogd
|
||||
use ceph dbus iscsid virtlockd
|
||||
after cgconfig corosync ebtables iptables ip6tables nfs nfsmount ntp-client ntpdportmap rpc.statd sanlock xenconsoled
|
||||
USE_FLAG_FIREWALLD
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
# Test configuration directories in /etc/libvirt/ to be either not
|
||||
# present or a directory, i.e. not a regular file, bug #532892
|
||||
|
||||
checkpath --directory /etc/libvirt/lxc || return 1
|
||||
checkpath --directory /etc/libvirt/nwfilter || return 1
|
||||
[ -L /etc/libvirt/qemu ] ||
|
||||
checkpath --directory /etc/libvirt/qemu || return 1
|
||||
[ -L /etc/libvirt/storage ] ||
|
||||
checkpath --directory /etc/libvirt/storage || return 1
|
||||
}
|
1
app-emulation/libvirt/files/libvirtd.tmpfiles.conf
Normal file
1
app-emulation/libvirt/files/libvirtd.tmpfiles.conf
Normal file
@ -0,0 +1 @@
|
||||
d /run/libvirt/lxc 0755 root root -
|
23
app-emulation/libvirt/files/virtlockd.init-r2
Normal file
23
app-emulation/libvirt/files/virtlockd.init-r2
Normal file
@ -0,0 +1,23 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
description="libvirt virtual machine lock manager"
|
||||
command="/usr/sbin/virtlockd"
|
||||
start_stop_daemon_args="-b"
|
||||
pidfile="/run/virtlockd.pid"
|
||||
|
||||
extra_started_commands="reload"
|
||||
description_reload="re-exec the daemon, while maintaining locks and clients"
|
||||
|
||||
|
||||
depend() {
|
||||
after ntp-client ntpd nfs nfsmount corosync
|
||||
}
|
||||
|
||||
reload() {
|
||||
ebegin "re-exec() virtlockd"
|
||||
|
||||
start-stop-daemon --signal SIGUSR1 \
|
||||
--exec "${command}" --pidfile "${pidfile}"
|
||||
}
|
23
app-emulation/libvirt/files/virtlogd.init-r2
Normal file
23
app-emulation/libvirt/files/virtlogd.init-r2
Normal file
@ -0,0 +1,23 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
description="libvirt virtual machine logging manager"
|
||||
command="/usr/sbin/virtlogd"
|
||||
start_stop_daemon_args="-b"
|
||||
pidfile="/run/virtlogd.pid"
|
||||
|
||||
extra_started_commands="reload"
|
||||
description_reload="re-exec the daemon, while maintaining open connections"
|
||||
|
||||
|
||||
depend() {
|
||||
after ntp-client ntpd nfs nfsmount corosync
|
||||
}
|
||||
|
||||
reload() {
|
||||
ebegin "re-exec() virtlogd"
|
||||
|
||||
start-stop-daemon --signal SIGUSR1 \
|
||||
--exec "${command}" --pidfile "${pidfile}"
|
||||
}
|
333
app-emulation/libvirt/libvirt-7.5.0.ebuild
Normal file
333
app-emulation/libvirt/libvirt-7.5.0.ebuild
Normal file
@ -0,0 +1,333 @@
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3+ )
|
||||
|
||||
inherit bash-completion-r1 linux-info meson python-any-r1 readme.gentoo-r1 user
|
||||
|
||||
SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
|
||||
|
||||
DESCRIPTION="C toolkit to manipulate virtual machines"
|
||||
HOMEPAGE="https://www.libvirt.org/"
|
||||
SRC_URI="https://libvirt.org/sources/libvirt-7.5.0.tar.xz"
|
||||
|
||||
SLOT="0/${PV}"
|
||||
LICENSE="LGPL-2.1"
|
||||
KEYWORDS="*"
|
||||
IUSE="
|
||||
apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
|
||||
iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
|
||||
parted pcap policykit +qemu rbd sasl selinux +udev +vepa
|
||||
virtualbox virt-network wireshark-plugins xen zfs
|
||||
"
|
||||
|
||||
REQUIRED_USE="
|
||||
firewalld? ( virt-network )
|
||||
libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
|
||||
lxc? ( caps libvirtd )
|
||||
openvz? ( libvirtd )
|
||||
policykit? ( dbus )
|
||||
qemu? ( libvirtd )
|
||||
vepa? ( macvtap )
|
||||
virt-network? ( libvirtd )
|
||||
virtualbox? ( libvirtd )
|
||||
xen? ( libvirtd )"
|
||||
|
||||
# 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
|
||||
MESON_DEPEND=">=dev-util/meson-0.54.0"
|
||||
RDEPEND="
|
||||
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/dmidecode
|
||||
>=sys-apps/util-linux-2.17
|
||||
sys-devel/gettext
|
||||
sys-libs/ncurses:0=
|
||||
sys-libs/readline:=
|
||||
apparmor? ( sys-libs/libapparmor )
|
||||
audit? ( sys-process/audit )
|
||||
caps? ( sys-libs/libcap-ng )
|
||||
dbus? ( sys-apps/dbus )
|
||||
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(-)] )
|
||||
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? ( >=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[script]
|
||||
net-firewall/ebtables
|
||||
>=net-firewall/iptables-1.4.10[ipv6]
|
||||
net-misc/radvd
|
||||
sys-apps/iproute2[-minimal]
|
||||
)
|
||||
virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
|
||||
wireshark-plugins? ( net-analyzer/wireshark:= )
|
||||
xen? (
|
||||
>=app-emulation/xen-4.6.0
|
||||
app-emulation/xen-tools:=
|
||||
)
|
||||
udev? (
|
||||
virtual/udev
|
||||
>=x11-libs/libpciaccess-0.10.9
|
||||
)
|
||||
zfs? ( sys-fs/zfs )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-text/xhtml1
|
||||
dev-lang/perl
|
||||
dev-libs/libxslt
|
||||
dev-perl/XML-XPath
|
||||
dev-python/docutils
|
||||
virtual/pkgconfig"
|
||||
|
||||
pkg_setup() {
|
||||
if use qemu; then
|
||||
enewgroup qemu 77
|
||||
enewuser qemu 77 -1 -1 "qemu,kvm"
|
||||
fi
|
||||
|
||||
use policykit && enewgroup libvirt
|
||||
|
||||
# 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 macvtap && CONFIG_CHECK+="
|
||||
~MACVTAP"
|
||||
|
||||
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"
|
||||
|
||||
# Handle specific kernel versions for different features
|
||||
kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR"
|
||||
if kernel_is ge 3 6; then
|
||||
CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP "
|
||||
kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM "
|
||||
fi
|
||||
|
||||
ERROR_USER_NS="Optional depending on LXC configuration."
|
||||
|
||||
if [[ -n ${CONFIG_CHECK} ]]; then
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
touch "${S}/.mailmap"
|
||||
|
||||
default
|
||||
|
||||
# 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"
|
||||
|
||||
#Replacing recurrent patches with sed scripts
|
||||
mv src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in src/security/apparmor/usr.libexec.virt-aa-helper.in
|
||||
for x in $(grep -rl usr.lib.libvirt.virt-aa-helper.in); do
|
||||
sed -e "s/usr.lib.libvirt.virt-aa-helper.in/usr.libexec.virt-aa-helper.in/g" -i $x
|
||||
done
|
||||
sed -e "s#/sysconfig/libvirt-guests#/sysconfig/libvirt-guests.conf#g" \
|
||||
-e "s#/lock/subsys/libvirt-guests#/lock/libvirt-guests#g" \
|
||||
-i tools/libvirt-guests.sh.in
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_feature apparmor)
|
||||
$(meson_use apparmor apparmor_profiles)
|
||||
$(meson_feature audit)
|
||||
$(meson_feature caps capng)
|
||||
$(meson_feature dbus)
|
||||
$(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 macvtap)
|
||||
$(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 vepa virtualport)
|
||||
$(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)
|
||||
|
||||
-Dhal=disabled
|
||||
-Dnetcf=disabled
|
||||
-Dsanlock=disabled
|
||||
|
||||
-Ddriver_esx=enabled
|
||||
-Dqemu_group=$(usex caps qemu root)
|
||||
-Dqemu_user=$(usex caps qemu root)
|
||||
-Ddriver_remote=enabled
|
||||
-Dstorage_fs=enabled
|
||||
-Ddriver_vmware=enabled
|
||||
|
||||
--localstatedir=/var
|
||||
-Drunstatedir=/run
|
||||
)
|
||||
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# remove problematic tests, bug #591416
|
||||
sed -i -e '/commandtest/d' tests/meson.build
|
||||
meson_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
|
||||
# Remove bogus, empty directories. They are either not used, or
|
||||
# libvirtd is able to create them on demand
|
||||
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!
|
||||
|
||||
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=disabled
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# we only ever want to generate this once
|
||||
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
|
||||
rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
|
||||
touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
|
||||
fi
|
||||
|
||||
use libvirtd || return 0
|
||||
# From here, only libvirtd-related instructions, be warned!
|
||||
|
||||
readme.gentoo_print_elog
|
||||
}
|
35
app-emulation/libvirt/templates/libvirt-python.tmpl
Normal file
35
app-emulation/libvirt/templates/libvirt-python.tmpl
Normal file
@ -0,0 +1,35 @@
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( {{python_compat}} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
|
||||
DESCRIPTION="libvirt Python bindings"
|
||||
HOMEPAGE="https://www.libvirt.org"
|
||||
SRC_URI="{{artifacts[0].src_uri}}"
|
||||
|
||||
LICENSE="LGPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="*"
|
||||
IUSE="examples test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="app-emulation/libvirt:0/${PV}"
|
||||
DEPEND="virtual/pkgconfig"
|
||||
BDEPEND="test? (
|
||||
dev-python/lxml[${PYTHON_USEDEP}]
|
||||
dev-python/nose[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
distutils_enable_tests setup.py
|
||||
|
||||
python_install_all() {
|
||||
if use examples; then
|
||||
dodoc -r examples
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
distutils-r1_python_install_all
|
||||
}
|
333
app-emulation/libvirt/templates/libvirt.tmpl
Normal file
333
app-emulation/libvirt/templates/libvirt.tmpl
Normal file
@ -0,0 +1,333 @@
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( {{python_compat}} )
|
||||
|
||||
inherit bash-completion-r1 linux-info meson python-any-r1 readme.gentoo-r1 user
|
||||
|
||||
SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
|
||||
|
||||
DESCRIPTION="C toolkit to manipulate virtual machines"
|
||||
HOMEPAGE="https://www.libvirt.org/"
|
||||
SRC_URI="{{artifacts[0].src_uri}}"
|
||||
|
||||
SLOT="0/${PV}"
|
||||
LICENSE="LGPL-2.1"
|
||||
KEYWORDS="*"
|
||||
IUSE="
|
||||
apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
|
||||
iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
|
||||
parted pcap policykit +qemu rbd sasl selinux +udev +vepa
|
||||
virtualbox virt-network wireshark-plugins xen zfs
|
||||
"
|
||||
|
||||
REQUIRED_USE="
|
||||
firewalld? ( virt-network )
|
||||
libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
|
||||
lxc? ( caps libvirtd )
|
||||
openvz? ( libvirtd )
|
||||
policykit? ( dbus )
|
||||
qemu? ( libvirtd )
|
||||
vepa? ( macvtap )
|
||||
virt-network? ( libvirtd )
|
||||
virtualbox? ( libvirtd )
|
||||
xen? ( libvirtd )"
|
||||
|
||||
# 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
|
||||
MESON_DEPEND=">=dev-util/meson-0.54.0"
|
||||
RDEPEND="
|
||||
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/dmidecode
|
||||
>=sys-apps/util-linux-2.17
|
||||
sys-devel/gettext
|
||||
sys-libs/ncurses:0=
|
||||
sys-libs/readline:=
|
||||
apparmor? ( sys-libs/libapparmor )
|
||||
audit? ( sys-process/audit )
|
||||
caps? ( sys-libs/libcap-ng )
|
||||
dbus? ( sys-apps/dbus )
|
||||
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(-)] )
|
||||
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? ( >=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[script]
|
||||
net-firewall/ebtables
|
||||
>=net-firewall/iptables-1.4.10[ipv6]
|
||||
net-misc/radvd
|
||||
sys-apps/iproute2[-minimal]
|
||||
)
|
||||
virtualbox? ( || ( app-emulation/virtualbox >=app-emulation/virtualbox-bin-2.2.0 ) )
|
||||
wireshark-plugins? ( net-analyzer/wireshark:= )
|
||||
xen? (
|
||||
>=app-emulation/xen-4.6.0
|
||||
app-emulation/xen-tools:=
|
||||
)
|
||||
udev? (
|
||||
virtual/udev
|
||||
>=x11-libs/libpciaccess-0.10.9
|
||||
)
|
||||
zfs? ( sys-fs/zfs )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-text/xhtml1
|
||||
dev-lang/perl
|
||||
dev-libs/libxslt
|
||||
dev-perl/XML-XPath
|
||||
dev-python/docutils
|
||||
virtual/pkgconfig"
|
||||
|
||||
pkg_setup() {
|
||||
if use qemu; then
|
||||
enewgroup qemu 77
|
||||
enewuser qemu 77 -1 -1 "qemu,kvm"
|
||||
fi
|
||||
|
||||
use policykit && enewgroup libvirt
|
||||
|
||||
# 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 macvtap && CONFIG_CHECK+="
|
||||
~MACVTAP"
|
||||
|
||||
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"
|
||||
|
||||
# Handle specific kernel versions for different features
|
||||
kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR"
|
||||
if kernel_is ge 3 6; then
|
||||
CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP "
|
||||
kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM "
|
||||
fi
|
||||
|
||||
ERROR_USER_NS="Optional depending on LXC configuration."
|
||||
|
||||
if [[ -n ${CONFIG_CHECK} ]]; then
|
||||
linux-info_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
touch "${S}/.mailmap"
|
||||
|
||||
default
|
||||
|
||||
# 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"
|
||||
|
||||
#Replacing recurrent patches with sed scripts
|
||||
mv src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in src/security/apparmor/usr.libexec.virt-aa-helper.in
|
||||
for x in $(grep -rl usr.lib.libvirt.virt-aa-helper.in); do
|
||||
sed -e "s/usr.lib.libvirt.virt-aa-helper.in/usr.libexec.virt-aa-helper.in/g" -i $x
|
||||
done
|
||||
sed -e "s#/sysconfig/libvirt-guests#/sysconfig/libvirt-guests.conf#g" \
|
||||
-e "s#/lock/subsys/libvirt-guests#/lock/libvirt-guests#g" \
|
||||
-i tools/libvirt-guests.sh.in
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_feature apparmor)
|
||||
$(meson_use apparmor apparmor_profiles)
|
||||
$(meson_feature audit)
|
||||
$(meson_feature caps capng)
|
||||
$(meson_feature dbus)
|
||||
$(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 macvtap)
|
||||
$(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 vepa virtualport)
|
||||
$(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)
|
||||
|
||||
-Dhal=disabled
|
||||
-Dnetcf=disabled
|
||||
-Dsanlock=disabled
|
||||
|
||||
-Ddriver_esx=enabled
|
||||
-Dqemu_group=$(usex caps qemu root)
|
||||
-Dqemu_user=$(usex caps qemu root)
|
||||
-Ddriver_remote=enabled
|
||||
-Dstorage_fs=enabled
|
||||
-Ddriver_vmware=enabled
|
||||
|
||||
--localstatedir=/var
|
||||
-Drunstatedir=/run
|
||||
)
|
||||
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# remove problematic tests, bug #591416
|
||||
sed -i -e '/commandtest/d' tests/meson.build
|
||||
meson_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
meson_src_install
|
||||
|
||||
# Remove bogus, empty directories. They are either not used, or
|
||||
# libvirtd is able to create them on demand
|
||||
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!
|
||||
|
||||
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_preinst() {
|
||||
# we only ever want to generate this once
|
||||
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
|
||||
rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
|
||||
touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml
|
||||
fi
|
||||
|
||||
use libvirtd || return 0
|
||||
# From here, only libvirtd-related instructions, be warned!
|
||||
|
||||
readme.gentoo_print_elog
|
||||
}
|
3
app-emulation/podman/Manifest
Normal file
3
app-emulation/podman/Manifest
Normal file
@ -0,0 +1,3 @@
|
||||
DIST podman-4.0.2.tar.gz 11377152 BLAKE2B ab022c3e7ef40685301f08b2d939e936b07e08231d5b86a84fefa6ea7a60c8f20a5e15b79788d862c263336204a9cd8d7206748b4530f2f42ccdd31df370747f SHA512 f3c42b3b3c75ca451b4c22c2d6f9f1b9ab9437b118b16e19f17f92f28b5849f8e3de4ebc97d8d249f565a61ba187214928c25a031204163a59174e94ce300a59
|
||||
EBUILD podman-4.0.2.ebuild 798 BLAKE2B 672b4653bbb5fdd7b2fea96a3ce9077548022ce34faa5e712974ac6054bb4d5e66d0ac5ec3a022b9f849d71696f4b4073c7d9406f66cfc630d82e064b822fd1c SHA512 6dde73643ebbb28125853413fdf6bce9a31b3526d70ac0f90e40b40dbe99ba1d7e89ac2433c60619f08fc66a9de704abbbeadf6a397fd6438dc0bc530665a9ae
|
||||
MISC metadata.xml 549 BLAKE2B 3abe771305fac3d044ccc50d495dcbe54c1023870dd3047e83cf750a658303fda48d4944202785f37fa1b40cb568acdb92872b5f97358d2025ccb3a87c91df15 SHA512 be3fbad66b2d519eb71fb8d2902eed883a40f087d3d4b48d908ea250b55f59865d3f6f2554189f8d7372cd0b4310fdfa37f1202e7f2e781f70299fed0dad2c96
|
16
app-emulation/podman/metadata.xml
Normal file
16
app-emulation/podman/metadata.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<longdescription lang="en">
|
||||
runc is a CLI tool for spawning and running containers according
|
||||
to the OCF (Open Container Format) specification.
|
||||
</longdescription>
|
||||
<!-- maintainer-needed -->
|
||||
<use>
|
||||
<flag name="ambient">Enable support for ambient capability</flag>
|
||||
<flag name="apparmor">Enable AppArmor support</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">docker/runc</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
45
app-emulation/podman/podman-4.0.2.ebuild
Normal file
45
app-emulation/podman/podman-4.0.2.ebuild
Normal file
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
SRC_URI="https://github.com/containers/podman/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="amd64 ~arm ~ppc64"
|
||||
|
||||
DESCRIPTION="A tool for managing OCI containers and pods"
|
||||
HOMEPAGE="https://podman.io"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE=""
|
||||
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
>=dev-lang/go-1.12
|
||||
dev-go/go-md2man
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
>=app-emulation/conmon-2.0.24
|
||||
app-emulation/containerd
|
||||
"
|
||||
|
||||
S=${WORKDIR}/${P}
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
# sed -i -e "s/git rev-parse.*\$/echo gentoo)/" -e "/COMMIT :=/d" -e "/COMMIT_NO :=/d" Makefile || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
PREFIX="/usr" make
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/podman
|
||||
dobin bin/podman-remote
|
||||
dobin bin/rootlessport
|
||||
}
|
||||
|
Reference in New Issue
Block a user