diff options
Diffstat (limited to 'app-emulation/libvirt')
-rw-r--r-- | app-emulation/libvirt/Manifest | 18 | ||||
-rw-r--r-- | app-emulation/libvirt/files/libvirt-6.8.0-fix-libvirt-lxc-dbus.patch | 24 | ||||
-rw-r--r-- | app-emulation/libvirt/files/libvirt-6.8.0-meson-properly-handle-libpcap-if-it-s-explicitly-dis.patch | 56 | ||||
-rw-r--r-- | app-emulation/libvirt/files/libvirt-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch | 189 | ||||
-rw-r--r-- | app-emulation/libvirt/libvirt-7.0.0-r2.ebuild (renamed from app-emulation/libvirt/libvirt-7.0.0-r1.ebuild) | 18 | ||||
-rw-r--r-- | app-emulation/libvirt/libvirt-7.1.0-r1.ebuild (renamed from app-emulation/libvirt/libvirt-6.8.0-r2.ebuild) | 89 | ||||
-rw-r--r-- | app-emulation/libvirt/libvirt-7.2.0-r1.ebuild (renamed from app-emulation/libvirt/libvirt-7.1.0.ebuild) | 18 | ||||
-rw-r--r-- | app-emulation/libvirt/libvirt-9999.ebuild | 39 | ||||
-rw-r--r-- | app-emulation/libvirt/metadata.xml | 6 |
9 files changed, 272 insertions, 185 deletions
diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest index 105a06dcef1e..da1047a1281b 100644 --- a/app-emulation/libvirt/Manifest +++ b/app-emulation/libvirt/Manifest @@ -3,8 +3,7 @@ AUX libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch 1281 BLAKE2B 631f813ad29d AUX libvirt-6.7.0-do-not-use-sysconfig.patch 5001 BLAKE2B 65e6dfacc598ba771fccc1c45c504aadcc83d0d8df211e70721dd0d7e3653c2c4d44a892ece19ee7e22d95552950e21f9d9e0a4ff960d66ebd2f9999c4cd52d1 SHA512 7dd3e4cf03dd8351a644a1669be70fcc6397b27983c0ec7b716dde61c92cf7dc9c46fc841cead5ae616897d9ed60209b03d5d78a4247215f4e79d11282da91ad AUX libvirt-6.7.0-doc-path.patch 468 BLAKE2B 2438dcccd20faa9bf32734b7a043ca7a9981d37f32d7c867c5ab31a0904f6d57f5bdb4817296506e65e40b3013eef6a978b1d22e3a204b2989f6b766a4f18877 SHA512 401ae495e8aaef1fdea02fc0e05562f3d2f29e286ea493a2eab0f874d1d89053580ff15110ab484a2f39b0546bdc82135e6e1561545ceff6fa7341b875dd54ad AUX libvirt-6.7.0-fix-paths-for-apparmor.patch 1974 BLAKE2B b5e9a151aa6bfbccf76ef0d6638b00cfbc3f8c4d5a722ba83699d29a32ef2f9a7d9eb678c1f61a128b0fee958a3349a4b843be08cec940f7d1e22757bc66bb95 SHA512 f81627e9c3d6c117e76a7a30af162a8ff8fafa191313155ceecf39bae2c457417152a0380d06cd3a4958b52a6ba410730cf66cd912072f7ec951b507c0a83f96 -AUX libvirt-6.8.0-fix-libvirt-lxc-dbus.patch 1035 BLAKE2B 33beb95638fb97322ec811a887f45c27316e228a08359d4d9f0fae1f8224d6aa8a4c31fbe92b08076c6dd9dd413f7d2dd2058dd78aff3531363348096e10d591 SHA512 b8945a448c201121a791a08d8a7b17b8db27156e5ba568e2b2349cdb504521a5dde1d1425bfd280b7b344eb58bc8b40321e26932474caddfc4cf035804c1d40a -AUX libvirt-6.8.0-meson-properly-handle-libpcap-if-it-s-explicitly-dis.patch 2059 BLAKE2B f9613928e3c59df0401da9574865e2c44770c62257ea39b354312a4dc8b05d7b4eb7d7501b212ea80089bd64396fa7f79d5e22ec4857d79cad2656c574a6c573 SHA512 c6769fa48ab684666d9c9df58d348c31b78520764cb0135ef0f635c04e986507d400beb961b18dd35ded2eb865307bbd9a34af711e790c36f08721c9bc239000 +AUX libvirt-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch 6683 BLAKE2B a346c9584ba85d85bf5c6173f2ea244d141f2697959e68692698086e614b87e76f925f35f14c84d1da8a82c07a66218afd289b66fe1c572d549aa635ec8a4a49 SHA512 615314bbfdd7cef2f440ab0651162c7d70f491ccd4b21c44501b0fb6e46a9066b846992040717e7b6787659d142f24388f2e07076ada92582bdabaa1cce2df54 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 @@ -12,11 +11,14 @@ AUX libvirtd.init-r19 1114 BLAKE2B a69f5a07e0b946a3167ac4509611d08a8b848e7337677 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-6.8.0.tar.xz 8412092 BLAKE2B c118ca6b263054bb6941c62f3d1415f7ed1a3f29a35294272d04bc726643247ee5691e0310a1bf013faeba856d7aadd00a90fe8dbdca6ff4c7eb480e94d92fa2 SHA512 9b69f3dcceb5e40470a78908654faf51b643f6793e556f3115daa4bfe08743af290882dd51f15eb27c38d589eb210d495de7c44a40b363420ab4f4d3a6393cc9 DIST libvirt-7.0.0.tar.xz 8567648 BLAKE2B 0c0b360c371a14b6d82dc6bef4b228bf7a4a17db1a8425d1354128b0705365a04440217ed0862761b2a8eaf81d81494177d777e734a9045bbc87fc613b56eb05 SHA512 dd6db5ec4971cf4c6059795fd81d5a3a889b10740e34c3c92271eda1c683c99df2c8f923398065d8a7c4f987a20eb1da617d5297ba8ea5a31f154412af50c343 +DIST libvirt-7.0.0.tar.xz.asc 833 BLAKE2B 7cc16442f39de660caa38801b12994ca312b250d6c3e5bbef38613702a03cd31cb9b7eaa792af4f8c1b737d67e62f18baa02b481e7fa4d6ec8fc9a07a44db4de SHA512 fb0b6240dbb4e827456f6c573bb3466f19282383bcee5bae8ece923260eca6d252f64b1adfac9a26fdac2a57bb9390aa4c0071e54d16d3e294230b3562764f18 DIST libvirt-7.1.0.tar.xz 8645944 BLAKE2B 97a76091616b427fc64a6a3caf5d9b04d7b9aed7ff7a6d70536ca2eb95d902f0f5ed4b5e56fbdfc6c40f443fb68f4850cff0545256826e575e78fea97158e8f7 SHA512 475b212e920bf8587db4a551126d9eb417d4e18a72550f94feb1aec94821fbac8c84d67ffd59cfe4f8289b6b10ae5f6b579ee170c0d72cb0493ec7ec52183cd6 -EBUILD libvirt-6.8.0-r2.ebuild 8761 BLAKE2B dad229775b97a350f98e2aa20b99abf8032c89c61f464cc40f4470f89889365cab242befe4d5283f3788400b31176e444d52957d638e4e6a3ce0e9003b6b08f5 SHA512 d4d8d79508871a4ba632d134d71e49e15c069d1f249abc695ac398b0bed46331cd0253c41910773904c5d0ea854505c47bd1733a11fde15516776cf0e2757886 -EBUILD libvirt-7.0.0-r1.ebuild 8445 BLAKE2B 9ac249908c83fcfb03b370999afa4c95f83188cf759bf53f55ae7232930348d7174fd93af3ea957426ba44c59b93131c1a3e9f710e69b14473ea6fcc4994fdc5 SHA512 54ffce4674c9a22db3be9878073ba3695ff99cb3c6a9f68540832c9d1f2df2a81ee3e8c89a1805f79cc58b317c8c1496a91ab9f2875bd280967135ec0b131d88 -EBUILD libvirt-7.1.0.ebuild 8197 BLAKE2B a97c4c71f59730b6c145cae14bf546278d988b8b8b13dd130cebd3c0ec64f80c1247a6caa7e80bf4366f703febc2400fffda0e5593478cd83dc2f4a806407377 SHA512 a8bdb21b844f34450e96c2eaeedcb6c87ded9d43f7cceab623dfc64b747e2c74778e6a4ee3cfe8b62cf8f5fefd90384e0746a4a8384791b4b001a94fe9b0b6a7 -EBUILD libvirt-9999.ebuild 8262 BLAKE2B 9069a015ca49de444ddc06384c16834115488f6cbb40edb591dbcc7fbc63e30b101d9579a54616dd570f0d44e2b93702fef3b56f8382eff5dba84aa4b2753e4a SHA512 a06affe00355c1bdd0db8f7506636c927654817d622ed51196f253ab155bf3a29f6983accdd6f8654201b1f708e116308758765469ecec8097759bdf419c420f -MISC metadata.xml 3568 BLAKE2B ea4e03121fbc3aca8af2d8e12b42fefc9954e8e38fd83b1014353dd83bceeae4e1ba65329b42fb19fc0d6a9aae7c9d16cf88817d4ea7cfe767c7ef5734b291f6 SHA512 4d691fecee1ddd161a67e3b18a6071d1f0f6e1dcc6ae8deb1a63d73ca9c6d86f5a879d8ab9e43397b7988d66a7df9be6f556a52ebfe8d886b1f03e89614cf073 +DIST libvirt-7.1.0.tar.xz.asc 833 BLAKE2B 2610cff98967260a5005840e1b03cff16790da82d9a51f14d6b34453db3ba89aa34915bba69d57b333f50d17e2492c77e85ee4e6282b8fe5f4cd0f7ace638334 SHA512 6c92c91bc7f23b32deee3442008b44d6469a9cabf2ed39459afcbfce9b3f2b1b655514a068c4bcdc8909ba02a0a4762e8f845ae4dba8da18719acf45614ca6da +DIST libvirt-7.2.0.tar.xz 8661052 BLAKE2B eae6b4e7422690dd780e1647e2a39dfdff0562f3e63bce9ca5ee34540dec3755269efaad459d1b516b56fdeb1503cc966ffa60378aaa18210b972b739716fe34 SHA512 f6bb26ca7cb5a8d342f1f39afd051ed76b71414e1b934557cf50784da17e4f2fb3301c2ace3b593fcdeb6a18ad559a007ad594111c2c348b9157d3a59d475928 +DIST libvirt-7.2.0.tar.xz.asc 833 BLAKE2B c389d80ef4f7627230b88446ef77daab1bf34e49e20cfb5c5418500fdf388af23aeb2458551548cb732c868f87f35a5c28acff8c01faebe985a6953953a69149 SHA512 526955a9f9d294635e63a4ed20c3e478fb4b5f3a63150a59ff30d84ad16a286ddb4c6508d0317c56df63a0d22a099085697df344fe2b15bce07acf9f05cda331 +EBUILD libvirt-7.0.0-r2.ebuild 8728 BLAKE2B 69047ed88abf8ec34d90c77ab7ebb92513985477d816da1ad9ddcd42c33b1a47d70c574a7605a685919e42d33d1af835327ae63761f36bb325bf8a7195e8b6f2 SHA512 1a5216a9b524f77e5099bff5e791866a1432cfedf193afb45dc1a1b1d8720ebb102acf70b148dd0a071ad3d65412768838ea8d3a40765aa9238c77e158133bcf +EBUILD libvirt-7.1.0-r1.ebuild 8479 BLAKE2B 2b16121f4b0930eae86e7866ca7ad5859cc5009cca4d3b2d3e08566a40dbe94f54e324435fdaa8ac8c6b8eff269fc02421c503b52ffd7e5ab31577bc40b03873 SHA512 75a840582349c8c9373e6f15645818a0f5ba6c8aa4510ab62a16499c9dc7d06f23d1caf488ada35d6d51b24fb62cb96d9c362c0cef592b75adaee8516739c4c9 +EBUILD libvirt-7.2.0-r1.ebuild 8285 BLAKE2B 7d5c0c746e44714177a6192250992e190d57deb8ee342e7fe5f457b2bb6a905bff860544f7fd6267624d46b95b0e75caf905dc6c29ea273f8c72cb5edbaadd45 SHA512 a578a69498e3bbe5b5d9df0509c9cfc6294d49f351bdf4ab20df8392152d655777897c8d15e58c2ff344251c444b981f3f7e58c49b09d952816733dd73f0ab9d +EBUILD libvirt-9999.ebuild 8121 BLAKE2B afe23c5c267f86131782b7fe043368d2e26a67ca7b20d7f0014078ab1f69a3e7734ca8823beadadf29ad09d5617c5432a832895c0b441a024256425ee8a2e2e6 SHA512 24ca3d948f69ff72513ec5baf14da7905c35a0fcb90fb49b3fae3e43b19a83bc18cba353dd9bba52b94f80b8c7a710e74eb5f7623518d2b6e1b4c10985740a13 +MISC metadata.xml 3326 BLAKE2B 70997d3eee5387a0735faad11a891927ad7c96b5fed632c3774611a7c35159eacfd6b0e9561c09dd08d64112c6bd66ff011fd58ed23520bc4f4f531c0d5f4693 SHA512 651bf4d8eec1af7b08c8b1050f2a4d57fa8e205205c59f231d3f84be643a71633b1426e9df1c83c838636245503bfefeef66696ddb9dc9e8da6b1aadee741856 diff --git a/app-emulation/libvirt/files/libvirt-6.8.0-fix-libvirt-lxc-dbus.patch b/app-emulation/libvirt/files/libvirt-6.8.0-fix-libvirt-lxc-dbus.patch deleted file mode 100644 index ea1a23795330..000000000000 --- a/app-emulation/libvirt/files/libvirt-6.8.0-fix-libvirt-lxc-dbus.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://bugs.gentoo.org/753761 - -diff --git a/src/util/virgdbus.c b/src/util/virgdbus.c -index 4360a6a..4ad1a5c 100644 ---- a/src/util/virgdbus.c -+++ b/src/util/virgdbus.c -@@ -54,11 +54,15 @@ virGDBusBusInit(GBusType type, GError **error) - if (sharedBus) { - return g_bus_get_sync(type, NULL, error); - } else { -+ GDBusConnectionFlags dbusFlags = -+ G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | -+ G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION; -+ - address = g_dbus_address_get_for_bus_sync(type, NULL, error); -- if (error) -+ if (*error) - return NULL; - return g_dbus_connection_new_for_address_sync(address, -- G_DBUS_CONNECTION_FLAGS_NONE, -+ dbusFlags, - NULL, - NULL, - error); diff --git a/app-emulation/libvirt/files/libvirt-6.8.0-meson-properly-handle-libpcap-if-it-s-explicitly-dis.patch b/app-emulation/libvirt/files/libvirt-6.8.0-meson-properly-handle-libpcap-if-it-s-explicitly-dis.patch deleted file mode 100644 index 46da07afdf00..000000000000 --- a/app-emulation/libvirt/files/libvirt-6.8.0-meson-properly-handle-libpcap-if-it-s-explicitly-dis.patch +++ /dev/null @@ -1,56 +0,0 @@ -From c8be9ccc36a32cc756d05b2c0838c43a57be15f7 Mon Sep 17 00:00:00 2001 -Message-Id: <c8be9ccc36a32cc756d05b2c0838c43a57be15f7.1607284606.git.mprivozn@redhat.com> -From: Pavel Hrdina <phrdina@redhat.com> -Date: Thu, 8 Oct 2020 13:09:45 +0200 -Subject: [PATCH] meson: properly handle libpcap if it's explicitly disabled - -If libpcap is detected using pkg-config it would ignore the libpcap -option. - -Signed-off-by: Pavel Hrdina <phrdina@redhat.com> -Reviewed-by: Andrea Bolognani <abologna@redhat.com> -Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---- - meson.build | 25 +++++++++++++++---------- - 1 file changed, 15 insertions(+), 10 deletions(-) - -diff --git a/meson.build b/meson.build -index e5a8316668..ec252ddf39 100644 ---- a/meson.build -+++ b/meson.build -@@ -1101,17 +1101,22 @@ if libparted_dep.found() - endif - - libpcap_version = '1.5.0' --libpcap_dep = dependency('libpcap', version: '>=' + libpcap_version, required: false) --if not libpcap_dep.found() -- pcap_config_prog = find_program('pcap-config', required: get_option('libpcap')) -- if pcap_config_prog.found() -- pcap_args = run_command(pcap_config_prog, '--cflags').stdout().strip().split() -- pcap_libs = run_command(pcap_config_prog, '--libs').stdout().strip().split() -- libpcap_dep = declare_dependency( -- compile_args: pcap_args, -- link_args: pcap_libs, -- ) -+if not get_option('libpcap').disabled() -+ libpcap_dep = dependency('libpcap', version: '>=' + libpcap_version, required: false) -+ -+ if not libpcap_dep.found() -+ pcap_config_prog = find_program('pcap-config', required: get_option('libpcap')) -+ if pcap_config_prog.found() -+ pcap_args = run_command(pcap_config_prog, '--cflags').stdout().strip().split() -+ pcap_libs = run_command(pcap_config_prog, '--libs').stdout().strip().split() -+ libpcap_dep = declare_dependency( -+ compile_args: pcap_args, -+ link_args: pcap_libs, -+ ) -+ endif - endif -+else -+ libpcap_dep = dependency('', required: false) - endif - if libpcap_dep.found() - conf.set('WITH_LIBPCAP', 1) --- -2.26.2 - diff --git a/app-emulation/libvirt/files/libvirt-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch b/app-emulation/libvirt/files/libvirt-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch new file mode 100644 index 000000000000..69572b321cfb --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch @@ -0,0 +1,189 @@ +From ea7d0ca37cce76e1327945c4864b996d7fd6d2e6 Mon Sep 17 00:00:00 2001 +Message-Id: <ea7d0ca37cce76e1327945c4864b996d7fd6d2e6.1618903455.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Fri, 16 Apr 2021 16:39:14 +0200 +Subject: [PATCH] vircgroup: Fix virCgroupKillRecursive() wrt nested + controllers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +I've encountered the following bug, but only on Gentoo with +systemd and CGroupsV2. I've started an LXC container successfully +but destroying it reported the following error: + + error: Failed to destroy domain 'amd64' + error: internal error: failed to get cgroup backend for 'pathOfController' + +Debugging showed, that CGroup hierarchy is full of surprises: + +/sys/fs/cgroup/machine.slice/machine-lxc\x2d861\x2damd64.scope/ +└── libvirt + ├── dev-hugepages.mount + ├── dev-mqueue.mount + ├── init.scope + ├── sys-fs-fuse-connections.mount + ├── sys-kernel-config.mount + ├── sys-kernel-debug.mount + ├── sys-kernel-tracing.mount + ├── system.slice + │ ├── console-getty.service + │ ├── dbus.service + │ ├── system-getty.slice + │ ├── system-modprobe.slice + │ ├── systemd-journald.service + │ ├── systemd-logind.service + │ └── tmp.mount + └── user.slice + +For comparison, here's the same container on recent Rawhide: + +/sys/fs/cgroup/machine.slice/machine-lxc\x2d13550\x2damd64.scope/ +└── libvirt + +Anyway, those nested directories should not be a problem, because +virCgroupKillRecursiveInternal() removes them recursively, right? +Sort of. The function really does remove nested directories, but +it assumes that every directory has the same controller as the +rest. Just take a look at virCgroupV2KillRecursive() - it gets +'Any' controller (the first one it found in ".scope") and then +passes it to virCgroupKillRecursiveInternal(). + +This assumption is not true though. The controllers found in +".scope" are the following: + + cpuset cpu io memory pids + +while "libvirt" has fewer: + + cpuset cpu io memory + +Up until now it's not problem, because of how we order +controllers internally - "cpu" is the first and thus picking +"Any" controller returns just that. But the rest of directories +has no controllers, their "cgroup.controllers" is just empty. + +What fixes the bug is dropping @controller argument from +virCgroupKillRecursiveInternal() and letting each iteration work +pick its own controller. + +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +Reviewed-by: Pavel Hrdina <phrdina@redhat.com> +--- + src/util/vircgroup.c | 25 +++++++++++++++++++++++-- + src/util/vircgrouppriv.h | 1 - + src/util/vircgroupv1.c | 7 +------ + src/util/vircgroupv2.c | 7 +------ + 4 files changed, 25 insertions(+), 15 deletions(-) + +diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c +index 96280a0a4e..37dde2a5ed 100644 +--- a/src/util/vircgroup.c ++++ b/src/util/vircgroup.c +@@ -1477,6 +1477,24 @@ virCgroupHasController(virCgroup *cgroup, int controller) + } + + ++static int ++virCgroupGetAnyController(virCgroup *cgroup) ++{ ++ size_t i; ++ ++ for (i = 0; i < VIR_CGROUP_BACKEND_TYPE_LAST; i++) { ++ if (!cgroup->backends[i]) ++ continue; ++ ++ return cgroup->backends[i]->getAnyController(cgroup); ++ } ++ ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", ++ _("Unable to get any controller")); ++ return -1; ++} ++ ++ + int + virCgroupPathOfController(virCgroup *group, + unsigned int controller, +@@ -2715,11 +2733,11 @@ int + virCgroupKillRecursiveInternal(virCgroup *group, + int signum, + GHashTable *pids, +- int controller, + const char *taskFile, + bool dormdir) + { + int rc; ++ int controller; + bool killedAny = false; + g_autofree char *keypath = NULL; + g_autoptr(DIR) dp = NULL; +@@ -2728,6 +2746,9 @@ virCgroupKillRecursiveInternal(virCgroup *group, + VIR_DEBUG("group=%p signum=%d pids=%p taskFile=%s dormdir=%d", + group, signum, pids, taskFile, dormdir); + ++ if ((controller = virCgroupGetAnyController(group)) < 0) ++ return -1; ++ + if (virCgroupPathOfController(group, controller, "", &keypath) < 0) + return -1; + +@@ -2760,7 +2781,7 @@ virCgroupKillRecursiveInternal(virCgroup *group, + return -1; + + if ((rc = virCgroupKillRecursiveInternal(subgroup, signum, pids, +- controller, taskFile, true)) < 0) ++ taskFile, true)) < 0) + return -1; + if (rc == 1) + killedAny = true; +diff --git a/src/util/vircgrouppriv.h b/src/util/vircgrouppriv.h +index 00193fb101..caf7ed84db 100644 +--- a/src/util/vircgrouppriv.h ++++ b/src/util/vircgrouppriv.h +@@ -135,6 +135,5 @@ int virCgroupRemoveRecursively(char *grppath); + int virCgroupKillRecursiveInternal(virCgroup *group, + int signum, + GHashTable *pids, +- int controller, + const char *taskFile, + bool dormdir); +diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c +index 2cc7dd386a..8a04bb2e4a 100644 +--- a/src/util/vircgroupv1.c ++++ b/src/util/vircgroupv1.c +@@ -812,12 +812,7 @@ virCgroupV1KillRecursive(virCgroup *group, + int signum, + GHashTable *pids) + { +- int controller = virCgroupV1GetAnyController(group); +- +- if (controller < 0) +- return -1; +- +- return virCgroupKillRecursiveInternal(group, signum, pids, controller, ++ return virCgroupKillRecursiveInternal(group, signum, pids, + "tasks", false); + } + +diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c +index e555217355..8881d3a88a 100644 +--- a/src/util/vircgroupv2.c ++++ b/src/util/vircgroupv2.c +@@ -577,12 +577,7 @@ virCgroupV2KillRecursive(virCgroup *group, + int signum, + GHashTable *pids) + { +- int controller = virCgroupV2GetAnyController(group); +- +- if (controller < 0) +- return -1; +- +- return virCgroupKillRecursiveInternal(group, signum, pids, controller, ++ return virCgroupKillRecursiveInternal(group, signum, pids, + "cgroup.threads", false); + } + +-- +2.26.3 + diff --git a/app-emulation/libvirt/libvirt-7.0.0-r1.ebuild b/app-emulation/libvirt/libvirt-7.0.0-r2.ebuild index 1f1c28bdb1a9..745429541ce0 100644 --- a/app-emulation/libvirt/libvirt-7.0.0-r1.ebuild +++ b/app-emulation/libvirt/libvirt-7.0.0-r2.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 tmpfiles +inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig if [[ ${PV} = *9999* ]]; then inherit git-r3 @@ -13,7 +13,8 @@ if [[ ${PV} = *9999* ]]; then SRC_URI="" SLOT="0" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" KEYWORDS="amd64 ~arm64 ~ppc64 x86" SLOT="0/${PV}" fi @@ -21,6 +22,7 @@ fi DESCRIPTION="C toolkit to manipulate virtual machines" HOMEPAGE="https://www.libvirt.org/" LICENSE="LGPL-2.1" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc IUSE=" apparmor audit +caps dtrace firewalld fuse glusterfs iscsi iscsi-direct +libvirtd lvm libssh lxc nfs nls numa openvz @@ -44,7 +46,8 @@ BDEPEND=" dev-libs/libxslt dev-perl/XML-XPath dev-python/docutils - virtual/pkgconfig" + virtual/pkgconfig + verify-sig? ( app-crypt/openpgp-keys-libvirt )" # gettext.sh command is used by the libvirt command wrappers, and it's # non-optional, so put it into RDEPEND. @@ -130,6 +133,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch "${FILESDIR}"/${PN}-6.7.0-doc-path.patch "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch ) pkg_setup() { @@ -296,9 +300,9 @@ src_install() { rm -rf "${D}"/run || die # Fix up doc paths for revisions - if [ $PV != $PVR ]; then - mv "${D}"/usr/share/doc/${PN}-${PV}/* "${D}"/usr/share/doc/${PF} || die - rmdir "${D}"/usr/share/doc/${PN}-${PV} || die + if [ ${PV} != ${PVR} ]; then + mv "${ED}"/usr/share/doc/${PN}-${PV}/* "${ED}"/usr/share/doc/${PF} || die + rmdir "${ED}"/usr/share/doc/${PN}-${PV} || die fi newbashcomp "${S}/tools/bash-completion/vsh" virsh @@ -325,7 +329,7 @@ src_install() { 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 || die + rm -rf "${ED}"/etc/libvirt/qemu/networks/default.xml || die fi } diff --git a/app-emulation/libvirt/libvirt-6.8.0-r2.ebuild b/app-emulation/libvirt/libvirt-7.1.0-r1.ebuild index c7a144ac4dd8..985e610ef46e 100644 --- a/app-emulation/libvirt/libvirt-6.8.0-r2.ebuild +++ b/app-emulation/libvirt/libvirt-7.1.0-r1.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 tmpfiles +inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig if [[ ${PV} = *9999* ]]; then inherit git-r3 @@ -13,18 +13,20 @@ if [[ ${PV} = *9999* ]]; then SRC_URI="" SLOT="0" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 x86" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" SLOT="0/${PV}" fi DESCRIPTION="C toolkit to manipulate virtual machines" -HOMEPAGE="https://www.libvirt.org/" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" LICENSE="LGPL-2.1" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc IUSE=" - apparmor audit +caps +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 + apparmor audit +caps dtrace firewalld fuse glusterfs iscsi + iscsi-direct +libvirtd lvm libssh lxc nfs nls numa openvz + parted pcap policykit +qemu rbd sasl selinux +udev virtualbox +virt-network wireshark-plugins xen zfs " @@ -33,22 +35,19 @@ REQUIRED_USE=" libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) lxc? ( caps libvirtd ) openvz? ( libvirtd ) - policykit? ( dbus ) qemu? ( libvirtd ) - vepa? ( macvtap ) virt-network? ( libvirtd ) virtualbox? ( libvirtd ) xen? ( libvirtd )" BDEPEND=" - acct-user/qemu - policykit? ( acct-group/libvirt ) app-text/xhtml1 dev-lang/perl dev-libs/libxslt dev-perl/XML-XPath dev-python/docutils - virtual/pkgconfig" + virtual/pkgconfig + verify-sig? ( app-crypt/openpgp-keys-libvirt )" # gettext.sh command is used by the libvirt command wrappers, and it's # non-optional, so put it into RDEPEND. @@ -56,6 +55,7 @@ BDEPEND=" # package will use 3 by default. Since we don't have slot pinning in an API, # we must go with the most recent RDEPEND=" + acct-user/qemu app-misc/scrub >=dev-libs/glib-2.48.0 dev-libs/libgcrypt:0 @@ -67,14 +67,15 @@ RDEPEND=" net-libs/libtirpc net-libs/rpcsvc-proto >=net-misc/curl-7.18.0 + sys-apps/dbus sys-apps/dmidecode sys-devel/gettext sys-libs/ncurses:0= sys-libs/readline:= + virtual/acl apparmor? ( sys-libs/libapparmor ) audit? ( sys-process/audit ) caps? ( sys-libs/libcap-ng ) - dbus? ( sys-apps/dbus ) dtrace? ( dev-util/systemtap ) firewalld? ( >=net-firewall/firewalld-0.6.3 ) fuse? ( sys-fs/fuse:0= ) @@ -83,6 +84,7 @@ RDEPEND=" iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) libssh? ( net-libs/libssh ) lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) nfs? ( net-fs/nfs-utils ) numa? ( >sys-process/numactl-2.0.2 @@ -93,7 +95,10 @@ RDEPEND=" sys-fs/lvm2[-device-mapper-only(-)] ) pcap? ( >=net-libs/libpcap-1.0.0 ) - policykit? ( >=sys-auth/polkit-0.9 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 + ) qemu? ( >=app-emulation/qemu-1.5.0 dev-libs/yajl @@ -102,7 +107,7 @@ RDEPEND=" sasl? ( dev-libs/cyrus-sasl ) selinux? ( >=sys-libs/libselinux-2.0.85 ) virt-network? ( - net-dns/dnsmasq[script] + net-dns/dnsmasq[dhcp,ipv6,script] net-firewall/ebtables >=net-firewall/iptables-1.4.10[ipv6] net-misc/radvd @@ -128,8 +133,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch "${FILESDIR}"/${PN}-6.7.0-doc-path.patch "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch - "${FILESDIR}"/${PN}-6.8.0-fix-libvirt-lxc-dbus.patch - "${FILESDIR}"/${PN}-6.8.0-meson-properly-handle-libpcap-if-it-s-explicitly-dis.patch + "${FILESDIR}"/${PN}-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch ) pkg_setup() { @@ -173,9 +177,6 @@ pkg_setup() { 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 @@ -201,24 +202,20 @@ pkg_setup() { ~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 + + python-any-r1_pkg_setup } src_prepare() { touch "${S}/.mailmap" || die default + python_fix_shebang . # Tweak the init script: cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die @@ -232,7 +229,6 @@ src_configure() { $(meson_use apparmor apparmor_profiles) $(meson_feature audit) $(meson_feature caps capng) - $(meson_feature dbus) $(meson_feature dtrace) $(meson_feature firewalld) $(meson_feature fuse) @@ -245,7 +241,6 @@ src_configure() { $(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) @@ -259,14 +254,12 @@ src_configure() { $(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 @@ -286,13 +279,6 @@ src_configure() { } src_test() { - # remove problematic tests, bug #591416, bug #591418 - sed -i -e 's#commandtest$(EXEEXT) # #' \ - -e 's#virfirewalltest$(EXEEXT) # #' \ - -e 's#nwfilterebiptablestest$(EXEEXT) # #' \ - -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \ - tests/Makefile - export VIR_TEST_DEBUG=1 meson_src_test } @@ -300,11 +286,21 @@ 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 || die - rm -rf "${D}"/var || die - rm -rf "${D}"/run || die + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run + + # Fix up doc paths for revisions + if [[ ${PV} != ${PVR} ]]; then + mv "${ED}"/usr/share/doc/${PN}-${PV}/* "${ED}"/usr/share/doc/${PF} || die + rmdir "${ED}"/usr/share/doc/${PN}-${PV} || die + fi newbashcomp "${S}/tools/bash-completion/vsh" virsh bashcomp_alias virsh virt-admin @@ -327,13 +323,6 @@ src_install() { 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 || die - fi -} - pkg_postinst() { if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die diff --git a/app-emulation/libvirt/libvirt-7.1.0.ebuild b/app-emulation/libvirt/libvirt-7.2.0-r1.ebuild index 16755a56b8ac..408b30efa060 100644 --- a/app-emulation/libvirt/libvirt-7.1.0.ebuild +++ b/app-emulation/libvirt/libvirt-7.2.0-r1.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles +inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig if [[ ${PV} = *9999* ]]; then inherit git-r3 @@ -13,7 +13,8 @@ if [[ ${PV} = *9999* ]]; then SRC_URI="" SLOT="0" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" SLOT="0/${PV}" fi @@ -21,6 +22,7 @@ fi DESCRIPTION="C toolkit to manipulate virtual machines" HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" LICENSE="LGPL-2.1" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc IUSE=" apparmor audit +caps dtrace firewalld fuse glusterfs iscsi iscsi-direct +libvirtd lvm libssh lxc nfs nls numa openvz @@ -44,7 +46,8 @@ BDEPEND=" dev-libs/libxslt dev-perl/XML-XPath dev-python/docutils - virtual/pkgconfig" + virtual/pkgconfig + verify-sig? ( app-crypt/openpgp-keys-libvirt )" # gettext.sh command is used by the libvirt command wrappers, and it's # non-optional, so put it into RDEPEND. @@ -128,8 +131,8 @@ DEPEND="${BDEPEND} PATCHES=( "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch - "${FILESDIR}"/${PN}-6.7.0-doc-path.patch "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-7.3.0-vircgroup-Fix-virCgroupKillRecursive-wrt-nested-cont.patch ) pkg_setup() { @@ -269,6 +272,7 @@ src_configure() { --localstatedir="${EPREFIX}/var" -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" ) meson_src_configure @@ -292,12 +296,6 @@ src_install() { rm -rf "${D}"/var rm -rf "${D}"/run - # Fix up doc paths for revisions - if [[ $PV != $PVR ]]; then - mv "${D}"/usr/share/doc/${PN}-${PV}/* "${D}"/usr/share/doc/${PF} || die - rmdir "${D}"/usr/share/doc/${PN}-${PV} || die - fi - newbashcomp "${S}/tools/bash-completion/vsh" virsh bashcomp_alias virsh virt-admin diff --git a/app-emulation/libvirt/libvirt-9999.ebuild b/app-emulation/libvirt/libvirt-9999.ebuild index 767580ad5f76..769f02106434 100644 --- a/app-emulation/libvirt/libvirt-9999.ebuild +++ b/app-emulation/libvirt/libvirt-9999.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 tmpfiles +inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles if [[ ${PV} = *9999* ]]; then inherit git-r3 @@ -13,13 +13,14 @@ if [[ ${PV} = *9999* ]]; then SRC_URI="" SLOT="0" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" SLOT="0/${PV}" fi DESCRIPTION="C toolkit to manipulate virtual machines" -HOMEPAGE="https://www.libvirt.org/" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" LICENSE="LGPL-2.1" IUSE=" apparmor audit +caps dtrace firewalld fuse glusterfs iscsi @@ -197,13 +198,6 @@ pkg_setup() { ~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 @@ -289,14 +283,18 @@ 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 || die - rm -rf "${D}"/var || die - rm -rf "${D}"/run || die + # 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 - newbashcomp "${S}/tools/bash-completion/vsh" virsh - bashcomp_alias virsh virt-admin + newbashcomp "${BUILD_DIR}/tools/bash-completion/virsh" virsh + newbashcomp "${BUILD_DIR}/tools/bash-completion/virt-admin" virt-admin use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! @@ -316,13 +314,6 @@ src_install() { 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 || die - fi -} - pkg_postinst() { if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die diff --git a/app-emulation/libvirt/metadata.xml b/app-emulation/libvirt/metadata.xml index 5151b9df4986..54914eb3f864 100644 --- a/app-emulation/libvirt/metadata.xml +++ b/app-emulation/libvirt/metadata.xml @@ -67,12 +67,6 @@ <flag name="pcap"> Support auto learning IP addreses for routing </flag> - <flag name="macvtap"> - Support for MAC-based TAP (macvlan/macvtap). For networking instead - of the normal TUN/TAP. - </flag> - <flag name="vepa">Virtual Ethernet Port Aggregator (VEPA) / 802.1Qbg - support. Relies on macvtap support.</flag> <flag name="virt-network"> Enable virtual networking (NAT) support for guests. Includes all the dependencies for NATed network mode. Effectively any network |