Added package app-emulation/libvirt.

This commit is contained in:
László Valkó 2023-04-09 22:51:45 +02:00
parent 56bde480dd
commit d2a7d61c22
15 changed files with 1293 additions and 0 deletions

View file

@ -0,0 +1,16 @@
AUX README.gentoo-r3 2065 BLAKE2B f3677b916121126c431ba32e324bcc9f04b4dfeef1ee54517cae1118c67274592d890d6d919a48af6709e9220379797549277904a02fea740a69b1bf8f2397aa SHA512 77ede8a3e1a380b334595e65ae148acd2e52d594200253dc67d68dd256db5bf72ce7ce222d067c739ce53f84634421e74726f30c0ab7a1c76b86ccdc191c8a69
AUX libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch 1281 BLAKE2B 631f813ad29db29a6eb537ecd7b9d12aed097c5e0e01c07161adac1dec8a6f129bc098172fe6de4e78a2fbe5e67052005a7c5d1d17cbbb63ad27025662b9fa34 SHA512 dc80c9fc459207dd1ff77548054ea5a51c41a2d36e1b8917eca5f69293a86168af3da47466d8ff954a8b2e0ead9f28ed7d6c2c3671cf67d0ebb4039003a0dde2
AUX libvirt-8.2.0-do-not-use-sysconfig.patch 8420 BLAKE2B 37856003bc58b69531be6b55fcc3304b71558b7a5306c2da3fbad2d5eac006ca3ebb54bd56f8e761363311a5c865d2cd072c418794fcb605562fc32f997c88a9 SHA512 84a693b870aebe0f87f518473d28d97e613b6069f497e6e49c3e8feffc96c2e709d0a7a3530c52d4d034c6b0bc7374ab61f40ddd2f071735c5baacdebcfca8b6
AUX libvirt-8.2.0-fix-paths-for-apparmor.patch 2785 BLAKE2B 2b1daa96385ce09a078e1c152b222b274fcde1803497de8709d7569debc1537e9ee4f65a1f775636521ba351310ad13806005e1c02fa00224551244a79ace109 SHA512 be537022563bcf782381cdb99188becf1785de950124626e5ea13219a870a1c6c13834f2cb3c9cf4c364a66b5a7647bfa856a4c5e634dfac6a591c8c93e5ce9f
AUX libvirt-9.2.0-meson-Stop-detecting-Wl-version-script.patch 1981 BLAKE2B 69625606757a2b77c9fe4f38b2921ae4f7fb3b929ff7a0a0b9b76b9af5b575264397ae2710398a58fe5af778ab71db3494e4ff597e4cd1595d93b078d002c2f4 SHA512 8e2186f3eecd6bcdf523d4be24a9961251118e4375a5f923009ad1ec83c2c1fd96147ecb540197f780a397d9ff67b35b1f16b5a5180dce1b0aeb7c7c5bfa9485
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 1124 BLAKE2B 0effd71cd3dfda0892c37e4d6d69f5d6d02320a3f0793d4cf5490ef74868f0bb00ff8fbfc0ab4be057f56e40284c3f25b5821b1f6a34d0eccb1676a6d299aac8 SHA512 ba9bfe2c71d9c203857b69b7f6a84bea4a45c055e6627af351eec71faaf1ab043594ce35c31d853429f8b865373bdb76484357a492dd6c0e73631943c52c0fc0
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-8.9.0.tar.xz 8946352 BLAKE2B 537b6badb6171110e99561613fb1318144991107139401296248afb747ae6f9cfafcd17b2292b8d8dcc9188ff4206035ea814efa6c129bae50c0518f61be9b81 SHA512 10426d45d55bb18e8e5d4327d698fbc6efd83c5f515ac40a0fcd72048a77936fe0b422ac14bce9966a65379d262df294c314f854a97861a223a0cbc6a8fd2382
DIST libvirt-8.9.0.tar.xz.asc 833 BLAKE2B a2054d0d9c8301aa0f8697253690b1ddd530a577bc789c7f38dc36a835134d0c8e5fc88536371c75da66afd9808540b9236e8d1247e4d7bd5f3a0aaf35c45f97 SHA512 087d5406ef23d6beee4a37e471d7d0aa433990b892f0beb7be76609fbdfcb69381acd59d63c62dcd2e2f9ccfcdefc35109cc175a0da4263e9b189981cb2baff1
EBUILD libvirt-8.9.0-r2.ebuild 9136 BLAKE2B 197b18ee1f588691bc0947f7783208adf726b442be95bddb80ed02e541b0d5b4ecec878f7c2a56019ecf55165a19bd7d2e0e0bb2e066887c441dd8ec57ed9eb5 SHA512 df61ed7e908741194f4aabb2eefd0be6c781787fcd0c962fcf34d939d7f72c51a77b7d4799763d86fdba64152e7988191971fc2952c6c1a9e89b7603e8eadfdd
MISC metadata.xml 3729 BLAKE2B 2e68676afb3820c7b8cd3d76b0a5c42886e246fc6b440ce49c71cbe60c124cdccd4ed8fb97f7153529b758d56dfba98b6a98a31b2fbff7e738f52bce796a3476 SHA512 0dfe519af8b740de9d41b1e2c40133026718a782b654a261c54cbe22b5f694cda8b73036c59411317757b73c40acaea77f70d7ab86ae8325e78d61151e6c64f1

View file

@ -0,0 +1,58 @@
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
$ rc-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
For systemd users:
The '--listen' parameter is unavailable when libvirtd is run as a
systemd unit.
The configuration for the 'libvirt-guests.service' is found under
/etc/libvirt/libvirt-guests.conf"
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.

View file

@ -0,0 +1,35 @@
From e97700d867ffa949c97f8a635a76b9ce510e806f Mon Sep 17 00:00:00 2001
Message-Id: <e97700d867ffa949c97f8a635a76b9ce510e806f.1580460243.git.mprivozn@redhat.com>
In-Reply-To: <5965f20fe0275b324c9b84ab7f48dd7db0494495.1580460243.git.mprivozn@redhat.com>
References: <5965f20fe0275b324c9b84ab7f48dd7db0494495.1580460243.git.mprivozn@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 31 Jan 2020 09:42:14 +0100
Subject: [PATCH 2/3] Fix paths in libvirt-guests.sh.in
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
tools/libvirt-guests.sh.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
index a881f6266e..79d38b3e9a 100644
--- a/tools/libvirt-guests.sh.in
+++ b/tools/libvirt-guests.sh.in
@@ -39,11 +39,11 @@ START_DELAY=0
BYPASS_CACHE=0
SYNC_TIME=0
-test -f "$sysconfdir"/sysconfig/libvirt-guests &&
- . "$sysconfdir"/sysconfig/libvirt-guests
+test -f "$sysconfdir"/libvirt/libvirt-guests.conf &&
+ . "$sysconfdir"/libvirt/libvirt-guests.conf
LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
-VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
+VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/libvirt-guests
RETVAL=0
--
2.24.1

View file

@ -0,0 +1,211 @@
From 10d65f10a76c7478c4ec0c65ffeec7f4b18929f9 Mon Sep 17 00:00:00 2001
Message-Id: <10d65f10a76c7478c4ec0c65ffeec7f4b18929f9.1646212419.git.mprivozn@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Wed, 2 Mar 2022 10:01:04 +0100
Subject: [PATCH] libvirt-8.2.0-do-not-use-sysconfig.patch
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/interface/virtinterfaced.service.in | 1 -
src/libxl/virtxend.service.in | 1 -
src/locking/virtlockd.service.in | 1 -
src/logging/virtlogd.service.in | 3 +--
src/lxc/virtlxcd.service.in | 1 -
src/network/virtnetworkd.service.in | 1 -
src/node_device/virtnodedevd.service.in | 1 -
src/nwfilter/virtnwfilterd.service.in | 1 -
src/qemu/virtqemud.service.in | 1 -
src/remote/libvirtd.service.in | 1 -
src/remote/virtproxyd.service.in | 1 -
src/secret/virtsecretd.service.in | 1 -
src/storage/virtstoraged.service.in | 1 -
src/vbox/virtvboxd.service.in | 1 -
tools/libvirt-guests.service.in | 2 +-
15 files changed, 2 insertions(+), 16 deletions(-)
diff --git a/src/interface/virtinterfaced.service.in b/src/interface/virtinterfaced.service.in
index cb860ff1c4..090b198ac7 100644
--- a/src/interface/virtinterfaced.service.in
+++ b/src/interface/virtinterfaced.service.in
@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTINTERFACED_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtinterfaced
ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in
index 6b083c414f..597f5d1905 100644
--- a/src/libxl/virtxend.service.in
+++ b/src/libxl/virtxend.service.in
@@ -19,7 +19,6 @@ ConditionPathExists=/proc/xen/capabilities
[Service]
Type=notify
Environment=VIRTXEND_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtxend
ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
index 19271d1e7d..87193952cb 100644
--- a/src/locking/virtlockd.service.in
+++ b/src/locking/virtlockd.service.in
@@ -8,7 +8,6 @@ Documentation=https://libvirt.org
[Service]
Environment=VIRTLOCKD_ARGS=
-EnvironmentFile=-@sysconfdir@/sysconfig/virtlockd
ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS
ExecReload=/bin/kill -USR1 $MAINPID
# Losing the locks is a really bad thing that will
diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
index 8ab5478517..fe5c58b8ed 100644
--- a/src/logging/virtlogd.service.in
+++ b/src/logging/virtlogd.service.in
@@ -7,8 +7,7 @@ Documentation=man:virtlogd(8)
Documentation=https://libvirt.org
[Service]
-EnvironmentFile=-@sysconfdir@/sysconfig/virtlogd
-ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS
+ExecStart=@sbindir@/virtlogd
ExecReload=/bin/kill -USR1 $MAINPID
# Losing the logs is a really bad thing that will
# cause the machine to be fenced (rebooted), so make
diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in
index 334c34db44..1b9689017e 100644
--- a/src/lxc/virtlxcd.service.in
+++ b/src/lxc/virtlxcd.service.in
@@ -19,7 +19,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTLXCD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd
ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
diff --git a/src/network/virtnetworkd.service.in b/src/network/virtnetworkd.service.in
index 05ce672b73..ee4cd9bca1 100644
--- a/src/network/virtnetworkd.service.in
+++ b/src/network/virtnetworkd.service.in
@@ -17,7 +17,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTNETWORKD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtnetworkd
ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/node_device/virtnodedevd.service.in b/src/node_device/virtnodedevd.service.in
index cd9de362fd..7693aa52c4 100644
--- a/src/node_device/virtnodedevd.service.in
+++ b/src/node_device/virtnodedevd.service.in
@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTNODEDEVD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtnodedevd
ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/nwfilter/virtnwfilterd.service.in b/src/nwfilter/virtnwfilterd.service.in
index ab65419e0c..16d8b377b0 100644
--- a/src/nwfilter/virtnwfilterd.service.in
+++ b/src/nwfilter/virtnwfilterd.service.in
@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTNWFILTERD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtnwfilterd
ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in
index 5ad968ace9..c63147d31f 100644
--- a/src/qemu/virtqemud.service.in
+++ b/src/qemu/virtqemud.service.in
@@ -21,7 +21,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTQEMUD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud
ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
index 5d4d412fcc..27cfc34b90 100644
--- a/src/remote/libvirtd.service.in
+++ b/src/remote/libvirtd.service.in
@@ -29,7 +29,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=LIBVIRTD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd
ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
diff --git a/src/remote/virtproxyd.service.in b/src/remote/virtproxyd.service.in
index f9bb6b84a9..0eddf5ee93 100644
--- a/src/remote/virtproxyd.service.in
+++ b/src/remote/virtproxyd.service.in
@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTPROXYD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtproxyd
ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/secret/virtsecretd.service.in b/src/secret/virtsecretd.service.in
index 6d298c5334..92e54f175f 100644
--- a/src/secret/virtsecretd.service.in
+++ b/src/secret/virtsecretd.service.in
@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTSECRETD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtsecretd
ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/storage/virtstoraged.service.in b/src/storage/virtstoraged.service.in
index eda4d86d37..abe91e3d80 100644
--- a/src/storage/virtstoraged.service.in
+++ b/src/storage/virtstoraged.service.in
@@ -16,7 +16,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTSTORAGED_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtstoraged
ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/src/vbox/virtvboxd.service.in b/src/vbox/virtvboxd.service.in
index 6f447276e9..54fbd0be4a 100644
--- a/src/vbox/virtvboxd.service.in
+++ b/src/vbox/virtvboxd.service.in
@@ -15,7 +15,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTVBOXD_ARGS="--timeout 120"
-EnvironmentFile=-@sysconfdir@/sysconfig/virtvboxd
ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
index 3cf6476196..5668009ae4 100644
--- a/tools/libvirt-guests.service.in
+++ b/tools/libvirt-guests.service.in
@@ -20,7 +20,7 @@ Documentation=man:libvirt-guests(8)
Documentation=https://libvirt.org
[Service]
-EnvironmentFile=-@sysconfdir@/sysconfig/libvirt-guests
+EnvironmentFile=-/etc/libvirt/libvirt-guests.conf
# Hack just call traditional service until we factor
# out the code
ExecStart=@libexecdir@/libvirt-guests.sh start
--
2.34.1

View file

@ -0,0 +1,68 @@
From 52ecc3247d72e2a5ffc390093d803f59e20087f6 Mon Sep 17 00:00:00 2001
Message-Id: <52ecc3247d72e2a5ffc390093d803f59e20087f6.1647318231.git.mprivozn@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 15 Mar 2022 05:23:29 +0100
Subject: [PATCH] libvirt-8.2.0-fix-paths-for-apparmor.patch
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
diff --git a/src/security/apparmor/libvirt-qemu b/src/security/apparmor/libvirt-qemu
index 44056b5f14..1f0db2cda2 100644
--- a/src/security/apparmor/libvirt-qemu
+++ b/src/security/apparmor/libvirt-qemu
@@ -96,6 +96,7 @@
/usr/share/sgabios/** r,
/usr/share/slof/** r,
/usr/share/vgabios/** r,
+ /usr/share/seavgabios/** r,
# pki for libvirt-vnc and libvirt-spice (LP: #901272, #1690140)
/etc/pki/CA/ r,
diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build
index 58b4024b85..c77b32665d 100644
--- a/src/security/apparmor/meson.build
+++ b/src/security/apparmor/meson.build
@@ -1,5 +1,5 @@
apparmor_gen_profiles = [
- 'usr.lib.libvirt.virt-aa-helper',
+ 'usr.libexec.libvirt.virt-aa-helper',
'usr.sbin.libvirtd',
'usr.sbin.virtqemud',
'usr.sbin.virtxend',
@@ -35,7 +35,7 @@ install_data(
)
install_data(
- 'usr.lib.libvirt.virt-aa-helper.local',
+ 'usr.libexec.libvirt.virt-aa-helper.local',
install_dir: apparmor_dir / 'local',
- rename: 'usr.lib.libvirt.virt-aa-helper',
+ rename: 'usr.libexec.libvirt.virt-aa-helper',
)
diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
similarity index 94%
rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
index ff1d46bebe..6beedde1b1 100644
--- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
@@ -41,7 +41,7 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper {
deny /dev/mapper/* r,
@libexecdir@/virt-aa-helper mr,
- /{usr/,}sbin/apparmor_parser Ux,
+ /{usr/,}{s,}bin/apparmor_parser Ux,
@sysconfdir@/apparmor.d/libvirt/* r,
@sysconfdir@/apparmor.d/libvirt/libvirt-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]* rw,
@@ -71,5 +71,5 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper {
/**.[iI][sS][oO] r,
/**/disk{,.*} r,
- #include <local/usr.lib.libvirt.virt-aa-helper>
+ #include <local/usr.libexec.libvirt.virt-aa-helper>
}
diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local
similarity index 100%
rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local
rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local

View file

@ -0,0 +1,53 @@
From 743fdb97c81f38adc6e9b55f402244f7982352f4 Mon Sep 17 00:00:00 2001
Message-Id: <743fdb97c81f38adc6e9b55f402244f7982352f4.1679396460.git.mprivozn@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Mon, 20 Mar 2023 13:38:27 +0100
Subject: [PATCH] meson: Stop detecting -Wl,--version-script=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
With its version 16.0, the LLVM's linker turned on
--no-undefined-version by default [1]. This breaks how we detect
--version-script= detection, because at the compile time there's
no library built yet that we can use to make --version-script=
happy. Unfortunately, meson does not provide a way to detect this
either [2].
But there's not much sense in detecting the argument either. We
already special case some systems (windows, darwin) and do the
check for others, which are expected to support versioned
symbols, because of ELF. Worst case scenario - the error is
reported during compile time rather than configure time.
1: https://reviews.llvm.org/D135402
2: https://github.com/mesonbuild/meson/issues/3047
Resolves: https://bugs.gentoo.org/902211
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
meson.build | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/meson.build b/meson.build
index c35823a79a..a0682e8d0b 100644
--- a/meson.build
+++ b/meson.build
@@ -534,12 +534,7 @@ elif host_machine.system() == 'darwin'
# macOS libraries don't support symbol versioning
version_script_flags = ''
else
- test_file = '@0@/src/libvirt_qemu.syms'.format(meson.project_source_root())
- if cc.has_link_argument('-Wl,--version-script=@0@'.format(test_file))
- version_script_flags = '-Wl,--version-script='
- else
- error('No supported version script link argument found.')
- endif
+ version_script_flags = '-Wl,--version-script='
endif
libvirt_flat_namespace = []
--
2.39.2

View 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"

View 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
}

View 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"

View 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 shorewall 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
}

View file

@ -0,0 +1 @@
d /run/libvirt/lxc 0755 root root -

View 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}"
}

View 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}"
}

View file

@ -0,0 +1,349 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# 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!
PYTHON_COMPAT=( python3_{9..11} )
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/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"
else
SRC_URI="https://libvirt.org/sources/${P}.tar.xz
verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
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"
SLOT="0/${PV}"
IUSE="
apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
iscsi iscsi-direct +libvirtd lvm libssh libssh2 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
net-libs/rpcsvc-proto
bash-completion? ( >=app-shells/bash-completion-2.0 )
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.
RDEPEND="
acct-user/qemu
app-misc/scrub
>=dev-libs/glib-2.56.0
dev-libs/libgcrypt
dev-libs/libnl:3
>=dev-libs/libxml2-2.9.1
>=net-analyzer/openbsd-netcat-1.105-r1
>=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/readline-7.0:=
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:= )
glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
iscsi? ( >=sys-block/open-iscsi-1.18.0 )
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
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(-)] )
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[lvm]
)
pcap? ( >=net-libs/libpcap-1.8.0 )
policykit? (
acct-group/libvirt
>=sys-auth/polkit-0.9
)
qemu? (
>=app-emulation/qemu-4.2
>=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
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-2.6.0:= )
xen? (
>=app-emulation/xen-4.9.0
app-emulation/xen-tools:=
)
udev? (
virtual/libudev:=
>=x11-libs/libpciaccess-0.10.9
)
zfs? ( sys-fs/zfs )
kernel_linux? ( sys-apps/util-linux )"
DEPEND="
${BDEPEND}
${RDEPEND}
${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}-8.2.0-do-not-use-sysconfig.patch
"${FILESDIR}"/${PN}-8.2.0-fix-paths-for-apparmor.patch
"${FILESDIR}"/${PN}-9.2.0-meson-Stop-detecting-Wl-version-script.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 libssh2)
$(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
-Dopenwsman=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
}

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
<maintainer type="person" proxied="yes">
<email>michal.privoznik@gmail.com</email>
<name>Michal Prívozník</name>
</maintainer>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
<name>Gentoo Virtualization Project</name>
</maintainer>
<use>
<!-- Pool backend flags -->
<flag name="iscsi-direct">
Allow using libiscsi for iSCSI storage pool backend
</flag>
<flag name="iscsi">
Allow using an iSCSI remote storage server as pool for disk image storage
</flag>
<flag name="lvm">
Allow using the Logical Volume Manager (<pkg>sys-fs/lvm2</pkg>) as pool for disk image
storage
</flag>
<flag name="nfs">
Allow using Network File System mounts as pool for disk image storage
</flag>
<flag name="parted">
Allow using real disk partitions as pool for disk image storage, using
<pkg>sys-block/parted</pkg> to create, resize and delete them.
</flag>
<flag name="rbd">
Enable rados block device support via <pkg>sys-cluster/ceph</pkg>
</flag>
<!-- Virtualisation backends -->
<flag name="lxc">
Support management of Linux Containers virtualisation (<pkg>app-containers/lxc</pkg>)
</flag>
<flag name="openvz">
Support management of OpenVZ virtualisation (openvz-sources)
</flag>
<flag name="qemu">
Support management of QEMU virtualisation (<pkg>app-emulation/qemu</pkg>)
</flag>
<flag name="xen">
Support management of Xen virtualisation (<pkg>app-emulation/xen</pkg>)
</flag>
<flag name="virtualbox">
Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>)
</flag>
<!-- Miscellaneous flags -->
<flag name="dtrace">Enable dtrace support via <pkg>dev-util/systemtap</pkg></flag>
<flag name="fuse">Allow LXC to use <pkg>sys-fs/fuse</pkg> for mountpoints</flag>
<flag name="numa">
Use NUMA for memory segmenting via <pkg>sys-process/numactl</pkg> and
<pkg>sys-process/numad</pkg>
</flag>
<flag name="libvirtd">
Builds the libvirtd daemon as well as the client utilities instead of just the client
utilities
</flag>
<flag name="libssh">
Use <pkg>net-libs/libssh</pkg> to communicate with remote libvirtd hosts,
for example: qemu+libssh://server/system
</flag>
<flag name="libssh2">
Use <pkg>net-libs/libssh2</pkg> to communicate with remote libvirtd hosts,
for example: qemu+libssh2://server/system
</flag>
<flag name="pcap">
Support auto learning IP addreses for routing
</flag>
<flag name="virt-network">
Enable virtual networking (NAT) support for guests. Includes all
the dependencies for NATed network mode. Effectively any network
setup that relies on libvirt to setup and configure network
interfaces on your host. This can include bridged and routed
networks ONLY if you are allowing libvirt to create and manage
the underlying devices for you. In some cases this requires
enabling the 'netcf' USE flag (currently unavailable).
</flag>
<flag name="firewalld">DBus interface to iptables/ebtables allowing
for better runtime management of your firewall.</flag>
<flag name="wireshark-plugins">
Build the <pkg>net-analyzer/wireshark</pkg> plugin for the Libvirt RPC protocol
</flag>
<flag name="glusterfs">
Enable GlusterFS support via <pkg>sys-cluster/glusterfs</pkg>
</flag>
<flag name="zfs">
Enable ZFS backend storage <pkg>sys-fs/zfs</pkg>
</flag>
</use>
<upstream>
<remote-id type="gitlab">libvirt/libvirt</remote-id>
</upstream>
</pkgmetadata>