Hello community, here is the log from the commit of package virt-manager for openSUSE:Factory checked in at 2017-12-20 10:39:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/virt-manager (Old) and /work/SRC/openSUSE:Factory/.virt-manager.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virt-manager" Wed Dec 20 10:39:50 2017 rev:164 rq:558211 version:1.4.3 Changes: -------- --- /work/SRC/openSUSE:Factory/virt-manager/virt-manager.changes 2017-12-13 11:58:52.355218175 +0100 +++ /work/SRC/openSUSE:Factory/.virt-manager.new/virt-manager.changes 2017-12-20 10:39:53.142898759 +0100 @@ -1,0 +2,11 @@ +Wed Dec 13 10:50:04 UTC 2017 - [email protected] + +- Fix display and input of text in serial console (bsc#1070896) + python3-fix-bytes-string-mess-in-serial-console.patch +- Fix virt-bootstrap UI integration (bsc#1063367) + 0001-Improve-container-image-url-example.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 + +------------------------------------------------------------------- New: ---- 0001-Improve-container-image-url-example.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 python3-fix-bytes-string-mess-in-serial-console.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virt-manager.spec ++++++ --- /var/tmp/diff_new_pack.TCNkL5/_old 2017-12-20 10:39:55.274743936 +0100 +++ /var/tmp/diff_new_pack.TCNkL5/_new 2017-12-20 10:39:55.278743646 +0100 @@ -127,6 +127,12 @@ Patch208: 0003-virtinst-python3-avoid-using-long-type.patch Patch209: 0004-virtinst-python3-use-binary-mode-for-kernel.patch Patch210: virtman-register-delete-event-for-details-dialog.patch +Patch211: python3-fix-bytes-string-mess-in-serial-console.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 @@ -299,6 +305,11 @@ %patch208 -p1 %patch209 -p1 %patch210 -p1 +%patch211 -p1 +%patch500 -p1 +%patch501 -p1 +%patch502 -p1 +%patch503 -p1 %build %if %{qemu_user} ++++++ 0001-Improve-container-image-url-example.patch ++++++ >From b567947b82bb175c3f6234a3b059a2141c70a805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]> 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></property> <child internal-child="entry"> <object class="GtkEntry" id="install-oscontainer-source-url-entry"> <property name="can_focus">True</property> - <property name="placeholder_text" translatable="yes">docker://fedora</property> + <property name="placeholder_text" translatable="yes">docker://srv:1234/myimg:tag</property> </object> </child> </object> -- 2.15.1 ++++++ 0002-create-wizard-fix-alignment-in-os-container-page.patch ++++++ >From 1e5437158dc83069d84cb27503414306a25d7264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]> 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.</property> <object class="GtkAlignment" id="alignment27"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="valign">start</property> <property name="left_padding">12</property> <child> <object class="GtkBox" id="vbox21"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="valign">start</property> <property name="orientation">vertical</property> <property name="spacing">12</property> <child> @@ -1651,107 +1653,180 @@ User shouldn't see this.</property> <property name="position">0</property> </packing> </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkBox" id="install-oscontainer"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">12</property> + <child> + <object class="GtkBox" id="install-oscontainer-notsupport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="spacing">6</property> <child> - <object class="GtkBox" id="install-oscontainer-notsupport"> + <object class="GtkImage" id="image3"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkImage" id="image3"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="stock">gtk-dialog-warning</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label46"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">start</property> - <property name="label" translatable="yes"><small>The OS directory tree must already exist. To enable OS directory tree creation, + <property name="stock">gtk-dialog-warning</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label46"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes"><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></property> - <property name="use_markup">True</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="use_markup">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="install-oscontainer-notsupport-conn"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="spacing">6</property> + <child> + <object class="GtkImage" id="image8"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="stock">gtk-dialog-warning</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes"><small>The OS directory tree must already exist. Creating an OS directory tree for remote +connections is not yet supported.</small></property> + <property name="use_markup">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> <property name="position">1</property> </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="install-oscontainer-bootstrap"> + <property name="label" translatable="yes">Create OS directory tree from container image</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_install_container_source_toggle" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkBox" id="install-oscontainer-source"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> + <property name="border_width">10</property> + <property name="orientation">vertical</property> + <property name="spacing">10</property> <child> - <object class="GtkBox" id="install-oscontainer-notsupport-conn"> + <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> <child> - <object class="GtkImage" id="image8"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="stock">gtk-dialog-warning</property> + <property name="label" translatable="yes">Source URI:</property> </object> <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> + <property name="left_attach">0</property> + <property name="top_attach">0</property> </packing> </child> <child> - <object class="GtkLabel" id="label1"> + <object class="GtkComboBox" id="install-oscontainer-source-url-combo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="halign">start</property> - <property name="label" translatable="yes"><small>The OS directory tree must already exist. Creating an OS directory tree for remote -connections is not yet supported.</small></property> - <property name="use_markup">True</property> + <property name="hexpand">True</property> + <property name="has_entry">True</property> + <child internal-child="entry"> + <object class="GtkEntry" id="install-oscontainer-source-url-entry"> + <property name="can_focus">True</property> + <property name="placeholder_text" translatable="yes">docker://srv:1234/myimg:tag</property> + </object> + </child> </object> <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> + <property name="left_attach">1</property> + <property name="top_attach">0</property> </packing> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">2</property> + <property name="position">0</property> </packing> </child> <child> - <object class="GtkCheckButton" id="install-oscontainer-bootstrap"> - <property name="label" translatable="yes">Create OS directory tree from container image</property> + <object class="GtkCheckButton" id="install-oscontainer-source-insecure"> + <property name="label" translatable="yes">Do not verify TLS certificates of registry</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_install_container_source_toggle" swapped="no"/> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">3</property> + <property name="position">1</property> </packing> </child> <child> - <object class="GtkBox" id="install-oscontainer-source"> + <object class="GtkExpander" id="install-oscontainer-auth-options"> <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="can_focus">False</property> - <property name="border_width">10</property> - <property name="orientation">vertical</property> - <property name="spacing">10</property> + <property name="can_focus">True</property> <child> <object class="GtkGrid"> <property name="visible">True</property> @@ -1760,7 +1835,8 @@ connections is not yet supported.</small></property> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Source URI:</property> + <property name="margin_right">10</property> + <property name="label" translatable="yes">Username:</property> </object> <packing> <property name="left_attach">0</property> @@ -1768,129 +1844,68 @@ connections is not yet supported.</small></property> </packing> </child> <child> - <object class="GtkComboBox" id="install-oscontainer-source-url-combo"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">True</property> - <property name="has_entry">True</property> - <child internal-child="entry"> - <object class="GtkEntry" id="install-oscontainer-source-url-entry"> - <property name="can_focus">True</property> - <property name="placeholder_text" translatable="yes">docker://srv:1234/myimg:tag</property> - </object> - </child> + <property name="margin_right">10</property> + <property name="label" translatable="yes">Password:</property> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left_attach">0</property> + <property name="top_attach">1</property> </packing> </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="install-oscontainer-source-insecure"> - <property name="label" translatable="yes">Do not verify TLS certificates of registry</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkExpander" id="install-oscontainer-auth-options"> - <property name="visible">True</property> - <property name="can_focus">True</property> <child> - <object class="GtkGrid"> + <object class="GtkEntry" id="install-oscontainer-source-user"> <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="margin_right">10</property> - <property name="label" translatable="yes">Username:</property> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="margin_right">10</property> - <property name="label" translatable="yes">Password:</property> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="install-oscontainer-source-user"> - <property name="visible">True</property> - <property name="can_focus">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="install-oscontainer-source-passwd"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="visibility">False</property> - <property name="invisible_char">*</property> - <property name="input_purpose">password</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> - </packing> - </child> + <property name="can_focus">True</property> </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + </packing> </child> - <child type="label"> - <object class="GtkLabel"> + <child> + <object class="GtkEntry" id="install-oscontainer-source-passwd"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Credentials for accessing the source registry</property> + <property name="can_focus">True</property> + <property name="visibility">False</property> + <property name="invisible_char">*</property> + <property name="input_purpose">password</property> </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + </packing> </child> </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> + </child> + <child type="label"> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Credentials for accessing the source registry</property> + </object> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">4</property> + <property name="position">2</property> </packing> </child> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> </child> </object> <packing> <property name="expand">True</property> <property name="fill">True</property> - <property name="position">1</property> + <property name="position">2</property> </packing> </child> </object> -- 2.15.1 ++++++ 0003-oscontainer-ask-root-password-in-the-wizard.patch ++++++ >From 7fb94b1bec19cb01243b6f50483a7ae4ba5b4b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]> 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 <property name="position">3</property> </packing> </child> + <child> + <object class="GtkBox" id="install-oscontainer-rootpw-box"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Root password:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="install-oscontainer-rootpw"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="visibility">False</property> + <property name="invisible_char">●</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">4</property> + </packing> + </child> </object> <packing> <property name="expand">True</property> 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) ++++++ 0004-Harmonize-invisible_char-values.patch ++++++ >From 697b86a84a2bfd267a30c765b19ba550a55d85c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]> 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 @@ <object class="GtkEntry" id="usbredir-host"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">•</property> + <property name="invisible_char">●</property> </object> <packing> <property name="expand">True</property> 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</property> <property name="can_focus">True</property> <property name="valign">center</property> <property name="hexpand">True</property> - <property name="invisible_char">•</property> + <property name="invisible_char">●</property> </object> <packing> <property name="left_attach">1</property> @@ -1870,7 +1870,7 @@ connections is not yet supported.</small></property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="visibility">False</property> - <property name="invisible_char">*</property> + <property name="invisible_char">●</property> <property name="input_purpose">password</property> </object> <packing> 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 @@ <object class="GtkSpinButton" id="migrate-port"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">•</property> + <property name="invisible_char">●</property> <property name="text" translatable="yes">0</property> <property name="adjustment">adjustment1</property> </object> @@ -303,7 +303,7 @@ <object class="GtkEntry" id="migrate-address"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">•</property> + <property name="invisible_char">●</property> </object> <packing> <property name="expand">False</property> -- 2.15.1 ++++++ python3-fix-bytes-string-mess-in-serial-console.patch ++++++ >From e025b9c0fe78621f1c6f9f7655c142a8a3d516fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]> Date: Wed, 13 Dec 2017 11:35:39 +0100 Subject: [PATCH] python3: fix bytes/string mess in serial console Add a few encode() and decode() to convert between libvirt stream functions expecting bytes arrays and Vte callbacks providing strings. --- virtManager/serialcon.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/virtManager/serialcon.py b/virtManager/serialcon.py index 7caf6db4..21ab8ae7 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): -- 2.15.1
