From c085d819a861babde6bed8b5a3ba294689662d34 Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Wed, 7 Feb 2018 16:59:50 +0000 Subject: [PATCH] =?UTF-8?q?-=20Update=20to=20virt-manager=201.5.0=20(bsc#1?= =?UTF-8?q?027942)=20=20=20virt-manager-1.5.0.tar.bz2=20=20=20*=20python3?= =?UTF-8?q?=20prep=20work=20(Radostin=20Stoyanov,=20Cole=20Robinson,=20C?= =?UTF-8?q?=C3=A9dric=20Bosdonnat)=20=20=20*=20Switch=20=E2=80=93location?= =?UTF-8?q?=20ISO=20to=20use=20isoinfo=20(Andrew=20Wong)=20=20=20*=20virt-?= =?UTF-8?q?install:=20add=20=E2=80=93cpu=20numa=20distance=20handling=20(M?= =?UTF-8?q?enno=20Lageman)=20=20=20*=20virt-install:=20fix=20=E2=80=93disk?= =?UTF-8?q?=20for=20rbd=20volumes=20with=20auth=20(Rauno=20V=C3=A4li)=20?= =?UTF-8?q?=20=20*=20virt-install:=20add=20=E2=80=93cputune=20vcpupin=20ha?= =?UTF-8?q?ndling=20(Wim=20ten=20Have)=20=20=20*=20details=20ui:=20Showing?= =?UTF-8?q?=20attached=20scsi=20devices=20per=20controller=20(Lin=20Ma)=20?= =?UTF-8?q?=20=20*=20network=20ui:=20Show=20details=20about=20SR-IOV=20VF?= =?UTF-8?q?=20pool=20(Lin=20Ma)=20=20=20*=20Greatly=20expand=20UI=20test?= =?UTF-8?q?=20suite=20coverage=20-=20Dropped=20patches=20=20=200001-Improv?= =?UTF-8?q?e-container-image-url-example.patch=20=20=200001-py3-store-exce?= =?UTF-8?q?ption-variables-for-use-outside-except.patch=20=20=200002-creat?= =?UTF-8?q?e-wizard-fix-alignment-in-os-container-page.patch=20=20=200003-?= =?UTF-8?q?oscontainer-ask-root-password-in-the-wizard.patch=20=20=200004-?= =?UTF-8?q?Harmonize-invisible=5Fchar-values.patch=20=20=20083dfcc8-Show-d?= =?UTF-8?q?etails-about-the-network-of-SR-IOV-VF-pool.patch=20=20=2008a58d?= =?UTF-8?q?61-pycodestyle-remove-description-of-fixed-errors.patch=20=20?= =?UTF-8?q?=200c6bcb09-fix-bytes-string-mess-in-serial-console.patch=20=20?= =?UTF-8?q?=200e812e3c-dont-skip-authentication-for-listen-type-none-with-?= =?UTF-8?q?fixed-QEMU.patch=20=20=2023aaf852-network-Set-bridge-name-to-No?= =?UTF-8?q?ne-instead-of-blank.patch=20=20=202d276ebe-progress-dont-overwr?= =?UTF-8?q?ite-format.patch=20=20=202eb455c9-correctly-calculate-virtio-sc?= =?UTF-8?q?si-controller-index.patch=20=20=20374a3779-urlfetcher-write-tes?= =?UTF-8?q?t-file-as-binary-content.patch=20=20=2037ea5207-replace-Standar?= =?UTF-8?q?dError-with-Exception.patch=20=20=203b769643-dont-add-URI-into-?= =?UTF-8?q?params-for-tunneled-migration.patch=20=20=203be78d1f-addhardwar?= =?UTF-8?q?e-dont-allow-panic-option-where-not-supported.patch=20=20=2044d?= =?UTF-8?q?e92b7-use-reload-from-imp-module.patch=20=20=2063fce081-pycodes?= =?UTF-8?q?tyle-Use-isinstance-for-type-checking.patch=20=20=2067122615-py?= =?UTF-8?q?thon2to3-division-compatability.patch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=406 --- ...-Improve-container-image-url-example.patch | 28 -- ...ion-variables-for-use-outside-except.patch | 30 -- ...d-fix-alignment-in-os-container-page.patch | 442 ----------------- ...iner-ask-root-password-in-the-wizard.patch | 120 ----- 0004-Harmonize-invisible_char-values.patch | 73 --- ...-about-the-network-of-SR-IOV-VF-pool.patch | 226 --------- ...e-remove-description-of-fixed-errors.patch | 26 - ...-bytes-string-mess-in-serial-console.patch | 39 -- ...for-listen-type-none-with-fixed-QEMU.patch | 42 -- ...bridge-name-to-None-instead-of-blank.patch | 23 - 2d276ebe-progress-dont-overwrite-format.patch | 30 -- ...lculate-virtio-scsi-controller-index.patch | 43 -- ...er-write-test-file-as-binary-content.patch | 22 - ...replace-StandardError-with-Exception.patch | 28 -- ...I-into-params-for-tunneled-migration.patch | 22 - ...low-panic-option-where-not-supported.patch | 24 - 44de92b7-use-reload-from-imp-module.patch | 24 - ...yle-Use-isinstance-for-type-checking.patch | 316 ------------ ...15-python2to3-division-compatability.patch | 344 ------------- ...-import-reduce-from-functools-module.patch | 54 --- ...rt-for-parsing-formatting-SR-IOV-VFs.patch | 83 ---- ...-existing-block-device-while-cloning.patch | 34 -- ...remove-redundant-variable-assignment.patch | 19 - 75210ed3-replace-StringIO-with-io.patch | 139 ------ ...ee-pycodestyle-fix-all-E125-warnings.patch | 458 ------------------ ...o-scsi-controller-target-calculation.patch | 43 -- ...-mutated-during-iteration-on-python3.patch | 19 - ...-APPLICATION_STATUS-for-appindicator.patch | 23 - ...CLIArgument-instantiation-less-crazy.patch | 215 -------- ...ignore-comments-in-keymap-conf-files.patch | 30 -- ...c4-dont-compare-between-None-and-int.patch | 49 -- ...baseclass-Fix-UI-file-loading-on-py3.patch | 24 - ...u-order-XML-output-like-libvirt-does.patch | 37 -- ...3b60-undefine-only-persistent-domain.patch | 47 -- bc3c9a9d-progress-remove-unused-import.patch | 18 - ...wer-if-graphics-has-listen-type-none.patch | 42 -- ...n-Another-py3-exception-variable-fix.patch | 31 -- ...progress-remove-trailing-white-space.patch | 145 ------ ...implicitly-depend-on-dict-hash-order.patch | 92 ---- ...-manager-drop-python2-only-cmp-usage.patch | 69 --- ...d4f-remove-deprecated-statvfs-module.patch | 53 -- e2ad4b2f-convert-iteritems-to-items.patch | 28 -- ...-convert-to-long-the-calculated-size.patch | 37 -- ...e-enumerate-instead-of-range-and-len.patch | 74 --- ...cepanic-dont-return-empty-model-list.patch | 30 -- ...nst-Fix-URLFetcher-for-reading-files.patch | 20 - virt-manager-1.4.3.tar.bz2 | 3 - virt-manager-1.5.0.tar.bz2 | 3 + virt-manager.changes | 61 +++ virt-manager.spec | 97 +--- virtinst-add-caasp-support.patch | 12 +- virtinst-add-ppc64-arch-support.patch | 10 +- virtinst-add-sle15-detection-support.patch | 22 +- virtinst-detect-oes-distros.patch | 12 +- virtinst-fix-sle-distro-parsing.patch | 8 +- virtinst-nfs-install-sanitize.patch | 36 +- virtinst-python2-to-python3-conversion.patch | 146 +++--- virtinst-s390x-disable-graphics.patch | 8 +- virtinst-storage-ocfs2.patch | 8 +- virtinst-use-qemu-for-cdrom-device.patch | 8 +- virtinst-use-xenpae-kernel-for-32bit.patch | 8 +- virtinst-vol-default-nocow.patch | 14 +- virtinst-xen-drive-type.patch | 8 +- virtinst-xenbus-disk-index-fix.patch | 10 +- virtman-add-connect-default.patch | 10 +- virtman-allow-creating-i686-vm.patch | 8 +- ...roy-from-shutdown-menu-of-crashed-vm.patch | 14 +- virtman-default-guest-from-host-os.patch | 10 +- virtman-default-to-xen-pv.patch | 8 +- virtman-kvm.patch | 8 +- virtman-load-stored-uris.patch | 8 +- virtman-packages.patch | 28 +- virtman-python2-to-python3-conversion.patch | 210 ++++---- virttests-python2-to-python3-conversion.patch | 58 +-- 74 files changed, 402 insertions(+), 4249 deletions(-) delete mode 100644 0001-Improve-container-image-url-example.patch delete mode 100644 0001-py3-store-exception-variables-for-use-outside-except.patch delete mode 100644 0002-create-wizard-fix-alignment-in-os-container-page.patch delete mode 100644 0003-oscontainer-ask-root-password-in-the-wizard.patch delete mode 100644 0004-Harmonize-invisible_char-values.patch delete mode 100644 083dfcc8-Show-details-about-the-network-of-SR-IOV-VF-pool.patch delete mode 100644 08a58d61-pycodestyle-remove-description-of-fixed-errors.patch delete mode 100644 0c6bcb09-fix-bytes-string-mess-in-serial-console.patch delete mode 100644 0e812e3c-dont-skip-authentication-for-listen-type-none-with-fixed-QEMU.patch delete mode 100644 23aaf852-network-Set-bridge-name-to-None-instead-of-blank.patch delete mode 100644 2d276ebe-progress-dont-overwrite-format.patch delete mode 100644 2eb455c9-correctly-calculate-virtio-scsi-controller-index.patch delete mode 100644 374a3779-urlfetcher-write-test-file-as-binary-content.patch delete mode 100644 37ea5207-replace-StandardError-with-Exception.patch delete mode 100644 3b769643-dont-add-URI-into-params-for-tunneled-migration.patch delete mode 100644 3be78d1f-addhardware-dont-allow-panic-option-where-not-supported.patch delete mode 100644 44de92b7-use-reload-from-imp-module.patch delete mode 100644 63fce081-pycodestyle-Use-isinstance-for-type-checking.patch delete mode 100644 67122615-python2to3-division-compatability.patch delete mode 100644 69c84bea-import-reduce-from-functools-module.patch delete mode 100644 6dfc4de1-add-support-for-parsing-formatting-SR-IOV-VFs.patch delete mode 100644 6e6f59e7-diskbackend-get-a-proper-size-of-existing-block-device-while-cloning.patch delete mode 100644 73de8285-systray-remove-redundant-variable-assignment.patch delete mode 100644 75210ed3-replace-StringIO-with-io.patch delete mode 100644 7f1b4cee-pycodestyle-fix-all-E125-warnings.patch delete mode 100644 7fc7e94f-fix-virtio-scsi-controller-target-calculation.patch delete mode 100644 91c0669c-cli-Fix-OrderedDict-mutated-during-iteration-on-python3.patch delete mode 100644 9617d126-systray-Use-APPLICATION_STATUS-for-appindicator.patch delete mode 100644 999dbb36-cli-Make-VirtCLIArgument-instantiation-less-crazy.patch delete mode 100644 9a9f9ecd-ignore-comments-in-keymap-conf-files.patch delete mode 100644 a2bcd6c4-dont-compare-between-None-and-int.patch delete mode 100644 b5b2433a-baseclass-Fix-UI-file-loading-on-py3.patch delete mode 100644 b8fa0c6b-xmlnsqemu-order-XML-output-like-libvirt-does.patch delete mode 100644 b9bc3b60-undefine-only-persistent-domain.patch delete mode 100644 bc3c9a9d-progress-remove-unused-import.patch delete mode 100644 bc8c5b07-append--attach-to-virt-viewer-if-graphics-has-listen-type-none.patch delete mode 100644 c174b550-connection-Another-py3-exception-variable-fix.patch delete mode 100644 d1e1cf64-progress-remove-trailing-white-space.patch delete mode 100644 d2648d81-virtconv-dont-implicitly-depend-on-dict-hash-order.patch delete mode 100644 d82022bd-manager-drop-python2-only-cmp-usage.patch delete mode 100644 dff00d4f-remove-deprecated-statvfs-module.patch delete mode 100644 e2ad4b2f-convert-iteritems-to-items.patch delete mode 100644 e73abe5a-diskbackend-convert-to-long-the-calculated-size.patch delete mode 100644 f41aafc7-Use-enumerate-instead-of-range-and-len.patch delete mode 100644 f7c8cf9f-devicepanic-dont-return-empty-model-list.patch delete mode 100644 f836e47b-virtinst-Fix-URLFetcher-for-reading-files.patch delete mode 100644 virt-manager-1.4.3.tar.bz2 create mode 100644 virt-manager-1.5.0.tar.bz2 diff --git a/0001-Improve-container-image-url-example.patch b/0001-Improve-container-image-url-example.patch deleted file mode 100644 index fe14d785..00000000 --- a/0001-Improve-container-image-url-example.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b567947b82bb175c3f6234a3b059a2141c70a805 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Tue, 12 Dec 2017 17:12:34 +0100 -Subject: [PATCH 1/3] Improve container image url example - -Replace the docker://fedora example by a string that shows more of the -possible values, like how to specify a user or server. While at it, -the image name is no distro agnostic. ---- - ui/create.ui | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ui/create.ui b/ui/create.ui -index dd50cdf0..142a7356 100644 ---- a/ui/create.ui -+++ b/ui/create.ui -@@ -1776,7 +1776,7 @@ connections is not yet supported.</small> - - - True -- docker://fedora -+ docker://srv:1234/myimg:tag - - - --- -2.15.1 - diff --git a/0001-py3-store-exception-variables-for-use-outside-except.patch b/0001-py3-store-exception-variables-for-use-outside-except.patch deleted file mode 100644 index d4a39fc1..00000000 --- a/0001-py3-store-exception-variables-for-use-outside-except.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d4b7853b17bd24e0d15a6887b877a627da361589 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Wed, 20 Dec 2017 09:38:18 +0100 -Subject: [virt-manager][PATCH] py3: store exception variables for use outside - except - -In python3 exceptions aren't defined outside the except block. Leading -to 'UnboundLocalError: local variable 'e' referenced before assignment' -errors. - -To work around this, store the local variable into one that will have a -longer life. ---- - virtManager/connection.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: virt-manager-1.4.3/virtManager/connection.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/connection.py -+++ virt-manager-1.4.3/virtManager/connection.py -@@ -1441,7 +1441,8 @@ class vmmConnection(vmmGObject): - self._tick(*args, **kwargs) - except KeyboardInterrupt: - raise -- except Exception as e: -+ except Exception as err: -+ e = err - pass - - if e is None: diff --git a/0002-create-wizard-fix-alignment-in-os-container-page.patch b/0002-create-wizard-fix-alignment-in-os-container-page.patch deleted file mode 100644 index 03faf699..00000000 --- a/0002-create-wizard-fix-alignment-in-os-container-page.patch +++ /dev/null @@ -1,442 +0,0 @@ -From 1e5437158dc83069d84cb27503414306a25d7264 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Wed, 13 Dec 2017 15:49:50 +0100 -Subject: [PATCH 2/3] create wizard: fix alignment in os container page - -The checkbox to create the root FS should be aligned with the label of -the root FS folder. ---- - ui/create.ui | 317 +++++++++++++++++++++++++++++++---------------------------- - 1 file changed, 166 insertions(+), 151 deletions(-) - -diff --git a/ui/create.ui b/ui/create.ui -index 142a7356..ae9d47d3 100644 ---- a/ui/create.ui -+++ b/ui/create.ui -@@ -1600,11 +1600,13 @@ User shouldn't see this. - - True - False -+ start - 12 - - - True - False -+ start - vertical - 12 - -@@ -1651,107 +1653,180 @@ User shouldn't see this. - 0 - - -+ -+ -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ True -+ False -+ vertical -+ 12 -+ -+ -+ True -+ False -+ 6 - -- -+ - True - False -- 6 -- -- -- True -- False -- gtk-dialog-warning -- -- -- False -- True -- 0 -- -- -- -- -- True -- False -- start -- <small>The OS directory tree must already exist. To enable OS directory tree creation, -+ gtk-dialog-warning -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ False -+ start -+ <small>The OS directory tree must already exist. To enable OS directory tree creation, - please install <a href="https://github.com/virt-manager/virt-bootstrap">virt-bootrap</a></small> -- True -- -- -- True -- True -- 1 -- -- -+ True -+ -+ -+ True -+ True -+ 1 -+ -+ -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ False -+ 6 -+ -+ -+ True -+ False -+ gtk-dialog-warning - - - False - True -+ 0 -+ -+ -+ -+ -+ True -+ False -+ start -+ <small>The OS directory tree must already exist. Creating an OS directory tree for remote -+connections is not yet supported.</small> -+ True -+ -+ -+ True -+ True - 1 - - -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ Create OS directory tree from container image -+ True -+ True -+ False -+ True -+ -+ -+ -+ False -+ True -+ 2 -+ -+ -+ -+ -+ True -+ False -+ False -+ 10 -+ vertical -+ 10 - -- -+ - True - False -- 6 - -- -+ - True - False -- gtk-dialog-warning -+ Source URI: - - -- False -- True -- 0 -+ 0 -+ 0 - - - -- -+ - True - False -- start -- <small>The OS directory tree must already exist. Creating an OS directory tree for remote --connections is not yet supported.</small> -- True -+ True -+ True -+ -+ -+ True -+ docker://srv:1234/myimg:tag -+ -+ - - -- True -- True -- 1 -+ 1 -+ 0 - - - - - False - True -- 2 -+ 0 - - - -- -- Create OS directory tree from container image -+ -+ Do not verify TLS certificates of registry - True - True - False - True -- - - - False - True -- 3 -+ 1 - - - -- -+ - True -- False -- False -- 10 -- vertical -- 10 -+ True - - - True -@@ -1760,7 +1835,8 @@ connections is not yet supported.</small> - - True - False -- Source URI: -+ 10 -+ Username: - - - 0 -@@ -1768,129 +1844,68 @@ connections is not yet supported.</small> - - - -- -+ - True - False -- True -- True -- -- -- True -- docker://srv:1234/myimg:tag -- -- -+ 10 -+ Password: - - -- 1 -- 0 -+ 0 -+ 1 - - -- -- -- False -- True -- 0 -- -- -- -- -- Do not verify TLS certificates of registry -- True -- True -- False -- True -- -- -- False -- True -- 1 -- -- -- -- -- True -- True - -- -+ - True -- False -- -- -- True -- False -- 10 -- Username: -- -- -- 0 -- 0 -- -- -- -- -- True -- False -- 10 -- Password: -- -- -- 0 -- 1 -- -- -- -- -- True -- True -- -- -- 1 -- 0 -- -- -- -- -- True -- True -- False -- * -- password -- -- -- 1 -- 1 -- -- -+ True - -+ -+ 1 -+ 0 -+ - -- -- -+ -+ - True -- False -- Credentials for accessing the source registry -+ True -+ False -+ * -+ password - -+ -+ 1 -+ 1 -+ - - -- -- False -- True -- 2 -- -+ -+ -+ -+ True -+ False -+ Credentials for accessing the source registry -+ - - - - False - True -- 4 -+ 2 - - - -+ -+ False -+ True -+ 3 -+ - - - - True - True -- 1 -+ 2 - - - --- -2.15.1 - diff --git a/0003-oscontainer-ask-root-password-in-the-wizard.patch b/0003-oscontainer-ask-root-password-in-the-wizard.patch deleted file mode 100644 index 98d84c63..00000000 --- a/0003-oscontainer-ask-root-password-in-the-wizard.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 7fb94b1bec19cb01243b6f50483a7ae4ba5b4b76 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Thu, 14 Dec 2017 08:49:53 +0100 -Subject: [PATCH 3/3] oscontainer: ask root password in the wizard - -When creating a new root file system out of an downloaded image, -the root password is likely to be changed. Add a field for this -in the new guest wizard. ---- - ui/create.ui | 36 ++++++++++++++++++++++++++++++++++++ - virtManager/create.py | 14 ++++++++++++-- - 2 files changed, 48 insertions(+), 2 deletions(-) - -Index: virt-manager-1.4.3/ui/create.ui -=================================================================== ---- virt-manager-1.4.3.orig/ui/create.ui -+++ virt-manager-1.4.3/ui/create.ui -@@ -1901,6 +1901,42 @@ connections is not yet supported.</sm - 3 - - -+ -+ -+ True -+ False -+ -+ -+ True -+ False -+ Root password: -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ True -+ False -+ -+ -+ -+ True -+ True -+ 1 -+ -+ -+ -+ -+ False -+ True -+ 4 -+ -+ - - - True -Index: virt-manager-1.4.3/virtManager/create.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/create.py -+++ virt-manager-1.4.3/virtManager/create.py -@@ -465,6 +465,7 @@ class vmmCreate(vmmGObjectUI): - self.widget("install-oscontainer-source-insecure").set_active(False) - self.widget("install-oscontainer-bootstrap").set_active(False) - self.widget("install-oscontainer-auth-options").set_expanded(False) -+ self.widget("install-oscontainer-rootpw").set_text("") - src_model = (self.widget("install-oscontainer-source-url-combo") - .get_model()) - _populate_media_model(src_model, self.config.get_container_urls()) -@@ -701,7 +702,8 @@ class vmmCreate(vmmGObjectUI): - "install-oscontainer-notsupport-conn": not is_local, - "install-oscontainer-notsupport": not vb_installed, - "install-oscontainer-bootstrap": vb_enabled, -- "install-oscontainer-source": vb_enabled -+ "install-oscontainer-source": vb_enabled, -+ "install-oscontainer-rootpw-box": vb_enabled - } - for w in oscontainer_widget_conf: - self.widget(w).set_visible(oscontainer_widget_conf[w]) -@@ -1329,6 +1331,10 @@ class vmmCreate(vmmGObjectUI): - return self.widget("install-oscontainer-source-insecure").get_active() - - -+ def _get_config_oscontainer_root_password(self): -+ return self.widget("install-oscontainer-rootpw").get_text() -+ -+ - def _should_skip_disk_page(self): - return self._get_config_install_page() in [INSTALL_PAGE_IMPORT, - INSTALL_PAGE_CONTAINER_APP, -@@ -1732,6 +1738,7 @@ class vmmCreate(vmmGObjectUI): - def _container_source_toggle(self, ignore): - enable_src = self.widget("install-oscontainer-bootstrap").get_active() - self.widget("install-oscontainer-source").set_sensitive(enable_src) -+ self.widget("install-oscontainer-rootpw-box").set_sensitive(enable_src) - - # Auto-generate a path if not specified - if enable_src and not self.widget("install-oscontainer-fs").get_text(): -@@ -2577,7 +2584,8 @@ class vmmCreate(vmmGObjectUI): - 'dest': self.widget("install-oscontainer-fs").get_text, - 'user': self._get_config_oscontainer_source_username, - 'passwd': self._get_config_oscontainer_source_password, -- 'insecure': self._get_config_oscontainer_isecure -+ 'insecure': self._get_config_oscontainer_isecure, -+ 'root_password': self._get_config_oscontainer_root_password, - } - for key, getter in list(bootstrap_arg_keys.items()): - bootstrap_args[key] = getter() -@@ -2733,6 +2741,8 @@ class vmmCreate(vmmGObjectUI): - if bootstrap_args['user'] and bootstrap_args['passwd']: - kwargs['username'] = bootstrap_args['user'] - kwargs['password'] = bootstrap_args['passwd'] -+ if bootstrap_args['root_password']: -+ kwargs['root_password'] = bootstrap_args['root_password'] - logging.debug('Start container bootstrap') - try: - virtBootstrap.bootstrap(**kwargs) diff --git a/0004-Harmonize-invisible_char-values.patch b/0004-Harmonize-invisible_char-values.patch deleted file mode 100644 index 8dc9e8e2..00000000 --- a/0004-Harmonize-invisible_char-values.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 697b86a84a2bfd267a30c765b19ba550a55d85c2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Thu, 14 Dec 2017 09:02:30 +0100 -Subject: [PATCH] Harmonize invisible_char values - -To be consistent across the UI, change the few remaining different -invisible_char values to match the most common one. ---- - ui/addhardware.ui | 2 +- - ui/create.ui | 4 ++-- - ui/migrate.ui | 4 ++-- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/ui/addhardware.ui b/ui/addhardware.ui -index eb476dab..44b23068 100644 ---- a/ui/addhardware.ui -+++ b/ui/addhardware.ui -@@ -1290,7 +1290,7 @@ - - True - True -- -+ - - - True -diff --git a/ui/create.ui b/ui/create.ui -index ea92756d..1749ff35 100644 ---- a/ui/create.ui -+++ b/ui/create.ui -@@ -1039,7 +1039,7 @@ bar - True - center - True -- -+ - - - 1 -@@ -1870,7 +1870,7 @@ connections is not yet supported.</small> - True - True - False -- * -+ - password - - -diff --git a/ui/migrate.ui b/ui/migrate.ui -index 943ecb9e..4a98d509 100644 ---- a/ui/migrate.ui -+++ b/ui/migrate.ui -@@ -266,7 +266,7 @@ - - True - True -- -+ - 0 - adjustment1 - -@@ -303,7 +303,7 @@ - - True - True -- -+ - - - False --- -2.15.1 - diff --git a/083dfcc8-Show-details-about-the-network-of-SR-IOV-VF-pool.patch b/083dfcc8-Show-details-about-the-network-of-SR-IOV-VF-pool.patch deleted file mode 100644 index d5201075..00000000 --- a/083dfcc8-Show-details-about-the-network-of-SR-IOV-VF-pool.patch +++ /dev/null @@ -1,226 +0,0 @@ -Subject: host: Show details about the network of SR-IOV VF pool -From: Lin Ma lma@suse.com Fri Sep 22 19:39:10 2017 +0800 -Date: Mon Oct 9 10:22:48 2017 +0200: -Git: 083dfcc8ec9e684052c999b79bb3508a5e9d3c03 - -Signed-off-by: Lin Ma -Signed-off-by: Pavel Hrdina - -diff --git a/ui/host.ui b/ui/host.ui -index 2e5ea496..f5ea3905 100644 ---- a/ui/host.ui -+++ b/ui/host.ui -@@ -1117,6 +1117,108 @@ - 3 - - -+ -+ -+ True -+ True -+ -+ -+ True -+ False -+ vertical -+ 3 -+ -+ -+ True -+ False -+ 5 -+ 6 -+ -+ -+ True -+ False -+ start -+ label -+ True -+ -+ -+ 1 -+ 0 -+ -+ -+ -+ -+ True -+ False -+ start -+ Physical Function: -+ -+ -+ 0 -+ 0 -+ -+ -+ -+ -+ False -+ True -+ 0 -+ -+ -+ -+ -+ True -+ False -+ start -+ Virtual Functions: -+ True -+ -+ -+ False -+ True -+ 1 -+ -+ -+ -+ -+ 144 -+ True -+ True -+ in -+ -+ -+ True -+ True -+ -+ -+ -+ -+ -+ -+ -+ True -+ True -+ 2 -+ -+ -+ -+ -+ -+ -+ True -+ False -+ <b>_SR-IOV information</b> -+ True -+ True -+ -+ -+ -+ -+ True -+ True -+ 4 -+ -+ - - - -diff --git a/virtManager/host.py b/virtManager/host.py -index 84e8865c..560bc0a6 100644 ---- a/virtManager/host.py -+++ b/virtManager/host.py -@@ -24,6 +24,7 @@ from gi.repository import GObject - from gi.repository import Gtk - - from virtinst import Interface -+from virtinst import NodeDevice - from virtinst import util - - from . import uiutil -@@ -167,6 +168,20 @@ class vmmHost(vmmGObjectUI): - self.widget("net-list").append_column(netCol) - netListModel.set_sort_column_id(1, Gtk.SortType.ASCENDING) - -+ # Virtual Function list -+ # [vf-name] -+ vf_list = self.widget("vf-list") -+ vf_list_model = Gtk.ListStore(str) -+ vf_list.set_model(vf_list_model) -+ vf_list.set_headers_visible(False) -+ -+ vfTextCol = Gtk.TreeViewColumn() -+ vf_txt = Gtk.CellRendererText() -+ vfTextCol.pack_start(vf_txt, True) -+ vfTextCol.add_attribute(vf_txt, 'text', 0) -+ vf_list.append_column(vfTextCol) -+ -+ - def init_storage_state(self): - self.storagelist = vmmStorageList(self.conn, self.builder, self.topwin) - self.widget("storage-align").add(self.storagelist.top_box) -@@ -398,6 +413,7 @@ class vmmHost(vmmGObjectUI): - return - - logging.debug("Stopping network '%s'", net.get_name()) -+ self.widget("vf-list").get_model().clear() - vmmAsyncJob.simple_async_noshow(net.stop, [], self, - _("Error stopping network '%s'") % net.get_name()) - -@@ -613,6 +629,35 @@ class vmmHost(vmmGObjectUI): - self.widget("qos-outbound-peak").set_text(qos.outbound_peak or "") - self.widget("qos-outbound-burst").set_text(qos.outbound_burst or "") - -+ def _populate_sriov_state(self, net): -+ (is_vf_pool, pf_name, vfs) = net.get_sriov_vf_networks() -+ -+ self.widget("net-sriov-expander").set_visible(is_vf_pool) -+ if not pf_name: -+ self.widget("pf-name").set_text("N/A") -+ return -+ -+ self.widget("pf-name").set_text(pf_name) -+ -+ vf_list_model = self.widget("vf-list").get_model() -+ vf_list_model.clear() -+ for vf in vfs: -+ addrStr = "%x:%x:%x.%x" % (vf.domain, vf.bus, vf.slot, vf.function) -+ pcidev = NodeDevice.lookupNodedevFromString(self.conn.get_backend(), -+ addrStr) -+ -+ vf_name = None -+ -+ netdevs = self.conn.filter_nodedevs("net") -+ for netdev in netdevs: -+ logging.debug(netdev.xmlobj.parent) -+ if pcidev.name == netdev.xmlobj.parent: -+ vf_name = netdev.xmlobj.interface -+ break -+ -+ vf_list_model.append([vf_name or addrStr]) -+ -+ - def populate_net_state(self, net): - active = net.is_active() - -@@ -642,6 +687,7 @@ class vmmHost(vmmGObjectUI): - self._populate_net_ipv4_state(net) - self._populate_net_ipv6_state(net) - self._populate_qos_state(net) -+ self._populate_sriov_state(net) - - - def reset_net_state(self): -diff --git a/virtManager/network.py b/virtManager/network.py -index cb260497..4c937e0e 100644 ---- a/virtManager/network.py -+++ b/virtManager/network.py -@@ -182,3 +182,15 @@ class vmmNetwork(vmmLibvirtObject): - def get_ipv6_network(self): - ret = self._get_network("ipv6") - return ret + [self._get_static_route("ipv6")] -+ -+ def get_sriov_vf_networks(self): -+ xmlobj = self.get_xmlobj() -+ pf_name = None -+ vfs = None -+ ret = False -+ if xmlobj.forward.mode == "hostdev": -+ ret = True -+ if xmlobj.forward.pf: -+ pf_name = xmlobj.forward.pf[0].dev -+ vfs = xmlobj.forward.vfs -+ return (ret, pf_name, vfs) diff --git a/08a58d61-pycodestyle-remove-description-of-fixed-errors.patch b/08a58d61-pycodestyle-remove-description-of-fixed-errors.patch deleted file mode 100644 index 85483f48..00000000 --- a/08a58d61-pycodestyle-remove-description-of-fixed-errors.patch +++ /dev/null @@ -1,26 +0,0 @@ -Subject: pycodestyle: Remove description of fixed errors -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:42 2017 +0100 -Date: Fri Oct 20 11:49:14 2017 -0400: -Git: 08a58d61450def03e840afe66c63998fc75211be - - -diff --git a/tests/pycodestyle.cfg b/tests/pycodestyle.cfg -index 38584d81..4ba9cf60 100644 ---- a/tests/pycodestyle.cfg -+++ b/tests/pycodestyle.cfg -@@ -6,7 +6,6 @@ format = pylint - # https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes - - --# E121: Continuation line under-indented for hanging indent - # E122: Continuation line missing indentation or outdented - # E123: Closing bracket does not match indentation of opening - # bracket's line -@@ -23,7 +22,6 @@ format = pylint - # E306: Expected 1 blank line before a nested definition - # E402: Module level import not at top of file - # E501: Line too long (82 > 79 characters) --# E722: Do not use bare except, specify exception instead - # E741: Do not use variables named ‘l’, ‘O’, or ‘I’ - - diff --git a/0c6bcb09-fix-bytes-string-mess-in-serial-console.patch b/0c6bcb09-fix-bytes-string-mess-in-serial-console.patch deleted file mode 100644 index 41b90120..00000000 --- a/0c6bcb09-fix-bytes-string-mess-in-serial-console.patch +++ /dev/null @@ -1,39 +0,0 @@ -Subject: python3: fix bytes/string mess in serial console -From: Cédric Bosdonnat cbosdonnat@suse.com Wed Dec 13 12:08:50 2017 +0100 -Date: Wed Dec 20 16:09:35 2017 -0500: -Git: 0c6bcb09176d683e0e7de7623a1a215937c60aa8 - -Add a few encode() and decode() to convert between libvirt stream -functions expecting bytes arrays and Vte callbacks providing strings. - -diff --git a/virtManager/serialcon.py b/virtManager/serialcon.py -index 7caf6db..21ab8ae 100644 ---- a/virtManager/serialcon.py -+++ b/virtManager/serialcon.py -@@ -149,7 +149,7 @@ class LibvirtConsoleConnection(ConsoleConnection): - - self.stream = None - -- self.streamToTerminal = "" -+ self.streamToTerminal = b"" - self.terminalToStream = "" - - def _event_on_stream(self, stream, events, opaque): -@@ -187,7 +187,7 @@ class LibvirtConsoleConnection(ConsoleConnection): - self.terminalToStream): - - try: -- done = self.stream.send(self.terminalToStream) -+ done = self.stream.send(self.terminalToStream.encode()) - except Exception: - logging.exception("Error sending stream data") - self.close() -@@ -262,7 +262,7 @@ class LibvirtConsoleConnection(ConsoleConnection): - return - - terminal.feed(self.streamToTerminal) -- self.streamToTerminal = "" -+ self.streamToTerminal = b"" - - - class vmmSerialConsole(vmmGObject): diff --git a/0e812e3c-dont-skip-authentication-for-listen-type-none-with-fixed-QEMU.patch b/0e812e3c-dont-skip-authentication-for-listen-type-none-with-fixed-QEMU.patch deleted file mode 100644 index 14bc4dfd..00000000 --- a/0e812e3c-dont-skip-authentication-for-listen-type-none-with-fixed-QEMU.patch +++ /dev/null @@ -1,42 +0,0 @@ -Subject: vnc: don't skip authentication for listen type none with fixed QEMU -From: Pavel Hrdina phrdina@redhat.com Tue Jan 16 09:30:50 2018 +0100 -Date: Tue Jan 16 09:42:11 2018 +0100: -Git: 0e812e3c423787ac0392f9c083d20a5ca7d0ed8c - -This was fixed by commit in QEMU. - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1445239 - -Signed-off-by: Pavel Hrdina - -diff --git a/virtManager/domain.py b/virtManager/domain.py -index 183a56c..1134a43 100644 ---- a/virtManager/domain.py -+++ b/virtManager/domain.py -@@ -1198,11 +1198,11 @@ class vmmDomain(vmmLibvirtObject): - flags = 0 - - # Ugly workaround for VNC bug where the display cannot be opened -- # if the listen type is "none". When this gets fixed in QEMU -- # we should skip auth only for broken QEMUs. -+ # if the listen type is "none". This bug was fixed in QEMU-2.9.0. - graphics = self.get_graphics_devices()[0] - if (graphics.type == "vnc" and -- graphics.get_first_listen_type() == "none"): -+ graphics.get_first_listen_type() == "none" and -+ not self.conn.SUPPORT_CONN_VNC_NONE_AUTH): - flags = libvirt.VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH - - return self._backend.openGraphicsFD(0, flags) -diff --git a/virtinst/support.py b/virtinst/support.py -index 115c9b1..c27dd50 100644 ---- a/virtinst/support.py -+++ b/virtinst/support.py -@@ -325,6 +325,7 @@ SUPPORT_CONN_RNG_URANDOM = _make(version="1.3.4") - SUPPORT_CONN_USB3_PORTS = _make(version="1.3.5") - SUPPORT_CONN_MACHVIRT_PCI_DEFAULT = _make(version="3.0.0") - SUPPORT_CONN_QEMU_XHCI = _make(version="3.3.0") -+SUPPORT_CONN_VNC_NONE_AUTH = _make(hv_version={"qemu": "2.9.0"}) - - - # This is for disk . xen supports this, but it's diff --git a/23aaf852-network-Set-bridge-name-to-None-instead-of-blank.patch b/23aaf852-network-Set-bridge-name-to-None-instead-of-blank.patch deleted file mode 100644 index 6299cfd0..00000000 --- a/23aaf852-network-Set-bridge-name-to-None-instead-of-blank.patch +++ /dev/null @@ -1,23 +0,0 @@ -Subject: network: Set bridge name to None instead of blank -From: Lin Ma lma@suse.com Thu Oct 19 16:56:42 2017 +0800 -Date: Thu Oct 19 18:09:19 2017 -0400: -Git: 23aaf8527d63f4565661e0d582bb88af839d4dce - -Trigger libvirt error if user leaves 'net-bridge-name' GtkEntry -blank when specifying shared device name. - -Signed-off-by: Lin Ma - -diff --git a/virtManager/netlist.py b/virtManager/netlist.py -index 772e988d..4f1e991a 100644 ---- a/virtManager/netlist.py -+++ b/virtManager/netlist.py -@@ -314,7 +314,7 @@ class vmmNetworkList(vmmGObjectUI): - - if net_check_bridge and bridge_entry: - net_type = virtinst.VirtualNetworkInterface.TYPE_BRIDGE -- net_src = bridge_entry.get_text() -+ net_src = bridge_entry.get_text() or None - - mode = None - if self.widget("net-source-mode").is_visible(): diff --git a/2d276ebe-progress-dont-overwrite-format.patch b/2d276ebe-progress-dont-overwrite-format.patch deleted file mode 100644 index 1b07d38c..00000000 --- a/2d276ebe-progress-dont-overwrite-format.patch +++ /dev/null @@ -1,30 +0,0 @@ -Subject: progress: Don't overwrite "format" -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:44 2017 +0100 -Date: Fri Oct 20 11:49:14 2017 -0400: -Git: 2d276ebed84ba9f468243989d219940883cf72ad - -Do not overwrite built-in format. [1] - -https://docs.python.org/2/library/functions.html#format - -diff --git a/virtinst/progress.py b/virtinst/progress.py -index 05114ed4..2b070540 100644 ---- a/virtinst/progress.py -+++ b/virtinst/progress.py -@@ -484,12 +484,12 @@ def format_number(number, SI=0, space=' '): - if isinstance(number, int) or isinstance(number, long): - # it's an int or a long, which means it didn't get divided, - # which means it's already short enough -- format = '%i%s%s' -+ fmt = '%i%s%s' - elif number < 9.95: - # must use 9.95 for proper sizing. For example, 9.99 will be - # rounded to 10.0 with the .1f format string (which is too long) -- format = '%.1f%s%s' -+ fmt = '%.1f%s%s' - else: -- format = '%.0f%s%s' -+ fmt = '%.0f%s%s' - -- return(format % (float(number or 0), space, symbols[depth])) -+ return(fmt % (float(number or 0), space, symbols[depth])) diff --git a/2eb455c9-correctly-calculate-virtio-scsi-controller-index.patch b/2eb455c9-correctly-calculate-virtio-scsi-controller-index.patch deleted file mode 100644 index 3af93ed6..00000000 --- a/2eb455c9-correctly-calculate-virtio-scsi-controller-index.patch +++ /dev/null @@ -1,43 +0,0 @@ -Subject: addhardware: Correctly calculate virtio-scsi controller index -From: Lin Ma lma@suse.com Mon Nov 6 20:52:07 2017 +0800 -Date: Wed Nov 22 16:50:33 2017 -0500: -Git: 2eb455c97f1afda33a4b1c87adb2721fac9d9b5f - -Because sata, usb and scsi use same device prefix: sd*, They will be -included into occupied list while we add virtio-scsi disks, This is -wrong and may cause adding additional virtio-scsi controller. - -How to reproduce: -1. fresh install a qemu guest. -2. add 6 virtual USB disks. -3. add disk A on scsi bus. - (then a virtio-scsi controller 0 will be added automatically) -4. add disk B on scsi bus. -5. observe. - -Expected: -disk A and disk B should be connected to virtio-scsi controller 0 because -controller 0 has enough available slots. - -Actual: -disk A was connected to virtio-scsi controller 0. -An additional virtio-scsi controller 1 was added and disk B was connected -to it because virt-manager thought the virtio-scsi controller 0 doesn't -have available slot. - -Signed-off-by: Lin Ma - -diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py -index 4a962e6..e563fe6 100644 ---- a/virtManager/addhardware.py -+++ b/virtManager/addhardware.py -@@ -1456,7 +1456,8 @@ class vmmAddHardware(vmmGObjectUI): - # Save occupied places per controller - occupied = {} - for d in used_disks: -- if d.get_target_prefix() == disk.get_target_prefix(): -+ if (d.get_target_prefix() == disk.get_target_prefix() and -+ d.bus == "scsi"): - num = virtinst.VirtualDisk.target_to_num(d.target) - idx = num // 7 - if idx not in occupied: diff --git a/374a3779-urlfetcher-write-test-file-as-binary-content.patch b/374a3779-urlfetcher-write-test-file-as-binary-content.patch deleted file mode 100644 index 8f052cf5..00000000 --- a/374a3779-urlfetcher-write-test-file-as-binary-content.patch +++ /dev/null @@ -1,22 +0,0 @@ -Subject: urlfetcher: Write test file as binary content -From: Cole Robinson crobinso@redhat.com Sat Oct 21 19:33:30 2017 -0400 -Date: Sat Oct 21 19:41:33 2017 -0400: -Git: 374a3779c402b931554aea06c42a9dcb49c35406 - -Triggers an test_ui error otherwise: - -TypeError: write() argument must be str, not bytes - -diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py -index a45c6383..5dae424c 100644 ---- a/virtinst/urlfetcher.py -+++ b/virtinst/urlfetcher.py -@@ -155,7 +155,7 @@ class _URLFetcher(object): - # pylint: disable=redefined-variable-type - if "VIRTINST_TEST_SUITE" in os.environ: - fn = os.path.join("/tmp", prefix) -- fileobj = open(fn, "w") -+ fileobj = open(fn, "wb") - else: - fileobj = tempfile.NamedTemporaryFile( - dir=self.scratchdir, prefix=prefix, delete=False) diff --git a/37ea5207-replace-StandardError-with-Exception.patch b/37ea5207-replace-StandardError-with-Exception.patch deleted file mode 100644 index 3fe429af..00000000 --- a/37ea5207-replace-StandardError-with-Exception.patch +++ /dev/null @@ -1,28 +0,0 @@ -Subject: Replace 'StandardError' with 'Exception' -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:36:01 2017 +0100 -Date: Fri Oct 20 13:18:31 2017 -0400: -Git: 37ea520773bc7339e114915daac1ca1a8a0334bd - -Python 2 has an exception class called StandardError that has -been removed in Python 3. Use Exception instead. [1] - -[1] http://python3porting.com/differences.html#standarderror - -diff --git a/virtconv/ovf.py b/virtconv/ovf.py -index 3ba21313..16ec5681 100644 ---- a/virtconv/ovf.py -+++ b/virtconv/ovf.py -@@ -269,10 +269,9 @@ def _import_file(doc, ctx, conn, input_file): - - if not bool_val(env_node.prop("required")): - continue -- raise StandardError(_("OVF section '%s' is listed as " -- "required, but parser doesn't know " -- "how to handle it.") % -- env_node.name) -+ raise Exception(_("OVF section '%s' is listed as " -+ "required, but parser doesn't know " -+ "how to handle it.") % env_node.name) - - disk_buses = {} - for node in ctx.xpathEval(vhbase % DEVICE_IDE_BUS): diff --git a/3b769643-dont-add-URI-into-params-for-tunneled-migration.patch b/3b769643-dont-add-URI-into-params-for-tunneled-migration.patch deleted file mode 100644 index 32404ac7..00000000 --- a/3b769643-dont-add-URI-into-params-for-tunneled-migration.patch +++ /dev/null @@ -1,22 +0,0 @@ -Subject: domain: don't add URI into params for tunneled migration -From: Pavel Hrdina phrdina@redhat.com Tue Oct 3 12:24:39 2017 +0200 -Date: Tue Oct 3 12:24:39 2017 +0200: -Git: 3b769643657f906dc2b53c568d7fe748155d9b2b - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1456185 - -Signed-off-by: Pavel Hrdina - -diff --git a/virtManager/domain.py b/virtManager/domain.py -index 6fb54bc..724f83f 100644 ---- a/virtManager/domain.py -+++ b/virtManager/domain.py -@@ -1596,7 +1596,7 @@ class vmmDomain(vmmLibvirtObject): - start_job_progress_thread(self, meter, _("Migrating domain")) - - params = {} -- if dest_uri: -+ if dest_uri and not tunnel: - params[libvirt.VIR_MIGRATE_PARAM_URI] = dest_uri - - if tunnel: diff --git a/3be78d1f-addhardware-dont-allow-panic-option-where-not-supported.patch b/3be78d1f-addhardware-dont-allow-panic-option-where-not-supported.patch deleted file mode 100644 index f68c0736..00000000 --- a/3be78d1f-addhardware-dont-allow-panic-option-where-not-supported.patch +++ /dev/null @@ -1,24 +0,0 @@ -Subject: addhardware: Don't allow panic option where it isn't supported -From: Cole Robinson crobinso@redhat.com Fri Oct 27 09:47:38 2017 +0200 -Date: Fri Oct 27 09:47:38 2017 +0200: -Git: 3be78d1f3f1a3925b3bf04f0ffded21715bcf9e9 - -Like aarch64, basically any arch that doesn't have an explicit panic -model - -diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py -index 3793006c..cd82cd3e 100644 ---- a/virtManager/addhardware.py -+++ b/virtManager/addhardware.py -@@ -404,8 +404,9 @@ class vmmAddHardware(vmmGObjectUI): - True, None) - add_hw_option(_("RNG"), "system-run", PAGE_RNG, True, None) - add_hw_option(_("Panic Notifier"), "system-run", PAGE_PANIC, -- self.conn.check_support(self.conn.SUPPORT_CONN_PANIC_DEVICE), -- _("Not supported for this hypervisor/libvirt combination.")) -+ self.conn.check_support(self.conn.SUPPORT_CONN_PANIC_DEVICE) and -+ virtinst.VirtualPanicDevice.get_models(self.vm.get_xmlobj().os), -+ _("Not supported for this hypervisor/libvirt/arch combination.")) - - def _reset_state(self): - # Storage init diff --git a/44de92b7-use-reload-from-imp-module.patch b/44de92b7-use-reload-from-imp-module.patch deleted file mode 100644 index 14fc0372..00000000 --- a/44de92b7-use-reload-from-imp-module.patch +++ /dev/null @@ -1,24 +0,0 @@ -Subject: Use reload() from imp module -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:56 2017 +0100 -Date: Fri Oct 20 13:18:31 2017 -0400: -Git: 44de92b772dcb264a75832a46d4cf85e21799316 - -In Python 3 the reload() function [1] has been moved in the imp -module. [2] - -[1] https://docs.python.org/2/library/functions.html#reload -[2] https://docs.python.org/3/library/importlib.html#importlib.reload - -diff --git a/tests/__init__.py b/tests/__init__.py -index 19b5d3e9..bea21d85 100644 ---- a/tests/__init__.py -+++ b/tests/__init__.py -@@ -28,7 +28,7 @@ os.environ["VIRTINST_TEST_URL_DIR"] = os.path.abspath( - # pylint: disable=wrong-import-position - from virtcli import cliconfig - # This sets all the cli bits back to their defaults --reload(cliconfig) -+imp.reload(cliconfig) - - from tests import utils - diff --git a/63fce081-pycodestyle-Use-isinstance-for-type-checking.patch b/63fce081-pycodestyle-Use-isinstance-for-type-checking.patch deleted file mode 100644 index 7a9ea17e..00000000 --- a/63fce081-pycodestyle-Use-isinstance-for-type-checking.patch +++ /dev/null @@ -1,316 +0,0 @@ -Subject: pycodestyle: Use isinstance() for type checking -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:41 2017 +0100 -Date: Fri Oct 20 11:49:13 2017 -0400: -Git: 63fce081ed1e4edf44077546d98b4fcdb3f4884c - -This is E721 in pycodestyle [1]: - "do not compare types, use ‘isinstance()’" - -The main differece between "type() is" and "isinstance()" is that -isinstance() supports inheritance. [1] - -This can be seen in the example below: - >>> type(True) is int - False - >>> isinstance(True, int) - True - -As we can see in python 'bool' a subclass of 'int'. - -[1] https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes -[2] https://docs.python.org/2/library/functions.html#isinstance - -diff --git a/tests/clitest.py b/tests/clitest.py -index 7e9e6684..bdc1b448 100644 ---- a/tests/clitest.py -+++ b/tests/clitest.py -@@ -201,7 +201,7 @@ class Command(object): - if conn is None: - raise RuntimeError("skip check is not None, but conn is None") - -- if type(check) is str: -+ if isinstance(check, str): - # pylint: disable=protected-access - if support._check_version(conn, check): - return -diff --git a/virtManager/connection.py b/virtManager/connection.py -index 70da9220..0f7e20db 100644 ---- a/virtManager/connection.py -+++ b/virtManager/connection.py -@@ -1088,7 +1088,7 @@ class vmmConnection(vmmGObject): - try: - self._backend.setKeepAlive(20, 1) - except Exception as e: -- if (type(e) is not AttributeError and -+ if (not isinstance(e, AttributeError) and - not util.is_error_nosupport(e)): - raise - logging.debug("Connection doesn't support KeepAlive, " -diff --git a/virtManager/create.py b/virtManager/create.py -index c695b2b2..1fbc65ef 100644 ---- a/virtManager/create.py -+++ b/virtManager/create.py -@@ -1692,7 +1692,7 @@ class vmmCreate(vmmGObjectUI): - else: - def callback(ignore, text): - widget = cbwidget -- if type(cbwidget) is str: -+ if isinstance(cbwidget, str): - widget = self.widget(cbwidget) - widget.set_text(text) - -diff --git a/virtManager/details.py b/virtManager/details.py -index e74ea5f7..aeac7fd3 100644 ---- a/virtManager/details.py -+++ b/virtManager/details.py -@@ -1520,7 +1520,7 @@ class vmmDetails(vmmGObjectUI): - # On Fedora 19, ret is (bool, str) - # Someday the bindings might be fixed to just return the str, try - # and future proof it a bit -- if type(ret) is tuple and len(ret) >= 2: -+ if isinstance(ret, tuple) and len(ret) >= 2: - ret = ret[1] - # F24 rawhide, ret[1] is a named tuple with a 'buffer' element... - if hasattr(ret, "buffer"): -@@ -3218,7 +3218,7 @@ class vmmDetails(vmmGObjectUI): - olddev = hw_list_model[i][HW_LIST_COL_DEVICE] - - # Existing device, don't remove it -- if type(olddev) is str or olddev in currentDevices: -+ if isinstance(olddev, str) or olddev in currentDevices: - continue - - hw_list_model.remove(_iter) -diff --git a/virtManager/domain.py b/virtManager/domain.py -index 724f83fd..1b278815 100644 ---- a/virtManager/domain.py -+++ b/virtManager/domain.py -@@ -83,7 +83,7 @@ def compare_device(origdev, newdev, idx): - if id(origdev) == id(newdev): - return True - -- if type(origdev) is not type(newdev): -+ if not isinstance(origdev, type(newdev)): - return False - - for devprop in devprops[origdev.virtual_device_type]: -diff --git a/virtManager/error.py b/virtManager/error.py -index 1de6c8b1..1a8fae5a 100644 ---- a/virtManager/error.py -+++ b/virtManager/error.py -@@ -275,7 +275,7 @@ class vmmErrorDialog(vmmGObject): - if _type is not None: - pattern = _type - name = None -- if type(_type) is tuple: -+ if isinstance(_type, tuple): - pattern = _type[0] - name = _type[1] - -diff --git a/virtManager/module_trace.py b/virtManager/module_trace.py -index 8d600f4e..ff76504f 100644 ---- a/virtManager/module_trace.py -+++ b/virtManager/module_trace.py -@@ -83,7 +83,7 @@ def wrap_class(classobj): - - for name in dir(classobj): - obj = getattr(classobj, name) -- if type(obj) is MethodType: -+ if isinstance(obj, MethodType): - wrap_method(classobj, obj) - - -@@ -92,7 +92,7 @@ def wrap_module(module, regex=None): - if regex and not re.match(regex, name): - continue - obj = getattr(module, name) -- if type(obj) is FunctionType: -+ if isinstance(obj, FunctionType): - wrap_func(module, obj) -- if type(obj) is ClassType or type(obj) is type: -+ if isinstance(obj, (ClassType, type)): - wrap_class(obj) -diff --git a/virtManager/packageutils.py b/virtManager/packageutils.py -index 37f96c38..153cc55b 100644 ---- a/virtManager/packageutils.py -+++ b/virtManager/packageutils.py -@@ -38,7 +38,7 @@ def check_packagekit(parent, errbox, packages): - if not packages: - logging.debug("No PackageKit packages to search for.") - return -- if type(packages) is not list: -+ if not isinstance(packages, list): - packages = [packages] - - logging.debug("PackageKit check/install for packages=%s", packages) -diff --git a/virtManager/uiutil.py b/virtManager/uiutil.py -index 2965c51b..d07c2a1e 100644 ---- a/virtManager/uiutil.py -+++ b/virtManager/uiutil.py -@@ -155,7 +155,7 @@ def set_grid_row_visible(child, visible): - based on UI interraction - """ - parent = child.get_parent() -- if type(parent) is not Gtk.Grid: -+ if not isinstance(parent, Gtk.Grid): - raise RuntimeError("Programming error, parent must be grid, " - "not %s" % type(parent)) - -diff --git a/virtManager/viewers.py b/virtManager/viewers.py -index 80bdb083..df164f59 100644 ---- a/virtManager/viewers.py -+++ b/virtManager/viewers.py -@@ -614,7 +614,7 @@ class SpiceViewer(Viewer): - GObject.GObject.connect(channel, "open-fd", - self._channel_open_fd_request) - -- if (type(channel) == SpiceClientGLib.MainChannel and -+ if (isinstance(channel, SpiceClientGLib.MainChannel) and - not self._main_channel): - self._main_channel = channel - hid = self._main_channel.connect_after("channel-event", -diff --git a/virtconv/ovf.py b/virtconv/ovf.py -index 0a770c98..3ba21313 100644 ---- a/virtconv/ovf.py -+++ b/virtconv/ovf.py -@@ -151,7 +151,7 @@ def _import_file(doc, ctx, conn, input_file): - ret = ctx.xpathEval(path) - result = None - if ret is not None: -- if type(ret) == list: -+ if isinstance(ret, list): - if len(ret) >= 1: - result = ret[0].content - else: -diff --git a/virtinst/cli.py b/virtinst/cli.py -index 17a2e70f..1b86cad5 100644 ---- a/virtinst/cli.py -+++ b/virtinst/cli.py -@@ -1002,7 +1002,7 @@ def _parse_optstr_to_dict(optstr, virtargs, remove_first): - virtarg.is_list): - optdict[cliname] = [] - -- if type(optdict.get(cliname)) is list: -+ if isinstance(optdict.get(cliname), list): - optdict[cliname].append(val) - else: - optdict[cliname] = val -@@ -2591,7 +2591,7 @@ class _ParserChar(VirtCLIParser): - stub_none = False - - def support_check(self, inst, virtarg): -- if type(virtarg.attrname) is not str: -+ if not isinstance(virtarg.attrname, str): - return - if not inst.supports_property(virtarg.attrname): - raise ValueError(_("%(devtype)s type '%(chartype)s' does not " -diff --git a/virtinst/cloner.py b/virtinst/cloner.py -index 72642f60..7345bdad 100644 ---- a/virtinst/cloner.py -+++ b/virtinst/cloner.py -@@ -88,7 +88,7 @@ class Cloner(object): - doc="Original guest name.") - - def set_original_xml(self, val): -- if type(val) is not str: -+ if not isinstance(val, str): - raise ValueError(_("Original xml must be a string.")) - self._original_xml = val - self._original_guest = Guest(self.conn, -@@ -214,7 +214,7 @@ class Cloner(object): - "(not Cloner.preserve)") - - def set_force_target(self, dev): -- if type(dev) is list: -+ if isinstance(dev, list): - self._force_target = dev[:] - else: - self._force_target.append(dev) -@@ -225,7 +225,7 @@ class Cloner(object): - "despite Cloner's recommendation.") - - def set_skip_target(self, dev): -- if type(dev) is list: -+ if isinstance(dev, list): - self._skip_target = dev[:] - else: - self._skip_target.append(dev) -@@ -237,7 +237,7 @@ class Cloner(object): - "takes precedence over force_target.") - - def set_clone_policy(self, policy_list): -- if type(policy_list) != list: -+ if not isinstance(policy_list, list): - raise ValueError(_("Cloning policy must be a list of rules.")) - self._clone_policy = policy_list - def get_clone_policy(self): -diff --git a/virtinst/progress.py b/virtinst/progress.py -index e9a243b1..d73d4292 100644 ---- a/virtinst/progress.py -+++ b/virtinst/progress.py -@@ -482,7 +482,7 @@ def format_number(number, SI=0, space=' '): - depth = depth + 1 - number = number / step - -- if type(number) == type(1) or type(number) == type(long(1)): -+ if isinstance(number, int) or isinstance(number, long): - # it's an int or a long, which means it didn't get divided, - # which means it's already short enough - format = '%i%s%s' -diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py -index 2dc7a726..c57c9e10 100644 ---- a/virtinst/urlfetcher.py -+++ b/virtinst/urlfetcher.py -@@ -1351,7 +1351,7 @@ class ALTLinuxDistro(Distro): - def _build_distro_list(): - allstores = [] - for obj in globals().values(): -- if type(obj) is type and issubclass(obj, Distro) and obj.name: -+ if isinstance(obj, type) and issubclass(obj, Distro) and obj.name: - allstores.append(obj) - - seen_urldistro = [] -diff --git a/virtinst/util.py b/virtinst/util.py -index 495a0841..2a7bc4d3 100644 ---- a/virtinst/util.py -+++ b/virtinst/util.py -@@ -30,7 +30,7 @@ import libvirt - def listify(l): - if l is None: - return [] -- elif type(l) != list: -+ elif not isinstance(l, list): - return [l] - else: - return l -@@ -61,7 +61,7 @@ def libvirt_collision(collision_cb, val): - - - def validate_uuid(val): -- if type(val) is not str: -+ if not isinstance(val, str): - raise ValueError(_("UUID must be a string.")) - - form = re.match("[a-fA-F0-9]{8}[-]([a-fA-F0-9]{4}[-]){3}[a-fA-F0-9]{12}$", -@@ -99,7 +99,7 @@ def validate_macaddr(val): - if val is None: - return - -- if type(val) is not str: -+ if not isinstance(val, str): - raise ValueError(_("MAC address must be a string.")) - - form = re.match("^([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}$", val) -diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py -index 9e234e9f..550fea86 100644 ---- a/virtinst/xmlbuilder.py -+++ b/virtinst/xmlbuilder.py -@@ -886,7 +886,7 @@ class XMLBuilder(object): - # XMLChildProperty stores a list in propstore, which dict shallow - # copy won't fix for us. - for name, value in ret._propstore.items(): -- if type(value) is not list: -+ if not isinstance(value, list): - continue - ret._propstore[name] = [obj.copy() for obj in ret._propstore[name]] - diff --git a/67122615-python2to3-division-compatability.patch b/67122615-python2to3-division-compatability.patch deleted file mode 100644 index e3f33b57..00000000 --- a/67122615-python2to3-division-compatability.patch +++ /dev/null @@ -1,344 +0,0 @@ -Subject: Python 2/3 division compatability -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:55 2017 +0100 -Date: Sat Jan 27 15:30:17 2018 -0500: -Git: 6712261510953f9c729624dded29bfffd32f88e6 - -In Python 2 the classic devision of integers returns an integer -but in Python 3 it might return float. - -Example: -- Python 2: - Python 3: - >>> 9 / 4 >>> 9 / 4 - 2 2.25 - >>> 9 // 4 >>> 9 // 4 - 2 2 - >>> 9 / 4.0 >>> 9 / 4.0 - 2.25 2.25 - >>> 9 // 4.0 >>> 9 // 4.0 - 2.0 2.0 - -For more info see: https://www.python.org/dev/peps/pep-0238/ - -Index: virt-manager-1.4.3/virtManager/console.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/console.py -+++ virt-manager-1.4.3/virtManager/console.py -@@ -399,12 +399,12 @@ class vmmConsolePages(vmmGObjectUI): - if align_ratio > desktop_ratio: - desktop_w = int(req.height * desktop_ratio) - desktop_h = req.height -- dx = (req.width - desktop_w) / 2 -+ dx = (req.width - desktop_w) // 2 - - else: - desktop_w = req.width -- desktop_h = int(req.width / desktop_ratio) -- dy = (req.height - desktop_h) / 2 -+ desktop_h = int(req.width // desktop_ratio) -+ dy = (req.height - desktop_h) // 2 - - viewer_alloc = Gdk.Rectangle() - viewer_alloc.x = dx -Index: virt-manager-1.4.3/virtManager/create.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/create.py -+++ virt-manager-1.4.3/virtManager/create.py -@@ -691,7 +691,7 @@ class vmmCreate(vmmGObjectUI): - {'maxmem': _pretty_memory(memory)}) - mem_label = ("%s" % - mem_label) -- self.widget("mem").set_range(50, memory / 1024) -+ self.widget("mem").set_range(50, memory // 1024) - self.widget("phys-mem-label").set_markup(mem_label) - - # CPU -@@ -2142,7 +2142,7 @@ class vmmCreate(vmmGObjectUI): - # Change the default values suggested to the user. - ram_size = DEFAULT_MEM - if res and res.get("ram") > 0: -- ram_size = res["ram"] / (1024 ** 2) -+ ram_size = res["ram"] // (1024 ** 2) - self.widget("mem").set_value(ram_size) - - n_cpus = 1 -@@ -2151,7 +2151,7 @@ class vmmCreate(vmmGObjectUI): - self.widget("cpus").set_value(n_cpus) - - if res and res.get("storage"): -- storage_size = int(res["storage"]) / (1024 ** 3) -+ storage_size = int(res["storage"]) // (1024 ** 3) - self._addstorage.widget("storage-size").set_value(storage_size) - - # Validation passed, store the install path (if there is one) in -Index: virt-manager-1.4.3/virtManager/createnet.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/createnet.py -+++ virt-manager-1.4.3/virtManager/createnet.py -@@ -627,7 +627,7 @@ class vmmCreateNetwork(vmmGObjectUI): - 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) -+ start = int(ip.numhosts // 2) - end = int(ip.numhosts - 2) - - src.modify_bg(Gtk.StateType.NORMAL, valid_ip and _green or _red) -Index: virt-manager-1.4.3/virtManager/details.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/details.py -+++ virt-manager-1.4.3/virtManager/details.py -@@ -2584,7 +2584,7 @@ class vmmDetails(vmmGObjectUI): - - def refresh_config_memory(self): - host_mem_widget = self.widget("state-host-memory") -- host_mem = self.vm.conn.host_memory_size() / 1024 -+ host_mem = self.vm.conn.host_memory_size() // 1024 - vm_cur_mem = self.vm.get_memory() / 1024.0 - vm_max_mem = self.vm.maximum_memory() / 1024.0 - -@@ -2965,7 +2965,7 @@ class vmmDetails(vmmGObjectUI): - ram = vid.vram - heads = vid.heads - try: -- ramlabel = ram and "%d MiB" % (int(ram) / 1024) or "-" -+ ramlabel = ram and "%d MiB" % (int(ram) // 1024) or "-" - except Exception: - ramlabel = "-" - -Index: virt-manager-1.4.3/virtManager/domain.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/domain.py -+++ virt-manager-1.4.3/virtManager/domain.py -@@ -1984,7 +1984,7 @@ class vmmDomain(vmmLibvirtObject): - except libvirt.libvirtError as err: - logging.error("Error reading mem stats: %s", err) - -- pcentCurrMem = (curmem / float(totalmem)) * 100 -+ pcentCurrMem = (curmem // float(totalmem)) * 100 - pcentCurrMem = max(0.0, min(pcentCurrMem, 100.0)) - - return pcentCurrMem, curmem -@@ -2033,10 +2033,10 @@ class vmmDomain(vmmLibvirtObject): - "cpuGuestPercent": pcentGuestCpu, - "curmem": curmem, - "currMemPercent": pcentCurrMem, -- "diskRdKiB": rdBytes / 1024, -- "diskWrKiB": wrBytes / 1024, -- "netRxKiB": rxBytes / 1024, -- "netTxKiB": txBytes / 1024, -+ "diskRdKiB": rdBytes // 1024, -+ "diskWrKiB": wrBytes // 1024, -+ "netRxKiB": rxBytes // 1024, -+ "netTxKiB": txBytes // 1024, - } - - for r in ["diskRd", "diskWr", "netRx", "netTx"]: -Index: virt-manager-1.4.3/virtManager/fsdetails.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/fsdetails.py -+++ virt-manager-1.4.3/virtManager/fsdetails.py -@@ -190,7 +190,7 @@ class vmmFSDetails(vmmGObjectUI): - if dev.type != VirtualFilesystem.TYPE_RAM: - self.widget("fs-source").set_text(dev.source) - else: -- self.widget("fs-ram-source-spin").set_value(int(dev.source) / 1024) -+ self.widget("fs-ram-source-spin").set_value(int(dev.source) // 1024) - self.widget("fs-target").set_text(dev.target or "") - self.widget("fs-readonly").set_active(dev.readonly) - -Index: virt-manager-1.4.3/virtManager/graphwidgets.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/graphwidgets.py -+++ virt-manager-1.4.3/virtManager/graphwidgets.py -@@ -150,7 +150,7 @@ class CellRendererSparkline(Gtk.CellRend - graph_width = (cell_area.width - (GRAPH_PAD * 2)) - graph_height = (cell_area.height - (GRAPH_PAD * 2)) - -- pixels_per_point = (graph_width / max(1, len(self.data_array) - 1)) -+ pixels_per_point = (graph_width // max(1, len(self.data_array) - 1)) - - # Graph width needs to be some multiple of the amount of data points - # we have -@@ -316,7 +316,7 @@ class Sparkline(Gtk.DrawingArea): - w = window.get_width() - h = window.get_height() - -- points_per_set = (len(self.data_array) / self.num_sets) -+ points_per_set = (len(self.data_array) // self.num_sets) - pixels_per_point = (float(w) / - (float((points_per_set - 1) or 1))) - -@@ -330,9 +330,9 @@ class Sparkline(Gtk.DrawingArea): - max_ticks = 4 - for index in range(1, max_ticks): - Gtk.render_line(ctx, cr, 1, -- (h / max_ticks) * index, -+ (h // max_ticks) * index, - w - 2, -- (h / max_ticks) * index) -+ (h // max_ticks) * index) - - # Foreground-color graphics context - # This draws the black border -Index: virt-manager-1.4.3/virtManager/manager.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/manager.py -+++ virt-manager-1.4.3/virtManager/manager.py -@@ -1067,7 +1067,7 @@ class vmmManager(vmmGObjectUI): - return - - d1, d2 = obj.disk_io_vectors(GRAPH_LEN, self.max_disk_rate) -- data = [(x + y) / 2 for x, y in zip(d1, d2)] -+ data = [(x + y) // 2 for x, y in zip(d1, d2)] - cell.set_property('data_array', data) - - def network_traffic_img(self, column_ignore, cell, model, _iter, data): -@@ -1076,5 +1076,5 @@ class vmmManager(vmmGObjectUI): - return - - d1, d2 = obj.network_traffic_vectors(GRAPH_LEN, self.max_net_rate) -- data = [(x + y) / 2 for x, y in zip(d1, d2)] -+ data = [(x + y) // 2 for x, y in zip(d1, d2)] - cell.set_property('data_array', data) -Index: virt-manager-1.4.3/virtManager/storagelist.py -=================================================================== ---- virt-manager-1.4.3.orig/virtManager/storagelist.py -+++ virt-manager-1.4.3/virtManager/storagelist.py -@@ -415,7 +415,7 @@ class vmmStorageList(vmmGObjectUI): - model.clear() - - vadj = self.widget("vol-scroll").get_vadjustment() -- vscroll_percent = vadj.get_value() / max(vadj.get_upper(), 1) -+ vscroll_percent = vadj.get_value() // max(vadj.get_upper(), 1) - - for vol in vols: - key = vol.get_connkey() -Index: virt-manager-1.4.3/virtinst/cpu.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/cpu.py -+++ virt-manager-1.4.3/virtinst/cpu.py -@@ -175,18 +175,18 @@ class CPU(XMLBuilder): - vcpus = int(vcpus or 0) - if not self.sockets: - if not self.cores: -- self.sockets = vcpus / self.threads -+ self.sockets = vcpus // self.threads - else: -- self.sockets = vcpus / self.cores -+ self.sockets = vcpus // self.cores - - if not self.cores: - if not self.threads: -- self.cores = vcpus / self.sockets -+ self.cores = vcpus // self.sockets - else: -- self.cores = vcpus / (self.sockets * self.threads) -+ self.cores = vcpus // (self.sockets * self.threads) - - if not self.threads: -- self.threads = vcpus / (self.sockets * self.cores) -+ self.threads = vcpus // (self.sockets * self.cores) - - return - -Index: virt-manager-1.4.3/virtinst/devicedisk.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/devicedisk.py -+++ virt-manager-1.4.3/virtinst/devicedisk.py -@@ -430,7 +430,7 @@ class VirtualDisk(VirtualDevice): - """ - digits = [] - for factor in range(0, 3): -- amt = (num % (26 ** (factor + 1))) / (26 ** factor) -+ amt = (num % (26 ** (factor + 1))) // (26 ** factor) - if amt == 0 and num >= (26 ** (factor + 1)): - amt = 26 - num -= amt -Index: virt-manager-1.4.3/virtinst/diskbackend.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/diskbackend.py -+++ virt-manager-1.4.3/virtinst/diskbackend.py -@@ -404,7 +404,7 @@ class CloneStorageCreator(_StorageCreato - - if msg: - msg += (_(" %d M requested > %d M available") % -- ((need / (1024 * 1024)), (avail / (1024 * 1024)))) -+ ((need // (1024 * 1024)), (avail // (1024 * 1024)))) - return (ret, msg) - - def create(self, progresscb): -Index: virt-manager-1.4.3/virtinst/progress.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/progress.py -+++ virt-manager-1.4.3/virtinst/progress.py -@@ -79,7 +79,7 @@ class TerminalLine: - a number of different elements (default=2). """ - if self._llen < fixed: - return 0 -- return (self._llen - fixed) / elements -+ return (self._llen - fixed) // elements - - def add(self, element, full_len=None): - """ If there is room left in the line, above min_len, add element. -@@ -249,7 +249,7 @@ class TextMeter(BaseMeter): - sofar_size = None - if _text_meter_total_size: - sofar_size = _text_meter_sofar_size + amount_read -- sofar_pc = (sofar_size * 100) / _text_meter_total_size -+ sofar_pc = (sofar_size * 100) // _text_meter_total_size - - # Include text + ui_rate in minimal - tl = TerminalLine(8, 8+1+8) -@@ -385,7 +385,7 @@ class RateEstimator: - (can be None for unknown transfer size)""" - if self.total is None: return None - elif self.total == 0: return 1.0 -- else: return float(self.last_amount_read)/self.total -+ else: return float(self.last_amount_read) / self.total - - ######################################################################### - # support methods -@@ -432,7 +432,7 @@ class RateEstimator: - """ - - if rt < 0: return 0.0 -- shift = int(math.log(rt/start_time)/math.log(2)) -+ shift = int(math.log(rt / start_time) / math.log(2)) - rt = int(rt) - if shift <= 0: return rt - return float(int(rt) >> shift << shift) -@@ -446,10 +446,10 @@ def format_time(seconds, use_hours=0): - return 'Infinite' - else: - seconds = int(seconds) -- minutes = seconds / 60 -+ minutes = seconds // 60 - seconds = seconds % 60 - if use_hours: -- hours = minutes / 60 -+ hours = minutes // 60 - minutes = minutes % 60 - return '%02i:%02i:%02i' % (hours, minutes, seconds) - else: -Index: virt-manager-1.4.3/virtinst/storage.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/storage.py -+++ virt-manager-1.4.3/virtinst/storage.py -@@ -904,13 +904,13 @@ class StorageVolume(_StorageObject): - return (True, _("There is not enough free space on the storage " - "pool to create the volume. " - "(%d M requested allocation > %d M available)") % -- ((self.allocation / (1024 * 1024)), -- (avail / (1024 * 1024)))) -+ ((self.allocation // (1024 * 1024)), -+ (avail // (1024 * 1024)))) - elif self.capacity > avail: - return (False, _("The requested volume capacity will exceed the " - "available pool space when the volume is fully " - "allocated. " - "(%d M requested capacity > %d M available)") % -- ((self.capacity / (1024 * 1024)), -- (avail / (1024 * 1024)))) -+ ((self.capacity // (1024 * 1024)), -+ (avail // (1024 * 1024)))) - return (False, "") diff --git a/69c84bea-import-reduce-from-functools-module.patch b/69c84bea-import-reduce-from-functools-module.patch deleted file mode 100644 index 14fc5f78..00000000 --- a/69c84bea-import-reduce-from-functools-module.patch +++ /dev/null @@ -1,54 +0,0 @@ -Subject: Import reduce() from functools module -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:59 2017 +0100 -Date: Fri Oct 20 13:18:31 2017 -0400: -Git: 69c84bea474c3563975c1f2bfe160a436def020a - -The built-in function reduce() [1] has been moved in the functools -module [2] [3]. - -[1] https://docs.python.org/2/library/functions.html#reduce -[2] https://docs.python.org/3/library/functools.html#functools.reduce -[3] https://docs.python.org/2/library/functools.html#functools.reduce - -diff --git a/virtManager/host.py b/virtManager/host.py -index 560bc0a6..2f22642b 100644 ---- a/virtManager/host.py -+++ b/virtManager/host.py -@@ -18,6 +18,7 @@ - # MA 02110-1301 USA. - # - -+import functools - import logging - - from gi.repository import GObject -@@ -931,7 +932,7 @@ class vmmHost(vmmGObjectUI): - - addrstr = "-" - if ipv6[2]: -- addrstr = reduce(lambda x, y: x + "\n" + y, ipv6[2]) -+ addrstr = functools.reduce(lambda x, y: x + "\n" + y, ipv6[2]) - - self.widget("interface-ipv6-mode").set_text(mode) - self.widget("interface-ipv6-address").set_text(addrstr) -diff --git a/virtManager/sshtunnels.py b/virtManager/sshtunnels.py -index 7f825b86..b00b1889 100644 ---- a/virtManager/sshtunnels.py -+++ b/virtManager/sshtunnels.py -@@ -17,6 +17,7 @@ - # MA 02110-1301 USA. - # - -+import functools - import logging - import os - import Queue -@@ -261,7 +262,7 @@ def _make_ssh_command(ginfo): - argv.append("sh -c") - argv.append("'%s'" % nc_cmd) - -- argv_str = reduce(lambda x, y: x + " " + y, argv[1:]) -+ argv_str = functools.reduce(lambda x, y: x + " " + y, argv[1:]) - logging.debug("Pre-generated ssh command for ginfo: %s", argv_str) - return argv - diff --git a/6dfc4de1-add-support-for-parsing-formatting-SR-IOV-VFs.patch b/6dfc4de1-add-support-for-parsing-formatting-SR-IOV-VFs.patch deleted file mode 100644 index fd4932c6..00000000 --- a/6dfc4de1-add-support-for-parsing-formatting-SR-IOV-VFs.patch +++ /dev/null @@ -1,83 +0,0 @@ -Subject: network: add support for parsing/formatting SR-IOV VFs -From: Lin Ma lma@suse.com Fri Sep 22 19:39:09 2017 +0800 -Date: Mon Oct 9 10:22:48 2017 +0200: -Git: 6dfc4de125022c43cb6e60e2f9e0c395ece159d6 - -Signed-off-by: Lin Ma -Signed-off-by: Pavel Hrdina - -diff --git a/tests/xmlparse-xml/network-vf-pool-in.xml b/tests/xmlparse-xml/network-vf-pool-in.xml -index 821aa075..542757de 100644 ---- a/tests/xmlparse-xml/network-vf-pool-in.xml -+++ b/tests/xmlparse-xml/network-vf-pool-in.xml -@@ -1,5 +1,7 @@ - - passthrough - -+ -+
- - -diff --git a/tests/xmlparse-xml/network-vf-pool-out.xml b/tests/xmlparse-xml/network-vf-pool-out.xml -index 62a73050..83644118 100644 ---- a/tests/xmlparse-xml/network-vf-pool-out.xml -+++ b/tests/xmlparse-xml/network-vf-pool-out.xml -@@ -2,5 +2,6 @@ - new-foo - - -+
- - -diff --git a/tests/xmlparse.py b/tests/xmlparse.py -index cc29eadc..1cceebce 100644 ---- a/tests/xmlparse.py -+++ b/tests/xmlparse.py -@@ -1332,11 +1332,16 @@ class XMLParseTest(unittest.TestCase): - check("mode", "hostdev") - check("managed", "yes") - -- r = net.forward.add_pf() -- r.dev = "eth3" -- check = self._make_checker(r) -+ check = self._make_checker(net.forward.pf[0]) - check("dev", "eth3") - -+ check = self._make_checker(net.forward.vfs[0]) -+ check("type", "pci") -+ check("domain", 0x0000) -+ check("bus", 0x03) -+ check("slot", 0x10) -+ check("function", 0x0) -+ - utils.diff_compare(net.get_xml_config(), outfile) - utils.test_create(conn, net.get_xml_config(), "networkDefineXML") - -diff --git a/virtinst/network.py b/virtinst/network.py -index 183b0e3a..1cc71118 100644 ---- a/virtinst/network.py -+++ b/virtinst/network.py -@@ -77,6 +77,15 @@ class _NetworkForwardPf(XMLBuilder): - dev = XMLProperty("./@dev") - - -+class _NetworkForwardAddress(XMLBuilder): -+ _XML_ROOT_NAME = "address" -+ type = XMLProperty("./@type") -+ domain = XMLProperty("./@domain", is_int=True) -+ bus = XMLProperty("./@bus", is_int=True) -+ slot = XMLProperty("./@slot", is_int=True) -+ function = XMLProperty("./@function", is_int=True) -+ -+ - class _NetworkForward(XMLBuilder): - _XML_ROOT_NAME = "forward" - -@@ -84,6 +93,7 @@ class _NetworkForward(XMLBuilder): - dev = XMLProperty("./@dev") - managed = XMLProperty("./@managed") - pf = XMLChildProperty(_NetworkForwardPf) -+ vfs = XMLChildProperty(_NetworkForwardAddress) - - def add_pf(self): - r = _NetworkForwardPf(self.conn) diff --git a/6e6f59e7-diskbackend-get-a-proper-size-of-existing-block-device-while-cloning.patch b/6e6f59e7-diskbackend-get-a-proper-size-of-existing-block-device-while-cloning.patch deleted file mode 100644 index 01d3000d..00000000 --- a/6e6f59e7-diskbackend-get-a-proper-size-of-existing-block-device-while-cloning.patch +++ /dev/null @@ -1,34 +0,0 @@ -Subject: diskbackend: get a proper size of existing block device while cloning -From: Pavel Hrdina phrdina@redhat.com Tue Oct 3 16:59:13 2017 +0200 -Date: Thu Oct 19 09:12:05 2017 +0200: -Git: 6e6f59e7abfd85b2a53554b7d091e553585e85c8 - -We cannot use os.statvfs() if the clone disk is a block device because -it gets stats about filesystem which in this case is "devtmpfs" mounted -as "/dev". - -As a workaround we can seek to the end of the block device to get -the actual size. - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1450908 - -Signed-off-by: Pavel Hrdina - -diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py -index de745f4d..a08a23e5 100644 ---- a/virtinst/diskbackend.py -+++ b/virtinst/diskbackend.py -@@ -387,8 +387,11 @@ class CloneStorageCreator(_StorageCreator): - def is_size_conflict(self): - ret = False - msg = None -- vfs = os.statvfs(os.path.dirname(self._path)) -- avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL] -+ if self.get_dev_type() == "block": -+ avail = _stat_disk(self._path)[1] -+ else: -+ vfs = os.statvfs(os.path.dirname(self._path)) -+ avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL] - need = long(self._size * 1024 * 1024 * 1024) - if need > avail: - if self._sparse: diff --git a/73de8285-systray-remove-redundant-variable-assignment.patch b/73de8285-systray-remove-redundant-variable-assignment.patch deleted file mode 100644 index 7f964ac3..00000000 --- a/73de8285-systray-remove-redundant-variable-assignment.patch +++ /dev/null @@ -1,19 +0,0 @@ -Subject: systray: Remove redundant variable assignment -From: Radostin Stoyanov rstoyanov1@gmail.com Thu Oct 26 12:00:06 2017 +0100 -Date: Fri Oct 27 10:10:08 2017 +0200: -Git: 73de82852405c85b568f9f6293db60ce8f6a85c6 - -The explicit assignment of "name" is unnecessary. - -diff --git a/virtManager/systray.py b/virtManager/systray.py -index aa62df0a..9011038f 100644 ---- a/virtManager/systray.py -+++ b/virtManager/systray.py -@@ -275,7 +275,6 @@ class vmmSystray(vmmGObject): - return - - for i, name in enumerate(vm_names): -- name = vm_names[i] - connkey = vm_mappings[name] - if connkey in self.conn_vm_menuitems[uri]: - vm_item = self.conn_vm_menuitems[uri][connkey] diff --git a/75210ed3-replace-StringIO-with-io.patch b/75210ed3-replace-StringIO-with-io.patch deleted file mode 100644 index 7b0a19b4..00000000 --- a/75210ed3-replace-StringIO-with-io.patch +++ /dev/null @@ -1,139 +0,0 @@ -Subject: Replace StringIO with io.(StringIO or BytesIO) -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:50 2017 +0100 -Date: Fri Oct 20 13:18:31 2017 -0400: -Git: 75210ed37c0c5de569de73e04488808a2521a011 - -StringIO and cStringIO modules no longer exists in Python 3. [1] -Use either io.StringIO [2] for text or io.BytesIO [3] for bytes. - -[1] http://docs.python.org/3.0/whatsnew/3.0.html -[2] https://docs.python.org/3/library/io.html#text-i-o -[3] https://docs.python.org/3/library/io.html#binary-i-o - -diff --git a/tests/clitest.py b/tests/clitest.py -index bdc1b44..cf140a9 100644 ---- a/tests/clitest.py -+++ b/tests/clitest.py -@@ -16,6 +16,7 @@ - # MA 02110-1301 USA. - - import atexit -+import io - import logging - import os - import shlex -@@ -23,7 +24,6 @@ import shutil - import sys - import traceback - import unittest --import StringIO - - from virtinst import support - -@@ -144,7 +144,7 @@ class Command(object): - oldstdin = sys.stdin - oldargv = sys.argv - try: -- out = StringIO.StringIO() -+ out = io.BytesIO() - sys.stdout = out - sys.stderr = out - sys.argv = self.argv -diff --git a/tests/virtconvtest.py b/tests/virtconvtest.py -index f804883..3afb392 100644 ---- a/tests/virtconvtest.py -+++ b/tests/virtconvtest.py -@@ -18,8 +18,8 @@ - from __future__ import print_function - - import glob -+import io - import os --import StringIO - import unittest - - from virtconv import VirtConverter -@@ -32,7 +32,7 @@ out_dir = base_dir + "libvirt_output" - - class TestVirtConv(unittest.TestCase): - def _convert_helper(self, infile, outfile, in_type, disk_format): -- outbuf = StringIO.StringIO() -+ outbuf = io.BytesIO() - def print_cb(msg): - print(msg, file=outbuf) - -diff --git a/virtManager/create.py b/virtManager/create.py -index 8b4d75d..5629396 100644 ---- a/virtManager/create.py -+++ b/virtManager/create.py -@@ -18,10 +18,10 @@ - # MA 02110-1301 USA. - # - -+import io - import logging - import pkgutil - import os --import cStringIO - import threading - import time - -@@ -2633,7 +2633,7 @@ class vmmCreate(vmmGObjectUI): - return True - - # Use string buffer to store log messages -- log_stream = cStringIO.StringIO() -+ log_stream = io.StringIO() - - # Get virt-bootstrap logger - vbLogger = logging.getLogger('virtBootstrap') -diff --git a/virtManager/snapshots.py b/virtManager/snapshots.py -index eeb1a9f..0d905e3 100644 ---- a/virtManager/snapshots.py -+++ b/virtManager/snapshots.py -@@ -20,9 +20,9 @@ - - import datetime - import glob -+import io - import logging - import os --import StringIO - - from gi.repository import Gdk - from gi.repository import GdkPixbuf -@@ -394,7 +394,7 @@ class vmmSnapshotPage(vmmGObjectUI): - flags = 0 - mime = self.vm.get_backend().screenshot(stream, screen, flags) - -- ret = StringIO.StringIO() -+ ret = io.StringIO() - def _write_cb(_stream, data, userdata): - ignore = stream - ignore = userdata -diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py -index c57c9e1..ebc5c7a 100644 ---- a/virtinst/urlfetcher.py -+++ b/virtinst/urlfetcher.py -@@ -21,11 +21,11 @@ - - import ConfigParser - import ftplib -+import io - import logging - import os - import re - import stat --import StringIO - import subprocess - import tempfile - import urllib2 -@@ -169,7 +169,7 @@ class _URLFetcher(object): - """ - Grab the passed filename from self.location and return it as a string - """ -- fileobj = StringIO.StringIO() -+ fileobj = io.StringIO() - self._grabURL(filename, fileobj) - return fileobj.getvalue() - diff --git a/7f1b4cee-pycodestyle-fix-all-E125-warnings.patch b/7f1b4cee-pycodestyle-fix-all-E125-warnings.patch deleted file mode 100644 index 9b2e3221..00000000 --- a/7f1b4cee-pycodestyle-fix-all-E125-warnings.patch +++ /dev/null @@ -1,458 +0,0 @@ -Subject: pycodestyle: fix all E125 warnings -From: Chen Hanxiao chenhanxiao@gmail.com Wed Sep 20 15:36:27 2017 +0800 -Date: Sat Oct 21 23:26:16 2017 +0800: -Git: 7f1b4cee822855f683b8f38f38c6b1483911a5a5 - - Fix all E125: - Continuation line with same indent as next logical line - - Also remove ignore options of E125 - -Signed-off-by: Chen Hanxiao - -diff --git a/tests/pycodestyle.cfg b/tests/pycodestyle.cfg -index 4ba9cf60..a2ccb552 100644 ---- a/tests/pycodestyle.cfg -+++ b/tests/pycodestyle.cfg -@@ -9,7 +9,6 @@ format = pylint - # E122: Continuation line missing indentation or outdented - # E123: Closing bracket does not match indentation of opening - # bracket's line --# E125: Continuation line with same indent as next logical line - # E126: Continuation line over-indented for hanging indent - # E127: Continuation line over-indented for visual indent - # E128: Continuation line under-indented for visual indent -@@ -25,4 +24,4 @@ format = pylint - # E741: Do not use variables named ‘l’, ‘O’, or ‘I’ - - --ignore = E122, E123, E125, E126, E127, E128, E129, E221, E241, E301, E303, E305, E306, E402, E501, E741 -+ignore = E122, E123, E126, E127, E128, E129, E221, E241, E301, E303, E305, E306, E402, E501, E741 -diff --git a/virt-xml b/virt-xml -index 59d6c4fe..750498b6 100755 ---- a/virt-xml -+++ b/virt-xml -@@ -256,7 +256,7 @@ def setup_device(dev): - def define_changes(conn, inactive_xmlobj, devs, action, confirm): - if confirm: - if not prompt_yes_or_no( -- _("Define '%s' with the changed XML?") % inactive_xmlobj.name): -+ _("Define '%s' with the changed XML?") % inactive_xmlobj.name): - return False - - if action == "hotplug": -diff --git a/virtManager/connection.py b/virtManager/connection.py -index 0f7e20db..c98fff3d 100644 ---- a/virtManager/connection.py -+++ b/virtManager/connection.py -@@ -539,13 +539,13 @@ class vmmConnection(vmmGObject): - inact = 0 - - if self.check_support( -- self._backend.SUPPORT_DOMAIN_XML_INACTIVE, vm): -+ self._backend.SUPPORT_DOMAIN_XML_INACTIVE, vm): - inact = libvirt.VIR_DOMAIN_XML_INACTIVE - else: - logging.debug("Domain XML inactive flag not supported.") - - if self.check_support( -- self._backend.SUPPORT_DOMAIN_XML_SECURE, vm): -+ self._backend.SUPPORT_DOMAIN_XML_SECURE, vm): - inact |= libvirt.VIR_DOMAIN_XML_SECURE - act = libvirt.VIR_DOMAIN_XML_SECURE - else: -@@ -563,7 +563,7 @@ class vmmConnection(vmmGObject): - inact = 0 - - if self.check_support( -- self._backend.SUPPORT_INTERFACE_XML_INACTIVE, iface): -+ self._backend.SUPPORT_INTERFACE_XML_INACTIVE, iface): - inact = libvirt.VIR_INTERFACE_XML_INACTIVE - else: - logging.debug("Interface XML inactive flag not supported.") -diff --git a/virtManager/details.py b/virtManager/details.py -index aeac7fd3..a51f5623 100644 ---- a/virtManager/details.py -+++ b/virtManager/details.py -@@ -1129,12 +1129,12 @@ class vmmDetails(vmmGObjectUI): - return False - - if not self.err.chkbox_helper( -- self.config.get_confirm_unapplied, -- self.config.set_confirm_unapplied, -- text1=(_("There are unapplied changes. Would you like to apply " -- "them now?")), -- chktext=_("Don't warn me again."), -- default=False): -+ self.config.get_confirm_unapplied, -+ self.config.set_confirm_unapplied, -+ text1=(_("There are unapplied changes. Would you like to apply " -+ "them now?")), -+ chktext=_("Don't warn me again."), -+ default=False): - return False - - return not self.config_apply(row=row) -@@ -2275,8 +2275,8 @@ class vmmDetails(vmmGObjectUI): - logging.debug("Removing device: %s", devobj) - - if not self.err.chkbox_helper(self.config.get_confirm_removedev, -- self.config.set_confirm_removedev, -- text1=(_("Are you sure you want to remove this device?"))): -+ self.config.set_confirm_removedev, -+ text1=(_("Are you sure you want to remove this device?"))): - return - - # Define the change -diff --git a/virtManager/domain.py b/virtManager/domain.py -index 1b278815..a1f59e38 100644 ---- a/virtManager/domain.py -+++ b/virtManager/domain.py -@@ -500,7 +500,7 @@ class vmmDomain(vmmLibvirtObject): - - def snapshots_supported(self): - if not self.conn.check_support( -- self.conn.SUPPORT_DOMAIN_LIST_SNAPSHOTS, self._backend): -+ self.conn.SUPPORT_DOMAIN_LIST_SNAPSHOTS, self._backend): - return _("Libvirt connection does not support snapshots.") - - if self.list_snapshots(): -@@ -644,8 +644,8 @@ class vmmDomain(vmmLibvirtObject): - self._redefine_xmlobj(xmlobj) - - def define_cpu(self, vcpus=_SENTINEL, maxvcpus=_SENTINEL, -- model=_SENTINEL, sockets=_SENTINEL, -- cores=_SENTINEL, threads=_SENTINEL): -+ model=_SENTINEL, sockets=_SENTINEL, -+ cores=_SENTINEL, threads=_SENTINEL): - guest = self._make_xmlobj_to_define() - - if vcpus != _SENTINEL: -@@ -675,8 +675,8 @@ class vmmDomain(vmmLibvirtObject): - self._redefine_xmlobj(guest) - - def define_overview(self, machine=_SENTINEL, description=_SENTINEL, -- title=_SENTINEL, idmap_list=_SENTINEL, loader=_SENTINEL, -- nvram=_SENTINEL): -+ title=_SENTINEL, idmap_list=_SENTINEL, loader=_SENTINEL, -+ nvram=_SENTINEL): - guest = self._make_xmlobj_to_define() - if machine != _SENTINEL: - guest.os.machine = machine -@@ -720,8 +720,8 @@ class vmmDomain(vmmLibvirtObject): - self._redefine_xmlobj(guest) - - def define_boot(self, boot_order=_SENTINEL, boot_menu=_SENTINEL, -- kernel=_SENTINEL, initrd=_SENTINEL, dtb=_SENTINEL, -- kernel_args=_SENTINEL, init=_SENTINEL, initargs=_SENTINEL): -+ kernel=_SENTINEL, initrd=_SENTINEL, dtb=_SENTINEL, -+ kernel_args=_SENTINEL, init=_SENTINEL, initargs=_SENTINEL): - - guest = self._make_xmlobj_to_define() - def _change_boot_order(): -@@ -776,10 +776,10 @@ class vmmDomain(vmmLibvirtObject): - ###################### - - def define_disk(self, devobj, do_hotplug, -- path=_SENTINEL, readonly=_SENTINEL, serial=_SENTINEL, -- shareable=_SENTINEL, removable=_SENTINEL, cache=_SENTINEL, -- io=_SENTINEL, driver_type=_SENTINEL, bus=_SENTINEL, addrstr=_SENTINEL, -- sgio=_SENTINEL): -+ path=_SENTINEL, readonly=_SENTINEL, serial=_SENTINEL, -+ shareable=_SENTINEL, removable=_SENTINEL, cache=_SENTINEL, -+ io=_SENTINEL, driver_type=_SENTINEL, bus=_SENTINEL, addrstr=_SENTINEL, -+ sgio=_SENTINEL): - xmlobj = self._make_xmlobj_to_define() - editdev = self._lookup_device_to_define(xmlobj, devobj, do_hotplug) - if not editdev: -@@ -844,11 +844,11 @@ class vmmDomain(vmmLibvirtObject): - self._redefine_xmlobj(xmlobj) - - def define_network(self, devobj, do_hotplug, -- ntype=_SENTINEL, source=_SENTINEL, -- mode=_SENTINEL, model=_SENTINEL, addrstr=_SENTINEL, -- vtype=_SENTINEL, managerid=_SENTINEL, typeid=_SENTINEL, -- typeidversion=_SENTINEL, instanceid=_SENTINEL, -- portgroup=_SENTINEL, macaddr=_SENTINEL): -+ ntype=_SENTINEL, source=_SENTINEL, -+ mode=_SENTINEL, model=_SENTINEL, addrstr=_SENTINEL, -+ vtype=_SENTINEL, managerid=_SENTINEL, typeid=_SENTINEL, -+ typeidversion=_SENTINEL, instanceid=_SENTINEL, -+ portgroup=_SENTINEL, macaddr=_SENTINEL): - xmlobj = self._make_xmlobj_to_define() - editdev = self._lookup_device_to_define(xmlobj, devobj, do_hotplug) - if not editdev: -@@ -884,9 +884,9 @@ class vmmDomain(vmmLibvirtObject): - self._redefine_xmlobj(xmlobj) - - def define_graphics(self, devobj, do_hotplug, -- listen=_SENTINEL, addr=_SENTINEL, port=_SENTINEL, tlsport=_SENTINEL, -- passwd=_SENTINEL, keymap=_SENTINEL, gtype=_SENTINEL, -- gl=_SENTINEL, rendernode=_SENTINEL): -+ listen=_SENTINEL, addr=_SENTINEL, port=_SENTINEL, tlsport=_SENTINEL, -+ passwd=_SENTINEL, keymap=_SENTINEL, gtype=_SENTINEL, -+ gl=_SENTINEL, rendernode=_SENTINEL): - xmlobj = self._make_xmlobj_to_define() - editdev = self._lookup_device_to_define(xmlobj, devobj, do_hotplug) - if not editdev: -@@ -964,7 +964,7 @@ class vmmDomain(vmmLibvirtObject): - self._redefine_xmlobj(xmlobj) - - def define_watchdog(self, devobj, do_hotplug, -- model=_SENTINEL, action=_SENTINEL): -+ model=_SENTINEL, action=_SENTINEL): - xmlobj = self._make_xmlobj_to_define() - editdev = self._lookup_device_to_define(xmlobj, devobj, do_hotplug) - if not editdev: -@@ -1109,7 +1109,7 @@ class vmmDomain(vmmLibvirtObject): - self._backend.updateDeviceFlags(xml, flags) - - def hotplug(self, vcpus=_SENTINEL, memory=_SENTINEL, maxmem=_SENTINEL, -- description=_SENTINEL, title=_SENTINEL, device=_SENTINEL): -+ description=_SENTINEL, title=_SENTINEL, device=_SENTINEL): - if not self.is_active(): - return - -@@ -1570,7 +1570,7 @@ class vmmDomain(vmmLibvirtObject): - - - def migrate(self, destconn, dest_uri=None, -- tunnel=False, unsafe=False, temporary=False, meter=None): -+ tunnel=False, unsafe=False, temporary=False, meter=None): - self._install_abort = True - - flags = 0 -diff --git a/virtManager/engine.py b/virtManager/engine.py -index 537d1c91..d8f86e38 100644 ---- a/virtManager/engine.py -+++ b/virtManager/engine.py -@@ -1075,8 +1075,8 @@ class vmmEngine(vmmGObject): - vm = conn.get_vm(connkey) - - if not src.err.chkbox_helper(self.config.get_confirm_poweroff, -- self.config.set_confirm_poweroff, -- text1=_("Are you sure you want to save '%s'?") % vm.get_name()): -+ self.config.set_confirm_poweroff, -+ text1=_("Are you sure you want to save '%s'?") % vm.get_name()): - return - - _cancel_cb = None -diff --git a/virtManager/netlist.py b/virtManager/netlist.py -index 0bb17965..bd53af56 100644 ---- a/virtManager/netlist.py -+++ b/virtManager/netlist.py -@@ -129,7 +129,7 @@ class vmmNetworkList(vmmGObjectUI): - return ret - - def _build_source_row(self, nettype, source_name, -- label, is_sensitive, is_running, manual_bridge=False, key=None): -+ label, is_sensitive, is_running, manual_bridge=False, key=None): - return [nettype, source_name, label, - is_sensitive, is_running, manual_bridge, - key] -diff --git a/virtManager/viewers.py b/virtManager/viewers.py -index df164f59..07a7435f 100644 ---- a/virtManager/viewers.py -+++ b/virtManager/viewers.py -@@ -625,7 +625,7 @@ class SpiceViewer(Viewer): - self._main_channel_hids.append(hid) - - elif (type(channel) == SpiceClientGLib.DisplayChannel and -- not self._display): -+ not self._display): - channel_id = channel.get_property("channel-id") - - if channel_id != 0: -@@ -640,7 +640,7 @@ class SpiceViewer(Viewer): - - elif (type(channel) in [SpiceClientGLib.PlaybackChannel, - SpiceClientGLib.RecordChannel] and -- not self._audio): -+ not self._audio): - self._audio = SpiceClientGLib.Audio.get(self._spice_session, None) - - def _agent_connected_cb(self, src, val): -diff --git a/virtManager/vmmenu.py b/virtManager/vmmenu.py -index bb233609..153c8524 100644 ---- a/virtManager/vmmenu.py -+++ b/virtManager/vmmenu.py -@@ -96,7 +96,7 @@ class VMShutdownMenu(_VMMenu): - if name == "reset": - child.set_tooltip_text(None) - if vm and not vm.conn.check_support( -- vm.conn.SUPPORT_CONN_DOMAIN_RESET): -+ vm.conn.SUPPORT_CONN_DOMAIN_RESET): - child.set_tooltip_text(_("Hypervisor does not support " - "domain reset.")) - child.set_sensitive(False) -diff --git a/virtinst/cli.py b/virtinst/cli.py -index 2d1c33e5..cfe5ff07 100644 ---- a/virtinst/cli.py -+++ b/virtinst/cli.py -@@ -486,8 +486,8 @@ def get_console_cb(guest): - - gtype = gdevs[0].type - if gtype not in ["default", -- VirtualGraphics.TYPE_VNC, -- VirtualGraphics.TYPE_SPICE]: -+ VirtualGraphics.TYPE_VNC, -+ VirtualGraphics.TYPE_SPICE]: - logging.debug("No viewer to launch for graphics type '%s'", gtype) - return - -diff --git a/virtinst/devicegraphics.py b/virtinst/devicegraphics.py -index dc6919e9..ffba36d9 100644 ---- a/virtinst/devicegraphics.py -+++ b/virtinst/devicegraphics.py -@@ -242,7 +242,7 @@ class VirtualGraphics(VirtualDevice): - self.socket = None - - if self.conn.check_support( -- self.conn.SUPPORT_CONN_GRAPHICS_LISTEN_NONE): -+ self.conn.SUPPORT_CONN_GRAPHICS_LISTEN_NONE): - obj = self.add_listen() - obj.type = "none" - -diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py -index 3629afe1..be2281a6 100644 ---- a/virtinst/domcapabilities.py -+++ b/virtinst/domcapabilities.py -@@ -81,7 +81,7 @@ class DomainCapabilities(XMLBuilder): - def build_from_params(conn, emulator, arch, machine, hvtype): - xml = None - if conn.check_support( -- conn.SUPPORT_CONN_DOMAIN_CAPABILITIES): -+ conn.SUPPORT_CONN_DOMAIN_CAPABILITIES): - try: - xml = conn.getDomainCapabilities(emulator, arch, - machine, hvtype) -diff --git a/virtinst/guest.py b/virtinst/guest.py -index 143a36f2..eaf83ffc 100644 ---- a/virtinst/guest.py -+++ b/virtinst/guest.py -@@ -690,7 +690,7 @@ class Guest(XMLBuilder): - - if usb2: - if not self.conn.check_support( -- self.conn.SUPPORT_CONN_DEFAULT_USB2): -+ self.conn.SUPPORT_CONN_DEFAULT_USB2): - return - for dev in VirtualController.get_usb2_controllers(self.conn): - self.add_device(dev) -@@ -830,7 +830,7 @@ class Guest(XMLBuilder): - if not self.os.is_x86(): - return - if not self.conn.check_support( -- self.conn.SUPPORT_CONN_ADVANCED_CLOCK): -+ self.conn.SUPPORT_CONN_ADVANCED_CLOCK): - return - - # Set clock policy that maps to qemu options: -diff --git a/virtinst/osdict.py b/virtinst/osdict.py -index 429f8005..c173554b 100644 ---- a/virtinst/osdict.py -+++ b/virtinst/osdict.py -@@ -300,7 +300,7 @@ class _OsVariant(object): - ######################## - - def _is_related_to(self, related_os_list, os=None, -- check_derives=True, check_upgrades=True, check_clones=True): -+ check_derives=True, check_upgrades=True, check_clones=True): - os = os or self._os - if not os: - return False -diff --git a/virtinst/pollhelpers.py b/virtinst/pollhelpers.py -index fd156bb9..64cdb32c 100644 ---- a/virtinst/pollhelpers.py -+++ b/virtinst/pollhelpers.py -@@ -115,7 +115,7 @@ def fetch_nets(backend, origmap, build_func): - name = "network" - - if backend.check_support( -- backend.SUPPORT_CONN_LISTALLNETWORKS) and not FORCE_OLD_POLL: -+ backend.SUPPORT_CONN_LISTALLNETWORKS) and not FORCE_OLD_POLL: - return _new_poll_helper(origmap, name, - backend.listAllNetworks, build_func) - else: -@@ -132,7 +132,7 @@ def fetch_pools(backend, origmap, build_func): - name = "pool" - - if backend.check_support( -- backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not FORCE_OLD_POLL: -+ backend.SUPPORT_CONN_LISTALLSTORAGEPOOLS) and not FORCE_OLD_POLL: - return _new_poll_helper(origmap, name, - backend.listAllStoragePools, build_func) - else: -@@ -149,7 +149,7 @@ def fetch_volumes(backend, pool, origmap, build_func): - name = "volume" - - if backend.check_support( -- backend.SUPPORT_POOL_LISTALLVOLUMES, pool) and not FORCE_OLD_POLL: -+ backend.SUPPORT_POOL_LISTALLVOLUMES, pool) and not FORCE_OLD_POLL: - return _new_poll_helper(origmap, name, - pool.listAllVolumes, build_func) - else: -@@ -166,7 +166,7 @@ def fetch_interfaces(backend, origmap, build_func): - name = "interface" - - if backend.check_support( -- backend.SUPPORT_CONN_LISTALLINTERFACES) and not FORCE_OLD_POLL: -+ backend.SUPPORT_CONN_LISTALLINTERFACES) and not FORCE_OLD_POLL: - return _new_poll_helper(origmap, name, - backend.listAllInterfaces, build_func) - else: -@@ -182,7 +182,7 @@ def fetch_interfaces(backend, origmap, build_func): - def fetch_nodedevs(backend, origmap, build_func): - name = "nodedev" - if backend.check_support( -- backend.SUPPORT_CONN_LISTALLDEVICES) and not FORCE_OLD_POLL: -+ backend.SUPPORT_CONN_LISTALLDEVICES) and not FORCE_OLD_POLL: - return _new_poll_helper(origmap, name, - backend.listAllDevices, build_func) - else: -@@ -278,7 +278,7 @@ def _old_fetch_vms(backend, origmap, build_func): - def fetch_vms(backend, origmap, build_func): - name = "domain" - if backend.check_support( -- backend.SUPPORT_CONN_LISTALLDOMAINS): -+ backend.SUPPORT_CONN_LISTALLDOMAINS): - return _new_poll_helper(origmap, name, - backend.listAllDomains, build_func) - else: -diff --git a/virtinst/storage.py b/virtinst/storage.py -index 3f1bd9f5..254e7ff6 100644 ---- a/virtinst/storage.py -+++ b/virtinst/storage.py -@@ -375,8 +375,8 @@ class StoragePool(_StorageObject): - elif self.type == StoragePool.TYPE_GLUSTER: - srcname = "gv0" - elif ("target_path" in self._propstore and -- self.target_path and -- self.target_path.startswith(_DEFAULT_LVM_TARGET_BASE)): -+ self.target_path and -+ self.target_path.startswith(_DEFAULT_LVM_TARGET_BASE)): - # If there is a target path, parse it for an expected VG - # location, and pull the name from there - vg = self.target_path[len(_DEFAULT_LVM_TARGET_BASE):] -@@ -642,7 +642,7 @@ class StorageVolume(_StorageObject): - raise ValueError(_("input_vol must be a virStorageVol")) - - if not self.conn.check_support( -- self.conn.SUPPORT_POOL_CREATEVOLFROM, self.pool): -+ self.conn.SUPPORT_POOL_CREATEVOLFROM, self.pool): - raise ValueError(_("Creating storage from an existing volume is" - " not supported by this libvirt version.")) - -diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py -index ebc5c7a4..a45c6383 100644 ---- a/virtinst/urlfetcher.py -+++ b/virtinst/urlfetcher.py -@@ -448,7 +448,7 @@ def _distroFromSUSEContent(fetcher, arch, vmtype=None): - dclass = GenericDistro - if distribution: - if re.match(".*SUSE Linux Enterprise Server*", distribution[1]) or \ -- re.match(".*SUSE SLES*", distribution[1]): -+ re.match(".*SUSE SLES*", distribution[1]): - dclass = SLESDistro - if distro_version is None: - distro_version = _parse_sle_distribution(distribution) diff --git a/7fc7e94f-fix-virtio-scsi-controller-target-calculation.patch b/7fc7e94f-fix-virtio-scsi-controller-target-calculation.patch deleted file mode 100644 index dce5ff8a..00000000 --- a/7fc7e94f-fix-virtio-scsi-controller-target-calculation.patch +++ /dev/null @@ -1,43 +0,0 @@ -Subject: addhardware: Fix virtio-scsi controller target calculation -From: Cole Robinson crobinso@redhat.com Wed Nov 22 14:58:12 2017 -0500 -Date: Wed Nov 22 16:50:33 2017 -0500: -Git: 7fc7e94f211676b9a958662cb93edf770f23273c - -More details here: https://www.redhat.com/archives/virt-tools-list/2017-November/msg00014.html - -Reported-by: Lin Ma - -diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py -index cd82cd3..4a962e6 100644 ---- a/virtManager/addhardware.py -+++ b/virtManager/addhardware.py -@@ -20,7 +20,6 @@ - - import logging - import traceback --import collections - - from gi.repository import Gtk - from gi.repository import Gdk -@@ -1455,13 +1454,18 @@ class vmmAddHardware(vmmGObjectUI): - if x.model == controller_model] - - # Save occupied places per controller -- occupied = collections.defaultdict(int) -+ occupied = {} - for d in used_disks: - if d.get_target_prefix() == disk.get_target_prefix(): - num = virtinst.VirtualDisk.target_to_num(d.target) -- occupied[num / 7] += 1 -+ idx = num // 7 -+ if idx not in occupied: -+ occupied[idx] = [] -+ if d.target not in occupied[idx]: -+ occupied[idx].append(d.target) -+ - for c in ctrls_scsi: -- if occupied[c.index] < 7: -+ if c.index not in occupied or len(occupied[c.index]) < 7: - controller = c - break - else: diff --git a/91c0669c-cli-Fix-OrderedDict-mutated-during-iteration-on-python3.patch b/91c0669c-cli-Fix-OrderedDict-mutated-during-iteration-on-python3.patch deleted file mode 100644 index 96d49781..00000000 --- a/91c0669c-cli-Fix-OrderedDict-mutated-during-iteration-on-python3.patch +++ /dev/null @@ -1,19 +0,0 @@ -Subject: cli: Fix OrderedDict mutated during iteration on python3 -From: Cole Robinson crobinso@redhat.com Fri Oct 20 15:09:01 2017 -0400 -Date: Fri Oct 20 16:13:04 2017 -0400: -Git: 91c0669cf621b199ece533ac756bd346900a1474 - - -diff --git a/virtinst/cli.py b/virtinst/cli.py -index 1b86cad5..086aa0e0 100644 ---- a/virtinst/cli.py -+++ b/virtinst/cli.py -@@ -1482,7 +1482,7 @@ class ParserCPU(VirtCLIParser): - - def _parse(self, inst): - # Convert +feature, -feature into expected format -- for key, value in self.optdict.items(): -+ for key, value in list(self.optdict.items()): - policy = None - if value or len(key) == 1: - continue diff --git a/9617d126-systray-Use-APPLICATION_STATUS-for-appindicator.patch b/9617d126-systray-Use-APPLICATION_STATUS-for-appindicator.patch deleted file mode 100644 index 7536c45d..00000000 --- a/9617d126-systray-Use-APPLICATION_STATUS-for-appindicator.patch +++ /dev/null @@ -1,23 +0,0 @@ -Subject: systray: Use APPLICATION_STATUS for appindicator -From: Cole Robinson crobinso@redhat.com Wed Oct 18 18:50:42 2017 -0400 -Date: Wed Oct 18 19:14:17 2017 -0400: -Git: 9617d1267dfb283b6a13762f7c03d391b644db84 - -Not OTHER, as the reporter points out this shouldn't be used, and -causes issues on KDE - -https://bugzilla.redhat.com/show_bug.cgi?id=1501173 - -diff --git a/virtManager/systray.py b/virtManager/systray.py -index bbe5119c..ff550738 100644 ---- a/virtManager/systray.py -+++ b/virtManager/systray.py -@@ -139,7 +139,7 @@ class vmmSystray(vmmGObject): - # pylint: disable=maybe-no-member - self.systray_icon = AppIndicator3.Indicator.new("virt-manager", - "virt-manager", -- AppIndicator3.IndicatorCategory.OTHER) -+ AppIndicator3.IndicatorCategory.APPLICATION_STATUS) - self.systray_icon.set_status(AppIndicator3.IndicatorStatus.ACTIVE) - self.systray_icon.set_menu(self.systray_menu) - diff --git a/999dbb36-cli-Make-VirtCLIArgument-instantiation-less-crazy.patch b/999dbb36-cli-Make-VirtCLIArgument-instantiation-less-crazy.patch deleted file mode 100644 index 6a8f72bf..00000000 --- a/999dbb36-cli-Make-VirtCLIArgument-instantiation-less-crazy.patch +++ /dev/null @@ -1,215 +0,0 @@ -Subject: cli: Make _VirtCLIArgument instantiation less crazy -From: Cole Robinson crobinso@redhat.com Fri Oct 20 16:47:56 2017 -0400 -Date: Fri Oct 20 17:07:19 2017 -0400: -Git: 999dbb3665fb1cf7d6466dc53583a020b644e522 - -Motivation is that the other way had changed behavior with python3 -which breaks things - -diff --git a/virtinst/cli.py b/virtinst/cli.py -index 086aa0e0..2d1c33e5 100644 ---- a/virtinst/cli.py -+++ b/virtinst/cli.py -@@ -805,10 +805,10 @@ def _set_attribute(obj, attr, val): # pylint: disable=unused-argument - exec("obj." + attr + " = val ") # pylint: disable=exec-used - - --class _VirtCLIArgument(object): -+class _VirtCLIArgumentStatic(object): - """ -- A single subargument passed to compound command lines like --disk, -- --network, etc. -+ Helper class to hold all of the static data we need for knowing -+ how to parse a cli subargument, like --disk path=, or --network mac=. - - @attrname: The virtinst API attribute name the cliargument maps to. - If this is a virtinst object method, it will be called. -@@ -838,66 +838,64 @@ class _VirtCLIArgument(object): - VirtualDisk has multiple seclabel children, this provides a hook - to lookup the specified child object. - """ -- attrname = None -- cliname = None -- cb = None -- can_comma = None -- ignore_default = False -- aliases = None -- is_list = False -- is_onoff = False -- lookup_cb = None -- is_novalue = False -- find_inst_cb = None -- -- @staticmethod -- def make_arg(attrname, cliname, **kwargs): -- """ -- Generates a new VirtCLIArgument class with the passed static -- values. Initialize it later with the actual command line and value. -- kwargs can be any of the -- """ -- class VirtAddArg(_VirtCLIArgument): -- pass -- -- VirtAddArg.attrname = attrname -- VirtAddArg.cliname = cliname -- for key, val in kwargs.items(): -- # getattr for validation -- getattr(VirtAddArg, key) -- setattr(VirtAddArg, key, val) -- return VirtAddArg -- -- @classmethod -- def match_name(cls, cliname): -+ def __init__(self, attrname, cliname, -+ cb=None, can_comma=None, -+ ignore_default=False, aliases=None, -+ is_list=False, is_onoff=False, -+ lookup_cb=None, is_novalue=False, -+ find_inst_cb=None): -+ self.attrname = attrname -+ self.cliname = cliname -+ self.cb = cb -+ self.can_comma = can_comma -+ self.ignore_default = ignore_default -+ self.aliases = aliases -+ self.is_list = is_list -+ self.is_onoff = is_onoff -+ self.lookup_cb = lookup_cb -+ self.is_novalue = is_novalue -+ self.find_inst_cb = find_inst_cb -+ -+ def match_name(self, cliname): - """ - Return True if the passed argument name matches this - VirtCLIArgument. So for an option like --foo bar=X, this - checks if we are the parser for 'bar' - """ -- for argname in [cls.cliname] + util.listify(cls.aliases): -+ for argname in [self.cliname] + util.listify(self.aliases): - if re.match("^%s$" % argname, cliname): - return True - return False - - -- def __init__(self, key, val): -+class _VirtCLIArgument(object): -+ """ -+ A class that combines the static parsing data _VirtCLIArgumentStatic -+ with actual values passed on the command line. -+ """ -+ -+ def __init__(self, virtarg, key, val): - """ - Instantiate a VirtCLIArgument with the actual key=val pair - from the command line. - """ - # Sanitize the value - if val is None: -- if not self.is_novalue: -+ if not virtarg.is_novalue: - raise RuntimeError("Option '%s' had no value set." % key) - val = "" - if val == "": - val = None -- if self.is_onoff: -+ if virtarg.is_onoff: - val = _on_off_convert(key, val) - - self.val = val - self.key = key -+ self._virtarg = virtarg -+ -+ # For convenience -+ self.attrname = virtarg.attrname -+ self.cliname = virtarg.cliname - - def parse_param(self, parser, inst, support_cb): - """ -@@ -909,12 +907,12 @@ class _VirtCLIArgument(object): - """ - if support_cb: - support_cb(inst, self) -- if self.val == "default" and self.ignore_default: -+ if self.val == "default" and self._virtarg.ignore_default: - return - -- if self.find_inst_cb: -- inst = self.find_inst_cb(parser, # pylint: disable=not-callable -- inst, self.val, self, True) -+ if self._virtarg.find_inst_cb: -+ inst = self._virtarg.find_inst_cb(parser, -+ inst, self.val, self, True) - - try: - if self.attrname: -@@ -923,9 +921,8 @@ class _VirtCLIArgument(object): - raise RuntimeError("programming error: obj=%s does not have " - "member=%s" % (inst, self.attrname)) - -- if self.cb: -- self.cb(parser, inst, # pylint: disable=not-callable -- self.val, self) -+ if self._virtarg.cb: -+ self._virtarg.cb(parser, inst, self.val, self) - else: - _set_attribute(inst, self.attrname, self.val) - -@@ -938,22 +935,22 @@ class _VirtCLIArgument(object): - instantiated with key=device val=floppy, so return - 'inst.device == floppy' - """ -- if not self.attrname and not self.lookup_cb: -+ if not self.attrname and not self._virtarg.lookup_cb: - raise RuntimeError( - _("Don't know how to match device type '%(device_type)s' " - "property '%(property_name)s'") % - {"device_type": getattr(inst, "virtual_device_type", ""), - "property_name": self.key}) - -- if self.find_inst_cb: -- inst = self.find_inst_cb(parser, # pylint: disable=not-callable -- inst, self.val, self, False) -+ if self._virtarg.find_inst_cb: -+ inst = self._virtarg.find_inst_cb(parser, -+ inst, self.val, self, False) - if not inst: - return False - -- if self.lookup_cb: -- return self.lookup_cb(parser, # pylint: disable=not-callable -- inst, self.val, self) -+ if self._virtarg.lookup_cb: -+ return self._virtarg.lookup_cb(parser, -+ inst, self.val, self) - else: - return eval( # pylint: disable=eval-used - "inst." + self.attrname) == self.val -@@ -1095,9 +1092,9 @@ class VirtCLIParser(object): - Add a VirtCLIArgument for this class. - """ - if not cls._virtargs: -- cls._virtargs = [_VirtCLIArgument.make_arg( -+ cls._virtargs = [_VirtCLIArgumentStatic( - None, "clearxml", cb=cls._clearxml_cb, is_onoff=True)] -- cls._virtargs.append(_VirtCLIArgument.make_arg(*args, **kwargs)) -+ cls._virtargs.append(_VirtCLIArgumentStatic(*args, **kwargs)) - - @classmethod - def print_introspection(cls): -@@ -1147,10 +1144,12 @@ class VirtCLIParser(object): - VirtCLIArguments to actually interact with - """ - ret = [] -- for param in self._virtargs: -- for key in optdict.keys(): -- if param.match_name(key): -- ret.append(param(key, optdict.pop(key))) -+ for virtargstatic in self._virtargs: -+ for key in list(optdict.keys()): -+ if virtargstatic.match_name(key): -+ arginst = _VirtCLIArgument(virtargstatic, -+ key, optdict.pop(key)) -+ ret.append(arginst) - return ret - - def _check_leftover_opts(self, optdict): diff --git a/9a9f9ecd-ignore-comments-in-keymap-conf-files.patch b/9a9f9ecd-ignore-comments-in-keymap-conf-files.patch deleted file mode 100644 index 0399878c..00000000 --- a/9a9f9ecd-ignore-comments-in-keymap-conf-files.patch +++ /dev/null @@ -1,30 +0,0 @@ -Subject: virtinst: ignore comments in keymap conf files -From: Jim Fehlig jfehlig@suse.com Wed Oct 11 15:13:26 2017 -0600 -Date: Wed Oct 18 17:46:41 2017 -0400: -Git: 9a9f9ecd2c1f03665809009ad6cfde937b09adaa - -On a host system with keyboard configured to en-US, it was noticed -that virt-install created install XML with keymap='de'. The host -system did not have /etc/vconsole.conf, so /etc/sysconfig/keyboard -was the next file to check, which contained the following - -KEYTABLE="" - -Currently the parsing code does not ignore comments and incorrectly -parsed a 'de' keymap. Fix by ignoring any lines that start with '#' -after trimming whitespace. - -diff --git a/virtinst/hostkeymap.py b/virtinst/hostkeymap.py -index 71503730..87a80ef6 100644 ---- a/virtinst/hostkeymap.py -+++ b/virtinst/hostkeymap.py -@@ -71,6 +71,9 @@ def _sysconfig_keyboard(f): - s = f.readline() - if s == "": - break -+ s = s.strip() -+ if s.startswith("#"): -+ continue - if (re.search("KEYMAP", s) is not None or - re.search("KEYTABLE", s) is not None or - (re.search("KEYBOARD", s) is not None and diff --git a/a2bcd6c4-dont-compare-between-None-and-int.patch b/a2bcd6c4-dont-compare-between-None-and-int.patch deleted file mode 100644 index 1a55bb03..00000000 --- a/a2bcd6c4-dont-compare-between-None-and-int.patch +++ /dev/null @@ -1,49 +0,0 @@ -Subject: Do not compare between None and int -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:54 2017 +0100 -Date: Fri Oct 20 13:18:31 2017 -0400: -Git: a2bcd6c43a77b03693d11d231e8c0a7b0609889b - -In Python 2 comparison between int and None is allowed but in -Pyhton 3 it is not. - -Example: - -Pyhton 2 - - >>> None > 0 - False - -Python 3 - - >>> None > 0 - Traceback (most recent call last): - File "", line 1, in - TypeError: '>' not supported between instances of 'NoneType' and 'int' - -diff --git a/tests/utils.py b/tests/utils.py -index 7397d369..e9072bf4 100644 ---- a/tests/utils.py -+++ b/tests/utils.py -@@ -181,7 +181,7 @@ def diff_compare(actual_out, filename=None, expect_out=None): - - diff = "".join(difflib.unified_diff(expect_out.splitlines(1), - actual_out.splitlines(1), -- fromfile=filename, -+ fromfile=filename or '', - tofile="Generated Output")) - if diff: - raise AssertionError("Conversion outputs did not match.\n%s" % diff) -diff --git a/virtinst/support.py b/virtinst/support.py -index 19160fba..6b0489a5 100644 ---- a/virtinst/support.py -+++ b/virtinst/support.py -@@ -187,7 +187,8 @@ class _SupportCheck(object): - actual_hv_version = conn.conn_version() - - # Check that local libvirt version is sufficient -- if _version_str_to_int(self.version) > actual_libvirt_version: -+ v = _version_str_to_int(self.version) -+ if v and (v > actual_libvirt_version): - return False - - if self.hv_version: diff --git a/b5b2433a-baseclass-Fix-UI-file-loading-on-py3.patch b/b5b2433a-baseclass-Fix-UI-file-loading-on-py3.patch deleted file mode 100644 index c7d7f860..00000000 --- a/b5b2433a-baseclass-Fix-UI-file-loading-on-py3.patch +++ /dev/null @@ -1,24 +0,0 @@ -Subject: baseclass: Fix UI file loading on py3 -From: Cole Robinson crobinso@redhat.com Wed Dec 20 16:04:36 2017 -0500 -Date: Wed Dec 20 16:04:36 2017 -0500: -Git: b5b2433ad5578767abd2552e3c635c939511db83 - -We were passing in a unicode string object, but add_from_string -depends on knowing binary length. This caused signals to not -be registered which broke reopening the details window - -Just switch to add_from_file to sidestep the issue - -diff --git a/virtManager/baseclass.py b/virtManager/baseclass.py -index f8bff2b..c2f1ecd 100644 ---- a/virtManager/baseclass.py -+++ b/virtManager/baseclass.py -@@ -220,7 +220,7 @@ class vmmGObjectUI(vmmGObject): - - self.builder = Gtk.Builder() - self.builder.set_translation_domain("virt-manager") -- self.builder.add_from_string(open(uifile).read()) -+ self.builder.add_from_file(uifile) - - if not topwin: - self.topwin = self.widget(windowname) diff --git a/b8fa0c6b-xmlnsqemu-order-XML-output-like-libvirt-does.patch b/b8fa0c6b-xmlnsqemu-order-XML-output-like-libvirt-does.patch deleted file mode 100644 index ed24d0a9..00000000 --- a/b8fa0c6b-xmlnsqemu-order-XML-output-like-libvirt-does.patch +++ /dev/null @@ -1,37 +0,0 @@ -Subject: xmlnsqemu: Order XML output like libvirt does -From: Cole Robinson crobinso@redhat.com Fri Oct 20 15:26:03 2017 -0400 -Date: Fri Oct 20 16:13:04 2017 -0400: -Git: b8fa0c6b6769663837079084b6ff93da243d52a1 - -args before env - -diff --git a/tests/cli-test-xml/compare/virt-install-many-devices.xml b/tests/cli-test-xml/compare/virt-install-many-devices.xml -index 87855238..2873a65b 100644 ---- a/tests/cli-test-xml/compare/virt-install-many-devices.xml -+++ b/tests/cli-test-xml/compare/virt-install-many-devices.xml -@@ -386,12 +386,12 @@ - - - -- - - - - - - -+ - - -diff --git a/virtinst/xmlnsqemu.py b/virtinst/xmlnsqemu.py -index 28259bf2..5213e5d1 100644 ---- a/virtinst/xmlnsqemu.py -+++ b/virtinst/xmlnsqemu.py -@@ -37,6 +37,7 @@ class XMLNSQemu(XMLBuilder): - Class for generating XML - """ - _XML_ROOT_NAME = "qemu:commandline" -+ _XML_PROP_ORDER = ["args", "envs"] - - args = XMLChildProperty(_XMLNSQemuArg) - def add_arg(self, value): diff --git a/b9bc3b60-undefine-only-persistent-domain.patch b/b9bc3b60-undefine-only-persistent-domain.patch deleted file mode 100644 index b097b68b..00000000 --- a/b9bc3b60-undefine-only-persistent-domain.patch +++ /dev/null @@ -1,47 +0,0 @@ -Subject: delete: undefine only persistent domain -From: Pavel Hrdina phrdina@redhat.com Fri Nov 24 17:26:59 2017 +0100 -Date: Fri Nov 24 17:39:58 2017 +0100: -Git: b9bc3b605a96920d3e225d472d549864205e92ce - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1517119 - -Signed-off-by: Pavel Hrdina - -diff --git a/virtManager/delete.py b/virtManager/delete.py -index 98df413..0ebfdeb 100644 ---- a/virtManager/delete.py -+++ b/virtManager/delete.py -@@ -162,6 +162,7 @@ class vmmDeleteDialog(vmmGObjectUI): - def _async_delete(self, asyncjob, paths): - storage_errors = [] - details = "" -+ undefine = self.vm.is_persistent() - - try: - if self.vm.is_active(): -@@ -181,8 +182,9 @@ class vmmDeleteDialog(vmmGObjectUI): - "".join(traceback.format_exc()))) - meter.end(0) - -- logging.debug("Removing VM '%s'", self.vm.get_name()) -- self.vm.delete() -+ if undefine: -+ logging.debug("Removing VM '%s'", self.vm.get_name()) -+ self.vm.delete() - - except Exception as e: - error = (_("Error deleting virtual machine '%s': %s") % -diff --git a/virtManager/domain.py b/virtManager/domain.py -index a1f59e3..183a56c 100644 ---- a/virtManager/domain.py -+++ b/virtManager/domain.py -@@ -484,6 +484,9 @@ class vmmDomain(vmmLibvirtObject): - return bool(self.get_xmlobj().os.loader_ro is True and - self.get_xmlobj().os.loader_type == "pflash") - -+ def is_persistent(self): -+ return bool(self._backend.isPersistent()) -+ - ################## - # Support checks # - ################## diff --git a/bc3c9a9d-progress-remove-unused-import.patch b/bc3c9a9d-progress-remove-unused-import.patch deleted file mode 100644 index 760bf3a1..00000000 --- a/bc3c9a9d-progress-remove-unused-import.patch +++ /dev/null @@ -1,18 +0,0 @@ -Subject: progress: Remove unused import -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:43 2017 +0100 -Date: Fri Oct 20 11:49:14 2017 -0400: -Git: bc3c9a9d7b0b2afcccac69182e771bf3a3eacae0 - - -diff --git a/virtinst/progress.py b/virtinst/progress.py -index d73d4292..05114ed4 100644 ---- a/virtinst/progress.py -+++ b/virtinst/progress.py -@@ -27,7 +27,6 @@ - import sys - import time - import math --import thread - import fcntl - import struct - import termios diff --git a/bc8c5b07-append--attach-to-virt-viewer-if-graphics-has-listen-type-none.patch b/bc8c5b07-append--attach-to-virt-viewer-if-graphics-has-listen-type-none.patch deleted file mode 100644 index 64cb25f4..00000000 --- a/bc8c5b07-append--attach-to-virt-viewer-if-graphics-has-listen-type-none.patch +++ /dev/null @@ -1,42 +0,0 @@ -Subject: cli: append "--attach" to virt-viewer if graphics has listen type none -From: Pavel Hrdina phrdina@redhat.com Fri Jan 5 09:13:45 2018 +0100 -Date: Sun Jan 7 08:59:43 2018 +0100: -Git: bc8c5b0778ed633386d1ad50a107ff1b97543a4f - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1527834 - -Signed-off-by: Pavel Hrdina - -Index: virt-manager-1.4.3/virtinst/cli.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/cli.py -+++ virt-manager-1.4.3/virtinst/cli.py -@@ -442,8 +442,8 @@ def _gfx_console(guest): - "--wait", guest.name] - - # Currently virt-viewer needs attaching to the local display while -- # spice gl is enabled. -- if guest.has_gl(): -+ # spice gl is enabled or listen type none is used. -+ if guest.has_gl() or guest.has_listen_none(): - args.append("--attach") - - logging.debug("Launching virt-viewer for graphics type '%s'", -Index: virt-manager-1.4.3/virtinst/guest.py -=================================================================== ---- virt-manager-1.4.3.orig/virtinst/guest.py -+++ virt-manager-1.4.3/virtinst/guest.py -@@ -1233,6 +1233,13 @@ class Guest(XMLBuilder): - if gfx.gl: - return True - -+ def has_listen_none(self): -+ for gfx in self.get_devices("graphics"): -+ listen = gfx.get_first_listen_type() -+ if listen and listen == "none": -+ return True -+ return False -+ - def _set_video_defaults(self): - if self.has_spice(): - self._add_spice_channels() diff --git a/c174b550-connection-Another-py3-exception-variable-fix.patch b/c174b550-connection-Another-py3-exception-variable-fix.patch deleted file mode 100644 index 81f3ffd6..00000000 --- a/c174b550-connection-Another-py3-exception-variable-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c174b5509f5007fb11e095df1c88fd6176789f4f Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Wed, 20 Dec 2017 14:15:56 -0500 -Subject: [virt-manager][PATCH] connection: Another py3 exception variable fix - ---- - virtManager/connection.py | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/virtManager/connection.py b/virtManager/connection.py -index f9da6677..43fa3eb5 100644 ---- a/virtManager/connection.py -+++ b/virtManager/connection.py -@@ -1030,11 +1030,13 @@ class vmmConnection(vmmGObject): - warnconsole = False - libvirt_error_code = None - libvirt_error_message = None -+ exc = None - - try: - self._backend.open(self._do_creds_password) - return True, None -- except Exception as exc: -+ except Exception as e: -+ exc = e - tb = "".join(traceback.format_exc()) - if isinstance(exc, libvirt.libvirtError): - # pylint: disable=no-member --- -2.15.1 - diff --git a/d1e1cf64-progress-remove-trailing-white-space.patch b/d1e1cf64-progress-remove-trailing-white-space.patch deleted file mode 100644 index 55ee5e18..00000000 --- a/d1e1cf64-progress-remove-trailing-white-space.patch +++ /dev/null @@ -1,145 +0,0 @@ -Subject: progress: Remove trailing white space -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:40 2017 +0100 -Date: Fri Oct 20 11:49:12 2017 -0400: -Git: d1e1cf64a7c248f586308d8c89ea51855a9a0451 - - -diff --git a/virtinst/progress.py b/virtinst/progress.py -index a27108b1..e9a243b1 100644 ---- a/virtinst/progress.py -+++ b/virtinst/progress.py -@@ -9,9 +9,9 @@ - # Lesser General Public License for more details. - # - # You should have received a copy of the GNU Lesser General Public --# License along with this library; if not, write to the --# Free Software Foundation, Inc., --# 59 Temple Place, Suite 330, -+# License along with this library; if not, write to the -+# Free Software Foundation, Inc., -+# 59 Temple Place, Suite 330, - # Boston, MA 02111-1307 USA - - # This file is part of urlgrabber, a high-level cross-protocol url-grabber -@@ -113,7 +113,7 @@ class BaseMeter: - self.last_amount_read = 0 - self.last_update_time = None - self.re = RateEstimator() -- -+ - def start(self, filename=None, url=None, basename=None, - size=None, now=None, text=None): - self.filename = filename -@@ -131,7 +131,7 @@ class BaseMeter: - self.last_amount_read = 0 - self.last_update_time = now - self._do_start(now) -- -+ - def _do_start(self, now=None): - pass - -@@ -158,7 +158,7 @@ class BaseMeter: - - def _do_end(self, amount_read, now=None): - pass -- -+ - # This is kind of a hack, but progress is gotten from grabber which doesn't - # know about the total size to download. So we do this so we can get the data - # out of band here. This will be "fixed" one way or anther soon. -@@ -173,7 +173,7 @@ def text_meter_total_size(size, downloaded=0): - # - # update: No size (minimal: 17 chars) - # ----------------------------------- --# | -+# | - # 8-48 1 8 3 6 1 9 5 - # - # Order: 1. + (17) -@@ -208,7 +208,7 @@ def text_meter_total_size(size, downloaded=0): - # - # end - # --- --# | -+# | - # 8-56 3 6 1 9 5 - # - # Order: 1. ( 8) -@@ -341,7 +341,7 @@ class RateEstimator: - self.last_update_time = now - self.last_amount_read = 0 - self.ave_rate = None -- -+ - def update(self, amount_read, now=None): - if now is None: now = time.time() - # libcurl calls the progress callback when fetching headers -@@ -365,7 +365,7 @@ class RateEstimator: - time_diff, read_diff, self.ave_rate, self.timescale) - self.last_amount_read = amount_read - #print 'results', time_diff, read_diff, self.ave_rate -- -+ - ##################################################################### - # result methods - def average_rate(self): -@@ -401,14 +401,14 @@ class RateEstimator: - epsilon = time_diff / timescale - if epsilon > 1: epsilon = 1.0 - return self._rolling_ave(time_diff, read_diff, last_ave, epsilon) -- -+ - def _rolling_ave(self, time_diff, read_diff, last_ave, epsilon): - """perform a "rolling average" iteration - a rolling average "folds" new data into an existing average with - some weight, epsilon. epsilon must be between 0.0 and 1.0 (inclusive) - a value of 0.0 means only the old value (initial value) counts, - and a value of 1.0 means only the newest value is considered.""" -- -+ - try: - recent_rate = read_diff / time_diff - except ZeroDivisionError: -@@ -437,7 +437,7 @@ class RateEstimator: - rt = int(rt) - if shift <= 0: return rt - return float(int(rt) >> shift << shift) -- -+ - - def format_time(seconds, use_hours=0): - if seconds is None or seconds < 0: -@@ -455,7 +455,7 @@ def format_time(seconds, use_hours=0): - return '%02i:%02i:%02i' % (hours, minutes, seconds) - else: - return '%02i:%02i' % (minutes, seconds) -- -+ - def format_number(number, SI=0, space=' '): - """Turn numbers into human-readable metric-like numbers""" - symbols = ['', # (none) -@@ -467,14 +467,14 @@ def format_number(number, SI=0, space=' '): - 'E', # exa - 'Z', # zetta - 'Y'] # yotta -- -+ - if SI: step = 1000.0 - else: step = 1024.0 - - thresh = 999 - depth = 0 - max_depth = len(symbols) - 1 -- -+ - # we want numbers between 0 and thresh, but don't exceed the length - # of our list. In that event, the formatting will be screwed up, - # but it'll still show the right number. -@@ -492,5 +492,5 @@ def format_number(number, SI=0, space=' '): - format = '%.1f%s%s' - else: - format = '%.0f%s%s' -- -+ - return(format % (float(number or 0), space, symbols[depth])) diff --git a/d2648d81-virtconv-dont-implicitly-depend-on-dict-hash-order.patch b/d2648d81-virtconv-dont-implicitly-depend-on-dict-hash-order.patch deleted file mode 100644 index f8cb6cd9..00000000 --- a/d2648d81-virtconv-dont-implicitly-depend-on-dict-hash-order.patch +++ /dev/null @@ -1,92 +0,0 @@ -Subject: virtconv: Don't implicitly depend on dict hash order -From: Cole Robinson crobinso@redhat.com Fri Oct 20 16:06:48 2017 -0400 -Date: Fri Oct 20 16:13:04 2017 -0400: -Git: d2648d81cc8a9c1ddb7e19b8fe44edaf53ad67ab - - -diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt b/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt -index 4cad0203..60055b7d 100644 ---- a/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt -+++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_test-vmx-zip.libvirt -@@ -6,7 +6,6 @@ - 1 - - hvm -- - - - -@@ -28,15 +27,15 @@ - - - /usr/bin/qemu-kvm -- -- -- -- -- - - - -+ -+ -+ -+ - -+ - - - -diff --git a/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt b/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt -index 803a7424..e72a7184 100644 ---- a/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt -+++ b/tests/virtconv-files/libvirt_output/vmx2libvirt_vmx-dir.libvirt -@@ -6,7 +6,6 @@ - 2 - - hvm -- - - - -@@ -28,15 +27,15 @@ - - - /usr/bin/qemu-kvm -- -- -- -- - - - - - -+ -+ -+ -+ - - - -diff --git a/virtconv/vmx.py b/virtconv/vmx.py -index fc6a5264..3be19e5c 100644 ---- a/virtconv/vmx.py -+++ b/virtconv/vmx.py -@@ -19,6 +19,7 @@ - # MA 02110-1301 USA. - # - -+import collections - import logging - import os - import re -@@ -88,7 +89,7 @@ class _VMXFile(object): - (len(self.lines) + 1, line.strip(), e)) - - def pairs(self): -- ret = {} -+ ret = collections.OrderedDict() - for line in self.lines: - if line.pair: - ret[line.pair[0]] = line.pair[1] diff --git a/d82022bd-manager-drop-python2-only-cmp-usage.patch b/d82022bd-manager-drop-python2-only-cmp-usage.patch deleted file mode 100644 index 67efa82a..00000000 --- a/d82022bd-manager-drop-python2-only-cmp-usage.patch +++ /dev/null @@ -1,69 +0,0 @@ -Subject: manager: Drop python2 only cmp() usage -From: Cole Robinson crobinso@redhat.com Sat Oct 21 19:18:02 2017 -0400 -Date: Sat Oct 21 19:41:33 2017 -0400: -Git: d82022bd2cc805f11eaea3dc8b506678b3fdb3d5 - -Manually implement it - -diff --git a/virtManager/manager.py b/virtManager/manager.py -index 73fe6ea7..c257af28 100644 ---- a/virtManager/manager.py -+++ b/virtManager/manager.py -@@ -66,6 +66,10 @@ def _style_get_prop(widget, propname): - return value.get_int() - - -+def _cmp(a, b): -+ return ((a > b) - (a < b)) -+ -+ - def _get_inspection_icon_pixbuf(vm, w, h): - # libguestfs gives us the PNG data as a string. - png_data = vm.inspection.icon -@@ -911,40 +915,40 @@ class vmmManager(vmmGObjectUI): - def vmlist_name_sorter(self, model, iter1, iter2, ignore): - key1 = str(model[iter1][ROW_SORT_KEY]).lower() - key2 = str(model[iter2][ROW_SORT_KEY]).lower() -- return cmp(key1, key2) -+ return _cmp(key1, key2) - - def vmlist_guest_cpu_usage_sorter(self, model, iter1, iter2, ignore): - obj1 = model[iter1][ROW_HANDLE] - obj2 = model[iter2][ROW_HANDLE] - -- return cmp(obj1.guest_cpu_time_percentage(), -+ return _cmp(obj1.guest_cpu_time_percentage(), - obj2.guest_cpu_time_percentage()) - - def vmlist_host_cpu_usage_sorter(self, model, iter1, iter2, ignore): - obj1 = model[iter1][ROW_HANDLE] - obj2 = model[iter2][ROW_HANDLE] - -- return cmp(obj1.host_cpu_time_percentage(), -+ return _cmp(obj1.host_cpu_time_percentage(), - obj2.host_cpu_time_percentage()) - - def vmlist_memory_usage_sorter(self, model, iter1, iter2, ignore): - obj1 = model[iter1][ROW_HANDLE] - obj2 = model[iter2][ROW_HANDLE] - -- return cmp(obj1.stats_memory(), -+ return _cmp(obj1.stats_memory(), - obj2.stats_memory()) - - def vmlist_disk_io_sorter(self, model, iter1, iter2, ignore): - obj1 = model[iter1][ROW_HANDLE] - obj2 = model[iter2][ROW_HANDLE] - -- return cmp(obj1.disk_io_rate(), obj2.disk_io_rate()) -+ return _cmp(obj1.disk_io_rate(), obj2.disk_io_rate()) - - def vmlist_network_usage_sorter(self, model, iter1, iter2, ignore): - obj1 = model[iter1][ROW_HANDLE] - obj2 = model[iter2][ROW_HANDLE] - -- return cmp(obj1.network_traffic_rate(), obj2.network_traffic_rate()) -+ return _cmp(obj1.network_traffic_rate(), obj2.network_traffic_rate()) - - def enable_polling(self, column): - # pylint: disable=redefined-variable-type diff --git a/dff00d4f-remove-deprecated-statvfs-module.patch b/dff00d4f-remove-deprecated-statvfs-module.patch deleted file mode 100644 index 73b28aa6..00000000 --- a/dff00d4f-remove-deprecated-statvfs-module.patch +++ /dev/null @@ -1,53 +0,0 @@ -Subject: Remove deprecated statvfs module -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:47 2017 +0100 -Date: Fri Oct 20 11:49:14 2017 -0400: -Git: dff00d4fc02aa88036d0c7aa13324276fe08f14f - -The statvfs module has been removed in Python 3. [1] -It is replaced by os.statvfs which is also available in Pyhton 2. - -[1] https://docs.python.org/2/library/statvfs.html#module-statvfs -[2] https://docs.python.org/3/library/os.html#os.statvfs - -diff --git a/virtManager/addstorage.py b/virtManager/addstorage.py -index cdfd78e1..c137e2b3 100644 ---- a/virtManager/addstorage.py -+++ b/virtManager/addstorage.py -@@ -19,7 +19,6 @@ - - import logging - import os --import statvfs - - from gi.repository import GObject - from gi.repository import Gtk -@@ -81,7 +80,7 @@ class vmmAddStorage(vmmGObjectUI): - - elif not self.conn.is_remote() and os.path.exists(path): - vfs = os.statvfs(os.path.dirname(path)) -- avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL] -+ avail = vfs.f_frsize * vfs.f_bavail - - return float(avail / 1024.0 / 1024.0 / 1024.0) - -diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py -index a08a23e5..636aa51f 100644 ---- a/virtinst/diskbackend.py -+++ b/virtinst/diskbackend.py -@@ -22,7 +22,6 @@ import logging - import os - import re - import stat --import statvfs - - import libvirt - -@@ -391,7 +390,7 @@ class CloneStorageCreator(_StorageCreator): - avail = _stat_disk(self._path)[1] - else: - vfs = os.statvfs(os.path.dirname(self._path)) -- avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL] -+ avail = vfs.f_frsize * vfs.f_bavail - need = long(self._size * 1024 * 1024 * 1024) - if need > avail: - if self._sparse: diff --git a/e2ad4b2f-convert-iteritems-to-items.patch b/e2ad4b2f-convert-iteritems-to-items.patch deleted file mode 100644 index f67493da..00000000 --- a/e2ad4b2f-convert-iteritems-to-items.patch +++ /dev/null @@ -1,28 +0,0 @@ -Subject: Convert iteritems() to items() -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:35:45 2017 +0100 -Date: Fri Oct 20 11:49:14 2017 -0400: -Git: e2ad4b2fded8cb3ad23cd62b0c9d08767656ea83 - -In Python 2 iteritems() [1] returns an iterator over the dictionary and -items() [2] returns a list of pairs. - -In Python 3 iteritems() does not exist and items() returns a view of -the dictionary's items.[3] - -[1] https://docs.python.org/2/library/stdtypes.html#dict.iteritems -[2] https://docs.python.org/2/library/stdtypes.html#dict.items -[3] https://docs.python.org/3/library/stdtypes.html#dict.items - -diff --git a/virtManager/create.py b/virtManager/create.py -index 1fbc65ef..8b4d75d5 100644 ---- a/virtManager/create.py -+++ b/virtManager/create.py -@@ -2499,7 +2499,7 @@ class vmmCreate(vmmGObjectUI): - 'passwd': self._get_config_oscontainer_source_password, - 'insecure': self._get_config_oscontainer_isecure - } -- for key, getter in bootstrap_arg_keys.iteritems(): -+ for key, getter in bootstrap_arg_keys.items(): - bootstrap_args[key] = getter() - - parentobj = self._customize_window or self diff --git a/e73abe5a-diskbackend-convert-to-long-the-calculated-size.patch b/e73abe5a-diskbackend-convert-to-long-the-calculated-size.patch deleted file mode 100644 index d39c3f5c..00000000 --- a/e73abe5a-diskbackend-convert-to-long-the-calculated-size.patch +++ /dev/null @@ -1,37 +0,0 @@ -Subject: diskbackend: convert to long the calculated size -From: Pavel Hrdina phrdina@redhat.com Tue Oct 3 13:56:20 2017 +0200 -Date: Thu Oct 19 09:06:44 2017 +0200: -Git: e73abe5a3acaa8e30363fb2ab8c9828b1fdb2589 - -If we convert to long the disk size, it may end up "0". The size is -in GiB so it can be "0.1". - -Introduced by commit . - -Signed-off-by: Pavel Hrdina - -diff --git a/virtinst/diskbackend.py b/virtinst/diskbackend.py -index 5979e6e6..de745f4d 100644 ---- a/virtinst/diskbackend.py -+++ b/virtinst/diskbackend.py -@@ -389,7 +389,7 @@ class CloneStorageCreator(_StorageCreator): - msg = None - vfs = os.statvfs(os.path.dirname(self._path)) - avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL] -- need = long(self._size) * long(1024) * long(1024) * long(1024) -+ need = long(self._size * 1024 * 1024 * 1024) - if need > avail: - if self._sparse: - msg = _("The filesystem will not have enough free space" -@@ -409,9 +409,8 @@ class CloneStorageCreator(_StorageCreator): - text = (_("Cloning %(srcfile)s") % - {'srcfile': os.path.basename(self._input_path)}) - -- size_bytes = (long(self.get_size()) * -- long(1024) * long(1024) * long(1024)) -- progresscb.start(filename=self._output_path, size=long(size_bytes), -+ size_bytes = long(self.get_size() * 1024 * 1024 * 1024) -+ progresscb.start(filename=self._output_path, size=size_bytes, - text=text) - - # Plain file clone diff --git a/f41aafc7-Use-enumerate-instead-of-range-and-len.patch b/f41aafc7-Use-enumerate-instead-of-range-and-len.patch deleted file mode 100644 index ddbdca12..00000000 --- a/f41aafc7-Use-enumerate-instead-of-range-and-len.patch +++ /dev/null @@ -1,74 +0,0 @@ -Subject: Use enumerate instead of range and len -From: Radostin Stoyanov rstoyanov1@gmail.com Wed Oct 11 12:36:03 2017 +0100 -Date: Fri Oct 20 13:18:31 2017 -0400: -Git: f41aafc721e8fbe9baa0bc52ec9482ae3e5666ae - - -diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py -index cf860e63..3793006c 100644 ---- a/virtManager/addhardware.py -+++ b/virtManager/addhardware.py -@@ -594,9 +594,8 @@ class vmmAddHardware(vmmGObjectUI): - vmmAddHardware.populate_smartcard_mode_combo(vm, combo) - - idx = -1 -- for rowid in range(len(combo.get_model())): -+ for rowid, row in enumerate(combo.get_model()): - idx = 0 -- row = combo.get_model()[rowid] - if row[0] == virtinst.VirtualSmartCardDevice.MODE_DEFAULT: - idx = rowid - break -@@ -641,9 +640,8 @@ class vmmAddHardware(vmmGObjectUI): - vmmAddHardware.populate_tpm_type_combo(vm, combo) - - idx = -1 -- for rowid in range(len(combo.get_model())): -+ for rowid, row in enumerate(combo.get_model()): - idx = 0 -- row = combo.get_model()[rowid] - if row[0] == virtinst.VirtualTPMDevice.TYPE_DEFAULT: - idx = rowid - break -diff --git a/virtManager/netlist.py b/virtManager/netlist.py -index 4f1e991a..0bb17965 100644 ---- a/virtManager/netlist.py -+++ b/virtManager/netlist.py -@@ -288,8 +288,8 @@ class vmmNetworkList(vmmGObjectUI): - model.insert(0, row) - default = 0 - elif label: -- default = [idx for idx in range(len(model)) if -- model[idx][2] == label][0] -+ default = [idx for idx, model_label in enumerate(model) if -+ model_label[2] == label][0] - - _add_manual_bridge_row() - return default -diff --git a/virtManager/systray.py b/virtManager/systray.py -index ff550738..aa62df0a 100644 ---- a/virtManager/systray.py -+++ b/virtManager/systray.py -@@ -274,7 +274,7 @@ class vmmSystray(vmmGObject): - vm_submenu.insert(menu_item, 0) - return - -- for i in range(0, len(vm_names)): -+ for i, name in enumerate(vm_names): - name = vm_names[i] - connkey = vm_mappings[name] - if connkey in self.conn_vm_menuitems[uri]: -diff --git a/virtinst/cloner.py b/virtinst/cloner.py -index 7345bdad..9be5485c 100644 ---- a/virtinst/cloner.py -+++ b/virtinst/cloner.py -@@ -430,8 +430,7 @@ class Cloner(object): - iface.macaddr = mac - - # Changing storage XML -- for i in range(len(self._original_disks)): -- orig_disk = self._original_disks[i] -+ for i, orig_disk in enumerate(self._original_disks): - clone_disk = self._clone_disks[i] - - for disk in self._guest.get_devices("disk"): diff --git a/f7c8cf9f-devicepanic-dont-return-empty-model-list.patch b/f7c8cf9f-devicepanic-dont-return-empty-model-list.patch deleted file mode 100644 index 98bff426..00000000 --- a/f7c8cf9f-devicepanic-dont-return-empty-model-list.patch +++ /dev/null @@ -1,30 +0,0 @@ -Subject: devicepanic: Don't return empty model list (bz #1505532) -From: Cole Robinson crobinso@redhat.com Fri Oct 27 09:42:54 2017 +0200 -Date: Fri Oct 27 09:42:54 2017 +0200: -Git: f7c8cf9f667f2b0122f5689009d74c94c38c7316 - -Callers don't expect it, and it breaks opening the addhardware dialog -for aarch64 VMs - -https://bugzilla.redhat.com/show_bug.cgi?id=1505532 - -diff --git a/virtinst/devicepanic.py b/virtinst/devicepanic.py -index 63a88f71..9f44e93e 100644 ---- a/virtinst/devicepanic.py -+++ b/virtinst/devicepanic.py -@@ -49,12 +49,13 @@ class VirtualPanicDevice(VirtualDevice): - @staticmethod - def get_models(os): - if os.is_x86(): -- return [VirtualPanicDevice.MODEL_ISA, VirtualPanicDevice.MODEL_HYPERV] -+ return [VirtualPanicDevice.MODEL_ISA, -+ VirtualPanicDevice.MODEL_HYPERV] - elif os.is_pseries(): - return [VirtualPanicDevice.MODEL_PSERIES] - elif os.is_s390x(): - return [VirtualPanicDevice.MODEL_S390] -- return None -+ return [] - - @staticmethod - def get_default_model(os): diff --git a/f836e47b-virtinst-Fix-URLFetcher-for-reading-files.patch b/f836e47b-virtinst-Fix-URLFetcher-for-reading-files.patch deleted file mode 100644 index fef84a46..00000000 --- a/f836e47b-virtinst-Fix-URLFetcher-for-reading-files.patch +++ /dev/null @@ -1,20 +0,0 @@ -Subject: virtinst: Fix _URLFetcher for reading files -From: Andrew Wong andrew.kw.w@gmail.com Wed Nov 8 01:23:28 2017 -0500 -Date: Wed Nov 22 17:26:31 2017 -0500: -Git: f836e47b7053ce8cd83c66728acfb9b0f821bcac - -_grabber() is used for both binary and text files. - -diff --git a/virtinst/urlfetcher.py b/virtinst/urlfetcher.py -index 5dae424c..1288668a 100644 ---- a/virtinst/urlfetcher.py -+++ b/virtinst/urlfetcher.py -@@ -169,7 +169,7 @@ class _URLFetcher(object): - """ - Grab the passed filename from self.location and return it as a string - """ -- fileobj = io.StringIO() -+ fileobj = io.BytesIO() - self._grabURL(filename, fileobj) - return fileobj.getvalue() - diff --git a/virt-manager-1.4.3.tar.bz2 b/virt-manager-1.4.3.tar.bz2 deleted file mode 100644 index 5b2a8953..00000000 --- a/virt-manager-1.4.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a393ece4e4db5dd4e9cfb88102e41200c41b56b1db431b19121f894fd8c9fa0 -size 1516794 diff --git a/virt-manager-1.5.0.tar.bz2 b/virt-manager-1.5.0.tar.bz2 new file mode 100644 index 00000000..e5c39391 --- /dev/null +++ b/virt-manager-1.5.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33e0de18182cb3335ce2844c09917786d9db66b208f059a97ca37a6381535578 +size 1547509 diff --git a/virt-manager.changes b/virt-manager.changes index 6b11a0f9..83fae8ed 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -1,3 +1,64 @@ +------------------------------------------------------------------- +Wed Feb 7 08:58:09 MST 2018 - carnold@suse.com + +- Update to virt-manager 1.5.0 (bsc#1027942) + virt-manager-1.5.0.tar.bz2 + * python3 prep work (Radostin Stoyanov, Cole Robinson, Cédric Bosdonnat) + * Switch –location ISO to use isoinfo (Andrew Wong) + * virt-install: add –cpu numa distance handling (Menno Lageman) + * virt-install: fix –disk for rbd volumes with auth (Rauno Väli) + * virt-install: add –cputune vcpupin handling (Wim ten Have) + * details ui: Showing attached scsi devices per controller (Lin Ma) + * network ui: Show details about SR-IOV VF pool (Lin Ma) + * Greatly expand UI test suite coverage +- Dropped patches + 0001-Improve-container-image-url-example.patch + 0001-py3-store-exception-variables-for-use-outside-except.patch + 0002-create-wizard-fix-alignment-in-os-container-page.patch + 0003-oscontainer-ask-root-password-in-the-wizard.patch + 0004-Harmonize-invisible_char-values.patch + 083dfcc8-Show-details-about-the-network-of-SR-IOV-VF-pool.patch + 08a58d61-pycodestyle-remove-description-of-fixed-errors.patch + 0c6bcb09-fix-bytes-string-mess-in-serial-console.patch + 0e812e3c-dont-skip-authentication-for-listen-type-none-with-fixed-QEMU.patch + 23aaf852-network-Set-bridge-name-to-None-instead-of-blank.patch + 2d276ebe-progress-dont-overwrite-format.patch + 2eb455c9-correctly-calculate-virtio-scsi-controller-index.patch + 374a3779-urlfetcher-write-test-file-as-binary-content.patch + 37ea5207-replace-StandardError-with-Exception.patch + 3b769643-dont-add-URI-into-params-for-tunneled-migration.patch + 3be78d1f-addhardware-dont-allow-panic-option-where-not-supported.patch + 44de92b7-use-reload-from-imp-module.patch + 63fce081-pycodestyle-Use-isinstance-for-type-checking.patch + 67122615-python2to3-division-compatability.patch + 69c84bea-import-reduce-from-functools-module.patch + 6dfc4de1-add-support-for-parsing-formatting-SR-IOV-VFs.patch + 6e6f59e7-diskbackend-get-a-proper-size-of-existing-block-device-while-cloning.patch + 73de8285-systray-remove-redundant-variable-assignment.patch + 75210ed3-replace-StringIO-with-io.patch + 7f1b4cee-pycodestyle-fix-all-E125-warnings.patch + 7fc7e94f-fix-virtio-scsi-controller-target-calculation.patch + 91c0669c-cli-Fix-OrderedDict-mutated-during-iteration-on-python3.patch + 9617d126-systray-Use-APPLICATION_STATUS-for-appindicator.patch + 999dbb36-cli-Make-VirtCLIArgument-instantiation-less-crazy.patch + 9a9f9ecd-ignore-comments-in-keymap-conf-files.patch + a2bcd6c4-dont-compare-between-None-and-int.patch + b5b2433a-baseclass-Fix-UI-file-loading-on-py3.patch + b8fa0c6b-xmlnsqemu-order-XML-output-like-libvirt-does.patch + b9bc3b60-undefine-only-persistent-domain.patch + bc3c9a9d-progress-remove-unused-import.patch + bc8c5b07-append--attach-to-virt-viewer-if-graphics-has-listen-type-none.patch + c174b550-connection-Another-py3-exception-variable-fix.patch + d1e1cf64-progress-remove-trailing-white-space.patch + d2648d81-virtconv-dont-implicitly-depend-on-dict-hash-order.patch + d82022bd-manager-drop-python2-only-cmp-usage.patch + dff00d4f-remove-deprecated-statvfs-module.patch + e2ad4b2f-convert-iteritems-to-items.patch + e73abe5a-diskbackend-convert-to-long-the-calculated-size.patch + f41aafc7-Use-enumerate-instead-of-range-and-len.patch + f7c8cf9f-devicepanic-dont-return-empty-model-list.patch + f836e47b-virtinst-Fix-URLFetcher-for-reading-files.patch + ------------------------------------------------------------------- Tue Feb 6 11:57:54 MST 2018 - carnold@suse.com diff --git a/virt-manager.spec b/virt-manager.spec index 56620c4b..50914274 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -23,11 +23,11 @@ %define libvirt_xen_packages "" %define preferred_distros "sles15,opensuse15" %define kvm_packages "" -%define _version 1.4.3 +%define _version 1.5.0 %define _release 0 Name: virt-manager -Version: 1.4.3 +Version: 1.5.0 Release: 0 Summary: Virtual Machine Manager License: GPL-2.0+ @@ -38,47 +38,6 @@ Source1: virt-install.rb Source2: virt-install.desktop Source3: virt-manager-supportconfig # Upstream Patches -Patch1: 3b769643-dont-add-URI-into-params-for-tunneled-migration.patch -Patch2: 6dfc4de1-add-support-for-parsing-formatting-SR-IOV-VFs.patch -Patch3: 083dfcc8-Show-details-about-the-network-of-SR-IOV-VF-pool.patch -Patch4: 9a9f9ecd-ignore-comments-in-keymap-conf-files.patch -Patch5: 9617d126-systray-Use-APPLICATION_STATUS-for-appindicator.patch -Patch6: e73abe5a-diskbackend-convert-to-long-the-calculated-size.patch -Patch7: 6e6f59e7-diskbackend-get-a-proper-size-of-existing-block-device-while-cloning.patch -Patch8: 23aaf852-network-Set-bridge-name-to-None-instead-of-blank.patch -Patch9: d1e1cf64-progress-remove-trailing-white-space.patch -Patch10: 63fce081-pycodestyle-Use-isinstance-for-type-checking.patch -Patch11: 08a58d61-pycodestyle-remove-description-of-fixed-errors.patch -Patch12: bc3c9a9d-progress-remove-unused-import.patch -Patch13: 2d276ebe-progress-dont-overwrite-format.patch -Patch14: e2ad4b2f-convert-iteritems-to-items.patch -Patch15: dff00d4f-remove-deprecated-statvfs-module.patch -Patch16: 75210ed3-replace-StringIO-with-io.patch -Patch17: a2bcd6c4-dont-compare-between-None-and-int.patch -Patch18: 44de92b7-use-reload-from-imp-module.patch -Patch19: 69c84bea-import-reduce-from-functools-module.patch -Patch20: 37ea5207-replace-StandardError-with-Exception.patch -Patch21: f41aafc7-Use-enumerate-instead-of-range-and-len.patch -Patch22: 91c0669c-cli-Fix-OrderedDict-mutated-during-iteration-on-python3.patch -Patch23: b8fa0c6b-xmlnsqemu-order-XML-output-like-libvirt-does.patch -Patch24: d2648d81-virtconv-dont-implicitly-depend-on-dict-hash-order.patch -Patch25: 999dbb36-cli-Make-VirtCLIArgument-instantiation-less-crazy.patch -Patch26: 7f1b4cee-pycodestyle-fix-all-E125-warnings.patch -Patch27: d82022bd-manager-drop-python2-only-cmp-usage.patch -Patch28: 374a3779-urlfetcher-write-test-file-as-binary-content.patch -Patch29: f7c8cf9f-devicepanic-dont-return-empty-model-list.patch -Patch30: 3be78d1f-addhardware-dont-allow-panic-option-where-not-supported.patch -Patch31: 73de8285-systray-remove-redundant-variable-assignment.patch -Patch32: b9bc3b60-undefine-only-persistent-domain.patch -Patch33: 7fc7e94f-fix-virtio-scsi-controller-target-calculation.patch -Patch34: 2eb455c9-correctly-calculate-virtio-scsi-controller-index.patch -Patch35: f836e47b-virtinst-Fix-URLFetcher-for-reading-files.patch -Patch36: c174b550-connection-Another-py3-exception-variable-fix.patch -Patch37: b5b2433a-baseclass-Fix-UI-file-loading-on-py3.patch -Patch38: 0c6bcb09-fix-bytes-string-mess-in-serial-console.patch -Patch39: bc8c5b07-append--attach-to-virt-viewer-if-graphics-has-listen-type-none.patch -Patch40: 0e812e3c-dont-skip-authentication-for-listen-type-none-with-fixed-QEMU.patch -Patch41: 67122615-python2to3-division-compatability.patch # SUSE Only Patch70: virtman-desktop.patch Patch71: virtman-kvm.patch @@ -133,12 +92,6 @@ Patch206: 0002-virtinst-python3-avoid-comparison-of-None-and-int.patch Patch207: 0003-virtinst-python3-avoid-using-long-type.patch Patch208: 0004-virtinst-python3-use-binary-mode-for-kernel.patch Patch209: virtman-register-delete-event-for-details-dialog.patch -Patch210: 0001-py3-store-exception-variables-for-use-outside-except.patch -# For upstream review -Patch500: 0001-Improve-container-image-url-example.patch -Patch501: 0002-create-wizard-fix-alignment-in-os-container-page.patch -Patch502: 0003-oscontainer-ask-root-password-in-the-wizard.patch -Patch503: 0004-Harmonize-invisible_char-values.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -223,47 +176,6 @@ machine). %prep %setup -q # Upstream Patches -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 # SUSE Only %patch70 -p1 %patch71 -p1 @@ -318,11 +230,6 @@ machine). %patch207 -p1 %patch208 -p1 %patch209 -p1 -%patch210 -p1 -%patch500 -p1 -%patch501 -p1 -%patch502 -p1 -%patch503 -p1 %build %if %{qemu_user} diff --git a/virtinst-add-caasp-support.patch b/virtinst-add-caasp-support.patch index 9fd33f24..3d097c6f 100644 --- a/virtinst-add-caasp-support.patch +++ b/virtinst-add-caasp-support.patch @@ -1,10 +1,10 @@ References: bsc#1010060 -Index: virt-manager-1.4.3/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.3/virtinst/urlfetcher.py -@@ -466,6 +466,10 @@ def _distroFromSUSEContent(fetcher, arch +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -490,6 +490,10 @@ def _distroFromSUSEContent(fetcher, arch dclass = OESDistro if distro_version is None: distro_version = _parse_sle_distribution(distribution) @@ -15,7 +15,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py elif re.match(".*openSUSE.*", distribution[1]): dclass = OpensuseDistro if distro_version is None: -@@ -1052,6 +1056,8 @@ class SuseDistro(Distro): +@@ -1076,6 +1080,8 @@ class SuseDistro(Distro): self.os_variant += major_version + 'sp' + sp_version else: self.os_variant += major_version @@ -24,7 +24,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py else: self.os_variant += "9" -@@ -1098,6 +1104,11 @@ class SLESDistro(SuseDistro): +@@ -1122,6 +1128,11 @@ class SLESDistro(SuseDistro): class SLEDDistro(SuseDistro): urldistro = "sled" diff --git a/virtinst-add-ppc64-arch-support.patch b/virtinst-add-ppc64-arch-support.patch index 26dde2f3..49031135 100644 --- a/virtinst-add-ppc64-arch-support.patch +++ b/virtinst-add-ppc64-arch-support.patch @@ -1,10 +1,10 @@ Reference: bnc#869024 Add s390x and ppc64 support -Index: virt-manager-1.4.2/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.2/virtinst/urlfetcher.py -@@ -440,6 +440,10 @@ def _distroFromSUSEContent(fetcher, arch +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -464,6 +464,10 @@ def _distroFromSUSEContent(fetcher, arch arch = "i586" elif cbuf.find("s390x") != -1: arch = "s390x" @@ -15,7 +15,7 @@ Index: virt-manager-1.4.2/virtinst/urlfetcher.py def _parse_sle_distribution(d): sle_version = d[1].strip().rsplit(' ')[4] -@@ -998,10 +1002,12 @@ class SuseDistro(Distro): +@@ -1022,10 +1026,12 @@ class SuseDistro(Distro): oldkern += "64" oldinit += "64" diff --git a/virtinst-add-sle15-detection-support.patch b/virtinst-add-sle15-detection-support.patch index 599e76c4..5e110e93 100644 --- a/virtinst-add-sle15-detection-support.patch +++ b/virtinst-add-sle15-detection-support.patch @@ -6,11 +6,11 @@ We must continue to keep the content parsing code for the older distros. As a fallback, detection is also setup to look at the media.1/products and media.1/build files. -Index: virt-manager-1.4.3/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.3/virtinst/urlfetcher.py -@@ -392,7 +392,23 @@ def _distroFromSUSEContent(fetcher, arch +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -416,7 +416,23 @@ def _distroFromSUSEContent(fetcher, arch try: cbuf = fetcher.acquireFileContent("content") except ValueError: @@ -35,7 +35,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py distribution = None distro_version = None -@@ -465,7 +481,7 @@ def _distroFromSUSEContent(fetcher, arch +@@ -489,7 +505,7 @@ def _distroFromSUSEContent(fetcher, arch dclass = GenericDistro if distribution: if re.match(".*SUSE Linux Enterprise Server*", distribution[1]) or \ @@ -44,7 +44,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py dclass = SLESDistro if distro_version is None: distro_version = _parse_sle_distribution(distribution) -@@ -481,10 +497,13 @@ def _distroFromSUSEContent(fetcher, arch +@@ -505,10 +521,13 @@ def _distroFromSUSEContent(fetcher, arch dclass = CAASPDistro if distro_version is None: distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[6]] @@ -60,7 +60,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py if distro_version is None: return None -@@ -1003,6 +1022,7 @@ class SLDistro(RHELDistro): +@@ -1027,6 +1046,7 @@ class SLDistro(RHELDistro): class SuseDistro(Distro): name = "SUSE" @@ -68,7 +68,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py _boot_iso_paths = ["boot/boot.iso"] -@@ -1040,8 +1060,11 @@ class SuseDistro(Distro): +@@ -1064,8 +1084,11 @@ class SuseDistro(Distro): self._xen_kernel_paths = [("boot/%s/vmlinuz-xenpae" % self.arch, "boot/%s/initrd-xenpae" % self.arch)] else: @@ -82,7 +82,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py def _variantFromVersion(self): distro_version = self.version_from_content[1].strip() -@@ -1053,7 +1076,7 @@ class SuseDistro(Distro): +@@ -1077,7 +1100,7 @@ class SuseDistro(Distro): if len(distro_version.split('.', 1)) == 2: sp_version = 'sp' + distro_version.split('.', 1)[1].strip() self.os_variant += version @@ -91,7 +91,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py self.os_variant += sp_version elif self.os_variant.startswith("opensuse"): if len(version) == 8: -@@ -1077,6 +1100,24 @@ class SuseDistro(Distro): +@@ -1101,6 +1124,24 @@ class SuseDistro(Distro): self.os_variant += "9" def isValidStore(self): @@ -116,7 +116,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py # self.version_from_content is the VERSION line from the contents file if (not self.version_from_content or self.version_from_content[1] is None): -@@ -1128,8 +1169,6 @@ class OESDistro(SuseDistro): +@@ -1152,8 +1193,6 @@ class OESDistro(SuseDistro): urldistro = "oes" diff --git a/virtinst-detect-oes-distros.patch b/virtinst-detect-oes-distros.patch index 3c342614..53bf53c4 100644 --- a/virtinst-detect-oes-distros.patch +++ b/virtinst-detect-oes-distros.patch @@ -1,10 +1,10 @@ Enhancement to correctly detect Open Enterprise Server media is selected as the installation source. -Index: virt-manager-1.4.2/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.2/virtinst/urlfetcher.py -@@ -458,6 +458,10 @@ def _distroFromSUSEContent(fetcher, arch +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -482,6 +482,10 @@ def _distroFromSUSEContent(fetcher, arch dclass = SLEDDistro if distro_version is None: distro_version = _parse_sle_distribution(distribution) @@ -15,7 +15,7 @@ Index: virt-manager-1.4.2/virtinst/urlfetcher.py elif re.match(".*openSUSE.*", distribution[1]): dclass = OpensuseDistro if distro_version is None: -@@ -1018,20 +1022,30 @@ class SuseDistro(Distro): +@@ -1042,20 +1046,30 @@ class SuseDistro(Distro): distro_version = self.version_from_content[1].strip() version = distro_version.split('.', 1)[0].strip() self.os_variant = self.urldistro @@ -59,7 +59,7 @@ Index: virt-manager-1.4.2/virtinst/urlfetcher.py else: self.os_variant += "9" -@@ -1078,6 +1092,9 @@ class SLESDistro(SuseDistro): +@@ -1102,6 +1116,9 @@ class SLESDistro(SuseDistro): class SLEDDistro(SuseDistro): urldistro = "sled" diff --git a/virtinst-fix-sle-distro-parsing.patch b/virtinst-fix-sle-distro-parsing.patch index 76e2e7b1..9ff393a0 100644 --- a/virtinst-fix-sle-distro-parsing.patch +++ b/virtinst-fix-sle-distro-parsing.patch @@ -1,10 +1,10 @@ References: bsc#1042709 -Index: virt-manager-1.4.2/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.2/virtinst/urlfetcher.py -@@ -446,9 +446,20 @@ def _distroFromSUSEContent(fetcher, arch +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -470,9 +470,20 @@ def _distroFromSUSEContent(fetcher, arch arch = "ppc64le" def _parse_sle_distribution(d): diff --git a/virtinst-nfs-install-sanitize.patch b/virtinst-nfs-install-sanitize.patch index 6867694a..61e17c8c 100644 --- a/virtinst-nfs-install-sanitize.patch +++ b/virtinst-nfs-install-sanitize.patch @@ -5,10 +5,10 @@ A fix for accessing nfs mounted media. A comment in the code states, and carry the latter form around internally" We need the RFC version to work correctly whereas redhat's anaconda needs their own modified version. -Index: virt-manager-1.4.3/virtinst/util.py +Index: virt-manager-1.5.0/virtinst/util.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/util.py -+++ virt-manager-1.4.3/virtinst/util.py +--- virt-manager-1.5.0.orig/virtinst/util.py ++++ virt-manager-1.5.0/virtinst/util.py @@ -374,3 +374,22 @@ def getInstallRepos(): return (0, []) return lookupZypperRepos(getHostInstallSource()) @@ -32,10 +32,10 @@ Index: virt-manager-1.4.3/virtinst/util.py + + return url + -Index: virt-manager-1.4.3/virtinst/distroinstaller.py +Index: virt-manager-1.5.0/virtinst/distroinstaller.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/distroinstaller.py -+++ virt-manager-1.4.3/virtinst/distroinstaller.py +--- virt-manager-1.5.0.orig/virtinst/distroinstaller.py ++++ virt-manager-1.5.0/virtinst/distroinstaller.py @@ -44,6 +44,8 @@ def _sanitize_url(url): """ Do nothing for http or ftp, but make sure nfs is in the expected format @@ -45,11 +45,11 @@ Index: virt-manager-1.4.3/virtinst/distroinstaller.py if url.startswith("nfs://"): # Convert RFC compliant NFS nfs://server/path/to/distro # to what mount/anaconda expect nfs:server:/path/to/distro -Index: virt-manager-1.4.3/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.3/virtinst/urlfetcher.py -@@ -34,6 +34,7 @@ import urlparse +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -33,6 +33,7 @@ import urlparse import requests from .osdict import OSDB @@ -57,13 +57,13 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py ######################################################################### -@@ -303,7 +304,8 @@ class _MountedURLFetcher(_LocalURLFetche +@@ -301,7 +302,8 @@ class _MountedURLFetcher(_LocalURLFetche + mountcmd = "/bin/mount" logging.debug("Preparing mount at " + self._srcdir) - if self.location.startswith("nfs:"): -- cmd = [mountcmd, "-o", "ro", self.location[4:], self._srcdir] -+ url = util.sanitize_url(self.location) -+ cmd = [mountcmd, "-o", "ro", url[4:], self._srcdir] - else: - if stat.S_ISBLK(os.stat(self.location)[stat.ST_MODE]): - mountopt = "ro" +- cmd = [mountcmd, "-o", "ro", self.location[4:], self._srcdir] ++ url = util.sanitize_url(self.location) ++ cmd = [mountcmd, "-o", "ro", url[4:], self._srcdir] + + logging.debug("mount cmd: %s", cmd) + if not self._in_test_suite: diff --git a/virtinst-python2-to-python3-conversion.patch b/virtinst-python2-to-python3-conversion.patch index b622eddf..114989cb 100644 --- a/virtinst-python2-to-python3-conversion.patch +++ b/virtinst-python2-to-python3-conversion.patch @@ -1,17 +1,17 @@ -Index: virt-manager-1.4.3/virt-install +Index: virt-manager-1.5.0/virt-install =================================================================== ---- virt-manager-1.4.3.orig/virt-install -+++ virt-manager-1.4.3/virt-install +--- virt-manager-1.5.0.orig/virt-install ++++ virt-manager-1.5.0/virt-install @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/python3 # # Copyright 2005-2014 Red Hat, Inc. # -Index: virt-manager-1.4.3/virtinst/uri.py +Index: virt-manager-1.5.0/virtinst/uri.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/uri.py -+++ virt-manager-1.4.3/virtinst/uri.py +--- virt-manager-1.5.0.orig/virtinst/uri.py ++++ virt-manager-1.5.0/virtinst/uri.py @@ -19,7 +19,7 @@ import logging @@ -30,10 +30,10 @@ Index: virt-manager-1.4.3/virtinst/uri.py (self.scheme, self.username, self.hostname, self.path, self.query, self.fragment) = self._split(unquoted_uri) -Index: virt-manager-1.4.3/virtinst/hostkeymap.py +Index: virt-manager-1.5.0/virtinst/hostkeymap.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/hostkeymap.py -+++ virt-manager-1.4.3/virtinst/hostkeymap.py +--- virt-manager-1.5.0.orig/virtinst/hostkeymap.py ++++ virt-manager-1.5.0/virtinst/hostkeymap.py @@ -20,6 +20,7 @@ import logging import os @@ -51,10 +51,10 @@ Index: virt-manager-1.4.3/virtinst/hostkeymap.py for key in sorted_keys: origkey = key -Index: virt-manager-1.4.3/virtinst/support.py +Index: virt-manager-1.5.0/virtinst/support.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/support.py -+++ virt-manager-1.4.3/virtinst/support.py +--- virt-manager-1.5.0.orig/virtinst/support.py ++++ virt-manager-1.5.0/virtinst/support.py @@ -167,7 +167,7 @@ class _SupportCheck(object): self.hv_version = hv_version or {} self.hv_libvirt_version = hv_libvirt_version or {} @@ -64,10 +64,10 @@ Index: virt-manager-1.4.3/virtinst/support.py for vstr in versions: v = _version_str_to_int(vstr) if vstr is not None and v != 0 and v < 7009: -Index: virt-manager-1.4.3/virtinst/osdict.py +Index: virt-manager-1.5.0/virtinst/osdict.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/osdict.py -+++ virt-manager-1.4.3/virtinst/osdict.py +--- virt-manager-1.5.0.orig/virtinst/osdict.py ++++ virt-manager-1.5.0/virtinst/osdict.py @@ -79,7 +79,7 @@ def _sort(tosort, sortpref=None, limit_p retlist = [] sortpref = sortpref or [] @@ -101,10 +101,10 @@ Index: virt-manager-1.4.3/virtinst/osdict.py if typename and typename != osobj.get_typename(): continue if only_supported and not osobj.get_supported(): -Index: virt-manager-1.4.3/virtinst/guest.py +Index: virt-manager-1.5.0/virtinst/guest.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/guest.py -+++ virt-manager-1.4.3/virtinst/guest.py +--- virt-manager-1.5.0.orig/virtinst/guest.py ++++ virt-manager-1.5.0/virtinst/guest.py @@ -434,7 +434,7 @@ class Guest(XMLBuilder): domain.undefine() except Exception: @@ -123,10 +123,10 @@ Index: virt-manager-1.4.3/virtinst/guest.py if len(devs) > 1 and 0 in devs: devs[0].address.multifunction = True -Index: virt-manager-1.4.3/virtinst/distroinstaller.py +Index: virt-manager-1.5.0/virtinst/distroinstaller.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/distroinstaller.py -+++ virt-manager-1.4.3/virtinst/distroinstaller.py +--- virt-manager-1.5.0.orig/virtinst/distroinstaller.py ++++ virt-manager-1.5.0/virtinst/distroinstaller.py @@ -68,7 +68,7 @@ def _sanitize_url(url): MEDIA_LOCATION_URL, MEDIA_CDROM_PATH, @@ -136,10 +136,10 @@ Index: virt-manager-1.4.3/virtinst/distroinstaller.py class DistroInstaller(Installer): -Index: virt-manager-1.4.3/virtinst/cli.py +Index: virt-manager-1.5.0/virtinst/cli.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/cli.py -+++ virt-manager-1.4.3/virtinst/cli.py +--- virt-manager-1.5.0.orig/virtinst/cli.py ++++ virt-manager-1.5.0/virtinst/cli.py @@ -19,7 +19,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. @@ -149,7 +149,7 @@ Index: virt-manager-1.4.3/virtinst/cli.py import argparse import collections -@@ -293,7 +293,7 @@ def _do_creds_authname(creds): +@@ -294,7 +294,7 @@ def _do_creds_authname(creds): res = cred[retindex] if credtype == libvirt.VIR_CRED_AUTHNAME: @@ -158,7 +158,7 @@ Index: virt-manager-1.4.3/virtinst/cli.py elif credtype == libvirt.VIR_CRED_PASSPHRASE: import getpass res = getpass.getpass(prompt) -@@ -1159,7 +1159,7 @@ class VirtCLIParser(object): +@@ -1193,7 +1193,7 @@ class VirtCLIParser(object): passed an invalid argument such as --disk idontexist=foo """ if optdict: @@ -167,7 +167,7 @@ Index: virt-manager-1.4.3/virtinst/cli.py def _parse(self, inst): """ -@@ -1616,7 +1616,7 @@ class ParserBoot(VirtCLIParser): +@@ -1681,7 +1681,7 @@ class ParserBoot(VirtCLIParser): def _parse(self, inst): # Build boot order boot_order = [] @@ -176,10 +176,10 @@ Index: virt-manager-1.4.3/virtinst/cli.py if cliname not in inst.os.BOOT_DEVICES: continue -Index: virt-manager-1.4.3/virtinst/xmlbuilder.py +Index: virt-manager-1.5.0/virtinst/xmlbuilder.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/xmlbuilder.py -+++ virt-manager-1.4.3/virtinst/xmlbuilder.py +--- virt-manager-1.5.0.orig/virtinst/xmlbuilder.py ++++ virt-manager-1.5.0/virtinst/xmlbuilder.py @@ -327,7 +327,7 @@ class XMLChildProperty(property): def _findpropname(self, xmlbuilder): @@ -290,10 +290,10 @@ Index: virt-manager-1.4.3/virtinst/xmlbuilder.py if key not in do_order: do_order.append(key) -Index: virt-manager-1.4.3/virtinst/domcapabilities.py +Index: virt-manager-1.5.0/virtinst/domcapabilities.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/domcapabilities.py -+++ virt-manager-1.4.3/virtinst/domcapabilities.py +--- virt-manager-1.5.0.orig/virtinst/domcapabilities.py ++++ virt-manager-1.5.0/virtinst/domcapabilities.py @@ -139,7 +139,7 @@ class DomainCapabilities(XMLBuilder): return _("BIOS") return _("None") @@ -312,10 +312,10 @@ Index: virt-manager-1.4.3/virtinst/domcapabilities.py def supports_uefi_xml(self): """ -Index: virt-manager-1.4.3/virtinst/devicedisk.py +Index: virt-manager-1.5.0/virtinst/devicedisk.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/devicedisk.py -+++ virt-manager-1.4.3/virtinst/devicedisk.py +--- virt-manager-1.5.0.orig/virtinst/devicedisk.py ++++ virt-manager-1.5.0/virtinst/devicedisk.py @@ -87,7 +87,7 @@ def _is_dir_searchable(uid, username, pa logging.debug("Cmd '%s' failed: %s", cmd, err) return False @@ -324,8 +324,8 @@ Index: virt-manager-1.4.3/virtinst/devicedisk.py + return bool(re.search("user:%s:..x" % username, out.decode())) - class _DiskSeclabel(XMLBuilder): -@@ -445,7 +445,7 @@ class VirtualDisk(VirtualDevice): + class _Host(XMLBuilder): +@@ -453,7 +453,7 @@ class VirtualDisk(VirtualDevice): digit = 1 seen_valid = True @@ -334,7 +334,7 @@ Index: virt-manager-1.4.3/virtinst/devicedisk.py return gen_t -@@ -1022,11 +1022,11 @@ class VirtualDisk(VirtualDevice): +@@ -1054,11 +1054,11 @@ class VirtualDisk(VirtualDevice): def get_target(): first_found = None @@ -348,10 +348,10 @@ Index: virt-manager-1.4.3/virtinst/devicedisk.py for i in ran: postfix = self.num_to_target(i + 1) -Index: virt-manager-1.4.3/virtinst/storage.py +Index: virt-manager-1.5.0/virtinst/storage.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/storage.py -+++ virt-manager-1.4.3/virtinst/storage.py +--- virt-manager-1.5.0.orig/virtinst/storage.py ++++ virt-manager-1.5.0/virtinst/storage.py @@ -130,7 +130,7 @@ class StoragePool(_StorageObject): """ Return list of appropriate pool types @@ -361,10 +361,10 @@ Index: virt-manager-1.4.3/virtinst/storage.py @staticmethod def get_pool_type_desc(pool_type): -Index: virt-manager-1.4.3/virtinst/devicegraphics.py +Index: virt-manager-1.5.0/virtinst/devicegraphics.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/devicegraphics.py -+++ virt-manager-1.4.3/virtinst/devicegraphics.py +--- virt-manager-1.5.0.orig/virtinst/devicegraphics.py ++++ virt-manager-1.5.0/virtinst/devicegraphics.py @@ -84,7 +84,7 @@ class VirtualGraphics(VirtualDevice): """ from . import hostkeymap @@ -374,10 +374,10 @@ Index: virt-manager-1.4.3/virtinst/devicegraphics.py sort_list = [] orig_list.sort() -Index: virt-manager-1.4.3/virtinst/util.py +Index: virt-manager-1.5.0/virtinst/util.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/util.py -+++ virt-manager-1.4.3/virtinst/util.py +--- virt-manager-1.5.0.orig/virtinst/util.py ++++ virt-manager-1.5.0/virtinst/util.py @@ -147,7 +147,7 @@ def generate_name(base, collision_cb, su else: return collision_cb(tryname) @@ -387,10 +387,10 @@ Index: virt-manager-1.4.3/virtinst/util.py if not force_num: numrange = [None] + numrange -Index: virt-manager-1.4.3/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.3/virtinst/urlfetcher.py +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py @@ -19,7 +19,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. @@ -400,8 +400,8 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py import ftplib import io import logging -@@ -28,8 +28,8 @@ import re - import stat +@@ -27,8 +27,8 @@ import os + import re import subprocess import tempfile -import urllib2 @@ -411,7 +411,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py import requests -@@ -221,9 +221,13 @@ class _FTPURLFetcher(_URLFetcher): +@@ -220,9 +220,13 @@ class _FTPURLFetcher(_URLFetcher): return try: @@ -427,7 +427,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py self._ftp.login() # Force binary mode self._ftp.voidcmd("TYPE I") -@@ -235,9 +239,9 @@ class _FTPURLFetcher(_URLFetcher): +@@ -234,9 +238,9 @@ class _FTPURLFetcher(_URLFetcher): """ Use urllib2 and ftplib to grab the file """ @@ -440,7 +440,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py return urlobj, size -@@ -253,7 +257,7 @@ class _FTPURLFetcher(_URLFetcher): +@@ -252,7 +256,7 @@ class _FTPURLFetcher(_URLFetcher): self._ftp = None def _hasFile(self, url): @@ -449,7 +449,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py try: try: -@@ -278,7 +282,7 @@ class _LocalURLFetcher(_URLFetcher): +@@ -277,7 +281,7 @@ class _LocalURLFetcher(_URLFetcher): return os.path.exists(url) def _grabber(self, url): @@ -458,7 +458,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py size = os.path.getsize(url) return urlobj, size -@@ -371,14 +375,14 @@ def _grabTreeinfo(fetcher): +@@ -395,14 +399,14 @@ def _grabTreeinfo(fetcher): return None try: @@ -475,7 +475,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py logging.debug("Did not find 'family' section in treeinfo") return None -@@ -391,11 +395,13 @@ def _distroFromSUSEContent(fetcher, arch +@@ -415,11 +419,13 @@ def _distroFromSUSEContent(fetcher, arch # None if no content, GenericDistro if unknown label type. try: cbuf = fetcher.acquireFileContent("content") @@ -489,7 +489,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py pbuf = pbuf.split(' ', 1)[1].strip() # The media.1/products file naming convention changed between SLE11 and SLE12 if pbuf.startswith('SLE'): -@@ -404,6 +410,7 @@ def _distroFromSUSEContent(fetcher, arch +@@ -428,6 +434,7 @@ def _distroFromSUSEContent(fetcher, arch cbuf = "\nDISTRO ," + pbuf.replace('-', ' ') try: bbuf = fetcher.acquireFileContent("media.1/build").split('-') @@ -497,7 +497,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py except: bbuf = ["x86_64"] cbuf = cbuf + "\n" + " ".join(bbuf) -@@ -621,7 +628,7 @@ class Distro(object): +@@ -645,7 +652,7 @@ class Distro(object): try: kernelpath = self._getTreeinfoMedia("kernel") initrdpath = self._getTreeinfoMedia("initrd") @@ -506,7 +506,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py pass if not kernelpath or not initrdpath: -@@ -688,6 +695,7 @@ class Distro(object): +@@ -712,6 +719,7 @@ class Distro(object): # Fetch 'filename' and return True/False if it matches the regex try: content = self.fetcher.acquireFileContent(filename) @@ -514,7 +514,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py except ValueError: return False -@@ -757,15 +765,15 @@ class GenericDistro(Distro): +@@ -781,15 +789,15 @@ class GenericDistro(Distro): self._valid_kernel_path = ( self._getTreeinfoMedia("kernel"), self._getTreeinfoMedia("initrd")) @@ -533,7 +533,7 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py logging.debug(e) if self.type == "xen": -@@ -1440,7 +1448,7 @@ class ALTLinuxDistro(Distro): +@@ -1472,7 +1480,7 @@ class ALTLinuxDistro(Distro): # Build list of all *Distro classes def _build_distro_list(): allstores = [] @@ -542,10 +542,10 @@ Index: virt-manager-1.4.3/virtinst/urlfetcher.py if isinstance(obj, type) and issubclass(obj, Distro) and obj.name: allstores.append(obj) -Index: virt-manager-1.4.3/virtinst/diskbackend.py +Index: virt-manager-1.5.0/virtinst/diskbackend.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/diskbackend.py -+++ virt-manager-1.4.3/virtinst/diskbackend.py +--- virt-manager-1.5.0.orig/virtinst/diskbackend.py ++++ virt-manager-1.5.0/virtinst/diskbackend.py @@ -391,7 +391,7 @@ class CloneStorageCreator(_StorageCreato else: vfs = os.statvfs(os.path.dirname(self._path)) @@ -564,10 +564,10 @@ Index: virt-manager-1.4.3/virtinst/diskbackend.py progresscb.start(filename=self._output_path, size=size_bytes, text=text) -Index: virt-manager-1.4.3/virtinst/progress.py +Index: virt-manager-1.5.0/virtinst/progress.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/progress.py -+++ virt-manager-1.4.3/virtinst/progress.py +--- virt-manager-1.5.0.orig/virtinst/progress.py ++++ virt-manager-1.5.0/virtinst/progress.py @@ -481,7 +481,7 @@ def format_number(number, SI=0, space=' depth = depth + 1 number = number / step @@ -577,10 +577,10 @@ Index: virt-manager-1.4.3/virtinst/progress.py # it's an int or a long, which means it didn't get divided, # which means it's already short enough fmt = '%i%s%s' -Index: virt-manager-1.4.3/virtinst/pollhelpers.py +Index: virt-manager-1.5.0/virtinst/pollhelpers.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/pollhelpers.py -+++ virt-manager-1.4.3/virtinst/pollhelpers.py +--- virt-manager-1.5.0.orig/virtinst/pollhelpers.py ++++ virt-manager-1.5.0/virtinst/pollhelpers.py @@ -50,7 +50,7 @@ def _new_poll_helper(origmap, typename, current[connkey] = origmap[connkey] del(origmap[connkey]) diff --git a/virtinst-s390x-disable-graphics.patch b/virtinst-s390x-disable-graphics.patch index 66c598f0..6c2dbb4b 100644 --- a/virtinst-s390x-disable-graphics.patch +++ b/virtinst-s390x-disable-graphics.patch @@ -1,10 +1,10 @@ Reference: bnc#869024 Disable graphics on s390x -Index: virt-manager-1.4.3/virtinst/guest.py +Index: virt-manager-1.5.0/virtinst/guest.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/guest.py -+++ virt-manager-1.4.3/virtinst/guest.py -@@ -125,7 +125,10 @@ class Guest(XMLBuilder): +--- virt-manager-1.5.0.orig/virtinst/guest.py ++++ virt-manager-1.5.0/virtinst/guest.py +@@ -126,7 +126,10 @@ class Guest(XMLBuilder): self.skip_default_channel = False self.skip_default_sound = False self.skip_default_usbredir = False diff --git a/virtinst-storage-ocfs2.patch b/virtinst-storage-ocfs2.patch index 4ee800b9..6e160771 100644 --- a/virtinst-storage-ocfs2.patch +++ b/virtinst-storage-ocfs2.patch @@ -1,9 +1,9 @@ Enhancement to add ocfs2 as a supported FS type -Index: virt-manager-1.4.2/virtinst/storage.py +Index: virt-manager-1.5.0/virtinst/storage.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/storage.py -+++ virt-manager-1.4.2/virtinst/storage.py -@@ -467,7 +467,7 @@ class StoragePool(_StorageObject): +--- virt-manager-1.5.0.orig/virtinst/storage.py ++++ virt-manager-1.5.0/virtinst/storage.py +@@ -460,7 +460,7 @@ class StoragePool(_StorageObject): def list_formats(self): if self.type == self.TYPE_FS: return ["auto", "ext2", "ext3", "ext4", "ufs", "iso9660", "udf", diff --git a/virtinst-use-qemu-for-cdrom-device.patch b/virtinst-use-qemu-for-cdrom-device.patch index de106274..a899d9a3 100644 --- a/virtinst-use-qemu-for-cdrom-device.patch +++ b/virtinst-use-qemu-for-cdrom-device.patch @@ -2,11 +2,11 @@ References: bsc#989639 When the device added is a cdrom device (/dev/sr0), don't use "phy" as the driver name but instead use "qemu". -Index: virt-manager-1.4.2/virtinst/devicedisk.py +Index: virt-manager-1.5.0/virtinst/devicedisk.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/devicedisk.py -+++ virt-manager-1.4.2/virtinst/devicedisk.py -@@ -552,7 +552,8 @@ class VirtualDisk(VirtualDevice): +--- virt-manager-1.5.0.orig/virtinst/devicedisk.py ++++ virt-manager-1.5.0/virtinst/devicedisk.py +@@ -561,7 +561,8 @@ class VirtualDisk(VirtualDevice): # Recommended xen defaults from here: # https://bugzilla.redhat.com/show_bug.cgi?id=1171550#c9 # If type block, use name=phy. Otherwise do the same as qemu diff --git a/virtinst-use-xenpae-kernel-for-32bit.patch b/virtinst-use-xenpae-kernel-for-32bit.patch index cd7d2943..9ecfe5f5 100644 --- a/virtinst-use-xenpae-kernel-for-32bit.patch +++ b/virtinst-use-xenpae-kernel-for-32bit.patch @@ -4,11 +4,11 @@ a non pae version. The sles10 sp4 32bit kernel will only boot para- virtualized if the pae kernel is selected. Note that sles12 and newer has no 32bit release. -Index: virt-manager-1.4.2/virtinst/urlfetcher.py +Index: virt-manager-1.5.0/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/urlfetcher.py -+++ virt-manager-1.4.2/virtinst/urlfetcher.py -@@ -1025,8 +1025,12 @@ class SuseDistro(Distro): +--- virt-manager-1.5.0.orig/virtinst/urlfetcher.py ++++ virt-manager-1.5.0/virtinst/urlfetcher.py +@@ -1049,8 +1049,12 @@ class SuseDistro(Distro): "boot/%s/initrd" % self.arch)) # Matches Opensuse > 10.2 and sles 10 diff --git a/virtinst-vol-default-nocow.patch b/virtinst-vol-default-nocow.patch index f952c323..930acf88 100644 --- a/virtinst-vol-default-nocow.patch +++ b/virtinst-vol-default-nocow.patch @@ -4,11 +4,11 @@ issue on btrfs. Signed-off-by: Chunyan Liu -Index: virt-manager-1.4.3/virtinst/storage.py +Index: virt-manager-1.5.0/virtinst/storage.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/storage.py -+++ virt-manager-1.4.3/virtinst/storage.py -@@ -708,6 +708,12 @@ class StorageVolume(_StorageObject): +--- virt-manager-1.5.0.orig/virtinst/storage.py ++++ virt-manager-1.5.0/virtinst/storage.py +@@ -701,6 +701,12 @@ class StorageVolume(_StorageObject): return self._pool_xml.get_disk_type() file_type = property(_get_vol_type) @@ -21,10 +21,10 @@ Index: virt-manager-1.4.3/virtinst/storage.py ################## # XML properties # -Index: virt-manager-1.4.3/virtinst/support.py +Index: virt-manager-1.5.0/virtinst/support.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/support.py -+++ virt-manager-1.4.3/virtinst/support.py +--- virt-manager-1.5.0.orig/virtinst/support.py ++++ virt-manager-1.5.0/virtinst/support.py @@ -326,6 +326,8 @@ SUPPORT_CONN_USB3_PORTS = _make(version= SUPPORT_CONN_MACHVIRT_PCI_DEFAULT = _make(version="3.0.0") SUPPORT_CONN_QEMU_XHCI = _make(version="3.3.0") diff --git a/virtinst-xen-drive-type.patch b/virtinst-xen-drive-type.patch index 81fc5b40..5438502c 100644 --- a/virtinst-xen-drive-type.patch +++ b/virtinst-xen-drive-type.patch @@ -2,11 +2,11 @@ Reference: bnc#813082 Virt-manager on Xen doesn't fill in any type thereby defaulting to 'raw'. This patch will generate the correct XML on Xen. -Index: virt-manager-1.4.2/virtinst/devicedisk.py +Index: virt-manager-1.5.0/virtinst/devicedisk.py =================================================================== ---- virt-manager-1.4.2.orig/virtinst/devicedisk.py -+++ virt-manager-1.4.2/virtinst/devicedisk.py -@@ -570,6 +570,10 @@ class VirtualDisk(VirtualDevice): +--- virt-manager-1.5.0.orig/virtinst/devicedisk.py ++++ virt-manager-1.5.0/virtinst/devicedisk.py +@@ -579,6 +579,10 @@ class VirtualDisk(VirtualDevice): http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00675.html """ if self.driver_name != self.DRIVER_NAME_QEMU: diff --git a/virtinst-xenbus-disk-index-fix.patch b/virtinst-xenbus-disk-index-fix.patch index f973e125..0d32c925 100644 --- a/virtinst-xenbus-disk-index-fix.patch +++ b/virtinst-xenbus-disk-index-fix.patch @@ -6,11 +6,11 @@ types (ide vs xen) it added xvda with hda. These disks were then passed to qemu where it error'ed out with the disks having the same index (in this case both are 0). -Index: virt-manager-1.4.3/virtinst/devicedisk.py +Index: virt-manager-1.5.0/virtinst/devicedisk.py =================================================================== ---- virt-manager-1.4.3.orig/virtinst/devicedisk.py -+++ virt-manager-1.4.3/virtinst/devicedisk.py -@@ -1004,6 +1004,17 @@ class VirtualDisk(VirtualDevice): +--- virt-manager-1.5.0.orig/virtinst/devicedisk.py ++++ virt-manager-1.5.0/virtinst/devicedisk.py +@@ -1036,6 +1036,17 @@ class VirtualDisk(VirtualDevice): @rtype C{str} """ prefix, maxnode = self.get_target_prefix(skip_targets) @@ -28,7 +28,7 @@ Index: virt-manager-1.4.3/virtinst/devicedisk.py skip_targets = [t for t in skip_targets if t and t.startswith(prefix)] skip_targets.sort() -@@ -1017,7 +1028,12 @@ class VirtualDisk(VirtualDevice): +@@ -1049,7 +1060,12 @@ class VirtualDisk(VirtualDevice): ran = range(pref_ctrl * 7, (pref_ctrl + 1) * 7) for i in ran: diff --git a/virtman-add-connect-default.patch b/virtman-add-connect-default.patch index 4a97fd5d..ec8cfcd0 100644 --- a/virtman-add-connect-default.patch +++ b/virtman-add-connect-default.patch @@ -1,10 +1,10 @@ Enhancement for when no hypervisor can be found locally it opens the new connection dialog. -Index: virt-manager-1.4.2/virtManager/engine.py +Index: virt-manager-1.5.0/virtManager/engine.py =================================================================== ---- virt-manager-1.4.2.orig/virtManager/engine.py -+++ virt-manager-1.4.2/virtManager/engine.py -@@ -236,9 +236,6 @@ class vmmEngine(vmmGObject): +--- virt-manager-1.5.0.orig/virtManager/engine.py ++++ virt-manager-1.5.0/virtManager/engine.py +@@ -239,9 +239,6 @@ class vmmEngine(vmmGObject): except Exception: logging.exception("Error talking to PackageKit") @@ -14,7 +14,7 @@ Index: virt-manager-1.4.2/virtManager/engine.py warnmsg = _("The 'libvirtd' service will need to be started.\n\n" "After that, virt-manager will connect to libvirt on\n" "the next application start up.") -@@ -252,7 +249,11 @@ class vmmEngine(vmmGObject): +@@ -255,7 +252,11 @@ class vmmEngine(vmmGObject): if not connected and do_start: manager.err.ok(_("Libvirt service must be started"), warnmsg) diff --git a/virtman-allow-creating-i686-vm.patch b/virtman-allow-creating-i686-vm.patch index d4582b18..3ac723c5 100644 --- a/virtman-allow-creating-i686-vm.patch +++ b/virtman-allow-creating-i686-vm.patch @@ -1,11 +1,11 @@ References: bsc#919692 Because openSUSE repos combine 32 and 64 bit sources we need to continue showing the 'Architecture' pop-up. -Index: virt-manager-1.4.2/virtManager/create.py +Index: virt-manager-1.5.0/virtManager/create.py =================================================================== ---- virt-manager-1.4.2.orig/virtManager/create.py -+++ virt-manager-1.4.2/virtManager/create.py -@@ -847,11 +847,6 @@ class vmmCreate(vmmGObjectUI): +--- virt-manager-1.5.0.orig/virtManager/create.py ++++ virt-manager-1.5.0/virtManager/create.py +@@ -849,11 +849,6 @@ class vmmCreate(vmmGObjectUI): for guest in self.conn.caps.guests: if guest.os_type == self._capsinfo.os_type: archs.append(guest.arch) diff --git a/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch b/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch index f5b6bf1e..5cd3b256 100644 --- a/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch +++ b/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch @@ -6,11 +6,11 @@ Steps to get a KVM VM in the crashed state: 4) Edit the VM's /etc/default/grub file and remove the crashkernel information and then run grub2-mkconfig /boot/grub2/grub.cfg. 5) Start the VM and within the VM's terminal type "echo 'c' > /proc/sysrq-trigger" -Index: virt-manager-1.4.3/virtManager/manager.py +Index: virt-manager-1.5.0/virtManager/manager.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/manager.py -+++ virt-manager-1.4.3/virtManager/manager.py -@@ -843,7 +843,7 @@ class vmmManager(vmmGObjectUI): +--- virt-manager-1.5.0.orig/virtManager/manager.py ++++ virt-manager-1.5.0/virtManager/manager.py +@@ -844,7 +844,7 @@ class vmmManager(vmmGObjectUI): show_pause = bool(vm and vm.is_unpauseable()) else: show_pause = bool(vm and vm.is_pauseable()) @@ -19,10 +19,10 @@ Index: virt-manager-1.4.3/virtManager/manager.py if vm and vm.managedsave_supported: self.change_run_text(vm.has_managed_save()) -Index: virt-manager-1.4.3/virtManager/vmmenu.py +Index: virt-manager-1.5.0/virtManager/vmmenu.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/vmmenu.py -+++ virt-manager-1.4.3/virtManager/vmmenu.py +--- virt-manager-1.5.0.orig/virtManager/vmmenu.py ++++ virt-manager-1.5.0/virtManager/vmmenu.py @@ -31,6 +31,7 @@ class _VMMenu(Gtk.Menu): self._parent = src self._current_vm_cb = current_vm_cb diff --git a/virtman-default-guest-from-host-os.patch b/virtman-default-guest-from-host-os.patch index 3fb700c6..bec8f61d 100644 --- a/virtman-default-guest-from-host-os.patch +++ b/virtman-default-guest-from-host-os.patch @@ -1,9 +1,9 @@ Enhancement to default to the host os version when creating a VM and media detection of the install source is turned off. -Index: virt-manager-1.4.3/virtManager/create.py +Index: virt-manager-1.5.0/virtManager/create.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/create.py -+++ virt-manager-1.4.3/virtManager/create.py +--- virt-manager-1.5.0.orig/virtManager/create.py ++++ virt-manager-1.5.0/virtManager/create.py @@ -24,6 +24,9 @@ import pkgutil import os import threading @@ -14,7 +14,7 @@ Index: virt-manager-1.4.3/virtManager/create.py from gi.repository import GObject from gi.repository import Gtk -@@ -1505,6 +1508,63 @@ class vmmCreate(vmmGObjectUI): +@@ -1511,6 +1514,63 @@ class vmmCreate(vmmGObjectUI): def _cdrom_changed(self, src): self._detectable_media_widget_changed(src) @@ -78,7 +78,7 @@ Index: virt-manager-1.4.3/virtManager/create.py def _toggle_detect_os(self, src): dodetect = src.get_active() -@@ -1517,6 +1577,8 @@ class vmmCreate(vmmGObjectUI): +@@ -1523,6 +1583,8 @@ class vmmCreate(vmmGObjectUI): self.widget("install-os-version-entry").set_text("") self._os_already_detected_for_media = False self._start_detect_os_if_needed() diff --git a/virtman-default-to-xen-pv.patch b/virtman-default-to-xen-pv.patch index 9ed29449..6312fb1c 100644 --- a/virtman-default-to-xen-pv.patch +++ b/virtman-default-to-xen-pv.patch @@ -1,9 +1,9 @@ Enhancement to default to PV instead of HVM on Xen host. -Index: virt-manager-1.4.2/virtManager/create.py +Index: virt-manager-1.5.0/virtManager/create.py =================================================================== ---- virt-manager-1.4.2.orig/virtManager/create.py -+++ virt-manager-1.4.2/virtManager/create.py -@@ -757,7 +757,12 @@ class vmmCreate(vmmGObjectUI): +--- virt-manager-1.5.0.orig/virtManager/create.py ++++ virt-manager-1.5.0/virtManager/create.py +@@ -759,7 +759,12 @@ class vmmCreate(vmmGObjectUI): if gtype is None: # If none specified, prefer HVM so install options aren't limited # with a default PV choice. diff --git a/virtman-kvm.patch b/virtman-kvm.patch index 98b05a32..18a13675 100644 --- a/virtman-kvm.patch +++ b/virtman-kvm.patch @@ -1,10 +1,10 @@ /usr/bin/kvm doesn't exist on suse distros so check instead for /usr/bin/qemu-system-x86_64 -Index: virt-manager-1.4.2/virtManager/connect.py +Index: virt-manager-1.5.0/virtManager/connect.py =================================================================== ---- virt-manager-1.4.2.orig/virtManager/connect.py -+++ virt-manager-1.4.2/virtManager/connect.py -@@ -116,7 +116,7 @@ class vmmConnect(vmmGObjectUI): +--- virt-manager-1.5.0.orig/virtManager/connect.py ++++ virt-manager-1.5.0/virtManager/connect.py +@@ -117,7 +117,7 @@ class vmmConnect(vmmGObjectUI): if (os.path.exists("/usr/bin/qemu") or os.path.exists("/usr/bin/qemu-kvm") or diff --git a/virtman-load-stored-uris.patch b/virtman-load-stored-uris.patch index 16508e81..a09f6528 100644 --- a/virtman-load-stored-uris.patch +++ b/virtman-load-stored-uris.patch @@ -1,8 +1,8 @@ -Index: virt-manager-1.3.2/virtManager/engine.py +Index: virt-manager-1.5.0/virtManager/engine.py =================================================================== ---- virt-manager-1.3.2.orig/virtManager/engine.py -+++ virt-manager-1.3.2/virtManager/engine.py -@@ -257,9 +257,22 @@ class vmmEngine(vmmGObject): +--- virt-manager-1.5.0.orig/virtManager/engine.py ++++ virt-manager-1.5.0/virtManager/engine.py +@@ -260,9 +260,22 @@ class vmmEngine(vmmGObject): def load_stored_uris(self): uris = self.config.get_conn_uris() or [] diff --git a/virtman-packages.patch b/virtman-packages.patch index d65bcca8..8b5a803e 100644 --- a/virtman-packages.patch +++ b/virtman-packages.patch @@ -4,10 +4,10 @@ This is not a normal situation on a suse distro. Split out required libvirt packages (kvm vs xen). Only install those libvirt packages for which the host is booted. This patch has a corresponding spec file change (%define libvirt_kvm_packages and %define libvirt_xen_packages). -Index: virt-manager-1.4.2/setup.py +Index: virt-manager-1.5.0/setup.py =================================================================== ---- virt-manager-1.4.2.orig/setup.py -+++ virt-manager-1.4.2/setup.py +--- virt-manager-1.5.0.orig/setup.py ++++ virt-manager-1.5.0/setup.py @@ -308,8 +308,11 @@ class configure(distutils.core.Command): ("prefix=", None, "installation prefix"), ("qemu-user=", None, @@ -45,10 +45,10 @@ Index: virt-manager-1.4.2/setup.py if self.kvm_package_names is not None: template += "hv_packages = %s\n" % self.kvm_package_names if self.askpass_package_names is not None: -Index: virt-manager-1.4.2/virtcli/cliconfig.py +Index: virt-manager-1.5.0/virtcli/cliconfig.py =================================================================== ---- virt-manager-1.4.2.orig/virtcli/cliconfig.py -+++ virt-manager-1.4.2/virtcli/cliconfig.py +--- virt-manager-1.5.0.orig/virtcli/cliconfig.py ++++ virt-manager-1.5.0/virtcli/cliconfig.py @@ -83,7 +83,8 @@ class _CLIConfig(object): _get_param("preferred_distros", "")) self.hv_packages = _split_list(_get_param("hv_packages", "")) @@ -59,11 +59,11 @@ Index: virt-manager-1.4.2/virtcli/cliconfig.py self.default_graphics = _get_param("default_graphics", "spice") self.default_hvs = _split_list(_get_param("default_hvs", "")) -Index: virt-manager-1.4.2/virtManager/config.py +Index: virt-manager-1.5.0/virtManager/config.py =================================================================== ---- virt-manager-1.4.2.orig/virtManager/config.py -+++ virt-manager-1.4.2/virtManager/config.py -@@ -172,7 +172,8 @@ class vmmConfig(object): +--- virt-manager-1.5.0.orig/virtManager/config.py ++++ virt-manager-1.5.0/virtManager/config.py +@@ -183,7 +183,8 @@ class vmmConfig(object): self.default_qemu_user = CLIConfig.default_qemu_user self.preferred_distros = CLIConfig.preferred_distros self.hv_packages = CLIConfig.hv_packages @@ -73,11 +73,11 @@ Index: virt-manager-1.4.2/virtManager/config.py self.askpass_package = CLIConfig.askpass_package self.default_graphics_from_config = CLIConfig.default_graphics self.default_hvs = CLIConfig.default_hvs -Index: virt-manager-1.4.2/virtManager/engine.py +Index: virt-manager-1.5.0/virtManager/engine.py =================================================================== ---- virt-manager-1.4.2.orig/virtManager/engine.py -+++ virt-manager-1.4.2/virtManager/engine.py -@@ -226,22 +226,18 @@ class vmmEngine(vmmGObject): +--- virt-manager-1.5.0.orig/virtManager/engine.py ++++ virt-manager-1.5.0/virtManager/engine.py +@@ -229,22 +229,18 @@ class vmmEngine(vmmGObject): ret = None try: diff --git a/virtman-python2-to-python3-conversion.patch b/virtman-python2-to-python3-conversion.patch index 7313d7f7..03ccda8d 100644 --- a/virtman-python2-to-python3-conversion.patch +++ b/virtman-python2-to-python3-conversion.patch @@ -1,7 +1,7 @@ -Index: virt-manager-1.4.3/virt-manager +Index: virt-manager-1.5.0/virt-manager =================================================================== ---- virt-manager-1.4.3.orig/virt-manager -+++ virt-manager-1.4.3/virt-manager +--- virt-manager-1.5.0.orig/virt-manager ++++ virt-manager-1.5.0/virt-manager @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/python3 @@ -17,10 +17,10 @@ Index: virt-manager-1.4.3/virt-manager # This will error if Gtk wasn't correctly initialized Gtk.Window() else: -Index: virt-manager-1.4.3/virtManager/network.py +Index: virt-manager-1.5.0/virtManager/network.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/network.py -+++ virt-manager-1.4.3/virtManager/network.py +--- virt-manager-1.5.0.orig/virtManager/network.py ++++ virt-manager-1.5.0/virtManager/network.py @@ -103,7 +103,7 @@ class vmmNetwork(vmmLibvirtObject): def set_qos(self, **kwargs): xmlobj = self._make_xmlobj_to_define() @@ -30,10 +30,10 @@ Index: virt-manager-1.4.3/virtManager/network.py setattr(q, key, val) self._redefine_xmlobj(xmlobj) -Index: virt-manager-1.4.3/virtManager/inspection.py +Index: virt-manager-1.5.0/virtManager/inspection.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/inspection.py -+++ virt-manager-1.4.3/virtManager/inspection.py +--- virt-manager-1.5.0.orig/virtManager/inspection.py ++++ virt-manager-1.5.0/virtManager/inspection.py @@ -17,8 +17,9 @@ # MA 02110-1301 USA. # @@ -63,10 +63,10 @@ Index: virt-manager-1.4.3/virtManager/inspection.py data.error = False return data -Index: virt-manager-1.4.3/virtManager/systray.py +Index: virt-manager-1.5.0/virtManager/systray.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/systray.py -+++ virt-manager-1.4.3/virtManager/systray.py +--- virt-manager-1.5.0.orig/virtManager/systray.py ++++ virt-manager-1.5.0/virtManager/systray.py @@ -199,13 +199,13 @@ class vmmSystray(vmmGObject): def repopulate_menu_list(self): @@ -92,10 +92,10 @@ Index: virt-manager-1.4.3/virtManager/systray.py vm_names.sort() if len(vm_names) == 0: -Index: virt-manager-1.4.3/virtManager/console.py +Index: virt-manager-1.5.0/virtManager/console.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/console.py -+++ virt-manager-1.4.3/virtManager/console.py +--- virt-manager-1.5.0.orig/virtManager/console.py ++++ virt-manager-1.5.0/virtManager/console.py @@ -35,7 +35,7 @@ from .viewers import SpiceViewer, VNCVie (_CONSOLE_PAGE_UNAVAILABLE, _CONSOLE_PAGE_AUTHENTICATE, @@ -105,10 +105,10 @@ Index: virt-manager-1.4.3/virtManager/console.py class _TimedRevealer(vmmGObject): -Index: virt-manager-1.4.3/virtManager/connection.py +Index: virt-manager-1.5.0/virtManager/connection.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/connection.py -+++ virt-manager-1.4.3/virtManager/connection.py +--- virt-manager-1.5.0.orig/virtManager/connection.py ++++ virt-manager-1.5.0/virtManager/connection.py @@ -198,7 +198,7 @@ class vmmConnection(vmmGObject): (_STATE_DISCONNECTED, @@ -159,10 +159,10 @@ Index: virt-manager-1.4.3/virtManager/connection.py return pollhelpers.fetch_vms(self._backend, keymap, (lambda obj, key: vmmDomain(self, obj, key))) -Index: virt-manager-1.4.3/virtManager/addhardware.py +Index: virt-manager-1.5.0/virtManager/addhardware.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/addhardware.py -+++ virt-manager-1.4.3/virtManager/addhardware.py +--- virt-manager-1.5.0.orig/virtManager/addhardware.py ++++ virt-manager-1.5.0/virtManager/addhardware.py @@ -57,7 +57,7 @@ from .addstorage import vmmAddStorage PAGE_USBREDIR, PAGE_TPM, @@ -172,7 +172,7 @@ Index: virt-manager-1.4.3/virtManager/addhardware.py class vmmAddHardware(vmmGObjectUI): -@@ -1160,7 +1160,7 @@ class vmmAddHardware(vmmGObjectUI): +@@ -1164,7 +1164,7 @@ class vmmAddHardware(vmmGObjectUI): self._dev = VirtualTPMDevice(self.conn.get_backend()) self._dev.type = devtype @@ -181,7 +181,7 @@ Index: virt-manager-1.4.3/virtManager/addhardware.py make_visible = self._dev.supports_property(param_name) uiutil.set_grid_row_visible(self.widget(widget_name + "-label"), make_visible) -@@ -1214,7 +1214,7 @@ class vmmAddHardware(vmmGObjectUI): +@@ -1218,7 +1218,7 @@ class vmmAddHardware(vmmGObjectUI): self._dev = char_class(self.conn.get_backend()) self._dev.type = devtype @@ -190,7 +190,7 @@ Index: virt-manager-1.4.3/virtManager/addhardware.py make_visible = self._dev.supports_property(param_name) uiutil.set_grid_row_visible(self.widget(widget_name + "-label"), make_visible) -@@ -1669,7 +1669,7 @@ class vmmAddHardware(vmmGObjectUI): +@@ -1671,7 +1671,7 @@ class vmmAddHardware(vmmGObjectUI): try: self._dev = devclass @@ -199,7 +199,7 @@ Index: virt-manager-1.4.3/virtManager/addhardware.py if self._dev.supports_property(param_name) and val is not None: setattr(self._dev, param_name, val) -@@ -1750,7 +1750,7 @@ class vmmAddHardware(vmmGObjectUI): +@@ -1752,7 +1752,7 @@ class vmmAddHardware(vmmGObjectUI): try: self._dev = VirtualTPMDevice(conn) self._dev.type = typ @@ -208,7 +208,7 @@ Index: virt-manager-1.4.3/virtManager/addhardware.py if self._dev.supports_property(param_name): setattr(self._dev, param_name, val) except Exception as e: -@@ -1854,7 +1854,7 @@ class vmmAddHardware(vmmGObjectUI): +@@ -1856,7 +1856,7 @@ class vmmAddHardware(vmmGObjectUI): try: self._dev = virtinst.VirtualRNGDevice(self.conn.get_backend()) self._dev.type = rtype @@ -217,10 +217,10 @@ Index: virt-manager-1.4.3/virtManager/addhardware.py if self._dev.supports_property(param_name): setattr(self._dev, param_name, val) except Exception as e: -Index: virt-manager-1.4.3/virtManager/createinterface.py +Index: virt-manager-1.5.0/virtManager/createinterface.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/createinterface.py -+++ virt-manager-1.4.3/virtManager/createinterface.py +--- virt-manager-1.5.0.orig/virtManager/createinterface.py ++++ virt-manager-1.5.0/virtManager/createinterface.py @@ -387,7 +387,7 @@ class vmmCreateInterface(vmmGObjectUI): Interface.INTERFACE_TYPE_VLAN: "vlan", } @@ -254,10 +254,10 @@ Index: virt-manager-1.4.3/virtManager/createinterface.py model.append(row) def get_default_name(self): -Index: virt-manager-1.4.3/virtManager/snapshots.py +Index: virt-manager-1.5.0/virtManager/snapshots.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/snapshots.py -+++ virt-manager-1.4.3/virtManager/snapshots.py +--- virt-manager-1.5.0.orig/virtManager/snapshots.py ++++ virt-manager-1.5.0/virtManager/snapshots.py @@ -44,7 +44,7 @@ mimemap = { @@ -276,10 +276,10 @@ Index: virt-manager-1.4.3/virtManager/snapshots.py p = basesn + "." + ext if os.path.exists(basesn + "." + ext): os.unlink(p) -Index: virt-manager-1.4.3/virtManager/graphwidgets.py +Index: virt-manager-1.5.0/virtManager/graphwidgets.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/graphwidgets.py -+++ virt-manager-1.4.3/virtManager/graphwidgets.py +--- virt-manager-1.5.0.orig/virtManager/graphwidgets.py ++++ virt-manager-1.5.0/virtManager/graphwidgets.py @@ -25,8 +25,8 @@ from gi.repository import Gtk def rect_print(name, rect): @@ -291,10 +291,10 @@ Index: virt-manager-1.4.3/virtManager/graphwidgets.py def _line_helper(cairo_ct, x, y, w, h, points, for_fill=False): -Index: virt-manager-1.4.3/virtManager/host.py +Index: virt-manager-1.5.0/virtManager/host.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/host.py -+++ virt-manager-1.4.3/virtManager/host.py +--- virt-manager-1.5.0.orig/virtManager/host.py ++++ virt-manager-1.5.0/virtManager/host.py @@ -43,11 +43,11 @@ EDIT_NET_IDS = ( EDIT_NET_NAME, EDIT_NET_AUTOSTART, @@ -309,10 +309,10 @@ Index: virt-manager-1.4.3/virtManager/host.py class vmmHost(vmmGObjectUI): -Index: virt-manager-1.4.3/virtManager/sshtunnels.py +Index: virt-manager-1.5.0/virtManager/sshtunnels.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/sshtunnels.py -+++ virt-manager-1.4.3/virtManager/sshtunnels.py +--- virt-manager-1.5.0.orig/virtManager/sshtunnels.py ++++ virt-manager-1.5.0/virtManager/sshtunnels.py @@ -20,7 +20,7 @@ import functools import logging @@ -331,10 +331,10 @@ Index: virt-manager-1.4.3/virtManager/sshtunnels.py self._lock = threading.Lock() def _handle_queue(self): -Index: virt-manager-1.4.3/virtManager/engine.py +Index: virt-manager-1.5.0/virtManager/engine.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/engine.py -+++ virt-manager-1.4.3/virtManager/engine.py +--- virt-manager-1.5.0.orig/virtManager/engine.py ++++ virt-manager-1.5.0/virtManager/engine.py @@ -20,7 +20,7 @@ import logging @@ -353,7 +353,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py class vmmEngine(vmmGObject): -@@ -104,7 +104,7 @@ class vmmEngine(vmmGObject): +@@ -105,7 +105,7 @@ class vmmEngine(vmmGObject): target=self._handle_tick_queue, args=()) self._tick_thread.daemon = True @@ -362,16 +362,16 @@ Index: virt-manager-1.4.3/virtManager/engine.py self.inspection = None self._create_inspection_thread() -@@ -153,7 +153,7 @@ class vmmEngine(vmmGObject): +@@ -154,7 +154,7 @@ class vmmEngine(vmmGObject): self._application.add_action(action) - def _default_startup(self, skip_autostart): + def _default_startup(self, skip_autostart, cliuri): - uris = self.conns.keys() + uris = list(self.conns.keys()) if not uris: logging.debug("No stored URIs found.") else: -@@ -279,15 +279,15 @@ class vmmEngine(vmmGObject): +@@ -282,15 +282,15 @@ class vmmEngine(vmmGObject): """ We serialize conn autostart, so polkit/ssh-askpass doesn't spam """ @@ -390,7 +390,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py def state_change_cb(conn): if conn.is_active(): -@@ -299,7 +299,7 @@ class vmmEngine(vmmGObject): +@@ -302,7 +302,7 @@ class vmmEngine(vmmGObject): def handle_queue(): while True: @@ -399,7 +399,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py if uri is None: return if uri not in self.conns: -@@ -336,7 +336,7 @@ class vmmEngine(vmmGObject): +@@ -339,7 +339,7 @@ class vmmEngine(vmmGObject): hvuri = conn.get_uri() @@ -408,7 +408,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py self.conns[hvuri]["windowDetails"][connkey].cleanup() del(self.conns[hvuri]["windowDetails"][connkey]) -@@ -521,10 +521,10 @@ class vmmEngine(vmmGObject): +@@ -524,10 +524,10 @@ class vmmEngine(vmmGObject): focus, and use that """ windowlist = [self.windowManager] @@ -422,7 +422,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py use_win = None for window in windowlist: -@@ -600,7 +600,7 @@ class vmmEngine(vmmGObject): +@@ -603,7 +603,7 @@ class vmmEngine(vmmGObject): self.conns[uri]["windowClone"].cleanup() details = self.conns[uri]["windowDetails"] @@ -431,7 +431,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py win.cleanup() self.conns[uri]["conn"].cleanup() -@@ -620,7 +620,7 @@ class vmmEngine(vmmGObject): +@@ -623,7 +623,7 @@ class vmmEngine(vmmGObject): handle_id = vmmGObject.connect(self, name, callback, *args) if name == "conn-added": @@ -440,7 +440,7 @@ Index: virt-manager-1.4.3/virtManager/engine.py self.emit("conn-added", conn_dict["conn"]) return handle_id -@@ -770,7 +770,7 @@ class vmmEngine(vmmGObject): +@@ -773,7 +773,7 @@ class vmmEngine(vmmGObject): return self.connect_to_uri(uri, autoconnect, probe=True) def cancelled(src): @@ -449,10 +449,10 @@ Index: virt-manager-1.4.3/virtManager/engine.py self.exit_app(src) obj = vmmConnect() -Index: virt-manager-1.4.3/virtManager/mediacombo.py +Index: virt-manager-1.5.0/virtManager/mediacombo.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/mediacombo.py -+++ virt-manager-1.4.3/virtManager/mediacombo.py +--- virt-manager-1.5.0.orig/virtManager/mediacombo.py ++++ virt-manager-1.5.0/virtManager/mediacombo.py @@ -33,7 +33,7 @@ class vmmMediaCombo(vmmGObjectUI): (OPTICAL_DEV_PATH, OPTICAL_LABEL, @@ -462,10 +462,10 @@ Index: virt-manager-1.4.3/virtManager/mediacombo.py def __init__(self, conn, builder, topwin, media_type): vmmGObjectUI.__init__(self, None, None, builder=builder, topwin=topwin) -Index: virt-manager-1.4.3/virtManager/clone.py +Index: virt-manager-1.5.0/virtManager/clone.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/clone.py -+++ virt-manager-1.4.3/virtManager/clone.py +--- virt-manager-1.5.0.orig/virtManager/clone.py ++++ virt-manager-1.5.0/virtManager/clone.py @@ -336,7 +336,7 @@ class vmmCloneVM(vmmGObjectUI): build_net_row(label, mac, newmac) @@ -493,10 +493,10 @@ Index: virt-manager-1.4.3/virtManager/clone.py can_clone = row[STORAGE_INFO_CAN_CLONE] can_share = row[STORAGE_INFO_CAN_SHARE] if not (can_clone or can_share): -Index: virt-manager-1.4.3/virtManager/netlist.py +Index: virt-manager-1.5.0/virtManager/netlist.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/netlist.py -+++ virt-manager-1.4.3/virtManager/netlist.py +--- virt-manager-1.5.0.orig/virtManager/netlist.py ++++ virt-manager-1.5.0/virtManager/netlist.py @@ -197,7 +197,7 @@ class vmmNetworkList(vmmGObjectUI): for slave in slave_names: netdevs.pop(slave, None) @@ -506,10 +506,10 @@ Index: virt-manager-1.4.3/virtManager/netlist.py if ((name in vnet_taps) or (name in [v + "-nic" for v in vnet_bridges]) or (name in skip_ifaces)): -Index: virt-manager-1.4.3/virtManager/manager.py +Index: virt-manager-1.5.0/virtManager/manager.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/manager.py -+++ virt-manager-1.4.3/virtManager/manager.py +--- virt-manager-1.5.0.orig/virtManager/manager.py ++++ virt-manager-1.5.0/virtManager/manager.py @@ -48,7 +48,7 @@ ROW_IS_CONN_CONNECTED, ROW_IS_VM, ROW_IS_VM_RUNNING, @@ -528,10 +528,10 @@ Index: virt-manager-1.4.3/virtManager/manager.py def _style_get_prop(widget, propname): -Index: virt-manager-1.4.3/virtManager/keyring.py +Index: virt-manager-1.5.0/virtManager/keyring.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/keyring.py -+++ virt-manager-1.4.3/virtManager/keyring.py +--- virt-manager-1.5.0.orig/virtManager/keyring.py ++++ virt-manager-1.5.0/virtManager/keyring.py @@ -110,10 +110,10 @@ class vmmKeyring(object): label = iface.get_cached_property("Label").unpack().strip("'") dbusattrs = iface.get_cached_property("Attributes").unpack() @@ -545,10 +545,10 @@ Index: virt-manager-1.4.3/virtManager/keyring.py if key not in ["hvuri", "uuid"]: continue attrs["%s" % key] = "%s" % val -Index: virt-manager-1.4.3/virtManager/addstorage.py +Index: virt-manager-1.5.0/virtManager/addstorage.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/addstorage.py -+++ virt-manager-1.4.3/virtManager/addstorage.py +--- virt-manager-1.5.0.orig/virtManager/addstorage.py ++++ virt-manager-1.5.0/virtManager/addstorage.py @@ -162,7 +162,7 @@ class vmmAddStorage(vmmGObjectUI): errmsg = _("Errors were encountered changing permissions for the " "following directories:") @@ -567,10 +567,10 @@ Index: virt-manager-1.4.3/virtManager/addstorage.py def reset_state(self): self._update_host_space() -Index: virt-manager-1.4.3/virtManager/details.py +Index: virt-manager-1.5.0/virtManager/details.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/details.py -+++ virt-manager-1.4.3/virtManager/details.py +--- virt-manager-1.5.0.orig/virtManager/details.py ++++ virt-manager-1.5.0/virtManager/details.py @@ -106,7 +106,7 @@ from .graphwidgets import Sparkline EDIT_FS, @@ -640,7 +640,7 @@ Index: virt-manager-1.4.3/virtManager/details.py val = "-" if dev.supports_property(prop): val = getattr(dev, prop) or "-" -@@ -3214,7 +3214,7 @@ class vmmDetails(vmmGObjectUI): +@@ -3229,7 +3229,7 @@ class vmmDetails(vmmGObjectUI): for dev in self.vm.get_panic_devices(): update_hwlist(HW_LIST_TYPE_PANIC, dev) @@ -649,10 +649,10 @@ Index: virt-manager-1.4.3/virtManager/details.py devs.reverse() for i in devs: _iter = hw_list_model.iter_nth_child(None, i) -Index: virt-manager-1.4.3/virtManager/create.py +Index: virt-manager-1.5.0/virtManager/create.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/create.py -+++ virt-manager-1.4.3/virtManager/create.py +--- virt-manager-1.5.0.orig/virtManager/create.py ++++ virt-manager-1.5.0/virtManager/create.py @@ -55,7 +55,7 @@ DEFAULT_MEM = 1024 PAGE_INSTALL, PAGE_MEM, @@ -678,7 +678,7 @@ Index: virt-manager-1.4.3/virtManager/create.py ##################### -@@ -951,7 +951,7 @@ class vmmCreate(vmmGObjectUI): +@@ -953,7 +953,7 @@ class vmmCreate(vmmGObjectUI): model.clear() default = -1 @@ -687,19 +687,19 @@ Index: virt-manager-1.4.3/virtManager/create.py connobj = c["conn"] if not connobj.is_active(): continue -@@ -2579,7 +2579,7 @@ class vmmCreate(vmmGObjectUI): - 'passwd': self._get_config_oscontainer_source_password, - 'insecure': self._get_config_oscontainer_isecure +@@ -2587,7 +2587,7 @@ class vmmCreate(vmmGObjectUI): + 'insecure': self._get_config_oscontainer_isecure, + 'root_password': self._get_config_oscontainer_root_password, } - for key, getter in bootstrap_arg_keys.items(): + for key, getter in list(bootstrap_arg_keys.items()): bootstrap_args[key] = getter() parentobj = self._customize_window or self -Index: virt-manager-1.4.3/virtManager/preferences.py +Index: virt-manager-1.5.0/virtManager/preferences.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/preferences.py -+++ virt-manager-1.4.3/virtManager/preferences.py +--- virt-manager-1.5.0.orig/virtManager/preferences.py ++++ virt-manager-1.5.0/virtManager/preferences.py @@ -121,7 +121,7 @@ class vmmPreferences(vmmGObjectUI): } model.append([-1, _("System default (%s)") % @@ -709,10 +709,10 @@ Index: virt-manager-1.4.3/virtManager/preferences.py model.append([key, val]) combo.set_model(model) uiutil.init_combo_text_column(combo, 1) -Index: virt-manager-1.4.3/virtManager/migrate.py +Index: virt-manager-1.5.0/virtManager/migrate.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/migrate.py -+++ virt-manager-1.4.3/virtManager/migrate.py +--- virt-manager-1.5.0.orig/virtManager/migrate.py ++++ virt-manager-1.5.0/virtManager/migrate.py @@ -36,7 +36,7 @@ from .domain import vmmDomain NUM_COLS = 3 (COL_LABEL, @@ -722,7 +722,7 @@ Index: virt-manager-1.4.3/virtManager/migrate.py class vmmMigrateDialog(vmmGObjectUI): -@@ -310,7 +310,7 @@ class vmmMigrateDialog(vmmGObjectUI): +@@ -313,7 +313,7 @@ class vmmMigrateDialog(vmmGObjectUI): model.clear() rows = [] @@ -731,10 +731,10 @@ Index: virt-manager-1.4.3/virtManager/migrate.py rows.append(self._build_dest_row(conn)) if not any([row[COL_CAN_MIGRATE] for row in rows]): -Index: virt-manager-1.4.3/virtManager/connect.py +Index: virt-manager-1.5.0/virtManager/connect.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/connect.py -+++ virt-manager-1.4.3/virtManager/connect.py +--- virt-manager-1.5.0.orig/virtManager/connect.py ++++ virt-manager-1.5.0/virtManager/connect.py @@ -22,7 +22,7 @@ import glob import os import logging @@ -744,12 +744,12 @@ Index: virt-manager-1.4.3/virtManager/connect.py from gi.repository import Gio from gi.repository import GObject -@@ -36,11 +36,11 @@ HV_XEN, - HV_LXC, +@@ -37,11 +37,11 @@ HV_LXC, HV_QEMU_SESSION, HV_BHYVE, --HV_VZ) = range(6) -+HV_VZ) = list(range(6)) + HV_VZ, +-HV_CUSTOM) = range(7) ++HV_CUSTOM) = list(range(7)) (CONN_SSH, CONN_TCP, @@ -758,7 +758,7 @@ Index: virt-manager-1.4.3/virtManager/connect.py def current_user(): -@@ -394,7 +394,7 @@ class vmmConnect(vmmGObjectUI): +@@ -409,7 +409,7 @@ class vmmConnect(vmmGObjectUI): addrstr = "" if user: @@ -767,7 +767,7 @@ Index: virt-manager-1.4.3/virtManager/connect.py if host.count(":") > 1: host = "[%s]" % host -@@ -449,7 +449,7 @@ class vmmConnect(vmmGObjectUI): +@@ -467,7 +467,7 @@ class vmmConnect(vmmGObjectUI): if host.startswith("linux-"): tmphost = host[6:] try: @@ -776,10 +776,10 @@ Index: virt-manager-1.4.3/virtManager/connect.py host = "" except ValueError: pass -Index: virt-manager-1.4.3/virtManager/storagelist.py +Index: virt-manager-1.5.0/virtManager/storagelist.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/storagelist.py -+++ virt-manager-1.4.3/virtManager/storagelist.py +--- virt-manager-1.5.0.orig/virtManager/storagelist.py ++++ virt-manager-1.5.0/virtManager/storagelist.py @@ -36,7 +36,7 @@ from .createvol import vmmCreateVolume EDIT_POOL_IDS = ( EDIT_POOL_NAME, @@ -805,10 +805,10 @@ Index: virt-manager-1.4.3/virtManager/storagelist.py ICON_RUNNING = "state_running" ICON_SHUTOFF = "state_shutoff" -Index: virt-manager-1.4.3/virtManager/createnet.py +Index: virt-manager-1.5.0/virtManager/createnet.py =================================================================== ---- virt-manager-1.4.3.orig/virtManager/createnet.py -+++ virt-manager-1.4.3/virtManager/createnet.py +--- virt-manager-1.5.0.orig/virtManager/createnet.py ++++ virt-manager-1.5.0/virtManager/createnet.py @@ -35,7 +35,7 @@ from .baseclass import vmmGObjectUI (PAGE_NAME, PAGE_IPV4, diff --git a/virttests-python2-to-python3-conversion.patch b/virttests-python2-to-python3-conversion.patch index 42ae6d86..27f5ba67 100644 --- a/virttests-python2-to-python3-conversion.patch +++ b/virttests-python2-to-python3-conversion.patch @@ -1,8 +1,8 @@ -Index: virt-manager-1.4.3/tests/clitest.py +Index: virt-manager-1.5.0/tests/clitest.py =================================================================== ---- virt-manager-1.4.3.orig/tests/clitest.py -+++ virt-manager-1.4.3/tests/clitest.py -@@ -218,7 +218,7 @@ class Command(object): +--- virt-manager-1.5.0.orig/tests/clitest.py ++++ virt-manager-1.5.0/tests/clitest.py +@@ -223,7 +223,7 @@ class Command(object): try: conn = None @@ -11,21 +11,21 @@ Index: virt-manager-1.4.3/tests/clitest.py if self.argv[idx] == "--connect": conn = utils.openconn(self.argv[idx + 1]) break -Index: virt-manager-1.4.3/tests/uitests/utils.py +Index: virt-manager-1.5.0/tests/uitests/utils.py =================================================================== ---- virt-manager-1.4.3.orig/tests/uitests/utils.py -+++ virt-manager-1.4.3/tests/uitests/utils.py +--- virt-manager-1.5.0.orig/tests/uitests/utils.py ++++ virt-manager-1.5.0/tests/uitests/utils.py @@ -1,4 +1,4 @@ -from __future__ import print_function + + import logging import os - import re -Index: virt-manager-1.4.3/tests/utils.py +Index: virt-manager-1.5.0/tests/utils.py =================================================================== ---- virt-manager-1.4.3.orig/tests/utils.py -+++ virt-manager-1.4.3/tests/utils.py -@@ -96,11 +96,11 @@ def openconn(uri): +--- virt-manager-1.5.0.orig/tests/utils.py ++++ virt-manager-1.5.0/tests/utils.py +@@ -104,11 +104,11 @@ def openconn(uri): conn.fetch_all_nodedevs() _conn_cache[uri] = {} @@ -39,10 +39,10 @@ Index: virt-manager-1.4.3/tests/utils.py conn._fetch_cache[key] = value[:] def cb_cache_new_pool(poolobj): -Index: virt-manager-1.4.3/tests/test_inject.py +Index: virt-manager-1.5.0/tests/test_inject.py =================================================================== ---- virt-manager-1.4.3.orig/tests/test_inject.py -+++ virt-manager-1.4.3/tests/test_inject.py +--- virt-manager-1.5.0.orig/tests/test_inject.py ++++ virt-manager-1.5.0/tests/test_inject.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # Copyright (C) 2013, 2014 Red Hat, Inc. @@ -52,7 +52,7 @@ Index: virt-manager-1.4.3/tests/test_inject.py import atexit import os -@@ -29,7 +29,7 @@ FEDORA_URL = "http://dl.fedoraproject.or +@@ -30,7 +30,7 @@ FEDORA_URL = "http://dl.fedoraproject.or (WARN_RHEL4, WARN_RHEL5, @@ -61,7 +61,7 @@ Index: virt-manager-1.4.3/tests/test_inject.py def prompt(): -@@ -185,7 +185,7 @@ def _make_tests(): +@@ -186,7 +186,7 @@ def _make_tests(): return lambda s: _test_distro(_d) idx = 0 @@ -70,23 +70,23 @@ Index: virt-manager-1.4.3/tests/test_inject.py idx += 1 setattr(FetchTests, "testFetch%.3d_%s" % (idx, dname.replace("-", "_")), _make_fetch_cb(dobj)) -Index: virt-manager-1.4.3/tests/test_urls.py +Index: virt-manager-1.5.0/tests/test_urls.py =================================================================== ---- virt-manager-1.4.3.orig/tests/test_urls.py -+++ virt-manager-1.4.3/tests/test_urls.py -@@ -346,7 +346,7 @@ def _make_tests(): - d.distroclass = None - urls[d.name] = d +--- virt-manager-1.5.0.orig/tests/test_urls.py ++++ virt-manager-1.5.0/tests/test_urls.py +@@ -253,7 +253,7 @@ def _make_tests(): + vals.get("testshortcircuit", "0") == "1") + urls[d.name] = d - keys = urls.keys() + keys = list(urls.keys()) keys.sort() for key in keys: distroobj = urls[key] -Index: virt-manager-1.4.3/tests/virtconvtest.py +Index: virt-manager-1.5.0/tests/virtconvtest.py =================================================================== ---- virt-manager-1.4.3.orig/tests/virtconvtest.py -+++ virt-manager-1.4.3/tests/virtconvtest.py +--- virt-manager-1.5.0.orig/tests/virtconvtest.py ++++ virt-manager-1.5.0/tests/virtconvtest.py @@ -15,7 +15,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA. @@ -96,10 +96,10 @@ Index: virt-manager-1.4.3/tests/virtconvtest.py import glob import io -Index: virt-manager-1.4.3/tests/nodedev.py +Index: virt-manager-1.5.0/tests/nodedev.py =================================================================== ---- virt-manager-1.4.3.orig/tests/nodedev.py -+++ virt-manager-1.4.3/tests/nodedev.py +--- virt-manager-1.5.0.orig/tests/nodedev.py ++++ virt-manager-1.5.0/tests/nodedev.py @@ -69,7 +69,7 @@ class TestNodeDev(unittest.TestCase): def _testCompare(self, devname, vals, devxml=None):