diff --git a/5397b647-createnet-enable-specifying-29-subnet.patch b/5397b647-createnet-enable-specifying-29-subnet.patch new file mode 100644 index 00000000..24ce2c88 --- /dev/null +++ b/5397b647-createnet-enable-specifying-29-subnet.patch @@ -0,0 +1,34 @@ +Subject: createnet: enable specify /29 subnet +From: Chen Hanxiao chenhanxiao@cn.fujitsu.com Wed Jun 11 09:51:48 2014 +0800 +Date: Wed Jun 11 09:52:07 2014 +0800: +Git: 17a11672b142028f6e15b80f3a30b3069792d37f + +https://bugzilla.redhat.com/show_bug.cgi?id=1106913 + +Signed-off-by: Chen Hanxiao + +Index: virt-manager-1.0.1/virtManager/createnet.py +=================================================================== +--- virt-manager-1.0.1.orig/virtManager/createnet.py ++++ virt-manager-1.0.1/virtManager/createnet.py +@@ -268,9 +268,9 @@ class vmmCreateNetwork(vmmGObjectUI): + return self.err.val_err(_("Invalid Network Address"), + _("The network must be an IPv4 address")) + +- if ip.numhosts < 16: ++ if ip.numhosts < 8: + return self.err.val_err(_("Invalid Network Address"), +- _("The network must address at least 16 addresses.")) ++ _("The network must address at least 8 addresses.")) + + if not ip.is_private: + res = self.err.yes_no(_("Check Network Address"), +@@ -562,7 +562,7 @@ class vmmCreateNetwork(vmmGObjectUI): + src.modify_bg(Gtk.StateType.NORMAL, _red) + return + +- valid_ip = (ip.numhosts >= 16 and ip.is_private) ++ valid_ip = (ip.numhosts >= 8 and ip.is_private) + gateway = (ip.prefixlen != 32 and str(ip.network + 1) or "") + info = (ip.is_private and _("Private") or _("Other/Public")) + start = int(ip.numhosts / 2) diff --git a/539e8cca-createpool-fix-creation-of-gluster-pools.patch b/539e8cca-createpool-fix-creation-of-gluster-pools.patch new file mode 100644 index 00000000..44a61edd --- /dev/null +++ b/539e8cca-createpool-fix-creation-of-gluster-pools.patch @@ -0,0 +1,32 @@ +Subject: createpool.py: fix creation of gluster pools +From: Giuseppe Scrivano gscrivan@redhat.com Wed Jun 11 13:30:15 2014 +0200 +Date: Mon Jun 16 08:20:58 2014 +0200: +Git: 5c2459e6e472dce777a04d3a82406c9df7b9c754 + +It fixes this exception: + +Traceback (most recent call last): + File "virt-manager/virtManager/createpool.py", line 454, in page_changed + self.set_page(page_number) + File "virt-manager/virtManager/createpool.py", line 451, in set_page + self.show_options_by_pool() + File "virt-manager/virtManager/createpool.py", line 292, in show_options_by_pool + self.widget("pool-source-name").get_child().set_text( +AttributeError: 'Entry' object has no attribute 'get_child' + +Signed-off-by: Giuseppe Scrivano + +Index: virt-manager-1.0.1/virtManager/createpool.py +=================================================================== +--- virt-manager-1.0.1.orig/virtManager/createpool.py ++++ virt-manager-1.0.1/virtManager/createpool.py +@@ -291,8 +291,7 @@ class vmmCreatePool(vmmGObjectUI): + self.widget("pool-build").set_active(builddef) + + if src_name: +- self.widget("pool-source-name").get_child().set_text( +- self._pool.source_name) ++ self.widget("pool-source-name").set_text(self._pool.source_name) + + self.widget("pool-format").set_active(-1) + if fmt: diff --git a/53a05e73-fix-edit-maxvcpus.patch b/53a05e73-fix-edit-maxvcpus.patch new file mode 100644 index 00000000..53dd0521 --- /dev/null +++ b/53a05e73-fix-edit-maxvcpus.patch @@ -0,0 +1,56 @@ +Subject: virt-manager: split EDIT_VCPUS and EDIT_MAXVCPUS +From: Giuseppe Scrivano gscrivan@redhat.com Tue Jun 17 14:13:30 2014 +0200 +Date: Tue Jun 17 17:27:47 2014 +0200: +Git: 4ac49a1d66b12ae6f7d50ec4f368ff3d770e6b42 + +Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1098040 + +Signed-off-by: Giuseppe Scrivano + +Index: virt-manager-1.0.1/virtManager/details.py +=================================================================== +--- virt-manager-1.0.1.orig/virtManager/details.py ++++ virt-manager-1.0.1/virtManager/details.py +@@ -54,6 +54,7 @@ EDIT_DESC, + EDIT_IDMAP, + + EDIT_VCPUS, ++EDIT_MAXVCPUS, + EDIT_CPUSET, + EDIT_CPU, + EDIT_TOPOLOGY, +@@ -104,7 +105,7 @@ EDIT_FS, + + EDIT_HOSTDEV_ROMBAR, + +-) = range(1, 43) ++) = range(1, 44) + + + # Columns in hw list model +@@ -1712,7 +1713,11 @@ class vmmDetails(vmmGObjectUI): + def config_maxvcpus_changed(self, ignore): + if self.widget("config-maxvcpus").get_sensitive(): + self.config_cpu_topology_changed() +- self.enable_apply(EDIT_VCPUS) ++ ++ # As this callback can be triggered by other events, set EDIT_MAXVCPUS ++ # only when the value is changed. ++ if self.config_get_maxvcpus() != self.vm.vcpu_max_count(): ++ self.enable_apply(EDIT_MAXVCPUS) + + def on_cpu_copy_host_clicked(self, src): + uiutil.set_grid_row_visible( +@@ -2004,9 +2009,11 @@ class vmmDetails(vmmGObjectUI): + + if self.edited(EDIT_VCPUS): + kwargs["vcpus"] = self.config_get_vcpus() +- kwargs["maxvcpus"] = self.config_get_maxvcpus() + hotplug_args["vcpus"] = kwargs["vcpus"] + ++ if self.edited(EDIT_MAXVCPUS): ++ kwargs["maxvcpus"] = self.config_get_maxvcpus() ++ + if self.edited(EDIT_CPUSET): + kwargs["cpuset"] = self.get_text("config-vcpupin") + diff --git a/53a995cb-fix-usb-storage-removable-syntax.patch b/53a995cb-fix-usb-storage-removable-syntax.patch new file mode 100644 index 00000000..c7589435 --- /dev/null +++ b/53a995cb-fix-usb-storage-removable-syntax.patch @@ -0,0 +1,24 @@ +Subject: details.py: fix typo +From: Giuseppe Scrivano gscrivan@redhat.com Tue Jun 24 13:59:12 2014 +0200 +Date: Tue Jun 24 17:14:19 2014 +0200: +Git: eb5b2613110dfaa23626a16704d18df0dbba5086 + +s|removeable|removable| + +Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1112629 + +Signed-off-by: Giuseppe Scrivano + +Index: virt-manager-1.0.1/virtManager/details.py +=================================================================== +--- virt-manager-1.0.1.orig/virtManager/details.py ++++ virt-manager-1.0.1/virtManager/details.py +@@ -2114,7 +2114,7 @@ class vmmDetails(vmmGObjectUI): + kwargs["shareable"] = self.widget("disk-shareable").get_active() + + if self.edited(EDIT_DISK_REMOVABLE): +- kwargs["removeable"] = bool( ++ kwargs["removable"] = bool( + self.widget("disk-removable").get_active()) + + if self.edited(EDIT_DISK_CACHE): diff --git a/53ac1f8d-createnet-validate-last-page-before-creating-network.patch b/53ac1f8d-createnet-validate-last-page-before-creating-network.patch new file mode 100644 index 00000000..a4cc3d4a --- /dev/null +++ b/53ac1f8d-createnet-validate-last-page-before-creating-network.patch @@ -0,0 +1,24 @@ +Subject: createnet: validate last page before creating the network +From: Giuseppe Scrivano gscrivan@redhat.com Wed Jun 25 12:35:46 2014 +0200 +Date: Thu Jun 26 15:26:37 2014 +0200: +Git: f109b1ed6fc93c1c74675d047affc0fe57ae7243 + +On the last page in the createnet wizard the Next button is changed to +Finish. Ensure the user input is validated also on this page. + +Signed-off-by: Giuseppe Scrivano + +Index: virt-manager-1.0.1/virtManager/createnet.py +=================================================================== +--- virt-manager-1.0.1.orig/virtManager/createnet.py ++++ virt-manager-1.0.1/virtManager/createnet.py +@@ -746,6 +746,9 @@ class vmmCreateNetwork(vmmGObjectUI): + net.install() + + def finish(self, ignore): ++ if not self.validate(PAGE_MAX): ++ return ++ + try: + net = self._build_xmlobj() + except Exception, e: diff --git a/53ac1f8d-fix-show_err-typo.patch b/53ac1f8d-fix-show_err-typo.patch new file mode 100644 index 00000000..26bceb09 --- /dev/null +++ b/53ac1f8d-fix-show_err-typo.patch @@ -0,0 +1,22 @@ +Subject: createnet: fix "show_err" typo +From: Giuseppe Scrivano gscrivan@redhat.com Wed Jun 25 12:28:54 2014 +0200 +Date: Thu Jun 26 15:26:37 2014 +0200: +Git: 81bd6bbffb3a06e179c3cbb6c56a9aced1e9be48 + +s|show_erro|show_err| + +Signed-off-by: Giuseppe Scrivano + +Index: virt-manager-1.0.1/virtManager/createnet.py +=================================================================== +--- virt-manager-1.0.1.orig/virtManager/createnet.py ++++ virt-manager-1.0.1/virtManager/createnet.py +@@ -749,7 +749,7 @@ class vmmCreateNetwork(vmmGObjectUI): + try: + net = self._build_xmlobj() + except Exception, e: +- self.err.show_erro(_("Error generating network xml: %s" % str(e))) ++ self.err.show_err(_("Error generating network xml: %s" % str(e))) + return + + self.topwin.set_sensitive(False) diff --git a/virt-manager.changes b/virt-manager.changes index a2286394..edccd3d3 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Fri Jun 27 10:23:09 MDT 2014 - carnold@suse.com + +- Upstream bug fixes + 53ac1f8d-fix_show_err_typo.patch + 53ac1f8d-createnet-validate-last-page-before-creating-network.patch +- KVM: Don't check for /dev/kvm. It is now built into the kernel + virtman-kvm.patch + +------------------------------------------------------------------- +Tue Jun 24 10:26:35 MDT 2014 - carnold@suse.com + +- Upstream bug fix + 53a995cb-fix-usb-storage-removable-syntax.patch + +------------------------------------------------------------------- +Wed Jun 17 10:52:15 MDT 2014 - carnold@suse.com + +- Upstream bug fixes + 5397b647-createnet-enable-specifying-29-subnet.patch + 539e8cca-createpool-fix-creation-of-gluster-pools.patch + 53a05e73-fix-edit-maxvcpus.patch + ------------------------------------------------------------------- Wed Jun 6 10:15:34 MDT 2014 - carnold@suse.com diff --git a/virt-manager.spec b/virt-manager.spec index ab9895c3..6554e158 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -28,7 +28,7 @@ Name: virt-manager Version: 1.0.1 -Release: 8.2 +Release: 0 Summary: Virtual Machine Manager License: GPL-2.0+ Group: System/Monitoring @@ -72,6 +72,12 @@ Patch33: 538ca3f3-use-correct-dictionary-keys-for-old-pool-net-polling.pa Patch34: 538d00a4-xen-keyboard-cant-be-removed.patch Patch35: 538e2f74-fix-pool-create-call.patch Patch36: 538edb3b-manpage-fix-incorrect-description.patch +Patch37: 5397b647-createnet-enable-specifying-29-subnet.patch +Patch38: 539e8cca-createpool-fix-creation-of-gluster-pools.patch +Patch39: 53a05e73-fix-edit-maxvcpus.patch +Patch40: 53a995cb-fix-usb-storage-removable-syntax.patch +Patch41: 53ac1f8d-fix-show_err-typo.patch +Patch42: 53ac1f8d-createnet-validate-last-page-before-creating-network.patch Patch50: virtman-desktop.patch Patch51: virtman-cdrom.patch Patch52: virtman-kvm.patch @@ -229,6 +235,12 @@ machine). %patch34 -p1 %patch35 -p1 %patch36 -p1 +%patch37 -p1 +%patch38 -p1 +%patch39 -p1 +%patch40 -p1 +%patch41 -p1 +%patch42 -p1 %patch50 -p1 %patch51 -p1 %patch52 -p1 diff --git a/virtinst-detect-windows-media.patch b/virtinst-detect-windows-media.patch index a2763cf2..97fdd6cd 100644 --- a/virtinst-detect-windows-media.patch +++ b/virtinst-detect-windows-media.patch @@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py =================================================================== --- virt-manager-1.0.1.orig/virtinst/urlfetcher.py +++ virt-manager-1.0.1/virtinst/urlfetcher.py -@@ -383,6 +383,24 @@ def _distroFromContent(fetcher, arch, vm +@@ -386,6 +386,24 @@ def _distroFromContent(fetcher, arch, vm return ob @@ -27,7 +27,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py def getDistroStore(guest, fetcher): stores = [] logging.debug("Finding distro store for location=%s", fetcher.location) -@@ -402,6 +420,10 @@ def getDistroStore(guest, fetcher): +@@ -405,6 +423,10 @@ def getDistroStore(guest, fetcher): if dist: return dist @@ -38,7 +38,7 @@ Index: virt-manager-1.0.1/virtinst/urlfetcher.py # FIXME: This 'distro ==' doesn't cut it. 'distro' is from our os # dictionary, so would look like 'fedora9' or 'rhel5', so this needs # to be a bit more intelligent -@@ -1148,6 +1170,13 @@ class ALTLinuxDistro(Distro): +@@ -1151,6 +1173,13 @@ class ALTLinuxDistro(Distro): logging.debug("Regex didn't match, not a %s distro", self.name) return False diff --git a/virtman-autorestart.patch b/virtman-autorestart.patch index 9e7499a0..991b94bd 100644 --- a/virtman-autorestart.patch +++ b/virtman-autorestart.patch @@ -2,7 +2,7 @@ Index: virt-manager-1.0.1/virtManager/details.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/details.py +++ virt-manager-1.0.1/virtManager/details.py -@@ -2049,10 +2049,10 @@ class vmmDetails(vmmGObjectUI): +@@ -2056,10 +2056,10 @@ class vmmDetails(vmmGObjectUI): return self._change_config_helper(self.vm.define_memory, kwargs, hotplug_args=hotplug_args) @@ -17,7 +17,7 @@ Index: virt-manager-1.0.1/virtManager/details.py auto = self.widget("config-autostart") try: self.vm.set_autostart(auto.get_active()) -@@ -2061,6 +2061,9 @@ class vmmDetails(vmmGObjectUI): +@@ -2068,6 +2068,9 @@ class vmmDetails(vmmGObjectUI): (_("Error changing autostart value: %s") % str(e))) return False @@ -27,7 +27,7 @@ Index: virt-manager-1.0.1/virtManager/details.py if self.edited(EDIT_BOOTORDER): kwargs["boot_order"] = self.get_config_boot_order() -@@ -2374,6 +2377,8 @@ class vmmDetails(vmmGObjectUI): +@@ -2381,6 +2384,8 @@ class vmmDetails(vmmGObjectUI): buttons=Gtk.ButtonsType.OK, dialog_type=dtype) diff --git a/virtman-default-lxc-uri.patch b/virtman-default-lxc-uri.patch index 515d2146..650b16b7 100644 --- a/virtman-default-lxc-uri.patch +++ b/virtman-default-lxc-uri.patch @@ -14,7 +14,7 @@ Index: virt-manager-1.0.1/virtManager/connect.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/connect.py +++ virt-manager-1.0.1/virtManager/connect.py -@@ -117,6 +117,10 @@ class vmmConnect(vmmGObjectUI): +@@ -116,6 +116,10 @@ class vmmConnect(vmmGObjectUI): return "qemu:///system" else: return "qemu:///session" diff --git a/virtman-device-flags.patch b/virtman-device-flags.patch index 2aeea4ff..e5e1e4a9 100644 --- a/virtman-device-flags.patch +++ b/virtman-device-flags.patch @@ -25,7 +25,7 @@ Index: virt-manager-1.0.1/virtManager/details.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/details.py +++ virt-manager-1.0.1/virtManager/details.py -@@ -2283,6 +2283,17 @@ class vmmDetails(vmmGObjectUI): +@@ -2290,6 +2290,17 @@ class vmmDetails(vmmGObjectUI): text1=(_("Are you sure you want to remove this device?"))): return diff --git a/virtman-kvm.patch b/virtman-kvm.patch index c0c30db5..6c2e8393 100644 --- a/virtman-kvm.patch +++ b/virtman-kvm.patch @@ -1,14 +1,13 @@ -Index: virt-manager-1.0.0/virtManager/connect.py +Index: virt-manager-1.0.1/virtManager/connect.py =================================================================== ---- virt-manager-1.0.0.orig/virtManager/connect.py -+++ virt-manager-1.0.0/virtManager/connect.py -@@ -110,7 +110,8 @@ class vmmConnect(vmmGObjectUI): +--- virt-manager-1.0.1.orig/virtManager/connect.py ++++ virt-manager-1.0.1/virtManager/connect.py +@@ -110,7 +110,7 @@ class vmmConnect(vmmGObjectUI): if (os.path.exists("/usr/bin/qemu") or os.path.exists("/usr/bin/qemu-kvm") or - os.path.exists("/usr/bin/kvm") or + os.path.exists("/usr/bin/qemu-system-x86_64") or -+ os.path.exists("/dev/kvm") or os.path.exists("/usr/libexec/qemu-kvm")): if always_system or os.geteuid() == 0: return "qemu:///system" diff --git a/virtman-prevent-double-click-starting-vm-twice.patch b/virtman-prevent-double-click-starting-vm-twice.patch index 3fadda0b..021447d9 100644 --- a/virtman-prevent-double-click-starting-vm-twice.patch +++ b/virtman-prevent-double-click-starting-vm-twice.patch @@ -4,7 +4,7 @@ Index: virt-manager-1.0.1/virtManager/details.py =================================================================== --- virt-manager-1.0.1.orig/virtManager/details.py +++ virt-manager-1.0.1/virtManager/details.py -@@ -1461,6 +1461,9 @@ class vmmDetails(vmmGObjectUI): +@@ -1462,6 +1462,9 @@ class vmmDetails(vmmGObjectUI): self.widget("details-menu-usb-redirection").set_sensitive(can_usb) def control_vm_run(self, src_ignore):