]> git.ipfire.org Git - thirdparty/libvirt.git/log
thirdparty/libvirt.git
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:51 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5869 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:50 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5868 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:50 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5868 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5867 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:49 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5867 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5866 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:48 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5866 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:47 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5865 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:46 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5865 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5864 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:46 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.6% (5864 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5862 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5861 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:45 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5862 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5861 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5860 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:44 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5860 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5859 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5858 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:43 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5859 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5858 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:43 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5858 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:42 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5856 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:41 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5855 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:40 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5855 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:40 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5855 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5854 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5853 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:39 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5854 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.5% (5853 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:38 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5851 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:38 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5851 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5850 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:37 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5850 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5849 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5848 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
5 days agoTranslated using Weblate (Portuguese)
Weblate [Wed, 30 Jul 2025 03:43:36 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5849 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5848 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5847 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
5 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Wed, 30 Jul 2025 03:43:35 +0000 (03:43 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5846 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.4% (5844 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 53.0% (5805 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 52.9% (5797 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 52.9% (5788 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 52.8% (5778 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 52.6% (5763 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 52.6% (5759 of 10939 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
6 days agoRevert "qemu: Match firmware with fully resolved and canonicalized paths"
Peter Krempa [Tue, 29 Jul 2025 11:05:09 +0000 (13:05 +0200)] 
Revert "qemu: Match firmware with fully resolved and canonicalized paths"

The canonicalization of the paths is not mocked properly and thus the
tests depend on the host system. While the tests do pass on our CI they
break on real deployments at least on Fedora 42.

Since we're in code freeze for the upcoming release, revert the patch
instead of attempts to fix it.

This reverts commit 4efea21ae8709c6741a1800bd26ae6b49c8a77f5.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
6 days agoRevert "qemuxmlconfdata: Regenerate outputs after last commit"
Peter Krempa [Tue, 29 Jul 2025 11:03:18 +0000 (13:03 +0200)] 
Revert "qemuxmlconfdata: Regenerate outputs after last commit"

Turns out the test difference was not caused by forgotten hunks but
rather that the test output depends on the system.

For now both this wrong fix and the commit causing the failure will both
be reverted as we're in code freeze for the upcoming release.

This reverts commit 73345ccc7bca1044d57391a5e676db1e700452e8.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
6 days agoqemuxmlconfdata: Regenerate outputs after last commit
Peter Krempa [Tue, 29 Jul 2025 10:36:41 +0000 (12:36 +0200)] 
qemuxmlconfdata: Regenerate outputs after last commit

Commit 4efea21ae8709c6741a1800bd26ae6b49c8a77f5 modified how the EFI
paths are detected but didn't update the outputs.

Fixes: 4efea21ae8709c6741a1800bd26ae6b49c8a77f5
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
6 days agoqemu: Match firmware with fully resolved and canonicalized paths
James Le Cuirot [Thu, 24 Jul 2025 13:49:38 +0000 (14:49 +0100)] 
qemu: Match firmware with fully resolved and canonicalized paths

Distros may provide compatibility symlinks after moving firmware files
around, but they won't work for existing VMs when doing a straight
string comparison.

I tried to compare inodes instead, but even glib doesn't provide a
straightforward cross-platform method to do this.

Resolves: https://bugs.gentoo.org/960591
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 days agoutil: Fully resolve paths with virFileComparePaths
James Le Cuirot [Thu, 24 Jul 2025 13:49:37 +0000 (14:49 +0100)] 
util: Fully resolve paths with virFileComparePaths

The description says it "resolve all symlinks", but it was only
resolving the last component.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
6 days agoNEWS: Mention zero discard_granularity option
Martin Kletzander [Mon, 28 Jul 2025 11:39:54 +0000 (13:39 +0200)] 
NEWS: Mention zero discard_granularity option

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
6 days agoinclude: fix version for VIR_CONNECT_BASELINE_CPU_IGNORE_HOST
Daniel P. Berrangé [Mon, 28 Jul 2025 12:47:14 +0000 (13:47 +0100)] 
include: fix version for VIR_CONNECT_BASELINE_CPU_IGNORE_HOST

Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
7 days agoinclude: s/RECREATION/RECREATED/ in domain event names
Daniel P. Berrangé [Mon, 28 Jul 2025 10:34:24 +0000 (11:34 +0100)] 
include: s/RECREATION/RECREATED/ in domain event names

New event reasons were added in

  commit 1af740c5012bb45dfe96c77bcd6b20c28b6bb45d
  Author: Zhenzhong Duan <zhenzhong.duan@intel.com>
  Date:   Thu Jul 10 03:21:21 2025 -0400

    qemu: Send event VIR_DOMAIN_EVENT_[STOPPED|STARTED] during recreation

but the naming did not match existing reason names, so adapt
to match. The version tags are also updated to reflect when
this was merged.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
7 days agoUpdate translation files
Weblate [Mon, 28 Jul 2025 09:13:48 +0000 (09:13 +0000)] 
Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
7 days agopo: Refresh potfile for v11.6.0 v11.6.0-rc1
Jiri Denemark [Mon, 28 Jul 2025 09:09:07 +0000 (11:09 +0200)] 
po: Refresh potfile for v11.6.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
7 days agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Sun, 27 Jul 2025 22:57:11 +0000 (22:57 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 62.3% (6822 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 61.9% (6776 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 60.5% (6624 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 59.9% (6557 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 59.9% (6554 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 59.4% (6501 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
7 days agoTranslated using Weblate (Finnish)
Ricky Tigg [Sun, 27 Jul 2025 22:57:11 +0000 (22:57 +0000)] 
Translated using Weblate (Finnish)

Currently translated at 21.7% (2377 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/fi/

Signed-off-by: Ricky Tigg <ricky.tigg@gmail.com>
7 days agoTranslated using Weblate (Spanish)
Weblate [Sun, 27 Jul 2025 22:57:10 +0000 (22:57 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 59.2% (6484 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: Weblate <noreply-mt-weblate@weblate.org>
7 days agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Sun, 27 Jul 2025 22:57:10 +0000 (22:57 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 59.2% (6484 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 58.1% (6362 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 55.7% (6098 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 55.6% (6091 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
Translated using Weblate (Spanish)

Currently translated at 54.7% (5987 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: "Fco. Javier F. Serrador" <fserrador@gmail.com>
7 days agoTranslated using Weblate (Spanish)
Emilio Herrera [Sun, 27 Jul 2025 22:57:09 +0000 (22:57 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 53.6% (5871 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/es/

Signed-off-by: Emilio Herrera <ehespinosa57@gmail.com>
7 days agoTranslated using Weblate (Portuguese)
Américo Monteiro [Sun, 27 Jul 2025 22:57:09 +0000 (22:57 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 52.3% (5724 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 52.1% (5701 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 51.3% (5611 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 51.0% (5580 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 50.5% (5529 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 49.0% (5367 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 48.6% (5326 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 48.1% (5263 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 47.7% (5221 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 47.5% (5204 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 47.1% (5159 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 46.7% (5118 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 46.4% (5075 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 45.7% (5003 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 45.6% (4988 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 45.2% (4946 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 44.3% (4854 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 44.1% (4830 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 42.2% (4616 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 41.8% (4577 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 40.5% (4435 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 37.1% (4066 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 34.8% (3814 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 32.6% (3571 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 32.5% (3564 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 31.5% (3452 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 31.3% (3426 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 28.8% (3155 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 28.1% (3084 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 27.2% (2980 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 26.1% (2862 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 22.5% (2471 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 22.3% (2445 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 19.6% (2146 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 19.5% (2135 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 19.5% (2133 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 19.3% (2116 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 18.6% (2036 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 18.4% (2023 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 18.0% (1971 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 17.1% (1877 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 17.0% (1868 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 17.0% (1865 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 16.9% (1855 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 16.7% (1830 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 16.0% (1759 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 16.0% (1755 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 15.7% (1723 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 15.6% (1711 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 15.2% (1672 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 15.2% (1668 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 15.1% (1653 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 14.9% (1632 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 14.4% (1583 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 14.4% (1579 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 13.8% (1520 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 13.8% (1519 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 12.9% (1414 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 12.6% (1388 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 12.2% (1339 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 12.1% (1331 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 11.8% (1292 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 11.5% (1263 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 10.2% (1116 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 9.6% (1058 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 9.4% (1035 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 9.3% (1020 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 9.1% (1004 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 8.7% (952 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 7.8% (858 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)

Currently translated at 7.6% (841 of 10937 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pt/

Signed-off-by: Américo Monteiro <a_monteiro@gmx.com>
10 days agoNEWS: mention disabling deprecated features by default on s390 CPU models
Collin Walling [Thu, 24 Jul 2025 18:36:23 +0000 (14:36 -0400)] 
NEWS: mention disabling deprecated features by default on s390 CPU models

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
10 days agoqemu: add default_cpu_deprecated_features configuration option
Boris Fiuczynski [Mon, 30 Jun 2025 03:19:30 +0000 (23:19 -0400)] 
qemu: add default_cpu_deprecated_features configuration option

Allow to define the default for deprecated_features when the attribute
is not set in the cpu defintion of a domain XML. If these features are
still desired, they may be reenabled via the deprecated_features='on'
attribute.

Some existing tests utilize this updated behavior, so update the CPU
features on the corresponding args files.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
10 days agotests: new qemuxmlactive tests for s390x
Boris Fiuczynski [Mon, 30 Jun 2025 03:19:29 +0000 (23:19 -0400)] 
tests: new qemuxmlactive tests for s390x

Add tests for active/inactive XML with deprecated_features attribute.

Note that for the qemuxmlactivetest, it is not possible to test an
inactive guest XML with the absence of "deprecated_features" attribute
and expect the active XML to have the attribute present.  This is due to
the fact that the tests never touch the code path in qemu_process that
trigger this change in the domain definition.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
10 days agoqemu: process: refactor deprecated features code
Collin Walling [Mon, 30 Jun 2025 03:19:28 +0000 (23:19 -0400)] 
qemu: process: refactor deprecated features code

Group up the deprecated features code into a single block to keep things
clean; only check if the deprecated_features attribute is present
once and then do relevent work.

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
10 days agoqemu: caps: add virCPUFeaturePolicy param to virQEMUCapsUpdateCPUDeprecatedFeatures
Collin Walling [Mon, 30 Jun 2025 03:19:27 +0000 (23:19 -0400)] 
qemu: caps: add virCPUFeaturePolicy param to virQEMUCapsUpdateCPUDeprecatedFeatures

Currently, virQEMUCapsUpdateCPUDeprecatedFeatures only allows for
disabling deprecated features.  This locks the deprecated_features
attribute to only do something if set to 'off'.

Let's add a virCPUFeaturePolicy to the function's parameters which will
allow the caller to decide what happens to these features.

Add a test with guest XML using deprecated_features='on' to ensure the
API is working properly.

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
10 days agodocs: domain: document deprecated_features attribute
Collin Walling [Mon, 30 Jun 2025 03:19:26 +0000 (23:19 -0400)] 
docs: domain: document deprecated_features attribute

Provide documentation for the deprecated_features XML attribute.
Available since 11.0.0, and supported for S390.

Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
10 days agodocs: domain: Add documentation for Intel TDX guest
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:25 +0000 (03:21 -0400)] 
docs: domain: Add documentation for Intel TDX guest

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
10 days agoqemuxmlconftest: Add latest version of 'launch-security-tdx*' test data
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:24 +0000 (03:21 -0400)] 
qemuxmlconftest: Add latest version of 'launch-security-tdx*' test data

We now have the '+inteltdx' variant dumped from a modern qemu with tdx support,
add qemuxmlconftest data for that variant.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
10 days agoqemu: Support domain reset command for TDX guest
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:23 +0000 (03:21 -0400)] 
qemu: Support domain reset command for TDX guest

TDX guest doesn't support system_reset, so have to kill the old QEMU and
start a new one to simulate the reset. This can be achieved by calling
qemuProcessFakeRebootViaRecreate().

Simiar as FakeReboot, QEMU sends SHUTDOWN event with "host-signal" reason
which can trigger another FakeReset. Check if a FakeReset is ongoing and
bypass "host-signal" processing which originally comes from FakeReset.

Domain lock is already hold in qemuDomainReset() before calling
qemuProcessFakeRebootViaRecreate(), so bypass locking in it.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoqemu: Send event VIR_DOMAIN_EVENT_[STOPPED|STARTED] during recreation
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:21 +0000 (03:21 -0400)] 
qemu: Send event VIR_DOMAIN_EVENT_[STOPPED|STARTED] during recreation

For secure guest, FakeReboot kills original QEMU instance and
create new one which is quite different from normal guest.

To reflect this fact, VIR_DOMAIN_EVENT_[STOPPED|STARTED]
are sent to control plane with new introduced reasons
VIR_DOMAIN_EVENT_[STOPPED|STARTED]_RECREATION.

That would let control plane software understand that these
events are from a fake reboot.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
10 days agoqemu: Avoid duplicate FakeReboot for secure guest
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:20 +0000 (03:21 -0400)] 
qemu: Avoid duplicate FakeReboot for secure guest

For secure guest, FakeReboot kills original QEMU instance and
create new one. During this process, QEMU send SHUTDOWN event
with "host-signal" reason which can trigger another FakeReboot.

Check if a FakeReboot is ongoing and bypass "host-signal"
processing which originally comes from FakeReboot.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoqemu: Support reboot command in guest
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:19 +0000 (03:21 -0400)] 
qemu: Support reboot command in guest

We can reboot a TDX guest with 'virsh reboot' or 'virsh shutdown' if action
for onPoweroff is 'restart'. But running reboot command in guest shell will
always lead to shutdown.

This behavior is not consistent with normal guest, fix it by checking
shutdown reason and action configuration to trigger FakeReboot.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoqemu: Add FakeReboot support for TDX guest
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:18 +0000 (03:21 -0400)] 
qemu: Add FakeReboot support for TDX guest

Utilize the existing fake reboot mechanism to do reboot for TDX guest.

Different from normal guest, TDX guest doesn't support system_reset,
so have to kill the old guest and start a new one to simulate the reboot.

Co-developed-by: Chenyi Qiang <chenyi.qiang@intel.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoqemu: Add command line for TDX Quote Generation Service(QGS)
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:17 +0000 (03:21 -0400)] 
qemu: Add command line for TDX Quote Generation Service(QGS)

'tdx-guest' object supports a "quote-generation-socket" property for
attestation purpose. When "quote-generation-socket" is configured in
guest xml, libvirt generates unix socket format cmdline for QEMU.

'Path' element can be omitted, default path "/var/run/tdx-qgs/qgs.socket"
is used in this case.

QEMU command line example:
  qemu-system-x86_64 \
    -object '{"qom-type":"tdx-guest","id":"lsec0","mrconfigid":"xxx","mrowner":"xxx","mrownerconfig":"xxx","quote-generation-socket":{"type":"unix","path":"/var/run/tdx-qgs/qgs.socket"},"attributes":268435457}' \
    -machine pc-q35-6.0,confidential-guest-support=lsec0

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoconf: Add Intel TDX Quote Generation Service(QGS) support
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:16 +0000 (03:21 -0400)] 
conf: Add Intel TDX Quote Generation Service(QGS) support

Add element "quoteGenerationService" to tdx launch security type.
It contains only an optional unix socket address attribute,
when omitted, libvirt will use default QGS server address
"/var/run/tdx-qgs/qgs.socket".

UNIX sockets offer the required functionality with greater
security than vsock, so libvirt only provides support for unix
socket.

XML example:

  <launchSecurity type='tdx'>
    <policy>0x10000001</policy>
    <mrConfigId>xxx</mrConfigId>
    <mrOwner>xxx</mrOwner>
    <mrOwnerConfig>xxx</mrOwnerConfig>
    <quoteGenerationService path='/var/run/tdx-qgs/qgs.socket'/>
  </launchSecurity>

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
10 days agoqemu_firmware: Pick the right firmware for TDX guests
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:15 +0000 (03:21 -0400)] 
qemu_firmware: Pick the right firmware for TDX guests

The firmware descriptors have 'intel-tdx' feature which
describes whether firmware is suitable for TDX guests.
Provide necessary implementation to detect the feature and pick
the right firmware if guest is TDX enabled.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
10 days agoqemu: log the crash information for TDX
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:14 +0000 (03:21 -0400)] 
qemu: log the crash information for TDX

Since QEMU 10.1.0 commit id '6e250463b08b' guest crash information for
TDX is available in the QEMU monitor, e.g.:

    {
        "timestamp": {
            "seconds": 1752118704,
            "microseconds": 27480
        },
        "event": "GUEST_PANICKED",
        "data": {
            "action": "pause",
            "info": {
                "error-code": 0,
                "message": "TD misconfiguration: SEPT #VE has to be disabled",
                "type": "tdx"
            }
        }
    }

    Let's log this information into the domain log file, e.g.:

    2025-07-10 03:39:18.243+0000: panic tdx: error_code='0x0' message='TD misconfiguration: SEPT #VE has to be disabled'

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
10 days agoqemu: Force special parameters enabled for TDX guest
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:13 +0000 (03:21 -0400)] 
qemu: Force special parameters enabled for TDX guest

TDX guest requires some special parameters to boot, currently:

 "kernel_irqchip=split"
 "pmu!=on"
 "smm!=on"
 "-bios"

If not specified explicitly, QEMU should configure this option implicitly
when start a TDX guest.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoconf: Expose TDX type in domain launch security capability
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:12 +0000 (03:21 -0400)] 
conf: Expose TDX type in domain launch security capability

As the tdx launch security type support is added, expose it in domain
capabilities so that domain definition validation check can take
effect.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoqemu: Add command line and validation for TDX type
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:11 +0000 (03:21 -0400)] 
qemu: Add command line and validation for TDX type

QEMU will provides 'tdx-guest' object which is used to launch encrypted
VMs on Intel platform using TDX feature.

Command line looks like:
$QEMU ... \
  -object '{"qom-type":"tdx-guest","id":"lsec0","mrconfigid":"xxx","mrowner":"xxx","mrownerconfig":"xxx","attributes":268435457}' \
  -machine pc-q35-6.0,confidential-guest-support=lsec0

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoconf: Validate TDX launchSecurity element mrConfigId/mrOwner/mrOwnerConfig
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:10 +0000 (03:21 -0400)] 
conf: Validate TDX launchSecurity element mrConfigId/mrOwner/mrOwnerConfig

mrConfigId/mrOwner/mrOwnerConfig are base64 encoded SHA384 digest,
can be provided for TDX attestation.

Check their decoded lengths to ensure they are 48 bytes.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoconf: Add tdx as launch security type
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:09 +0000 (03:21 -0400)] 
conf: Add tdx as launch security type

When 'tdx' is used, the VM will be launched with Intel TDX feature enabled.
TDX feature supports running encrypted VM (Trust Domain, TD) under the
control of KVM. A TD runs in a CPU model which protects the confidentiality
of its memory and its CPU state from other software.

There are four optional child elements. Element policy is 64bit hex, bit 0
is set to enable TDX debug, bit 28 is set to enable sept-ve-disable, other
bits are reserved currently. When policy isn't specified, QEMU will use its
own default value 0x10000000. mrConfigId, mrOwner and mrOwnerConfig are
base64 encoded SHA384 digest string.

For example:

 <launchSecurity type='tdx'>
   <policy>0x10000001</policy>
   <mrConfigId>xxx</mrConfigId>
   <mrOwner>xxx</mrOwner>
   <mrOwnerConfig>xxx</mrOwnerConfig>
 </launchSecurity>

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoconf: Expose TDX feature in domain capabilities
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:08 +0000 (03:21 -0400)] 
conf: Expose TDX feature in domain capabilities

Extend qemu TDX capability to domain capabilities.

Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
10 days agoqemu: Add QEMU_CAPS_TDX_GUEST capability
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:07 +0000 (03:21 -0400)] 
qemu: Add QEMU_CAPS_TDX_GUEST capability

QEMU_CAPS_TDX_GUEST set means TDX supported with this QEMU.

Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
10 days agoqemucapabilitiestest: Add data for the qemu-10.1.0 dev cycle on x86_64 for the '...
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:06 +0000 (03:21 -0400)] 
qemucapabilitiestest: Add data for the qemu-10.1.0 dev cycle on x86_64 for the '+inteltdx' variant

Add data based on 'v10.0.0-1724-gf9a3def17b'.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
10 days agoqemucapabilitiesdata: Document '+inteltdx' variant
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:05 +0000 (03:21 -0400)] 
qemucapabilitiesdata: Document '+inteltdx' variant

Upcoming patch will introduce test data from an TDX-enabled host.
Document the new variant.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
10 days agoqemu: Check if INTEL Trust Domain Extention support is enabled
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:04 +0000 (03:21 -0400)] 
qemu: Check if INTEL Trust Domain Extention support is enabled

Implement TDX check in order to generate domain feature capability
correctly in case the availability of the feature changed.

For INTEL TDX the verification is:
 - checking if "/sys/module/kvm_intel/parameters/tdx" contains the
   value 'Y': meaning TDX is enabled in the host kernel.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
10 days agotools: Secure guest check for Intel in virt-host-validate
Zhenzhong Duan [Thu, 10 Jul 2025 07:21:03 +0000 (03:21 -0400)] 
tools: Secure guest check for Intel in virt-host-validate

Add check in virt-host-validate for secure guest support
on x86 for Intel Trust Domain Extentions.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
12 days agomeson: Report library versions in the summary
Michal Privoznik [Thu, 23 Mar 2023 08:15:53 +0000 (09:15 +0100)] 
meson: Report library versions in the summary

The summary() directive accepts dependency() too [1] in which
case it also prints version of the dependency found. This may
come handy when reading build process transcripts.

1: https://mesonbuild.com/Reference-manual_functions.html#summary

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
12 days agomeson: Convert attr_dep to dependency()
Michal Privoznik [Tue, 4 Mar 2025 08:23:51 +0000 (09:23 +0100)] 
meson: Convert attr_dep to dependency()

Currently, libattr is detected using cc.find_library() because at
historically, the library was lacking pkg-config file. But that
changed with libattr-2.4.48 (released 7+ years ago) and even
prehistoric distros have it now. Switch to dependency().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
12 days agoqemu: Add support for RBD namespace.
Han Han [Wed, 26 May 2021 13:35:11 +0000 (21:35 +0800)] 
qemu: Add support for RBD namespace.

Since Nautilus ceph supports separate image namespaces within a pool for
tenant isolation and QEMU adds it as a rbd blockdev options from 5.0.0.
The source name with format "<pool>/<namespace>/<image>" could be used to
access a rbd image with namespace.

Add unit tests for this attribute.

https://bugzilla.redhat.com/show_bug.cgi?id=1816909

Closes: https://gitlab.com/libvirt/libvirt/-/issues/405
Signed-off-by: Han Han <hhan@redhat.com>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agovirStorageSource: Eliminate 'volume' field
Peter Krempa [Fri, 11 Nov 2022 14:42:52 +0000 (15:42 +0100)] 
virStorageSource: Eliminate 'volume' field

While historically we've stored the 'pool' and 'image' properties of RBD
and gluster images in separate fields but they are presented in a single
field in the XML. This creates multiple points where they need to be
separated and combined.

Introduce helper 'virStorageSourceNetworkProtocolPathSplit' which will
do that at the point of use rather than everywhere in the code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agovirStorageFileBackendGlusterInit: Refactor cleanup
Peter Krempa [Wed, 25 Jun 2025 07:51:56 +0000 (09:51 +0200)] 
virStorageFileBackendGlusterInit: Refactor cleanup

Automatically free 'priv' and call 'glfs_fini()' directly from the two
error paths.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoconf: Turn 'protocol' field of virStorageSource into proper enum type
Peter Krempa [Fri, 11 Nov 2022 12:05:33 +0000 (13:05 +0100)] 
conf: Turn 'protocol' field of virStorageSource into proper enum type

Convert the member to the appropriate type, fix few offending parse
calls and remove explicit typecasts in switch().

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoqemu: qemuDomainObjPrivateXMLParseVcpu refactor
Kirill Shchetiniuk [Tue, 22 Jul 2025 15:12:05 +0000 (17:12 +0200)] 
qemu: qemuDomainObjPrivateXMLParseVcpu refactor

Refactored the qemuDomainObjPrivateXMLParseVcpu function to use the
appropriate virXMLPropUInt function to parse unsigned integers,
avoiding unccessery string parsing operations.

Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoconf: virDomainChrDefParseTargetXML refactor
Kirill Shchetiniuk [Tue, 22 Jul 2025 15:12:04 +0000 (17:12 +0200)] 
conf: virDomainChrDefParseTargetXML refactor

Refactored the default case port option parsing logic to use the
appropriate virXMLPropInt function.

Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoutil: virSecretLookupParseSecret refactor
Kirill Shchetiniuk [Tue, 22 Jul 2025 15:12:03 +0000 (17:12 +0200)] 
util: virSecretLookupParseSecret refactor

Refactored the virSecretLookupParseSecret fucntion to use the
virXMLPropUUID fucntion, avoid getting the string and parsing it
later. Previously two separate error states merged into one by using
boolean NXOR operation.

Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agoconf: virNetDevVPortProfileParse refactor
Kirill Shchetiniuk [Tue, 22 Jul 2025 15:12:02 +0000 (17:12 +0200)] 
conf: virNetDevVPortProfileParse refactor

Refactored the virNetDevVPortProfileParse function to use the appropriate
virXMLProp* functions to parse input configuration XML.

Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 days agovirBitmapNextClearBit: Correct virBitmapNextClearBit function header comment
Aaron M. Brown [Tue, 22 Jul 2025 17:59:49 +0000 (13:59 -0400)] 
virBitmapNextClearBit: Correct virBitmapNextClearBit function header comment

This patch corrects the header comment for virBitmapNextClearBIt.
Currently, the header comment reads:

`@pos can be -1 to search for the first set bit.`

However, this statement is false.

We can prove this by referencing the virbitmaptest functions, i.e
virbitmaptest.c:223, in which i = 0

if (virBitmapNextClearBIt(bitmap, -1) != 0)
    return -1

Because this is a zero set, this case would fail if the header statement was true as is.

Signed-off-by: Aaron M. Brown <aaronmbr@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
13 days agoqemu: driver: Reformat function headers for block job APIs
Peter Krempa [Tue, 1 Jul 2025 16:00:56 +0000 (18:00 +0200)] 
qemu: driver: Reformat function headers for block job APIs

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxGetSecurityMountOptions: refactor printing
Peter Krempa [Fri, 18 Jul 2025 14:49:11 +0000 (16:49 +0200)] 
virSecuritySELinuxGetSecurityMountOptions: refactor printing

Fix linebreaks and remove the use of ternary operator.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxGenImageLabel: Refactor cleanup
Peter Krempa [Fri, 18 Jul 2025 14:41:10 +0000 (16:41 +0200)] 
virSecuritySELinuxGenImageLabel: Refactor cleanup

Automatically free temporary variables in order to remove 'cleanup'
section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxRestoreInputLabel: Return values directly
Peter Krempa [Fri, 18 Jul 2025 14:21:32 +0000 (16:21 +0200)] 
virSecuritySELinuxRestoreInputLabel: Return values directly

Skip the use of temporary variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxSetFilecon: Automatically free 'econ' temp variable
Peter Krempa [Fri, 18 Jul 2025 14:20:21 +0000 (16:20 +0200)] 
virSecuritySELinuxSetFilecon: Automatically free 'econ' temp variable

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxGetProcessLabel: Automatically free 'ctx' temp variable
Peter Krempa [Fri, 18 Jul 2025 14:19:26 +0000 (16:19 +0200)] 
virSecuritySELinuxGetProcessLabel: Automatically free 'ctx' temp variable

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxReserveLabel: Refactor cleanup
Peter Krempa [Fri, 18 Jul 2025 14:17:59 +0000 (16:17 +0200)] 
virSecuritySELinuxReserveLabel: Refactor cleanup

Automatically free temporary variables in order to remove 'cleanup'
section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxGenNewContext: Refactor cleanup
Peter Krempa [Fri, 18 Jul 2025 14:11:33 +0000 (16:11 +0200)] 
virSecuritySELinuxGenNewContext: Refactor cleanup

Use automatic freeing of temporary variables and remove cleanup section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxContextAddRange: Refactor cleanup of 'context_t'
Peter Krempa [Fri, 18 Jul 2025 14:08:40 +0000 (16:08 +0200)] 
virSecuritySELinuxContextAddRange: Refactor cleanup of 'context_t'

Use the new autoptr helper to free the temporary variables and refactor
cleanup.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agosecurity_selinux: Declare internal autoptr cleanup helper for 'context_t'
Peter Krempa [Fri, 18 Jul 2025 14:07:11 +0000 (16:07 +0200)] 
security_selinux: Declare internal autoptr cleanup helper for 'context_t'

The selinux headers have a 'typedef context_s_t *context_t;' definition
in the header so we declare autoptr cleanup function for 'context_s_t'
and use it instead of 'context_t' definitions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxSetTapFDLabel: Refactor cleanup
Peter Krempa [Tue, 27 May 2025 14:27:43 +0000 (16:27 +0200)] 
virSecuritySELinuxSetTapFDLabel: Refactor cleanup

Automatically free temporary variables and remove the need for 'cleanup'
section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxSet(Daemon)SocketLabel: Refactor cleanup
Peter Krempa [Tue, 27 May 2025 14:23:26 +0000 (16:23 +0200)] 
virSecuritySELinuxSet(Daemon)SocketLabel: Refactor cleanup

Automatically free temporary variables and change 'cleanup' label to
'error'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinux(Set|Restore)ChardevLabel: Refactor cleanup
Peter Krempa [Tue, 27 May 2025 14:17:12 +0000 (16:17 +0200)] 
virSecuritySELinux(Set|Restore)ChardevLabel: Refactor cleanup

Declare 'in'/'out' only in the bocks which use them and automatically
free them. Since cleanup section was removed we don't need a 'ret'
variable any more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinux(Set|Restore)HostdevCapsLabel: Refactor cleanup
Peter Krempa [Tue, 27 May 2025 14:17:00 +0000 (16:17 +0200)] 
virSecuritySELinux(Set|Restore)HostdevCapsLabel: Refactor cleanup

Declare 'path' only in blocks where it's used and autofree it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxRestoreFileLabels: Refactor variable freeing
Peter Krempa [Mon, 19 May 2025 13:31:21 +0000 (15:31 +0200)] 
virSecuritySELinuxRestoreFileLabels: Refactor variable freeing

Declare 'filename' inside the loop that is using it and use automatic
freeing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinux(Set|Restore)TPMFileLabel: Automatically free 'cancel_path'
Peter Krempa [Mon, 19 May 2025 13:29:24 +0000 (15:29 +0200)] 
virSecuritySELinux(Set|Restore)TPMFileLabel: Automatically free 'cancel_path'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxRestoreFileLabel: Refactor cleanup
Peter Krempa [Mon, 19 May 2025 13:27:44 +0000 (15:27 +0200)] 
virSecuritySELinuxRestoreFileLabel: Refactor cleanup

Automatically free 'fcon' and 'newpath' and remove the 'cleanup' label
and 'ret' variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxMCSFind: Refactor variable clearing
Peter Krempa [Mon, 19 May 2025 13:24:34 +0000 (15:24 +0200)] 
virSecuritySELinuxMCSFind: Refactor variable clearing

Use automatic freeing for 'mcs' and adjust the code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agovirSecuritySELinuxTransactionRun: Refactor cleanup
Peter Krempa [Mon, 19 May 2025 13:20:33 +0000 (15:20 +0200)] 
virSecuritySELinuxTransactionRun: Refactor cleanup

Automatically free 'paths' and remove temporary variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agosecurity/security_driver.c/h: Fix function header formatting
Peter Krempa [Mon, 19 May 2025 11:52:05 +0000 (13:52 +0200)] 
security/security_driver.c/h: Fix function header formatting

Fix the misaligned arguments by switching over to modern style.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
13 days agonews: document new crypto TLS priority string settings
Daniel P. Berrangé [Tue, 22 Jul 2025 10:35:36 +0000 (11:35 +0100)] 
news: document new crypto TLS priority string settings

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
13 days agonwfilter: Check before removing and reinserting iptable base chains
Dion Bosschieter [Wed, 16 Jul 2025 10:08:58 +0000 (12:08 +0200)] 
nwfilter: Check before removing and reinserting iptable base chains

Upon VM bootstrapping (start,restore,incoming migration)
iptablesCreateBaseChainsFW is called and unconditionally deletes and
reinserts top-level firewall chain jumps (e.g. INPUT, FORWARD rules).
This briefly allows packets to continue, allowing packets through
until the base chain iptables -I commands run.

This commit ensures that the base chains are only created once per layer
(IPV4/IPV6) and checks whether the expected rules already exist using
`iptables -L`. If they do, no delete/insert operations are performed.

By checking for the existence of rules we can prevent more rules from
being created if they already exist. Possibly speeding up nwfilter by
reducing the amount of iptable commands it executes. This however is not
part of this patch.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/784
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Dion Bosschieter <dionbosschieter@gmail.com>
13 days agoqemu: add ability to set TLS priority string with QEMU
Daniel P. Berrangé [Wed, 16 Jul 2025 15:40:01 +0000 (16:40 +0100)] 
qemu: add ability to set TLS priority string with QEMU

QEMU will either use the GNUTLS default priority string of "NORMAL",
or on Fedora/RHEL related distros, "@QEMU,SYSTEM", which resolves to
a configuration in /etc/crypto-policies/back-ends/gnutls.config.

The latter gives the sysadmin the ability to change the priority
string used for GNUTLS at deployment time, either system side, or
exclusively for QEMU, avoiding the hardcoded GNUTLS defaults.

There are still some limitations to this:

 * Priorities cannot be set for different areas of QEMU
   functionality (migration, vnc, nbd, etc)

 * Priorities are fixed at the time when QEMU first
   triggers GNUTLS to load its config file, often
   immediately at startup.

We recently uncovered a QEMU bug that causes crashes in live
migration with TLS-1.3, where the easiest workaround is to
change the TLS priorities. We can't change this on the running
QEMU, but fortunately it is possible to change it on the target
QEMU and the TLS handshake will make it take effect on both
src and dst.

The problem is, while fixing the immediate incoming and outgoing
live migration problems, the workaround will apply to everything
else that QEMU does for the rest of the time that process exists.

We want to make it possible to set the TLS priorities only for
the current migrations, such that if the target QEMU has a fixed
GNUTLS, it will not have its TLS priorities hobbled for the next
live migration.

To achieve this we need libvirt to be able to (optionally) set
the TLS priority string with QEMU. While live migration is the
most pressing need, the new qemu.conf parameters are wired up
for every subsystem for greater selectivity in future.

With this we can activate the GNUTLS workaround for running
QEMU processes by editting qemu.conf and restarting virtqemud,
and later undo this the same way.

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>