diff --git a/0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch b/0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch deleted file mode 100644 index acc2afd..0000000 --- a/0001-make-gnome-boxes-correctly-select-virtualization-cpu-mode.patch +++ /dev/null @@ -1,45 +0,0 @@ -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/0002-disable-domain-conf-video-model-qxl-because-qemu-not-open-this-support.patch b/0002-disable-domain-conf-video-model-qxl-because-qemu-not-open-this-support.patch index 97d54b6..e5ff9ef 100644 --- a/0002-disable-domain-conf-video-model-qxl-because-qemu-not-open-this-support.patch +++ b/0002-disable-domain-conf-video-model-qxl-because-qemu-not-open-this-support.patch @@ -1,8 +1,8 @@ diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala -index ede5e0e..010faa0 100644 +index c75cd45..521ab0c 100644 --- a/src/vm-configurator.vala +++ b/src/vm-configurator.vala -@@ -443,11 +443,11 @@ private class Boxes.VMConfigurator { +@@ -461,11 +461,11 @@ private static void set_os_config (Domain domain, InstallerMedia install_media, private static void set_video_config (Domain domain, InstallerMedia install_media) { var video = new DomainVideo (); diff --git a/0003-disable-domain-conf-smartcard-because-qemu-not-open-this-support-now.patch b/0003-disable-domain-conf-smartcard-because-qemu-not-open-this-support-now.patch index c6e9503..1fb7484 100644 --- a/0003-disable-domain-conf-smartcard-because-qemu-not-open-this-support-now.patch +++ b/0003-disable-domain-conf-smartcard-because-qemu-not-open-this-support-now.patch @@ -1,21 +1,22 @@ diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala -index 010faa0..66e435b 100644 +index 521ab0c..bef9f95 100644 --- a/src/vm-configurator.vala +++ b/src/vm-configurator.vala -@@ -114,7 +114,7 @@ private class Boxes.VMConfigurator { +@@ -103,8 +103,10 @@ public static Domain create_domain_config (InstallerMedia install_media, string - add_usb_support (domain); - #if !FLATPAK -- add_smartcard_support (domain); -+ //add_smartcard_support (domain); - #endif + add_usb_support (domain, install_media); + ++/* + if (!App.is_running_in_flatpak ()) + add_smartcard_support (domain); ++*/ set_video_config (domain, install_media); -@@ -651,14 +651,14 @@ private class Boxes.VMConfigurator { - } catch (GLib.Error error) { assert_not_reached (); /* We are so screwed if this happens */ } + set_sound_config (domain, install_media); +@@ -670,12 +672,14 @@ else if (install_media is InstalledMedia) } } -- + +/* public static void add_smartcard_support (Domain domain) { var smartcard = new DomainSmartcardPassthrough (); @@ -23,8 +24,7 @@ index 010faa0..66e435b 100644 smartcard.set_source (vmc); domain.add_device (smartcard); } -- +*/ - public static void add_usb_support (Domain domain) { - // 4 USB redirection channels - for (int i = 0; i < 4; i++) { + + public static void add_usb_support (Domain domain, InstallerMedia install_media) { + diff --git a/0004-disable-domain-conf-spice-graphics-because-qemu-not-open-this-support-now-and-add-vnc-instead.patch b/0004-disable-domain-conf-spice-graphics-because-qemu-not-open-this-support-now-and-add-vnc-instead.patch index bfacde3..c3f7d9a 100644 --- a/0004-disable-domain-conf-spice-graphics-because-qemu-not-open-this-support-now-and-add-vnc-instead.patch +++ b/0004-disable-domain-conf-spice-graphics-because-qemu-not-open-this-support-now-and-add-vnc-instead.patch @@ -1,46 +1,33 @@ diff --git a/src/libvirt-machine.vala b/src/libvirt-machine.vala -index fad5114..77de4a2 100644 +index 054f722..fc90003 100644 --- a/src/libvirt-machine.vala +++ b/src/libvirt-machine.vala -@@ -60,9 +60,15 @@ private class Boxes.LibvirtMachine: Boxes.Machine { - +@@ -63,7 +63,7 @@ + #if HAS_SPICE GLib.List devices = null; foreach (var device in domain_config.get_devices ()) { -+/* - if (device is GVirConfig.DomainGraphicsSpice) { +- if (device is GVirConfig.DomainGraphicsSpice) { ++ if (device is GVirConfig.DomainGraphicsVnc) { var graphics_device = VMConfigurator.create_graphics_device (_acceleration_3d); -+ devices.prepend (graphics_device); -+*/ -+ if (device is GVirConfig.DomainGraphicsVnc) { -+ var graphics_device = VMConfigurator.create_graphics_device (_acceleration_3d); -+ devices.prepend (graphics_device); - } else if (device is GVirConfig.DomainVideo) { - var video_device = device as GVirConfig.DomainVideo; diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala -index 66e435b..695cb90 100644 +index bef9f95..26a7199 100644 --- a/src/vm-configurator.vala +++ b/src/vm-configurator.vala -@@ -699,6 +699,7 @@ private class Boxes.VMConfigurator { - return iface; +@@ -742,12 +742,9 @@ private static DomainChannel create_spice_agent_channel () { + return channel; } -+/* - public static DomainGraphicsSpice create_graphics_device (bool accel3d = false) { - var graphics = new DomainGraphicsSpice (); - graphics.set_autoport (false); -@@ -707,6 +708,13 @@ private class Boxes.VMConfigurator { - - return graphics; - } -+*/ +- public static DomainGraphicsSpice create_graphics_device (bool accel3d = false) { +- var graphics = new DomainGraphicsSpice (); +- graphics.set_autoport (false); +- graphics.set_gl (accel3d); +- graphics.set_image_compression (DomainGraphicsSpiceImageCompression.OFF); +- + public static DomainGraphicsVnc create_graphics_device (bool accel3d = false) { + var graphics = new DomainGraphicsVnc (); + graphics.set_autoport (true); -+ -+ return graphics; -+ } + return graphics; + } - public static DomainChannel create_webdav_channel () { - var channel_webdav = new DomainChannel (); diff --git a/0005-disable-domain-conf-USB-redirection--because-qemu-this-version-unsupport-now.patch b/0005-disable-domain-conf-USB-redirection--because-qemu-this-version-unsupport-now.patch index 93add79..dd23fbe 100644 --- a/0005-disable-domain-conf-USB-redirection--because-qemu-this-version-unsupport-now.patch +++ b/0005-disable-domain-conf-USB-redirection--because-qemu-this-version-unsupport-now.patch @@ -1,35 +1,35 @@ diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala -index 695cb90..b02beeb 100644 +index 26a7199..263f966 100644 --- a/src/vm-configurator.vala +++ b/src/vm-configurator.vala -@@ -104,8 +104,10 @@ private class Boxes.VMConfigurator { - var channel = new DomainChannel (); - channel.set_target_type (DomainChannelTargetType.VIRTIO); - channel.set_target_name ("com.redhat.spice.0"); -+/* - var vmc = new DomainChardevSourceSpiceVmc (); - channel.set_source (vmc); -+*/ - domain.add_device (channel); +@@ -684,6 +684,7 @@ public static void add_smartcard_support (Domain domain) { + public static void add_usb_support (Domain domain, InstallerMedia install_media) { - // Webdav channel. This is needed for the shared folder feature to work. -@@ -661,6 +663,7 @@ private class Boxes.VMConfigurator { - */ - public static void add_usb_support (Domain domain) { // 4 USB redirection channels +/* for (int i = 0; i < 4; i++) { var usb_redir = new DomainRedirdev (); usb_redir.set_bus (DomainRedirdevBus.USB); -@@ -668,6 +671,7 @@ private class Boxes.VMConfigurator { +@@ -691,6 +692,7 @@ public static void add_usb_support (Domain domain, InstallerMedia install_media) usb_redir.set_source (vmc); domain.add_device (usb_redir); } +*/ - // USB controllers - var master_controller = create_usb_controller (DomainControllerUsbModel.ICH9_EHCI1); -@@ -721,9 +725,11 @@ private class Boxes.VMConfigurator { + var device = find_device_by_prop (install_media.supported_devices, DEVICE_PROP_NAME, "qemu-xhci"); + if (device != null) { +@@ -736,8 +738,10 @@ private static DomainChannel create_spice_agent_channel () { + var channel = new DomainChannel (); + channel.set_target_type (DomainChannelTargetType.VIRTIO); + channel.set_target_name (SPICE_AGENT_CHANNEL); ++/* + var vmc = new DomainChardevSourceSpiceVmc (); + channel.set_source (vmc); ++*/ + + return channel; + } +@@ -753,9 +757,11 @@ public static DomainChannel create_spice_webdav_channel () { channel_webdav.set_target_type (DomainChannelTargetType.VIRTIO); channel_webdav.set_target_name (WEBDAV_CHANNEL_URI); diff --git a/gnome-boxes-3.38.2.tar.xz b/gnome-boxes-3.38.2.tar.xz deleted file mode 100644 index 869b01a..0000000 Binary files a/gnome-boxes-3.38.2.tar.xz and /dev/null differ diff --git a/gnome-boxes-42.1.tar.xz b/gnome-boxes-42.1.tar.xz new file mode 100644 index 0000000..518fe0e Binary files /dev/null and b/gnome-boxes-42.1.tar.xz differ diff --git a/gnome-boxes.spec b/gnome-boxes.spec index 190f54e..c32ce2a 100644 --- a/gnome-boxes.spec +++ b/gnome-boxes.spec @@ -1,15 +1,17 @@ %global distributor_name openEuler %global distributor_version %{openEuler} -%global url_ver %%(echo %{version}|cut -d. -f1,2) +%global major_version %%(echo %%{tarball_version} | cut -d. -f1) -Name: gnome-boxes -Version: 3.38.2 -Release: 4 +%global __provides_exclude_from ^%{_libdir}/gnome-boxes/ +%global __requires_exclude ^(%%(find %{buildroot}%{_libdir}/gnome-boxes/ -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -)) + +Name: gnome-boxes +Version: 42.1 +Release: 1 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 +Source0: https://download.gnome.org/sources/%{name}/%{major_version}/%{name}-%{version}.tar.xz Patch1: 0002-disable-domain-conf-video-model-qxl-because-qemu-not-open-this-support.patch Patch2: 0003-disable-domain-conf-smartcard-because-qemu-not-open-this-support-now.patch Patch3: 0004-disable-domain-conf-spice-graphics-because-qemu-not-open-this-support-now-and-add-vnc-instead.patch @@ -24,6 +26,8 @@ BuildRequires: pkgconfig(libvirt-gconfig-1.0) pkgconfig(libxml-2.0) pkgconfig(g BuildRequires: pkgconfig(libosinfo-1.0) >= 1.4.0 pkgconfig(libsoup-2.4) >= 2.44 pkgconfig(vte-2.91) BuildRequires: pkgconfig(tracker-sparql-3.0) pkgconfig(webkit2gtk-4.0) spice-gtk3-vala libosinfo-vala BuildRequires: desktop-file-utils pkgconfig(libusb-1.0) pkgconfig(gtksourceview-4) spice-gtk spice-gtk-devel chrpath +BuildRequires: pkgconfig(gvncpulse-1.0) pkgconfig(libhandy-1) + Requires: libvirt-daemon-kvm libvirt-daemon-config-network mtools genisoimage adwaita-icon-theme %description @@ -33,7 +37,7 @@ An application of the GNOME Desktop Environment,used to access remote or virtual %autosetup -n %{name}-%{version} -p1 %build -%meson -D distributor_name=%{distributor_name} -D distributor_version=%{distributor_version} \ +%meson -D distributor_name=%{distributor_name} -D distributor_version=%{distributor_version} %meson_build %install @@ -44,6 +48,12 @@ chrpath -d %{buildroot}%{_bindir}/gnome-boxes mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d echo "%{_libdir}/gnome-boxes" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf +rm -rf %{buildroot}%{_includedir}/gnome-boxes/ +rm -rf %{buildroot}%{_libdir}/gnome-boxes/girepository-1.0/ +rm -rf %{buildroot}%{_libdir}/gnome-boxes/pkgconfig/ +rm -rf %{buildroot}%{_datadir}/gnome-boxes/gir-1.0/ +rm -rf %{buildroot}%{_datadir}/gnome-boxes/vapi/ + %post /sbin/ldconfig @@ -54,10 +64,8 @@ echo "%{_libdir}/gnome-boxes" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}- desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Boxes.desktop %files -f %{name}.lang -%exclude %{_includedir}/gnome-boxes/ -%exclude %{_libdir}/gnome-boxes/{girepository-1.0,pkgconfig} -%exclude %{_datadir}/gnome-boxes/{gir-1.0,vapi} -%doc AUTHORS README.md NEWS COPYING +%license COPYING copyright +%doc README.md NEWS %{_bindir}/gnome-boxes %{_libdir}/gnome-boxes %{_libexecdir}/gnome-boxes-search-provider @@ -67,7 +75,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Boxes.deskt %dir %{_datadir}/gnome-shell %dir %{_datadir}/gnome-shell/search-providers %{_datadir}/gnome-shell/search-providers/org.gnome.Boxes.SearchProvider.ini -%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Boxes.svg +%{_datadir}/icons/hicolor/*/apps/org.gnome.Boxes.svg %{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Boxes-symbolic.svg %{_datadir}/dbus-1/services/org.gnome.Boxes.SearchProvider.service %{_datadir}/dbus-1/services/org.gnome.Boxes.service @@ -75,6 +83,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Boxes.deskt %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf %changelog +* Mon Oct 31 2022 yaoxin - 42.1-1 +- Update to 42.1 + * Tue Mar 15 2022 weijin deng - 3.38.2-4 - Add four patches to make gome-boxes avoid setting qemu unsupported modules add vnc instead of spice diff --git a/gnome-boxes.yaml b/gnome-boxes.yaml new file mode 100644 index 0000000..1a67e78 --- /dev/null +++ b/gnome-boxes.yaml @@ -0,0 +1,4 @@ +version_control: gitlab.gnome +src_repo: gnome-boxes +tag_prefix: ^ +separator: .