From c57e5a20afed00782f5ed1847ee3b5ed6a306c20 Mon Sep 17 00:00:00 2001 From: weijin deng Date: Mon, 11 Oct 2021 11:59:02 +0800 Subject: [PATCH] add 0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch (cherry picked from commit c5459641b59b7c1efd73d8354be648b8b8a33747) --- ...ectly-select-virtualization-cpu-mode.patch | 45 +++++++++++++++++++ gnome-boxes.spec | 6 ++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch diff --git a/0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch b/0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch new file mode 100644 index 0000000..acc2afd --- /dev/null +++ b/0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch @@ -0,0 +1,45 @@ +diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala +index ee8cf13..ede5e0e 100644 +--- a/src/vm-configurator.vala ++++ b/src/vm-configurator.vala +@@ -38,6 +38,13 @@ private class Boxes.VMConfigurator { + private const string LIBOSINFO_XML = "%s"; + private const string LIBOSINFO_OS_ID_XML = ""; + ++ /* this var is used for passporting virt type information between function set_cpu_config and statement: ++ "var virt_type = guest_kvm_enabled (best_caps) ? DomainVirtType.KVM : DomainVirtType.QEMU;" ++ the concrete type of virt_type_p refers to /usr/share/vala/vapi/libvirt-gconfig-1.0.vapi:75: public GVirConfig.DomainVirtType get_virt_type (); ++ the virt_type_p must be static then member function create_domain_config and set_cpu_config can access it. ++ */ ++ private static GVirConfig.DomainVirtType virt_type_p = DomainVirtType.QEMU; ++ + public static Domain create_domain_config (InstallerMedia install_media, string target_path, Capabilities caps, DomainCapabilities domain_caps) + throws VMConfiguratorError { + var domain = new Domain (); +@@ -46,9 +53,13 @@ private class Boxes.VMConfigurator { + + var best_caps = get_best_guest_caps (caps, install_media); + domain.memory = install_media.resources.ram / KIBIBYTES; +- set_cpu_config (domain, caps); ++ //set_cpu_config (domain, caps); //move this statement before statement:"domain.set_virt_type (virt_type);" + + var virt_type = guest_kvm_enabled (best_caps) ? DomainVirtType.KVM : DomainVirtType.QEMU; ++ // passporting virt type information ++ virt_type_p = virt_type; ++ // new call position ++ set_cpu_config (domain, caps); + domain.set_virt_type (virt_type); + + set_os_config (domain, install_media, best_caps, domain_caps); +@@ -244,7 +255,10 @@ private class Boxes.VMConfigurator { + domain.vcpu = topology.get_sockets () * topology.get_cores () * topology.get_threads (); + + var cpu = new DomainCpu (); +- cpu.set_mode (DomainCpuMode.HOST_PASSTHROUGH); ++ if(virt_type_p == DomainVirtType.QEMU) ++ cpu.set_mode (DomainCpuMode.HOST_MODEL); ++ else /* if virt_type_p == DomainVirtType.KVM or other */ ++ cpu.set_mode (DomainCpuMode.HOST_PASSTHROUGH); + cpu.set_topology (topology); + + domain.set_cpu (cpu); diff --git a/gnome-boxes.spec b/gnome-boxes.spec index 80c4780..aeacade 100644 --- a/gnome-boxes.spec +++ b/gnome-boxes.spec @@ -4,11 +4,12 @@ Name: gnome-boxes Version: 3.38.2 -Release: 2 +Release: 3 Summary: An application of the GNOME Desktop Environment License: LGPLv2+ URL: https://wiki.gnome.org/Apps/Boxes Source0: http://download.gnome.org/sources/%{name}/%{url_ver}/%{name}-%{version}.tar.xz +Patch0: 0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch BuildRequires: gettext >= 0.19.8 meson itstool vala >= 0.36.0 yelp-tools BuildRequires: pkgconfig(clutter-gtk-1.0) pkgconfig(freerdp2) pkgconfig(glib-2.0) >= 2.52 @@ -70,6 +71,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Boxes.deskt %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf %changelog +* Mon Oct 11 2021 weijin deng - 3.38.2-3 +- Add 0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch + * Fri Sep 10 2021 lingsheng - 3.38.2-2 - Delete rpath setting