From 504688b143a507468810faf565cea4979ef01ad3 Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Fri, 19 Mar 2021 21:13:00 +0000 Subject: [PATCH] Merged update from upstream sources This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/gnome-software.git#dbac9fa7a31701e5c4e70faa75ee216c66053da5 --- .gitignore | 1 + ...t-Avoid-600000-allocations-when-comp.patch | 274 ------------------ ...dd-additional-icon-debug-information.patch | 32 ++ ...-Reset-online-updates-timestamp-only.patch | 35 --- ...-handling-of-icons-where-appdata-doe.patch | 48 +++ ...und-invalid-icon-names-from-some-app.patch | 61 ++++ ...provider-Fix-crash-in-variant-handli.patch | 29 ++ gnome-software.spec | 97 ++++--- sources | 2 +- 9 files changed, 225 insertions(+), 354 deletions(-) delete mode 100644 0001-Revert-packagekit-Avoid-600000-allocations-when-comp.patch create mode 100644 0001-gs-app-Add-additional-icon-debug-information.patch delete mode 100644 0001-gs-plugin-loader-Reset-online-updates-timestamp-only.patch create mode 100644 0002-gs-appstream-Fix-handling-of-icons-where-appdata-doe.patch create mode 100644 0003-gs-icon-Work-around-invalid-icon-names-from-some-app.patch create mode 100644 0004-gs-shell-search-provider-Fix-crash-in-variant-handli.patch diff --git a/.gitignore b/.gitignore index 588cce0..6dba849 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,4 @@ /gnome-software-3.38.0.tar.xz /gnome-software-3.38.1.tar.xz /gnome-software-40.beta.tar.xz +/gnome-software-40.rc.tar.xz diff --git a/0001-Revert-packagekit-Avoid-600000-allocations-when-comp.patch b/0001-Revert-packagekit-Avoid-600000-allocations-when-comp.patch deleted file mode 100644 index 0d293bb..0000000 --- a/0001-Revert-packagekit-Avoid-600000-allocations-when-comp.patch +++ /dev/null @@ -1,274 +0,0 @@ -From b3a50ee2d6b93980d1808599ba003e9afc4feae5 Mon Sep 17 00:00:00 2001 -From: Kalev Lember -Date: Mon, 14 Sep 2020 12:07:30 +0200 -Subject: [PATCH] Revert "packagekit: Avoid 600000 allocations when comparing - package IDs" - -This broke packagekit updates. - -https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1061 -https://bodhi.fedoraproject.org/updates/FEDORA-2020-7f57486c95#comment-1621958 - -This reverts commit 955570e4a5d737a9a4f85860fd7e483158e130c4. ---- - .../packagekit/gs-plugin-packagekit-refine.c | 12 +- - .../gs-plugin-packagekit-url-to-app.c | 6 +- - plugins/packagekit/packagekit-common.c | 149 ++++++------------ - plugins/packagekit/packagekit-common.h | 3 +- - 4 files changed, 54 insertions(+), 116 deletions(-) - -diff --git a/plugins/packagekit/gs-plugin-packagekit-refine.c b/plugins/packagekit/gs-plugin-packagekit-refine.c -index 68f7eb64..813390b1 100644 ---- a/plugins/packagekit/gs-plugin-packagekit-refine.c -+++ b/plugins/packagekit/gs-plugin-packagekit-refine.c -@@ -345,7 +345,6 @@ gs_plugin_packagekit_refine_details2 (GsPlugin *plugin, - g_autoptr(GPtrArray) array = NULL; - g_autoptr(GPtrArray) package_ids = NULL; - g_autoptr(PkResults) results = NULL; -- g_autoptr(GHashTable) details_collection = NULL; - - package_ids = g_ptr_array_new_with_free_func (g_free); - for (i = 0; i < gs_app_list_length (list); i++) { -@@ -375,19 +374,12 @@ gs_plugin_packagekit_refine_details2 (GsPlugin *plugin, - return FALSE; - } - -- /* get the results and copy them into a hash table for fast lookups: -- * there are typically 400 to 700 elements in @array, and 100 to 200 -- * elements in @list, each with 1 or 2 source IDs to look up (but -- * sometimes 200) */ -- array = pk_results_get_details_array (results); -- details_collection = gs_plugin_packagekit_details_array_to_hash (array); -- - /* set the update details for the update */ -+ array = pk_results_get_details_array (results); - for (i = 0; i < gs_app_list_length (list); i++) { - app = gs_app_list_index (list, i); -- gs_plugin_packagekit_refine_details_app (plugin, details_collection, app); -+ gs_plugin_packagekit_refine_details_app (plugin, array, app); - } -- - return TRUE; - } - -diff --git a/plugins/packagekit/gs-plugin-packagekit-url-to-app.c b/plugins/packagekit/gs-plugin-packagekit-url-to-app.c -index 04189204..7f566c72 100644 ---- a/plugins/packagekit/gs-plugin-packagekit-url-to-app.c -+++ b/plugins/packagekit/gs-plugin-packagekit-url-to-app.c -@@ -106,15 +106,11 @@ gs_plugin_url_to_app (GsPlugin *plugin, - details = pk_results_get_details_array (results); - - if (packages->len >= 1) { -- g_autoptr(GHashTable) details_collection = NULL; -- - if (gs_app_get_local_file (app) != NULL) - return TRUE; - -- details_collection = gs_plugin_packagekit_details_array_to_hash (details); -- - gs_plugin_packagekit_resolve_packages_app (plugin, packages, app); -- gs_plugin_packagekit_refine_details_app (plugin, details_collection, app); -+ gs_plugin_packagekit_refine_details_app (plugin, details, app); - - gs_app_list_add (list, app); - } else { -diff --git a/plugins/packagekit/packagekit-common.c b/plugins/packagekit/packagekit-common.c -index 495960dd..9367f5bf 100644 ---- a/plugins/packagekit/packagekit-common.c -+++ b/plugins/packagekit/packagekit-common.c -@@ -388,127 +388,78 @@ gs_plugin_packagekit_set_metadata_from_package (GsPlugin *plugin, - pk_package_get_summary (package)); - } - --/* Hash functions which compare PkPackageIds on NAME, VERSION and ARCH, but not DATA. -- * This is because some backends do not append the origin. -+/* -+ * gs_pk_compare_ids: - * -- * Borrowing some implementation details from pk-package-id.c, a package -- * ID is a semicolon-separated list of NAME;[VERSION];[ARCH];[DATA], -- * so a comparison which ignores DATA is just a strncmp() up to and -- * including the final semicolon. -- * -- * Doing it this way means zero allocations, which allows the hash and -- * equality functions to be fast. This is important when dealing with -- * large refine() package lists. -- * -- * The hash and equality functions assume that the IDs they are passed are -- * valid. */ --static guint --package_id_hash (gconstpointer key) --{ -- const gchar *package_id = key; -- gchar *no_data; -- gsize i, last_semicolon = 0; -- -- /* find the last semicolon, which starts the DATA section */ -- for (i = 0; package_id[i] != '\0'; i++) { -- if (package_id[i] == ';') -- last_semicolon = i; -- } -- -- /* exit early if the DATA section was empty */ -- if (last_semicolon + 1 == i) -- return g_str_hash (package_id); -- -- /* extract up to (and including) the last semicolon into a local string */ -- no_data = g_alloca (last_semicolon + 2); -- memcpy (no_data, package_id, last_semicolon + 1); -- no_data[last_semicolon + 1] = '\0'; -- -- return g_str_hash (no_data); --} -- -+ * Do not compare the repo. Some backends do not append the origin. -+ */ - static gboolean --package_id_equal (gconstpointer a, -- gconstpointer b) -+gs_pk_compare_ids (const gchar *package_id1, const gchar *package_id2) - { -- const gchar *package_id_a = a; -- const gchar *package_id_b = b; -- gsize n_semicolons = 0; -- -- /* compare up to and including the last semicolon */ -- for (gsize i = 0; package_id_a[i] != '\0' && package_id_b[i] != '\0'; i++) { -- if (package_id_a[i] != package_id_b[i]) -- return FALSE; -- if (package_id_a[i] == ';') -- n_semicolons++; -- if (n_semicolons == 4) -- return TRUE; -- } -+ gboolean ret; -+ g_auto(GStrv) split1 = NULL; -+ g_auto(GStrv) split2 = NULL; - -- return FALSE; -+ split1 = pk_package_id_split (package_id1); -+ if (split1 == NULL) -+ return FALSE; -+ split2 = pk_package_id_split (package_id2); -+ if (split2 == NULL) -+ return FALSE; -+ ret = (g_strcmp0 (split1[PK_PACKAGE_ID_NAME], -+ split2[PK_PACKAGE_ID_NAME]) == 0 && -+ g_strcmp0 (split1[PK_PACKAGE_ID_VERSION], -+ split2[PK_PACKAGE_ID_VERSION]) == 0 && -+ g_strcmp0 (split1[PK_PACKAGE_ID_ARCH], -+ split2[PK_PACKAGE_ID_ARCH]) == 0); -+ return ret; - } - --GHashTable * --gs_plugin_packagekit_details_array_to_hash (GPtrArray *array) --{ -- g_autoptr(GHashTable) details_collection = NULL; -- -- details_collection = g_hash_table_new_full (package_id_hash, package_id_equal, -- NULL, NULL); -- -- for (gsize i = 0; i < array->len; i++) { -- PkDetails *details = g_ptr_array_index (array, i); -- g_hash_table_insert (details_collection, -- pk_details_get_package_id (details), -- details); -- } -- -- return g_steal_pointer (&details_collection); --} - - void - gs_plugin_packagekit_refine_details_app (GsPlugin *plugin, -- GHashTable *details_collection, -+ GPtrArray *array, - GsApp *app) - { - GPtrArray *source_ids; - PkDetails *details; - const gchar *package_id; -+ guint i; - guint j; - guint64 size = 0; - -- /* @source_ids can have as many as 200 elements (google-noto); typically -- * it has 1 or 2 -- * -- * @details_collection is typically a large list of apps in the -- * repository, on the order of 400 or 700 apps */ - source_ids = gs_app_get_source_ids (app); - for (j = 0; j < source_ids->len; j++) { - package_id = g_ptr_array_index (source_ids, j); -- details = g_hash_table_lookup (details_collection, package_id); -- if (details == NULL) -- continue; -- -- if (gs_app_get_license (app) == NULL) { -- g_autofree gchar *license_spdx = NULL; -- license_spdx = as_utils_license_to_spdx (pk_details_get_license (details)); -- if (license_spdx != NULL) { -- gs_app_set_license (app, -- GS_APP_QUALITY_LOWEST, -- license_spdx); -+ for (i = 0; i < array->len; i++) { -+ /* right package? */ -+ details = g_ptr_array_index (array, i); -+ if (!gs_pk_compare_ids (package_id, -+ pk_details_get_package_id (details))) { -+ continue; - } -+ if (gs_app_get_license (app) == NULL) { -+ g_autofree gchar *license_spdx = NULL; -+ license_spdx = as_utils_license_to_spdx (pk_details_get_license (details)); -+ if (license_spdx != NULL) { -+ gs_app_set_license (app, -+ GS_APP_QUALITY_LOWEST, -+ license_spdx); -+ } -+ } -+ if (gs_app_get_url (app, AS_URL_KIND_HOMEPAGE) == NULL) { -+ gs_app_set_url (app, -+ AS_URL_KIND_HOMEPAGE, -+ pk_details_get_url (details)); -+ } -+ if (gs_app_get_description (app) == NULL) { -+ gs_app_set_description (app, -+ GS_APP_QUALITY_LOWEST, -+ pk_details_get_description (details)); -+ } -+ size += pk_details_get_size (details); -+ break; - } -- if (gs_app_get_url (app, AS_URL_KIND_HOMEPAGE) == NULL) { -- gs_app_set_url (app, -- AS_URL_KIND_HOMEPAGE, -- pk_details_get_url (details)); -- } -- if (gs_app_get_description (app) == NULL) { -- gs_app_set_description (app, -- GS_APP_QUALITY_LOWEST, -- pk_details_get_description (details)); -- } -- size += pk_details_get_size (details); - } - - /* the size is the size of all sources */ -diff --git a/plugins/packagekit/packagekit-common.h b/plugins/packagekit/packagekit-common.h -index 9f523684..0742ea3a 100644 ---- a/plugins/packagekit/packagekit-common.h -+++ b/plugins/packagekit/packagekit-common.h -@@ -30,9 +30,8 @@ void gs_plugin_packagekit_resolve_packages_app (GsPlugin *plugin, - void gs_plugin_packagekit_set_metadata_from_package (GsPlugin *plugin, - GsApp *app, - PkPackage *package); --GHashTable * gs_plugin_packagekit_details_array_to_hash (GPtrArray *array); - void gs_plugin_packagekit_refine_details_app (GsPlugin *plugin, -- GHashTable *details_collection, -+ GPtrArray *array, - GsApp *app); - void gs_plugin_packagekit_set_packaging_format (GsPlugin *plugin, - GsApp *app); --- -2.26.2 - diff --git a/0001-gs-app-Add-additional-icon-debug-information.patch b/0001-gs-app-Add-additional-icon-debug-information.patch new file mode 100644 index 0000000..a881ab0 --- /dev/null +++ b/0001-gs-app-Add-additional-icon-debug-information.patch @@ -0,0 +1,32 @@ +From 81a2e01d407fc903a83b4c1a82749d2591397240 Mon Sep 17 00:00:00 2001 +From: Philip Withnall +Date: Tue, 16 Mar 2021 13:33:40 +0000 +Subject: [PATCH 1/4] gs-app: Add additional icon debug information + +Signed-off-by: Philip Withnall +--- + lib/gs-app.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/lib/gs-app.c b/lib/gs-app.c +index 771743330..cb2549d4c 100644 +--- a/lib/gs-app.c ++++ b/lib/gs-app.c +@@ -1828,11 +1828,12 @@ gs_app_get_icon_for_size (GsApp *app, + * lazily created. */ + for (guint i = 0; priv->icons != NULL && i < priv->icons->len; i++) { + GIcon *icon = priv->icons->pdata[i]; ++ g_autofree gchar *icon_str = g_icon_to_string (icon); + guint icon_width = gs_icon_get_width (icon); + guint icon_scale = gs_icon_get_scale (icon); + +- g_debug ("\tConsidering icon of type %s, width %u×%u", +- G_OBJECT_TYPE_NAME (icon), icon_width, icon_scale); ++ g_debug ("\tConsidering icon of type %s (%s), width %u×%u", ++ G_OBJECT_TYPE_NAME (icon), icon_str, icon_width, icon_scale); + + /* Ignore icons with unknown width and skip over ones which + * are too small. */ +-- +2.30.2 + diff --git a/0001-gs-plugin-loader-Reset-online-updates-timestamp-only.patch b/0001-gs-plugin-loader-Reset-online-updates-timestamp-only.patch deleted file mode 100644 index 94e4b57..0000000 --- a/0001-gs-plugin-loader-Reset-online-updates-timestamp-only.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9a48a04d180f9d3e988efe761cee7bfd9bea79dd Mon Sep 17 00:00:00 2001 -From: Milan Crha -Date: Fri, 5 Mar 2021 13:34:40 +0100 -Subject: [PATCH] gs-plugin-loader: Reset online-updates-timestamp only when - did the update - -The gs_plugin_loader_generic_update() is used in two cases, when updating -the software and when downloading the software. The former case can reset -the online-updates-timestamp, but the later not, because it did not -update anything. - -This blocks the update notifications from showing up after the first -run of the Software. ---- - lib/gs-plugin-loader.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c -index 2dad71f86..358cb8439 100644 ---- a/lib/gs-plugin-loader.c -+++ b/lib/gs-plugin-loader.c -@@ -3124,7 +3124,9 @@ gs_plugin_loader_generic_update (GsPluginLoader *plugin_loader, - gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_FINISHED); - } - -- gs_utils_set_online_updates_timestamp (plugin_loader->settings); -+ if (gs_plugin_job_get_action (helper->plugin_job) == GS_PLUGIN_ACTION_UPDATE) -+ gs_utils_set_online_updates_timestamp (plugin_loader->settings); -+ - return TRUE; - } - --- -2.30.1 - diff --git a/0002-gs-appstream-Fix-handling-of-icons-where-appdata-doe.patch b/0002-gs-appstream-Fix-handling-of-icons-where-appdata-doe.patch new file mode 100644 index 0000000..333baa8 --- /dev/null +++ b/0002-gs-appstream-Fix-handling-of-icons-where-appdata-doe.patch @@ -0,0 +1,48 @@ +From 9a63168893a678f97fe6e3bfde2d6e5debf151c3 Mon Sep 17 00:00:00 2001 +From: Philip Withnall +Date: Tue, 16 Mar 2021 13:34:13 +0000 +Subject: [PATCH 2/4] =?UTF-8?q?gs-appstream:=20Fix=20handling=20of=20icons?= + =?UTF-8?q?=20where=20appdata=20doesn=E2=80=99t=20specify=20width?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +If the `` element in the appdata doesn’t specify a `width` +attribute, `xb_node_get_attr_as_uint()` will return `G_MAXUINT64`. +However, its return value was being assigned to `sz`, which is a +`guint`, and hence it was being truncated. This resulted in icons having +their widths set to `G_MAXUINT`, and hence being prioritised for display +when that was not necessarily correct. + +Fix that by explicitly handling the failure response from +`xb_node_get_attr_as_uint()`. + +Signed-off-by: Philip Withnall + +Fixes: #1171 +--- + plugins/core/gs-appstream.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/plugins/core/gs-appstream.c b/plugins/core/gs-appstream.c +index a9cf97270..22fed1154 100644 +--- a/plugins/core/gs-appstream.c ++++ b/plugins/core/gs-appstream.c +@@ -149,8 +149,12 @@ gs_appstream_new_icon (XbNode *component, XbNode *n, AsIconKind icon_kind, guint + default: + as_icon_set_name (icon, xb_node_get_text (n)); + } +- if (sz == 0) +- sz = xb_node_get_attr_as_uint (n, "width"); ++ if (sz == 0) { ++ guint64 width = xb_node_get_attr_as_uint (n, "width"); ++ if (width > 0 && width < G_MAXUINT) ++ sz = width; ++ } ++ + if (sz > 0) { + as_icon_set_width (icon, sz); + as_icon_set_height (icon, sz); +-- +2.30.2 + diff --git a/0003-gs-icon-Work-around-invalid-icon-names-from-some-app.patch b/0003-gs-icon-Work-around-invalid-icon-names-from-some-app.patch new file mode 100644 index 0000000..bca178b --- /dev/null +++ b/0003-gs-icon-Work-around-invalid-icon-names-from-some-app.patch @@ -0,0 +1,61 @@ +From 3e86354cc5ccffc5ef27fa9e5ce2e99e3e60bc8c Mon Sep 17 00:00:00 2001 +From: Philip Withnall +Date: Tue, 16 Mar 2021 13:36:23 +0000 +Subject: [PATCH 3/4] gs-icon: Work around invalid icon names from some + appstream files +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Cached icons are supposed to provide a name (like `krita.png`), `width` +and `height` attributes, and then gnome-software can build the path to +the cached icon file according to +https://www.freedesktop.org/software/appstream/docs/sect-AppStream-IconCache.html#spec-iconcache-location. + +Due to a bug in appstream-builder in appstream-glib +(https://github.com/hughsie/appstream-glib/pull/390), some appstream +files – for example, rpmfusion-free-33 – had invalid cached icon names, +which resulted in those icons not being loadable, and not appearing for +their applications. + +As it may take a while for the fix in appstream-builder to be merged and +be used to regenerate all the appstream files for different app +repositories, add a workaround in gnome-software. + +Signed-off-by: Philip Withnall + +Helps: #1171 +--- + lib/gs-icon.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/lib/gs-icon.c b/lib/gs-icon.c +index a88e62d34..955ab0217 100644 +--- a/lib/gs-icon.c ++++ b/lib/gs-icon.c +@@ -200,12 +200,22 @@ gs_icon_load_cached (AsIcon *icon) + { + const gchar *filename = as_icon_get_filename (icon); + const gchar *name = as_icon_get_name (icon); ++ g_autofree gchar *name_allocated = NULL; + g_autofree gchar *full_filename = NULL; + g_autoptr(GFile) file = NULL; + + if (filename == NULL || name == NULL) + return NULL; + ++ /* FIXME: Work around https://github.com/hughsie/appstream-glib/pull/390 ++ * where appstream files generated with appstream-builder from ++ * appstream-glib, with its hidpi option enabled, will contain an ++ * unnecessary size subdirectory in the icon name. */ ++ if (g_str_has_prefix (name, "64x64/")) ++ name = name_allocated = g_strdup (name + strlen ("64x64/")); ++ else if (g_str_has_prefix (name, "128x128/")) ++ name = name_allocated = g_strdup (name + strlen ("128x128/")); ++ + if (!g_str_has_suffix (filename, name)) { + /* Spec: https://www.freedesktop.org/software/appstream/docs/sect-AppStream-IconCache.html#spec-iconcache-location */ + if (as_icon_get_scale (icon) <= 1) { +-- +2.30.2 + diff --git a/0004-gs-shell-search-provider-Fix-crash-in-variant-handli.patch b/0004-gs-shell-search-provider-Fix-crash-in-variant-handli.patch new file mode 100644 index 0000000..b83d396 --- /dev/null +++ b/0004-gs-shell-search-provider-Fix-crash-in-variant-handli.patch @@ -0,0 +1,29 @@ +From 80834ed7d336f103cfc7199fa96c6f2a860be438 Mon Sep 17 00:00:00 2001 +From: Philip Withnall +Date: Thu, 18 Mar 2021 13:11:36 +0000 +Subject: [PATCH 4/4] gs-shell-search-provider: Fix crash in variant handling + for icons + +Signed-off-by: Philip Withnall + +Fixes: #1179 +--- + src/gs-shell-search-provider.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gs-shell-search-provider.c b/src/gs-shell-search-provider.c +index 8bafc9a8c..27bbb45f7 100644 +--- a/src/gs-shell-search-provider.c ++++ b/src/gs-shell-search-provider.c +@@ -254,7 +254,7 @@ handle_get_result_metas (GsShellSearchProvider2 *skeleton, + if (icon != NULL) { + g_autofree gchar *icon_str = g_icon_to_string (icon); + if (icon_str != NULL) { +- g_variant_builder_add (&meta, "{sv}", "gicon", icon_str); ++ g_variant_builder_add (&meta, "{sv}", "gicon", g_variant_new_string (icon_str)); + } else { + g_autoptr(GVariant) icon_serialized = g_icon_serialize (icon); + g_variant_builder_add (&meta, "{sv}", "icon", icon_serialized); +-- +2.30.2 + diff --git a/gnome-software.spec b/gnome-software.spec index 8c1496f..3c13a51 100644 --- a/gnome-software.spec +++ b/gnome-software.spec @@ -11,17 +11,24 @@ %global tarball_version %%(echo %{version} | tr '~' '.') Name: gnome-software -Version: 40~beta +Version: 40~rc Release: 2%{?dist} Summary: A software center for GNOME License: GPLv2+ URL: https://wiki.gnome.org/Apps/Software Source0: https://download.gnome.org/sources/gnome-software/40/%{name}-%{tarball_version}.tar.xz -# Fix update notifications: -# https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/643 -# https://bugzilla.redhat.com/show_bug.cgi?id=1930401 -Patch0: 0001-gs-plugin-loader-Reset-online-updates-timestamp-only.patch + +# Fix display of icons for packages and snaps +# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1171 +# https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/653 +Patch0001: 0001-gs-app-Add-additional-icon-debug-information.patch +Patch0002: 0002-gs-appstream-Fix-handling-of-icons-where-appdata-doe.patch +Patch0003: 0003-gs-icon-Work-around-invalid-icon-names-from-some-app.patch +# Fix crash that sometimes breaks search provider or stops window appearing +# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1179 +# https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/658 +Patch0004: 0004-gs-shell-search-provider-Fix-crash-in-variant-handli.patch BuildRequires: appstream-devel >= %{appstream_version} BuildRequires: gcc @@ -75,7 +82,7 @@ Obsoletes: gnome-software-snap < 3.33.1 Obsoletes: gnome-software-editor < 3.35.1 # this is not a library version -%define gs_plugin_version 14 +%define gs_plugin_version 16 %description gnome-software is an application that makes it easy to add, remove @@ -119,10 +126,7 @@ This package includes the rpm-ostree backend. %meson_install # remove unneeded dpkg plugin -rm %{buildroot}%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_dpkg.so - -# remove unneeded static library -rm %{buildroot}%{_libdir}/libgnomesoftware.a +rm %{buildroot}%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dpkg.so # make the software center load faster desktop-file-edit %{buildroot}%{_datadir}/applications/org.gnome.Software.desktop \ @@ -150,44 +154,43 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_mandir}/man1/gnome-software.1.gz %{_datadir}/icons/hicolor/*/apps/org.gnome.Software.svg %{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Software-symbolic.svg +%{_datadir}/icons/hicolor/scalable/actions/carousel-arrow-next-symbolic.svg +%{_datadir}/icons/hicolor/scalable/actions/carousel-arrow-previous-symbolic.svg %{_datadir}/icons/hicolor/scalable/status/software-installed-symbolic.svg -%{_datadir}/gnome-software/featured-*.svg -%{_datadir}/gnome-software/featured-*.jpg %{_datadir}/metainfo/org.gnome.Software.appdata.xml %{_datadir}/metainfo/org.gnome.Software.Plugin.Flatpak.metainfo.xml %{_datadir}/metainfo/org.gnome.Software.Plugin.Fwupd.metainfo.xml %{_datadir}/metainfo/org.gnome.Software.Plugin.Odrs.metainfo.xml -%dir %{_libdir}/gs-plugins-%{gs_plugin_version} -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_appstream.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_dummy.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fedora-langpacks.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fedora-pkgdb-collections.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_flatpak.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_fwupd.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_generic-updates.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-blocklist.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-popular.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_icons.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_key-colors-metadata.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_key-colors.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_modalias.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_odrs.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_os-release.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-history.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-local.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-offline.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-proxy.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine-repos.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refresh.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-upgrade.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit-url-to-app.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_packagekit.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_provenance-license.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_provenance.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_repos.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_rewrite-resource.so -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_systemd-updates.so +%dir %{_libdir}/gnome-software/plugins-%{gs_plugin_version} +%{_libdir}/gnome-software/libgnomesoftware.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_appstream.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_dummy.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fedora-langpacks.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fedora-pkgdb-collections.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_flatpak.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_fwupd.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_generic-updates.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-blocklist.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_hardcoded-popular.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_icons.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_modalias.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_odrs.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_os-release.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-history.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-local.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-offline.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-proxy.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine-repos.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refine.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-refresh.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-upgrade.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit-url-to-app.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_packagekit.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_provenance-license.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_provenance.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_repos.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_rewrite-resource.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_systemd-updates.so %{_sysconfdir}/xdg/autostart/gnome-software-service.desktop %{_datadir}/app-info/xmls/org.gnome.Software.Featured.xml %{_datadir}/dbus-1/services/org.freedesktop.PackageKit.service @@ -199,7 +202,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_libexecdir}/gnome-software-restarter %files rpm-ostree -%{_libdir}/gs-plugins-%{gs_plugin_version}/libgs_plugin_rpm-ostree.so +%{_libdir}/gnome-software/plugins-%{gs_plugin_version}/libgs_plugin_rpm-ostree.so %files devel %{_libdir}/pkgconfig/gnome-software.pc @@ -208,6 +211,12 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_datadir}/gtk-doc/html/gnome-software %changelog +* Thu Mar 18 2021 Adam Williamson - 40~rc-2 +- Backport a couple of bug fixes from upstream (icon display, crash bug) + +* Mon Mar 15 2021 Kalev Lember - 40~rc-1 +- Update to 40.rc + * Wed Mar 10 2021 Adam Williamson - 40~beta-2 - Backport MR #643 to fix update notifications on first run (#1930401) diff --git a/sources b/sources index 7728ce9..f95cf36 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gnome-software-40.beta.tar.xz) = 39edf94a3091b8c6e00925cf4e5fab929fbd5166ab35caf247415753bbae8c6ea0df51a80fa2fa7ba35ca64d5b7ce44359b9a451c7f6f3424e1716ed8b493dd4 +SHA512 (gnome-software-40.rc.tar.xz) = caea26e84641f5db9dbacdec32e9f2039433e60fbb4548f48a33958eb1bd61415ab35e515100b29cb98a655bcf40ee8e2ea3cee4dd80d3777c2a81cf33848f8a