Hello community, here is the log from the commit of package gnome-software for openSUSE:Factory checked in at 2018-01-25 12:38:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-software (Old) and /work/SRC/openSUSE:Factory/.gnome-software.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-software" Thu Jan 25 12:38:02 2018 rev:50 rq:568066 version:3.26.5 Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-software/gnome-software.changes 2018-01-16 09:28:39.580186265 +0100 +++ /work/SRC/openSUSE:Factory/.gnome-software.new/gnome-software.changes 2018-01-25 12:38:03.641610027 +0100 @@ -1,0 +2,15 @@ +Fri Jan 19 12:10:00 UTC 2018 - bjorn....@gmail.com + +- Update to version 3.26.5: + + Add missing locking to gs_plugin_cache_remove(), fixing a + possible crash. + + Fix various memory leaks spotted by valgrind. + + Fix a possible crash triggered by the fwupd plugin. + + Do not emit critical warnings when reviewing OS Updates. + + fwupd: Use the custom user-agent when downloading firmware. + + overview page: Fix a crash when we have no featured apps. + + packagekit: Implement repository enabling. + + Fix hover CSS for "unknown" and "nonfree" license buttons. + + Updated translations. + +------------------------------------------------------------------- Old: ---- gnome-software-3.26.4.tar.xz New: ---- gnome-software-3.26.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-software.spec ++++++ --- /var/tmp/diff_new_pack.icdade/_old 2018-01-25 12:38:04.385575295 +0100 +++ /var/tmp/diff_new_pack.icdade/_new 2018-01-25 12:38:04.385575295 +0100 @@ -18,7 +18,7 @@ %define gs_plugin_api 11 Name: gnome-software -Version: 3.26.4 +Version: 3.26.5 Release: 0 Summary: GNOME Software Store License: GPL-2.0+ ++++++ gnome-software-3.26.4.tar.xz -> gnome-software-3.26.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/NEWS new/gnome-software-3.26.5/NEWS --- old/gnome-software-3.26.4/NEWS 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/NEWS 2018-01-08 21:27:53.000000000 +0100 @@ -1,3 +1,19 @@ +Version 3.26.5 +~~~~~~~~~~~~~~ +Released: 2018-01-08 + +This is a stable release with the following changes: + * Add missing locking to gs_plugin_cache_remove(), fixing a possible crash + * Fix various memory leaks spotted by valgrind + * Fix a possible crash triggered by the fwupd plugin + * Do not emit critical warnings when reviewing OS Updates + * fwupd: Use the custom user-agent when downloading firmware + * overview page: Fix a crash when we have no featured apps + * packagekit: Implement repository enabling + * Fix hover CSS for "unknown" and "nonfree" license buttons + +This release also updates translations. + Version 3.26.4 ~~~~~~~~~~~~~~ Released: 2017-12-17 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/RELEASE new/gnome-software-3.26.5/RELEASE --- old/gnome-software-3.26.4/RELEASE 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/RELEASE 2018-01-08 21:27:53.000000000 +0100 @@ -2,14 +2,14 @@ Write release entries: -git log --format="%s" --cherry-pick --right-only GNOME_SOFTWARE_3_26_3... | grep -i -v trivial | grep -v Merge | sort | uniq +git log --format="%s" --cherry-pick --right-only 3.26.4... | grep -i -v trivial | grep -v Merge | sort | uniq Add any user visible changes into data/appdata/org.gnome.Software.appdata.xml.in Generate NEWS file: appstream-util appdata-to-news data/appdata/org.gnome.Software.appdata.xml.in > NEWS -git commit -a -m "Release version 3.26.4" -git tag -s GNOME_SOFTWARE_3_26_4 -m "==== Version 3.26.4 ====" +git commit -a -m "Release version 3.26.5" +git tag -s 3.26.5 -m "==== Version 3.26.5 ====" <enter password> ninja-build dist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/data/appdata/org.gnome.Software.appdata.xml.in new/gnome-software-3.26.5/data/appdata/org.gnome.Software.appdata.xml.in --- old/gnome-software-3.26.4/data/appdata/org.gnome.Software.appdata.xml.in 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/data/appdata/org.gnome.Software.appdata.xml.in 2018-01-08 21:27:53.000000000 +0100 @@ -46,6 +46,24 @@ Validate with `appstream-util validate *.appdata.xml` --> <releases> + <release date="2018-01-08" version="3.26.5"> + <description> + <p> + This is a stable release with the following changes: + </p> + <ul> + <li>Add missing locking to gs_plugin_cache_remove(), fixing a possible crash</li> + <li>Fix various memory leaks spotted by valgrind</li> + <li>Fix a possible crash triggered by the fwupd plugin</li> + <li>Do not emit critical warnings when reviewing OS Updates</li> + <li>fwupd: Use the custom user-agent when downloading firmware</li> + <li>overview page: Fix a crash when we have no featured apps</li> + <li>packagekit: Implement repository enabling</li> + <li>Fix hover CSS for "unknown" and "nonfree" license buttons</li> + </ul> + <p>This release also updates translations.</p> + </description> + </release> <release date="2017-12-17" version="3.26.4"> <description> <p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/lib/gs-app.c new/gnome-software-3.26.5/lib/gs-app.c --- old/gnome-software-3.26.4/lib/gs-app.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/lib/gs-app.c 2018-01-08 21:27:53.000000000 +0100 @@ -555,7 +555,10 @@ gs_price_get_amount (priv->price)); for (i = 0; i < priv->related->len; i++) { GsApp *app_tmp = g_ptr_array_index (priv->related, i); - gs_app_kv_lpad (str, "related", gs_app_get_unique_id (app_tmp)); + const gchar *id = gs_app_get_unique_id (app_tmp); + if (id == NULL) + id = gs_app_get_source_default (app_tmp); + gs_app_kv_lpad (str, "related", id); } if (priv->history->len > 0) gs_app_kv_printf (str, "history", "%u", priv->history->len); @@ -3953,6 +3956,7 @@ g_clear_pointer (&priv->history, g_ptr_array_unref); g_clear_pointer (&priv->related, g_ptr_array_unref); g_clear_pointer (&priv->screenshots, g_ptr_array_unref); + g_clear_pointer (&priv->review_ratings, g_array_unref); g_clear_pointer (&priv->reviews, g_ptr_array_unref); g_clear_pointer (&priv->provides, g_ptr_array_unref); g_clear_pointer (&priv->icons, g_ptr_array_unref); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/lib/gs-plugin-loader.c new/gnome-software-3.26.5/lib/gs-plugin-loader.c --- old/gnome-software-3.26.4/lib/gs-plugin-loader.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/lib/gs-plugin-loader.c 2018-01-08 21:27:53.000000000 +0100 @@ -2803,8 +2803,6 @@ priv->soup_session = soup_session_new_with_options (SOUP_SESSION_USER_AGENT, gs_user_agent (), SOUP_SESSION_TIMEOUT, 10, NULL); - soup_session_remove_feature_by_type (priv->soup_session, - SOUP_TYPE_CONTENT_DECODER); /* get the locale without the various UTF-8 suffixes */ tmp = g_getenv ("GS_SELF_TEST_LOCALE"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/lib/gs-plugin-private.h new/gnome-software-3.26.5/lib/gs-plugin-private.h --- old/gnome-software-3.26.4/lib/gs-plugin-private.h 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/lib/gs-plugin-private.h 2018-01-08 21:27:53.000000000 +0100 @@ -61,8 +61,6 @@ AsProfile *profile); void gs_plugin_set_auth_array (GsPlugin *plugin, GPtrArray *auth_array); -void gs_plugin_set_soup_session (GsPlugin *plugin, - SoupSession *soup_session); void gs_plugin_set_global_cache (GsPlugin *plugin, GsAppList *global_cache); void gs_plugin_set_running_other (GsPlugin *plugin, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/lib/gs-plugin.c new/gnome-software-3.26.5/lib/gs-plugin.c --- old/gnome-software-3.26.4/lib/gs-plugin.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/lib/gs-plugin.c 2018-01-08 21:27:53.000000000 +0100 @@ -759,7 +759,7 @@ * gs_plugin_get_soup_session: * @plugin: a #GsPlugin * - * Gets the soup session that plugins can use when downloading. + * Gets the soup session that this plugin can use when downloading. * * Returns: the #SoupSession * @@ -777,7 +777,7 @@ * @plugin: a #GsPlugin * @soup_session: a #SoupSession * - * Sets the soup session that plugins will use when downloading. + * Sets the soup session that this plugin will use when downloading. * * Since: 3.22 **/ @@ -1496,6 +1496,7 @@ gs_plugin_cache_remove (GsPlugin *plugin, const gchar *key) { GsPluginPrivate *priv = gs_plugin_get_instance_private (plugin); + g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&priv->cache_mutex); g_return_if_fail (GS_IS_PLUGIN (plugin)); g_return_if_fail (key != NULL); @@ -1539,6 +1540,8 @@ if (key == NULL) key = gs_app_get_unique_id (app); + g_return_if_fail (key != NULL); + /* global, so using internal unique_id */ if (gs_plugin_has_flags (plugin, GS_PLUGIN_FLAGS_GLOBAL_CACHE)) { if (!as_utils_unique_id_valid (key)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/lib/gs-plugin.h new/gnome-software-3.26.5/lib/gs-plugin.h --- old/gnome-software-3.26.4/lib/gs-plugin.h 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/lib/gs-plugin.h 2018-01-08 21:27:53.000000000 +0100 @@ -85,6 +85,8 @@ const gchar *gs_plugin_get_language (GsPlugin *plugin); AsProfile *gs_plugin_get_profile (GsPlugin *plugin); SoupSession *gs_plugin_get_soup_session (GsPlugin *plugin); +void gs_plugin_set_soup_session (GsPlugin *plugin, + SoupSession *soup_session); void gs_plugin_add_auth (GsPlugin *plugin, GsAuth *auth); GsAuth *gs_plugin_get_auth_by_id (GsPlugin *plugin, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/lib/gs-price.c new/gnome-software-3.26.5/lib/gs-price.c --- old/gnome-software-3.26.4/lib/gs-price.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/lib/gs-price.c 2018-01-08 21:27:53.000000000 +0100 @@ -126,6 +126,8 @@ } else if (g_strcmp0 (price->currency, "USD") == 0) { return g_strdup_printf (_("US$%.2f"), price->amount); } else { + /* Translators: %s is the currency, and %f is the amount. + * You can switch the order by using ā%2$f %1$sā instead. */ return g_strdup_printf (_("%s %f"), price->currency, price->amount); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/meson.build new/gnome-software-3.26.5/meson.build --- old/gnome-software-3.26.4/meson.build 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/meson.build 2018-01-08 21:27:53.000000000 +0100 @@ -1,5 +1,5 @@ project('gnome-software', 'c', - version : '3.26.4', + version : '3.26.5', license : 'GPL-2.0+', default_options : ['warning_level=1', 'c_std=c99'], meson_version : '>=0.37.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/plugins/fwupd/gs-plugin-fwupd.c new/gnome-software-3.26.5/plugins/fwupd/gs-plugin-fwupd.c --- old/gnome-software-3.26.4/plugins/fwupd/gs-plugin-fwupd.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/plugins/fwupd/gs-plugin-fwupd.c 2018-01-08 21:27:53.000000000 +0100 @@ -102,6 +102,11 @@ gs_plugin_initialize (GsPlugin *plugin) { GsPluginData *priv = gs_plugin_alloc_data (plugin, sizeof(GsPluginData)); +#if FWUPD_CHECK_VERSION(1,0,3) + g_autofree gchar *user_agent = NULL; +#endif + g_autoptr(SoupSession) soup_session = NULL; + priv->client = fwupd_client_new (); priv->to_download = g_ptr_array_new_with_free_func (g_free); priv->to_ignore = g_ptr_array_new_with_free_func (g_free); @@ -120,6 +125,22 @@ } #endif +#if FWUPD_CHECK_VERSION(1,0,3) + /* use a custom user agent to provide the fwupd version */ + user_agent = fwupd_build_user_agent (PACKAGE_NAME, PACKAGE_VERSION); + soup_session = soup_session_new_with_options (SOUP_SESSION_USER_AGENT, user_agent, + SOUP_SESSION_TIMEOUT, 10, + NULL); +#else + /* use a custom session with the content decoder turned off */ + soup_session = soup_session_new_with_options (SOUP_SESSION_USER_AGENT, gs_user_agent (), + SOUP_SESSION_TIMEOUT, 10, + NULL); +#endif + soup_session_remove_feature_by_type (soup_session, + SOUP_TYPE_CONTENT_DECODER); + gs_plugin_set_soup_session (plugin, soup_session); + /* set name of MetaInfo file */ gs_plugin_set_appstream_id (plugin, "org.gnome.Software.Plugin.Fwupd"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit.c new/gnome-software-3.26.5/plugins/packagekit/gs-plugin-packagekit.c --- old/gnome-software-3.26.4/plugins/packagekit/gs-plugin-packagekit.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/plugins/packagekit/gs-plugin-packagekit.c 2018-01-08 21:27:53.000000000 +0100 @@ -261,6 +261,35 @@ return TRUE; } +static gboolean +gs_plugin_repo_enable (GsPlugin *plugin, + GsApp *repo, + GCancellable *cancellable, + GError **error) +{ + GsPluginData *priv = gs_plugin_get_data (plugin); + ProgressData data; + g_autoptr(PkResults) results = NULL; + + data.app = repo; + data.plugin = plugin; + data.ptask = NULL; + + /* do sync call */ + gs_plugin_status_update (plugin, repo, GS_PLUGIN_STATUS_WAITING); + results = pk_client_repo_enable (PK_CLIENT (priv->task), + gs_app_get_id (repo), + TRUE, + cancellable, + gs_plugin_packagekit_progress_cb, &data, + error); + if (!gs_plugin_packagekit_results_valid (results, error)) { + gs_utils_error_add_unique_id (error, repo); + return FALSE; + } + return TRUE; +} + gboolean gs_plugin_app_install (GsPlugin *plugin, GsApp *app, @@ -287,7 +316,13 @@ gs_plugin_get_name (plugin)) != 0) return TRUE; - /* we enable the repo */ + /* enable repo */ + if (gs_app_get_kind (app) == AS_APP_KIND_SOURCE) { + return gs_plugin_repo_enable (plugin, app, + cancellable, error); + } + + /* enable the repo where the unavailable app is coming from */ if (gs_app_get_state (app) == AS_APP_STATE_UNAVAILABLE) { /* get everything up front we need */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/plugins/shell-extensions/gs-plugin-shell-extensions.c new/gnome-software-3.26.5/plugins/shell-extensions/gs-plugin-shell-extensions.c --- old/gnome-software-3.26.4/plugins/shell-extensions/gs-plugin-shell-extensions.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/plugins/shell-extensions/gs-plugin-shell-extensions.c 2018-01-08 21:27:53.000000000 +0100 @@ -598,7 +598,7 @@ } /* load extensions */ - apps = g_ptr_array_new (); + apps = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); json_extensions = json_object_get_member (json_item, "extensions"); if (json_extensions == NULL) { g_set_error_literal (error, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/src/gs-folders.c new/gnome-software-3.26.5/src/gs-folders.c --- old/gnome-software-3.26.4/src/gs-folders.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/src/gs-folders.c 2018-01-08 21:27:53.000000000 +0100 @@ -169,11 +169,11 @@ { GsFolder *folder; guint i, j; - gchar *path; gboolean translate; GHashTableIter iter; gchar *app; gchar *category; + g_autofree gchar *path = NULL; g_auto(GStrv) ids = NULL; folders->folders = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify)gs_folder_free); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/src/gs-overview-page.c new/gnome-software-3.26.5/src/gs-overview-page.c --- old/gnome-software-3.26.4/src/gs-overview-page.c 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/src/gs-overview-page.c 2018-01-08 21:27:53.000000000 +0100 @@ -368,12 +368,6 @@ if (g_error_matches (error, GS_PLUGIN_ERROR, GS_PLUGIN_ERROR_CANCELLED)) goto out; - if (g_getenv ("GNOME_SOFTWARE_FEATURED") == NULL) { - /* Don't show apps from the category that's currently featured as the category of the day */ - gs_app_list_filter (list, filter_category, priv->category_of_day); - gs_app_list_randomize (list); - } - gtk_widget_hide (priv->featured_heading); gs_container_remove_all (GTK_CONTAINER (priv->bin_featured)); if (list == NULL) { @@ -387,6 +381,12 @@ goto out; } + if (g_getenv ("GNOME_SOFTWARE_FEATURED") == NULL) { + /* Don't show apps from the category that's currently featured as the category of the day */ + gs_app_list_filter (list, filter_category, priv->category_of_day); + gs_app_list_randomize (list); + } + /* at the moment, we only care about the first app */ app = gs_app_list_index (list, 0); tile = gs_feature_tile_new (app); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-software-3.26.4/src/gtk-style.css new/gnome-software-3.26.5/src/gtk-style.css --- old/gnome-software-3.26.4/src/gtk-style.css 2017-12-17 09:58:55.000000000 +0100 +++ new/gnome-software-3.26.5/src/gtk-style.css 2018-01-08 21:27:53.000000000 +0100 @@ -122,11 +122,11 @@ background-color: #dbdbdb; border-color: #bbbbbb; } -.details-license-nonfree:hover { +.details-license-unknown:hover { background-color: #eeeeee; border-color: #d5d5d5; } -.details-license-nonfree:backdrop { +.details-license-unknown:backdrop { border-color: #dbdbdb; }