From e879bec89202ddb0552f6712568ae5590727e851 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sat, 5 Sep 2020 18:33:52 +0000 Subject: [PATCH] import virt-viewer-9.0-4.el8 --- .gitignore | 1 + .virt-viewer.metadata | 1 + ...rkaround-inconsistency-with-REST-API.patch | 80 ++++ ...-foreign-menu-Bypass-errors-from-Hos.patch | 146 +++++++ ...e-viewer-Set-admin-privileges-when-c.patch | 34 ++ ...ssage-on-no-extension-for-screenshot.patch | 53 +++ SPECS/virt-viewer.spec | 373 ++++++++++++++++++ 7 files changed, 688 insertions(+) create mode 100644 .gitignore create mode 100644 .virt-viewer.metadata create mode 100644 SOURCES/0001-DOWNSTREAM-Workaround-inconsistency-with-REST-API.patch create mode 100644 SOURCES/0002-DOWNSTREAM-ovirt-foreign-menu-Bypass-errors-from-Hos.patch create mode 100644 SOURCES/0003-DOWNSTREAM-remote-viewer-Set-admin-privileges-when-c.patch create mode 100644 SOURCES/0005-display-error-message-on-no-extension-for-screenshot.patch create mode 100644 SPECS/virt-viewer.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0118231 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/virt-viewer-9.0.tar.gz diff --git a/.virt-viewer.metadata b/.virt-viewer.metadata new file mode 100644 index 0000000..8c26a6e --- /dev/null +++ b/.virt-viewer.metadata @@ -0,0 +1 @@ +4a1095b8f0e1d6184aef2c13ace4a770c383641e SOURCES/virt-viewer-9.0.tar.gz diff --git a/SOURCES/0001-DOWNSTREAM-Workaround-inconsistency-with-REST-API.patch b/SOURCES/0001-DOWNSTREAM-Workaround-inconsistency-with-REST-API.patch new file mode 100644 index 0000000..a564b72 --- /dev/null +++ b/SOURCES/0001-DOWNSTREAM-Workaround-inconsistency-with-REST-API.patch @@ -0,0 +1,80 @@ +From 182fb30ff7cd85873d479b214bebf291aed2eaf1 Mon Sep 17 00:00:00 2001 +From: "Eduardo Lima (Etrunko)" +Date: Fri, 23 Aug 2019 11:30:32 -0300 +Subject: [PATCH virt-viewer] [DOWNSTREAM] Workaround inconsistency with REST + API + +The storage domain object returned in this stage does not provide a link +to the files subcollection. To workaround this problem, we use the id of +the given storage domain to create a new object but referencing the +toplevel api, which in turn provides the file collection. + +This is meant to be a donwnstream patch only, while this issue is not +addressed by RHV. + +Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1717900 + +Signed-off-by: Eduardo Lima (Etrunko) +--- + src/ovirt-foreign-menu.c | 38 ++++++++++++++++++++++++++++++++++++-- + 1 file changed, 36 insertions(+), 2 deletions(-) + +diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c +index 98ab7b9..a849991 100644 +--- a/src/ovirt-foreign-menu.c ++++ b/src/ovirt-foreign-menu.c +@@ -686,6 +686,37 @@ static gboolean ovirt_foreign_menu_set_file_collection(OvirtForeignMenu *menu, O + return TRUE; + } + ++static gboolean set_file_collection_from_toplevel_storage_domain(OvirtForeignMenu *menu, OvirtStorageDomain *domain) ++{ ++ gboolean ret = FALSE; ++ GError *error = NULL; ++ OvirtResource *resource = NULL; ++ gchar *href = NULL, *id = NULL; ++ ++ g_object_get(domain, "guid", &id, NULL); ++ href = g_strdup_printf("/ovirt-engine/api/storagedomains/%s", id); ++ resource = g_initable_new(OVIRT_TYPE_STORAGE_DOMAIN, NULL, &error, "guid", id, "href", href, NULL); ++ if (error != NULL) { ++ g_warning("Failed to create storage domain with href %s: %s", href, error->message); ++ goto end; ++ } ++ ++ ovirt_resource_refresh(resource, menu->priv->proxy, &error); ++ if (error != NULL) { ++ g_warning("Failed to refresh storage domain: %s", error->message); ++ goto end; ++ } ++ ++ ret = ovirt_foreign_menu_set_file_collection(menu, ovirt_storage_domain_get_files(OVIRT_STORAGE_DOMAIN(resource))); ++ ++end: ++ g_clear_error(&error); ++ g_clear_object(&resource); ++ g_free(id); ++ g_free(href); ++ return ret; ++} ++ + static void storage_domains_fetched_cb(GObject *source_object, + GAsyncResult *result, + gpointer user_data) +@@ -717,8 +748,11 @@ static void storage_domains_fetched_cb(GObject *source_object, + domain_valid = TRUE; + + file_collection = ovirt_storage_domain_get_files(domain); +- if (!ovirt_foreign_menu_set_file_collection(menu, file_collection)) +- continue; ++ if (!ovirt_foreign_menu_set_file_collection(menu, file_collection)) { ++ /* Retry with toplevel storage domain */ ++ if (!set_file_collection_from_toplevel_storage_domain(menu, domain)) ++ continue; ++ } + + break; /* There can only be one valid storage domain at a time, + no need to iterate more on the list */ +-- +2.26.2 + diff --git a/SOURCES/0002-DOWNSTREAM-ovirt-foreign-menu-Bypass-errors-from-Hos.patch b/SOURCES/0002-DOWNSTREAM-ovirt-foreign-menu-Bypass-errors-from-Hos.patch new file mode 100644 index 0000000..afc0104 --- /dev/null +++ b/SOURCES/0002-DOWNSTREAM-ovirt-foreign-menu-Bypass-errors-from-Hos.patch @@ -0,0 +1,146 @@ +From d8dc636c63a3616a938c600487e473a71c67cf96 Mon Sep 17 00:00:00 2001 +From: "Eduardo Lima (Etrunko)" +Date: Fri, 6 Jul 2018 09:12:18 -0300 +Subject: [PATCH virt-viewer] [DOWNSTREAM] ovirt-foreign-menu: Bypass errors + from Host/Cluster/Data Center + +When accessing ovirt as a regular user, it may happen that queries to +Hosts, Clusters and Data Centers return errors due to insufficient +permissions, while they will work fine if access is done by admin user. +In this case, we skip the errors and fallback to the old method. + +Signed-off-by: Eduardo Lima (Etrunko) +--- + src/ovirt-foreign-menu.c | 60 ++++++++++++++++++++++++++++++---------- + 1 file changed, 46 insertions(+), 14 deletions(-) + +diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c +index a849991..dc6ecf4 100644 +--- a/src/ovirt-foreign-menu.c ++++ b/src/ovirt-foreign-menu.c +@@ -627,12 +627,21 @@ G_GNUC_END_IGNORE_DEPRECATIONS + } + + static gboolean storage_domain_attached_to_data_center(OvirtStorageDomain *domain, +- OvirtDataCenter *data_center) ++ OvirtDataCenter *data_center) + { + GStrv data_center_ids; + char *data_center_guid; + gboolean match; + ++ /* For some reason we did not get data center information, so just return ++ * TRUE as it will work like a fallback to old method, where we did not ++ * check relationship between data center and storage domain. ++ */ ++ if (data_center == NULL) { ++ g_debug("Could not get data center info, considering storage domain is attached to it"); ++ return TRUE; ++ } ++ + g_object_get(domain, "data-center-ids", &data_center_ids, NULL); + g_object_get(data_center, "guid", &data_center_guid, NULL); + match = strv_contains((const gchar * const *) data_center_ids, data_center_guid); +@@ -779,9 +788,11 @@ static void ovirt_foreign_menu_fetch_storage_domain_async(OvirtForeignMenu *menu + #ifdef HAVE_OVIRT_DATA_CENTER + g_return_if_fail(OVIRT_IS_FOREIGN_MENU(menu)); + g_return_if_fail(OVIRT_IS_PROXY(menu->priv->proxy)); +- g_return_if_fail(OVIRT_IS_DATA_CENTER(menu->priv->data_center)); + +- collection = ovirt_data_center_get_storage_domains(menu->priv->data_center); ++ if (menu->priv->data_center != NULL) ++ collection = ovirt_data_center_get_storage_domains(menu->priv->data_center); ++ else ++ collection = ovirt_api_get_storage_domains(menu->priv->api); + #else + collection = ovirt_api_get_storage_domains(menu->priv->api); + #endif +@@ -806,9 +817,7 @@ static void data_center_fetched_cb(GObject *source_object, + ovirt_resource_refresh_finish(resource, result, &error); + if (error != NULL) { + g_debug("failed to fetch Data Center: %s", error->message); +- g_task_return_error(task, error); +- g_object_unref(task); +- return; ++ g_clear_error(&error); + } + + ovirt_foreign_menu_next_async_step(menu, task, STATE_DATA_CENTER); +@@ -823,6 +832,12 @@ static void ovirt_foreign_menu_fetch_data_center_async(OvirtForeignMenu *menu, + g_return_if_fail(OVIRT_IS_CLUSTER(menu->priv->cluster)); + + menu->priv->data_center = ovirt_cluster_get_data_center(menu->priv->cluster); ++ ++ if (menu->priv->data_center == NULL) { ++ ovirt_foreign_menu_next_async_step(menu, task, STATE_DATA_CENTER); ++ return; ++ } ++ + ovirt_resource_refresh_async(OVIRT_RESOURCE(menu->priv->data_center), + menu->priv->proxy, + g_task_get_cancellable(task), +@@ -843,9 +858,7 @@ static void cluster_fetched_cb(GObject *source_object, + ovirt_resource_refresh_finish(resource, result, &error); + if (error != NULL) { + g_debug("failed to fetch Cluster: %s", error->message); +- g_task_return_error(task, error); +- g_object_unref(task); +- return; ++ g_clear_error(&error); + } + + ovirt_foreign_menu_next_async_step(menu, task, STATE_CLUSTER); +@@ -857,9 +870,21 @@ static void ovirt_foreign_menu_fetch_cluster_async(OvirtForeignMenu *menu, + { + g_return_if_fail(OVIRT_IS_FOREIGN_MENU(menu)); + g_return_if_fail(OVIRT_IS_PROXY(menu->priv->proxy)); +- g_return_if_fail(OVIRT_IS_HOST(menu->priv->host)); + +- menu->priv->cluster = ovirt_host_get_cluster(menu->priv->host); ++ /* If there is no host information, we get cluster from the VM */ ++ if (menu->priv->host == NULL) { ++ g_return_if_fail(OVIRT_IS_VM(menu->priv->vm)); ++ menu->priv->cluster = ovirt_vm_get_cluster(menu->priv->vm); ++ } else { ++ g_return_if_fail(OVIRT_IS_HOST(menu->priv->host)); ++ menu->priv->cluster = ovirt_host_get_cluster(menu->priv->host); ++ } ++ ++ if (menu->priv->cluster == NULL) { ++ ovirt_foreign_menu_next_async_step(menu, task, STATE_CLUSTER); ++ return; ++ } ++ + ovirt_resource_refresh_async(OVIRT_RESOURCE(menu->priv->cluster), + menu->priv->proxy, + g_task_get_cancellable(task), +@@ -880,9 +905,7 @@ static void host_fetched_cb(GObject *source_object, + ovirt_resource_refresh_finish(resource, result, &error); + if (error != NULL) { + g_debug("failed to fetch Host: %s", error->message); +- g_task_return_error(task, error); +- g_object_unref(task); +- return; ++ g_clear_error(&error); + } + + ovirt_foreign_menu_next_async_step(menu, task, STATE_HOST); +@@ -897,6 +920,15 @@ static void ovirt_foreign_menu_fetch_host_async(OvirtForeignMenu *menu, + g_return_if_fail(OVIRT_IS_VM(menu->priv->vm)); + + menu->priv->host = ovirt_vm_get_host(menu->priv->vm); ++ ++ /* In some cases the VM XML does not include host information, so we just ++ * skip to the next step ++ */ ++ if (menu->priv->host == NULL) { ++ ovirt_foreign_menu_next_async_step(menu, task, STATE_HOST); ++ return; ++ } ++ + ovirt_resource_refresh_async(OVIRT_RESOURCE(menu->priv->host), + menu->priv->proxy, + g_task_get_cancellable(task), +-- +2.26.2 + diff --git a/SOURCES/0003-DOWNSTREAM-remote-viewer-Set-admin-privileges-when-c.patch b/SOURCES/0003-DOWNSTREAM-remote-viewer-Set-admin-privileges-when-c.patch new file mode 100644 index 0000000..9d07748 --- /dev/null +++ b/SOURCES/0003-DOWNSTREAM-remote-viewer-Set-admin-privileges-when-c.patch @@ -0,0 +1,34 @@ +From f06747e69cdade6c2774462a208535de890978c1 Mon Sep 17 00:00:00 2001 +From: "Eduardo Lima (Etrunko)" +Date: Mon, 26 Aug 2019 10:18:20 -0300 +Subject: [PATCH virt-viewer] [DOWNSTREAM] remote-viewer: Set admin privileges + when connecting to ovirt + +Signed-off-by: Eduardo Lima (Etrunko) +--- + src/remote-viewer.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/remote-viewer.c b/src/remote-viewer.c +index 2450096..9e63bfb 100644 +--- a/src/remote-viewer.c ++++ b/src/remote-viewer.c +@@ -340,6 +340,7 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, + g_object_set(G_OBJECT(proxy), + "username", username, + "password", password, ++ "admin", g_str_has_prefix(username, "admin"), + NULL); + } else { + rest_proxy_auth_cancel(auth); +@@ -433,6 +434,7 @@ create_ovirt_session(VirtViewerApp *app, const char *uri, GError **err) + proxy = ovirt_proxy_new(rest_uri); + g_object_set(proxy, + "username", username, ++ "admin", g_str_has_prefix(username, "admin"), + NULL); + ovirt_set_proxy_options(proxy); + g_signal_connect(G_OBJECT(proxy), "authenticate", +-- +2.26.2 + diff --git a/SOURCES/0005-display-error-message-on-no-extension-for-screenshot.patch b/SOURCES/0005-display-error-message-on-no-extension-for-screenshot.patch new file mode 100644 index 0000000..a7d36e7 --- /dev/null +++ b/SOURCES/0005-display-error-message-on-no-extension-for-screenshot.patch @@ -0,0 +1,53 @@ +From c6afc28cc9761af3e992eab0ca105a978b83a346 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Julien=20Rop=C3=A9?= +Date: Tue, 9 Jun 2020 14:44:39 +0200 +Subject: [PATCH remote-viewer] Rather than adding a default extension to + screenshots, display an error message to make the user add it. This prevents + the silent overwriting of the file, and still makes sure the user knows why + we don't proceed. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix BZ#1752514 + +Signed-off-by: Julien Ropé +--- + src/virt-viewer-window.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c +index 928658f..7ecee21 100644 +--- a/src/virt-viewer-window.c ++++ b/src/virt-viewer-window.c +@@ -1085,17 +1085,22 @@ virt_viewer_window_menu_file_screenshot(GtkWidget *menu G_GNUC_UNUSED, + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog), image_dir); + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), _("Screenshot.png")); + ++retry_dialog: + if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { + char *filename; + GError *error = NULL; + + filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog)); + if (g_strrstr(filename, ".") == NULL) { +- // no extension provided: add the .png default +- char *tmp_filename ; +- tmp_filename = g_strdup_printf("%s.png", filename) ; +- g_free(filename) ; +- filename = tmp_filename ; ++ // no extension provided ++ GtkWidget *msg_dialog ; ++ g_free(filename); ++ msg_dialog = gtk_message_dialog_new (GTK_WINDOW(dialog), GTK_DIALOG_MODAL, ++ GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, ++ _("Please add an extension to the file name")); ++ gtk_dialog_run(GTK_DIALOG(msg_dialog)); ++ gtk_widget_destroy(msg_dialog); ++ goto retry_dialog; + } + + if (!virt_viewer_window_save_screenshot(self, filename, &error)) { +-- +2.26.2 + diff --git a/SPECS/virt-viewer.spec b/SPECS/virt-viewer.spec new file mode 100644 index 0000000..5456633 --- /dev/null +++ b/SPECS/virt-viewer.spec @@ -0,0 +1,373 @@ +# -*- rpm-spec -*- + +%global _hardened_build 1 + +# Default to skipping autoreconf. Distros can change just this one line +# (or provide a command-line override) if they backport any patches that +# touch configure.ac or Makefile.am. +%{!?enable_autotools:%global enable_autotools 1} + +%define with_spice 0 +%if 0%{?fedora} >= 17 || 0%{?rhel} >= 6 +%define with_spice 1 +%endif + +%define with_govirt 0 +%if 0%{?fedora} > 19 || 0%{?rhel} >= 7 +%define with_govirt 1 +%endif + +Name: virt-viewer +Version: 9.0 +Release: 4%{?dist}%{?extra_release} +Summary: Virtual Machine Viewer +Group: Applications/System +License: GPLv2+ +URL: https://virt-manager.org/ +Source0: http://virt-manager.org/download/sources/%{name}/%{name}-%{version}.tar.gz + +Patch001: 0001-DOWNSTREAM-Workaround-inconsistency-with-REST-API.patch +Patch002: 0002-DOWNSTREAM-ovirt-foreign-menu-Bypass-errors-from-Hos.patch +Patch003: 0003-DOWNSTREAM-remote-viewer-Set-admin-privileges-when-c.patch +Patch005: 0005-display-error-message-on-no-extension-for-screenshot.patch + + +Requires: openssh-clients +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils + +%if 0%{?enable_autotools} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gettext-devel +BuildRequires: libtool +%endif + +BuildRequires: gcc +BuildRequires: pkgconfig(glib-2.0) >= 2.38 +BuildRequires: pkgconfig(gtk+-3.0) >= 3.18 +BuildRequires: pkgconfig(libvirt) >= 0.10.0 +BuildRequires: pkgconfig(libvirt-glib-1.0) >= 0.1.8 +BuildRequires: pkgconfig(libxml-2.0) >= 2.6.0 +BuildRequires: pkgconfig(gtk-vnc-2.0) >= 0.4.0 +%if %{with_spice} +BuildRequires: pkgconfig(spice-client-gtk-3.0) >= 0.35 +BuildRequires: pkgconfig(spice-protocol) >= 0.12.7 +%endif +BuildRequires: /usr/bin/pod2man +BuildRequires: intltool +%if %{with_govirt} +BuildRequires: pkgconfig(govirt-1.0) >= 0.3.2 +%endif + +%if 0%{?fedora} >= 20 +Obsoletes: spice-client < 0.12.3-2 +%endif + + +%description +Virtual Machine Viewer provides a graphical console client for connecting +to virtual machines. It uses the GTK-VNC or SPICE-GTK widgets to provide +the display, and libvirt for looking up VNC/SPICE server details. + +%prep +%setup -q + +%patch001 -p1 +%patch002 -p1 +%patch003 -p1 +%patch005 -p1 + +%build + +%if 0%{?enable_autotools} +autoreconf -if +%endif + +%if %{with_spice} +%define spice_arg --with-spice-gtk +%else +%define spice_arg --without-spice-gtk +%endif + +%if %{with_govirt} +%define govirt_arg --with-ovirt +%endif + +%configure %{spice_arg} %{govirt_arg} --with-buildid=%{release} --disable-update-mimedb --with-osid=rhel%{?rhel} +%__make %{?_smp_mflags} V=1 + + +%install +rm -rf $RPM_BUILD_ROOT +%__make install DESTDIR=$RPM_BUILD_ROOT +%find_lang %{name} + +%files -f %{name}.lang +%doc README.md COPYING AUTHORS ChangeLog NEWS +%{_bindir}/%{name} +%{_bindir}/remote-viewer +%{_datadir}/icons/hicolor/*/apps/* +%{_datadir}/icons/hicolor/*/devices/* +%{_datadir}/applications/remote-viewer.desktop +%{_datadir}/appdata/remote-viewer.appdata.xml +%{_datadir}/mime/packages/virt-viewer-mime.xml +%{_mandir}/man1/virt-viewer.1* +%{_mandir}/man1/remote-viewer.1* + +%changelog +* Fri Aug 28 2020 Eduardo Lima (Etrunko) - 9.0-4 +- Revert support for DATA storage domains temporarily. + Resolves: rhbz#1873549 + +* Thu Jun 25 2020 Eduardo Lima (Etrunko) - 9.0-3 +- Handle DATA storage domains properly + Resolves: rhbz#1835640 + +* Tue Jun 9 2020 Julien Rope - 9.0-2 +- Display an error when no extension is given to a screenshot. + Resolves: rhbz#1752514 + +* Tue May 19 2020 Eduardo Lima (Etrunko) - 9.0-1 +- Rebase to latest upstream + Resolves: rhbz#1837489 +- Do not filter out DATA storage domains + Resolves: rhbz#1835640 + +* Tue Dec 17 2019 Victor Toso - 7.0-9 +- Always add vm's name to settings file + Related: rhbz#1750706 + +* Tue Aug 27 2019 Eduardo Lima (Etrunko) - 7.0-8 +- Request tolplevel storage domain API object + Related: rhbz#1717900 + +* Mon Aug 19 2019 Kevin Pouget - 7.0-7 +- Improve the error shown to the user when a file transfer fails. + Resolves: rhbz#1496356 + +* Fri Aug 16 2019 Eduardo Lima (Etrunko) - 7.0-6 +- Bypass errors from oVirt foreign menu queries + Resolves: rhbz#1717900 + +* Mon Jul 22 2019 Victor Toso - 7.0-5 +- Listen to SpiceSession::disconnected + Resolves: rhbz#1655957 + +* Wed Mar 20 2019 Victor Toso - 7.0-4 +- Some .spec file changes missed by rebase from F28 on RHEL-8.0 + Resolves: rhbz#1660060 + +* Tue Dec 18 2018 Victor Toso - 7.0-3 +- Fix connection with ovirt + Resolves: rhbz#1584561 + +* Tue Oct 16 2018 Jonathon Jongsma - 7.0-2 +- Fix fullscreen displays on wrong monitors in wayland + Resolves: rhbz#1584561 + +* Fri Jul 27 2018 Daniel P. Berrangé - 7.0-1 +- Update to 7.0 release + +* Sat Jul 14 2018 Fedora Release Engineering - 6.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 28 2018 Fabiano Fidêncio - 6.0-5 +- Add missing patch for spice-controller so being removed + +* Thu Jun 28 2018 Daniel P. Berrangé - 6.0-4 +- Rebuild for spice-controller so being removed + +* Fri Feb 09 2018 Fedora Release Engineering - 6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 18 2018 Igor Gnatenko - 6.0-2 +- Remove obsolete scriptlets + +* Tue Aug 15 2017 Daniel P. Berrange - 6.0-1 +- Update to 6.0 release + +* Thu Aug 03 2017 Fedora Release Engineering - 5.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Nov 24 2016 Daniel P. Berrange - 5.0-1 +- Update to 5.0 release + +* Wed Oct 05 2016 Christophe Fergeau 4.0-2 +- Add upstream patch fixing virt-viewer window gradually getting bigger and + bigger + +* Thu Jun 30 2016 Daniel P. Berrange - 4.0-1 +- Update to 4.0 release + +* Wed Jun 22 2016 Christophe Fergeau - 3.0-3 +- Rebuild for spice-gtk ABI break + +* Fri Feb 05 2016 Fedora Release Engineering - 3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Dec 4 2015 Fabiano Fidêncio - 3.0-1 +- Update to 3.0 release + +* Fri Jun 19 2015 Fedora Release Engineering - 2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jan 12 2015 Daniel P. Berrange - 2.0-1 +- Update to 2.0 release + +* Sat Sep 27 2014 Rex Dieter - 1.0-3 +- update/optimize mime scriptlets + +* Mon Aug 18 2014 Fedora Release Engineering - 1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Jul 21 2014 Daniel P. Berrange - 1.0-1 +- Update to 1.0 release + +* Sun Jun 08 2014 Fedora Release Engineering - 0.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Feb 26 2014 Christophe Fergeau 0.6.0-1 +- Update to 0.6.0 release + +* Tue Nov 26 2013 Christophe Fergeau 0.5.7-2 +- Rebuild for new libgovirt + +* Wed Jul 31 2013 Daniel P. Berrange - 0.5.7-1 +- Update to 0.5.7 release + +* Thu May 23 2013 Christophe Fergeau - 0.5.6-2 +- Mark remote-viewer as replacing spice-client + +* Wed May 1 2013 Daniel P. Berrange - 0.5.6-1 +- Update to 0.5.6 release + +* Wed Feb 13 2013 Daniel P. Berrange - 0.5.5-1 +- Update to 0.5.5 release + +* Fri Dec 14 2012 Cole Robinson - 0.5.4-3 +- Fix crash after entering spice password (bz #880381) + +* Sat Oct 13 2012 Chris Tyler - 0.5.4-2 +- Enabled spice support for ARM archs + +* Mon Sep 17 2012 Daniel P. Berrange - 0.5.4-1 +- Update to 0.5.4 release + +* Fri Sep 14 2012 Hans de Goede - 0.5.3-6 +- Rebuild for spice-gtk ABI breakage (previous spice-gtk build was borked) + +* Tue Sep 11 2012 Hans de Goede - 0.5.3-5 +- Rebuild for spice-gtk ABI breakage + +* Fri Sep 7 2012 Hans de Goede - 0.5.3-4 +- Rebuild for spice-gtk soname change + +* Mon Aug 13 2012 Daniel P. Berrange - 0.5.3-3 +- Rebuild for spice-gtk soname change + +* Sun Jul 22 2012 Fedora Release Engineering - 0.5.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 16 2012 Daniel P. Berrange - 0.5.3-1 +- Update to 0.5.3 release + +* Fri Mar 9 2012 Daniel P. Berrange - 0.5.2-1 +- Update to 0.5.2 release + +* Fri Feb 17 2012 Daniel P. Berrange - 0.5.1-1 +- Update to 0.5.1 release + +* Tue Feb 14 2012 Daniel P. Berrange - 0.5.0-1 +- Update to 0.5.0 release + +* Sat Jan 14 2012 Fedora Release Engineering - 0.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Nov 9 2011 Daniel P. Berrange - 0.4.2-1 +- Update to 0.4.2 release + +* Sun Aug 14 2011 Daniel P. Berrange - 0.4.1-3 +- More ssh tunnelling port fixes + +* Fri Aug 12 2011 Daniel P. Berrange - 0.4.1-2 +- Fix ssh tunnelling + +* Thu Aug 4 2011 Daniel P. Berrange - 0.4.1-1 +- Update to 0.4.1 release + +* Tue Aug 2 2011 Daniel P. Berrange - 0.4.0-2 +- Rebuild for accidental spice-glib soname change + +* Tue Jul 12 2011 Daniel P. Berrange - 0.4.0-1 +- Update to 0.4.0 release +- Switch build to GTK3 instead of GTK2 + +* Tue May 31 2011 Daniel P. Berrange - 0.3.1-2 +- Rebuild for spice-glib ABI breakage + +* Wed May 11 2011 Karsten Hopp 0.3.1-1.1 +- spice-gtk is x86 x86_64 only, don't require it on other archs + +* Mon Feb 21 2011 Daniel P. Berrange - 0.3.1-1 +- Update to 0.3.1 release + +* Mon Feb 21 2011 Daniel P. Berrange - 0.3.0-1 +- Update to 0.3.0 and enable SPICE + +* Mon Feb 07 2011 Fedora Release Engineering - 0.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 15 2010 Daniel P. Berrange - 0.2.1-1 +- Update to 0.2.1 release + +* Wed Jul 29 2009 Daniel P. Berrange - 0.2.0-1.fc12 +- Update to 0.2.0 release + +* Sun Jul 26 2009 Fedora Release Engineering - 0.0.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu May 7 2009 Daniel P. Berrange - 0.0.3-5.fc12 +- Fix auth against libvirt (rhbz #499594) +- Fix confusion of VNC credentials (rhbz #499595) +- Correct keyboard grab handling (rhbz #499362) + +* Wed Feb 25 2009 Fedora Release Engineering - 0.0.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Jul 7 2008 Tom "spot" Callaway - 0.0.3-3.fc10 +- fix conditional comparison +- remove file dep + +* Wed Jun 25 2008 Daniel P. Berrange - 0.0.3-2.fc10 +- Rebuild for GNU TLS ABI bump + +* Mon Mar 10 2008 Daniel P. Berrange - 0.0.3-1.fc9 +- Updated to 0.0.3 release + +* Mon Feb 18 2008 Fedora Release Engineering - 0.0.2-4 +- Autorebuild for GCC 4.3 + +* Fri Jan 11 2008 Daniel P. Berrange - 0.0.2-3.fc9 +- Set domain name as window title +- Hide input for passwd fields during auth + +* Mon Oct 15 2007 Daniel P. Berrange - 0.0.2-2.fc8 +- Change TLS x509 credential name to sync with libvirt + +* Tue Aug 28 2007 Daniel P. Berrange - 0.0.2-1.fc8 +- Added support for remote console access + +* Fri Aug 17 2007 Daniel P. Berrange - 0.0.1-2.fc8 +- Restrict built to x86 & ia64 because libvirt is only on those arches + +* Wed Aug 15 2007 Daniel P. Berrange - 0.0.1-1.fc8 +- First release