diff mbox series

[meta-gnome] gnome-software: update 45.3 -> 46.0

Message ID 20240318013534.2058559-1-f_l_k@t-online.de
State Accepted
Headers show
Series [meta-gnome] gnome-software: update 45.3 -> 46.0 | expand

Commit Message

Markus Volk March 18, 2024, 1:35 a.m. UTC
- drop backport patches

Version 46.0
~~~~~~~~~~~~
Released: 2024-03-15

This is a stable release with the following changes:
 * Improvements for screen readers
 * Stop ‘loading updates’ in a loop on Debian

This release also updates translations:
 * Czech (Daniel Rusek)
 * Danish (Alan Mortensen)
 * Finnish (Jiri Grönroos)
 * French (Vincent Chatelain)
 * Galician (Fran Dieguez)
 * Georgian (Ekaterine Papava)
 * Hungarian (Balázs Úr)
 * Indonesian (Kukuh Syafaat)
 * Korean (Seong-ho Cho)
 * Latvian (Rūdolfs Mazurs)
 * Persian (Danial Behzadi)
 * Polish (Piotr Drąg)
 * Portuguese (Brazil) (Juliano de Souza Camargo)
 * Russian (Artur S0)
 * Swedish (Anders Jonsson)
 * Thai (Aefgh Threenine)
 * Turkish (Emin Tufan Çetin)

Version 46~rc
~~~~~~~~~~~~~
Released: 2024-03-01

This is an unstable release with the following changes:
 * Various UI text improvements
 * Fix launch of some apps
 * Fix invalid app state after it's uninstalled
 * Fix read of app description text
 * Do not ask to reboot after failed firmware update

This release also updates translations:
 * Basque (Asier Sarasua Garmendia)
 * Belarusian (Vasil Pupkin)
 * Bokmål, Norwegian (Brage Fuglseth)
 * Catalan (Jordi Mas, Quique Serrano)
 * Chinese (China) (Boyuan Yang)
 * Czech (Daniel Rusek)
 * Dutch (Nathan Follens)
 * English (United Kingdom) (Andi Chandler)
 * Galician (Fran Dieguez)
 * Georgian (Ekaterine Papava)
 * German (Jürgen Benvenuti, Philipp Kiemle)
 * Hebrew (Yaron Shahrabani)
 * Indonesian (Kukuh Syafaat)
 * Kazakh (Baurzhan Muftakhidinov)
 * Latvian (Rūdolfs Mazurs)
 * Lithuanian (Aurimas Černius)
 * Occitan (post 1500) (Quentin PAGÈS)
 * Persian (Danial Behzadi)
 * Russian (Artur S0)
 * Slovenian (Matej Urbančič)
 * Spanish (Daniel Mustieles)
 * Thai (Aefgh Threenine)
 * Turkish (Sabri Ünal)
 * Ukrainian (Yuri Chornoivan)

Version 46~beta
~~~~~~~~~~~~~~~
Released: 2024-02-09

This is an unstable release with the following changes:
 * Show feedback for all conditions that pause automatic updates
 * Various UI improvements and move to new libadwaita widgets
 * Fix loading OS AppStream catalog data if it is available as YAML
 * Add openSUSE Leap distro upgrade plugin

This release also updates translations:
 * Basque (Asier Sarasua Garmendia)
 * Belarusian (Vasil Pupkin)
 * Czech (Daniel Rusek)
 * Galician (Fran Dieguez)
 * Hebrew (Yosef Or Boczko)
 * Persian (Danial Behzadi)
 * Portuguese (Brazil) (Juliano de Souza Camargo)
 * Russian (Artur S0)
 * Turkish (Sabri Ünal)

Version 46~alpha
~~~~~~~~~~~~~~~~
Released: 2024-01-05

This is an unstable release with the following changes:
 * Recognize links in package update descriptions
 * Expose package names discreetly in the UI
 * Increase speed of load of the category pages
 * Improve search match with multiple words
 * Recognize verified apps by Flathub
 * Correct message when installing firmware updates
 * Improve application safety checks
 * Improve update preferences dialog
 * Fix deadlock when cancelling app update
 * Support user installation of local flatpak files
 * Fix apps appearing unsorted and without tiles in category page

This release also updates translations:
 * Basque (Asier Sarasua Garmendia)
 * Chinese (China) (Boyuan Yang)
 * Chinese (Taiwan) (Andre Klapper)
 * Czech (Daniel Rusek)
 * Friulian (Fabio Tomat)
 * Georgian (Ekaterine Papava)
 * German (Jürgen Benvenuti)
 * Hebrew (Yosef Or Boczko)
 * Persian (Danial Behzadi)
 * Romanian (Florentina Mușat)
 * Russian (Artur S0)
 * Turkish (Emin Tufan Çetin, Sabri Ünal)
 * Ukrainian (Yuri Chornoivan)
 * Vietnamese (Ngọc Quân Trần)
---
 ...f358ed0e8455e12d9634f60bc4dbaee434e3.patch | 504 ------------------
 ...ab003f3fabf616b6eb7dc93f8967bc9473e5.patch |  31 --
 ...oftware_45.3.bb => gnome-software_46.0.bb} |   6 +-
 3 files changed, 1 insertion(+), 540 deletions(-)
 delete mode 100644 meta-gnome/recipes-gnome/gnome-software/gnome-software/0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch
 delete mode 100644 meta-gnome/recipes-gnome/gnome-software/gnome-software/e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch
 rename meta-gnome/recipes-gnome/gnome-software/{gnome-software_45.3.bb => gnome-software_46.0.bb} (85%)
diff mbox series

Patch

diff --git a/meta-gnome/recipes-gnome/gnome-software/gnome-software/0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch b/meta-gnome/recipes-gnome/gnome-software/gnome-software/0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch
deleted file mode 100644
index 5e051be15..000000000
--- a/meta-gnome/recipes-gnome/gnome-software/gnome-software/0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch
+++ /dev/null
@@ -1,504 +0,0 @@ 
-From 0655f358ed0e8455e12d9634f60bc4dbaee434e3 Mon Sep 17 00:00:00 2001
-From: Matthias Klumpp <matthias@tenstral.net>
-Date: Sun, 8 Oct 2023 20:22:44 +0200
-Subject: [PATCH] Adjust to build with AppStream 1.0 as well as 0.16.x
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-software/-/commit/0655f358ed0e8455e12d9634f60bc4dbaee434e3]
----
- lib/gs-app.c                             |  4 ++
- lib/gs-appstream.c                       | 61 +++++++++++++++++++-----
- lib/gs-utils.c                           |  8 ++--
- meson.build                              | 22 +--------
- plugins/core/gs-plugin-appstream.c       |  8 ----
- plugins/fwupd/gs-fwupd-app.c             |  8 ++++
- plugins/fwupd/gs-plugin-fwupd.c          |  4 ++
- src/gs-hardware-support-context-dialog.c |  6 +++
- src/gs-repos-dialog.c                    |  4 ++
- src/gs-screenshot-carousel.c             |  4 +-
- src/gs-screenshot-image.c                | 41 ++++++++++++----
- src/gs-screenshot-image.h                |  7 +++
- subprojects/appstream.wrap               |  2 +-
- 13 files changed, 122 insertions(+), 57 deletions(-)
-
-diff --git a/lib/gs-app.c b/lib/gs-app.c
-index 2308de504d..ea348f8c01 100644
---- a/lib/gs-app.c
-+++ b/lib/gs-app.c
-@@ -609,7 +609,11 @@ gs_app_to_string_append (GsApp *app, GString *str)
- 		AsScreenshot *ss = g_ptr_array_index (priv->screenshots, i);
- 		g_autofree gchar *key = NULL;
- 		tmp = as_screenshot_get_caption (ss);
-+#if AS_CHECK_VERSION(1, 0, 0)
-+		im = as_screenshot_get_image (ss, 0, 0, 1);
-+#else
- 		im = as_screenshot_get_image (ss, 0, 0);
-+#endif
- 		if (im == NULL)
- 			continue;
- 		key = g_strdup_printf ("screenshot-%02u", i);
-diff --git a/lib/gs-appstream.c b/lib/gs-appstream.c
-index deca176dcf..6504d6f25e 100644
---- a/lib/gs-appstream.c
-+++ b/lib/gs-appstream.c
-@@ -1011,8 +1011,11 @@ gs_appstream_refine_app_relation (GsApp           *app,
- 			as_relation_set_item_kind (relation, AS_RELATION_ITEM_KIND_CONTROL);
- 			as_relation_set_value_control_kind (relation, as_control_kind_from_string (xb_node_get_text (child)));
- 		} else if (g_str_equal (item_kind, "display_length")) {
--			AsDisplayLengthKind display_length_kind;
- 			const gchar *compare;
-+			const gchar *side;
-+#if !AS_CHECK_VERSION(1, 0, 0)
-+			AsDisplayLengthKind display_length_kind;
-+#endif
- 
- 			/* https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-relations-display_length */
- 			as_relation_set_item_kind (relation, AS_RELATION_ITEM_KIND_DISPLAY_LENGTH);
-@@ -1020,15 +1023,21 @@ gs_appstream_refine_app_relation (GsApp           *app,
- 			compare = xb_node_get_attr (child, "compare");
- 			as_relation_set_compare (relation, (compare != NULL) ? as_relation_compare_from_string (compare) : AS_RELATION_COMPARE_GE);
- 
-+#if AS_CHECK_VERSION(1, 0, 0)
-+			side = xb_node_get_attr (child, "side");
-+			as_relation_set_display_side_kind (relation, (side != NULL) ? as_display_side_kind_from_string (side) : AS_DISPLAY_SIDE_KIND_SHORTEST);
-+			as_relation_set_value_px (relation, xb_node_get_text_as_uint (child));
-+#else
- 			display_length_kind = as_display_length_kind_from_string (xb_node_get_text (child));
- 			if (display_length_kind != AS_DISPLAY_LENGTH_KIND_UNKNOWN) {
- 				/* Ignore the `side` attribute */
- 				as_relation_set_value_display_length_kind (relation, display_length_kind);
- 			} else {
--				const gchar *side = xb_node_get_attr (child, "side");
-+				side = xb_node_get_attr (child, "side");
- 				as_relation_set_display_side_kind (relation, (side != NULL) ? as_display_side_kind_from_string (side) : AS_DISPLAY_SIDE_KIND_SHORTEST);
- 				as_relation_set_value_px (relation, xb_node_get_text_as_uint (child));
- 			}
-+#endif
- 		} else {
- 			g_debug ("Relation type ‘%s’ not currently supported for %s; ignoring",
- 				 item_kind, gs_app_get_id (app));
-@@ -1472,7 +1481,7 @@ gs_appstream_refine_app (GsPlugin *plugin,
- }
- 
- typedef struct {
--	AsSearchTokenMatch	 match_value;
-+	guint16			 match_value;
- 	XbQuery			*query;
- } GsAppstreamSearchHelper;
- 
-@@ -1522,7 +1531,7 @@ gs_appstream_silo_search_component (GPtrArray *array, XbNode *component, const g
- }
- 
- typedef struct {
--	AsSearchTokenMatch	match_value;
-+	guint16			match_value;
- 	const gchar		*xpath;
- } Query;
- 
-@@ -1539,6 +1548,11 @@ gs_appstream_do_search (GsPlugin *plugin,
- 	g_autoptr(GPtrArray) array = g_ptr_array_new_with_free_func ((GDestroyNotify) gs_appstream_search_helper_free);
- 	g_autoptr(GPtrArray) components = NULL;
- 	g_autoptr(GTimer) timer = g_timer_new ();
-+#if AS_CHECK_VERSION(1, 0, 0)
-+	const guint16 component_id_weight = as_utils_get_tag_search_weight ("id");
-+#else
-+	const guint16 component_id_weight = AS_SEARCH_TOKEN_MATCH_ID;
-+#endif
- 
- 	g_return_val_if_fail (GS_IS_PLUGIN (plugin), FALSE);
- 	g_return_val_if_fail (XB_IS_SILO (silo), FALSE);
-@@ -1585,7 +1599,7 @@ gs_appstream_do_search (GsPlugin *plugin,
- 			 * Drop the ID token from it as it’s the highest
- 			 * numeric value but isn’t visible to the user in the
- 			 * UI, which leads to confusing results ordering. */
--			gs_app_set_match_value (app, match_value & (~AS_SEARCH_TOKEN_MATCH_ID));
-+			gs_app_set_match_value (app, match_value & (~component_id_weight));
- 			gs_app_list_add (list, app);
- 
- 			if (gs_app_get_kind (app) == AS_COMPONENT_KIND_ADDON) {
-@@ -1624,18 +1638,32 @@ gs_appstream_search (GsPlugin *plugin,
- 		     GCancellable *cancellable,
- 		     GError **error)
- {
-+#if AS_CHECK_VERSION(1, 0, 0)
-+	guint16 pkgname_weight = as_utils_get_tag_search_weight ("pkgname");
-+	guint16 name_weight = as_utils_get_tag_search_weight ("name");
-+	guint16 id_weight = as_utils_get_tag_search_weight ("id");
- 	const Query queries[] = {
--		#ifdef HAVE_AS_SEARCH_TOKEN_MATCH_MEDIATYPE
--		{ AS_SEARCH_TOKEN_MATCH_MEDIATYPE,	"mimetypes/mimetype[text()~=stem(?)]" },
--		#else
--		{ AS_SEARCH_TOKEN_MATCH_MIMETYPE,	"mimetypes/mimetype[text()~=stem(?)]" },
--		#endif
-+		{ as_utils_get_tag_search_weight ("mediatype"),	"provides/mediatype[text()~=stem(?)]" },
- 		/* Search once with a tokenize-and-casefold operator (`~=`) to support casefolded
- 		 * full-text search, then again using substring matching (`contains()`), to
- 		 * support prefix matching. Only do the prefix matches on a few fields, and at a
- 		 * lower priority, otherwise things will get confusing.
--		 * 
-+		 *
- 		 * See https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2277 */
-+		{ pkgname_weight,				"pkgname[text()~=stem(?)]" },
-+		{ pkgname_weight / 2,				"pkgname[contains(text(),stem(?))]" },
-+		{ as_utils_get_tag_search_weight ("summary"),	"summary[text()~=stem(?)]" },
-+		{ name_weight,					"name[text()~=stem(?)]" },
-+		{ name_weight / 2,				"name[contains(text(),stem(?))]" },
-+		{ as_utils_get_tag_search_weight ("keyword"),	"keywords/keyword[text()~=stem(?)]" },
-+		{ id_weight,					"id[text()~=stem(?)]" },
-+		{ id_weight,					"launchable[text()~=stem(?)]" },
-+		{ as_utils_get_tag_search_weight ("origin"),	"../components[@origin~=stem(?)]" },
-+		{ 0,						NULL }
-+	};
-+#else
-+	const Query queries[] = {
-+		{ AS_SEARCH_TOKEN_MATCH_MEDIATYPE,	"mimetypes/mimetype[text()~=stem(?)]" },
- 		{ AS_SEARCH_TOKEN_MATCH_PKGNAME,	"pkgname[text()~=stem(?)]" },
- 		{ AS_SEARCH_TOKEN_MATCH_PKGNAME / 2,	"pkgname[contains(text(),stem(?))]" },
- 		{ AS_SEARCH_TOKEN_MATCH_SUMMARY,	"summary[text()~=stem(?)]" },
-@@ -1647,6 +1675,7 @@ gs_appstream_search (GsPlugin *plugin,
- 		{ AS_SEARCH_TOKEN_MATCH_ORIGIN,		"../components[@origin~=stem(?)]" },
- 		{ AS_SEARCH_TOKEN_MATCH_NONE,		NULL }
- 	};
-+#endif
- 
- 	return gs_appstream_do_search (plugin, silo, values, queries, list, cancellable, error);
- }
-@@ -1659,11 +1688,21 @@ gs_appstream_search_developer_apps (GsPlugin *plugin,
- 				    GCancellable *cancellable,
- 				    GError **error)
- {
-+#if AS_CHECK_VERSION(1, 0, 0)
-+	const Query queries[] = {
-+		{ as_utils_get_tag_search_weight ("pkgname"), "developer/name[text()~=stem(?)]" },
-+		{ as_utils_get_tag_search_weight ("summary"), "project_group[text()~=stem(?)]" },
-+		/* for legacy support */
-+		{ as_utils_get_tag_search_weight ("pkgname"), "developer_name[text()~=stem(?)]" },
-+		{ 0,					      NULL }
-+	};
-+#else
- 	const Query queries[] = {
- 		{ AS_SEARCH_TOKEN_MATCH_PKGNAME,	"developer_name[text()~=stem(?)]" },
- 		{ AS_SEARCH_TOKEN_MATCH_SUMMARY,	"project_group[text()~=stem(?)]" },
- 		{ AS_SEARCH_TOKEN_MATCH_NONE,		NULL }
- 	};
-+#endif
- 
- 	return gs_appstream_do_search (plugin, silo, values, queries, list, cancellable, error);
- }
-diff --git a/lib/gs-utils.c b/lib/gs-utils.c
-index cf9073025f..19e6ebd046 100644
---- a/lib/gs-utils.c
-+++ b/lib/gs-utils.c
-@@ -1694,9 +1694,9 @@ gs_utils_gstring_replace (GString *str,
- 			  const gchar *find,
- 			  const gchar *replace)
- {
--	#ifdef HAVE_AS_GSTRING_REPLACE_WITH_FOUR_ARGS
-+#if AS_CHECK_VERSION(1, 0, 0)
- 	as_gstring_replace (str, find, replace, 0);
--	#else
--	as_gstring_replace (str, find, replace);
--	#endif
-+#else
-+	as_gstring_replace2 (str, find, replace, 0);
-+#endif
- }
-diff --git a/meson.build b/meson.build
-index bc19669dd5..8c82464cdb 100644
---- a/meson.build
-+++ b/meson.build
-@@ -113,7 +113,7 @@ add_project_arguments('-D_GNU_SOURCE', language : 'c')
- conf.set('HAVE_LINUX_UNISTD_H', cc.has_header('linux/unistd.h'))
- 
- appstream = dependency('appstream',
--  version : '>= 0.14.0',
-+  version : '>= 0.16.4',
-   fallback : ['appstream', 'appstream_dep'],
-   default_options : [
-     'docs=false',
-@@ -121,26 +121,6 @@ appstream = dependency('appstream',
-     'install-docs=false'
-   ]
- )
--if appstream.type_name() == 'internal'
--else
--  if meson.get_compiler('c').has_header_symbol('appstream.h', 'AS_SEARCH_TOKEN_MATCH_MEDIATYPE', dependencies: appstream)
--    conf.set('HAVE_AS_SEARCH_TOKEN_MATCH_MEDIATYPE', '1')
--  endif
--  if meson.get_compiler('c').has_header_symbol('appstream.h', 'AS_FORMAT_STYLE_CATALOG', dependencies: appstream)
--    conf.set('HAVE_AS_FORMAT_STYLE_CATALOG', '1')
--  endif
--  if meson.get_compiler('c').has_function('as_metadata_components_to_catalog', prefix: '#include <appstream.h>', dependencies: appstream)
--    conf.set('HAVE_AS_METADATA_COMPONENTS_TO_CATALOG', '1')
--  endif
--  if meson.get_compiler('c').links('''#include <appstream.h>
--      int main (void)
--      {
--         as_gstring_replace (NULL, "a", "b", 0);
--         return 0;
--      }''', name: 'as_gstring_replace() has four arguments', dependencies: appstream)
--    conf.set('HAVE_AS_GSTRING_REPLACE_WITH_FOUR_ARGS', '1')
--  endif
--endif
- 
- gdk_pixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.32.0')
- libxmlb = dependency('xmlb', version : '>= 0.1.7', fallback : ['libxmlb', 'libxmlb_dep'])
-diff --git a/plugins/core/gs-plugin-appstream.c b/plugins/core/gs-plugin-appstream.c
-index cf9f3022b1..ef3226a591 100644
---- a/plugins/core/gs-plugin-appstream.c
-+++ b/plugins/core/gs-plugin-appstream.c
-@@ -414,11 +414,7 @@ gs_plugin_appstream_load_dep11_cb (XbBuilderSource *self,
- 	if (bytes == NULL)
- 		return NULL;
- 
--	#ifdef HAVE_AS_FORMAT_STYLE_CATALOG
- 	as_metadata_set_format_style (mdata, AS_FORMAT_STYLE_CATALOG);
--	#else
--	as_metadata_set_format_style (mdata, AS_FORMAT_STYLE_COLLECTION);
--	#endif
- 	as_metadata_parse_bytes (mdata,
- 				 bytes,
- 				 AS_FORMAT_KIND_YAML,
-@@ -428,11 +424,7 @@ gs_plugin_appstream_load_dep11_cb (XbBuilderSource *self,
- 		return NULL;
- 	}
- 
--	#ifdef HAVE_AS_METADATA_COMPONENTS_TO_CATALOG
- 	xml = as_metadata_components_to_catalog (mdata, AS_FORMAT_KIND_XML, &tmp_error);
--	#else
--	xml = as_metadata_components_to_collection (mdata, AS_FORMAT_KIND_XML, &tmp_error);
--	#endif
- 	if (xml == NULL) {
- 		// This API currently returns NULL if there is nothing to serialize, so we
- 		// have to test if this is an error or not.
-diff --git a/plugins/fwupd/gs-fwupd-app.c b/plugins/fwupd/gs-fwupd-app.c
-index 6dcda6ee92..5d3254da59 100644
---- a/plugins/fwupd/gs-fwupd-app.c
-+++ b/plugins/fwupd/gs-fwupd-app.c
-@@ -164,7 +164,11 @@ gs_fwupd_app_set_from_device (GsApp *app,
- 		gs_app_set_install_date (app, fwupd_device_get_created (dev));
- 	if (fwupd_device_get_description (dev) != NULL) {
- 		g_autofree gchar *tmp = NULL;
-+#if AS_CHECK_VERSION(1, 0, 0)
-+		tmp = as_markup_convert (fwupd_device_get_description (dev), AS_MARKUP_KIND_TEXT, NULL);
-+#else
- 		tmp = as_markup_convert_simple (fwupd_device_get_description (dev), NULL);
-+#endif
- 		if (tmp != NULL)
- 			gs_app_set_description (app, GS_APP_QUALITY_NORMAL, tmp);
- 	}
-@@ -402,7 +406,11 @@ gs_fwupd_app_set_from_release (GsApp *app, FwupdRelease *rel)
- 	}
- 	if (fwupd_release_get_description (rel) != NULL) {
- 		g_autofree gchar *tmp = NULL;
-+#if AS_CHECK_VERSION(1, 0, 0)
-+		tmp = as_markup_convert (fwupd_release_get_description (rel), AS_MARKUP_KIND_TEXT, NULL);
-+#else
- 		tmp = as_markup_convert_simple (fwupd_release_get_description (rel), NULL);
-+#endif
- 		if (tmp != NULL)
- 			gs_app_set_update_details_text (app, tmp);
- 	}
-diff --git a/plugins/fwupd/gs-plugin-fwupd.c b/plugins/fwupd/gs-plugin-fwupd.c
-index d8c0cd2dd4..a9b05028a0 100644
---- a/plugins/fwupd/gs-plugin-fwupd.c
-+++ b/plugins/fwupd/gs-plugin-fwupd.c
-@@ -727,7 +727,11 @@ gs_plugin_add_updates (GsPlugin *plugin,
- 				g_autofree gchar *desc = NULL;
- 				if (fwupd_release_get_description (rel) == NULL)
- 					continue;
-+#if AS_CHECK_VERSION(1, 0, 0)
-+				desc = as_markup_convert (fwupd_release_get_description (rel), AS_MARKUP_KIND_TEXT, NULL);
-+#else
- 				desc = as_markup_convert_simple (fwupd_release_get_description (rel), NULL);
-+#endif
- 				if (desc == NULL)
- 					continue;
- 				g_string_append_printf (update_desc,
-diff --git a/src/gs-hardware-support-context-dialog.c b/src/gs-hardware-support-context-dialog.c
-index 0e48c8c266..14653401de 100644
---- a/src/gs-hardware-support-context-dialog.c
-+++ b/src/gs-hardware-support-context-dialog.c
-@@ -461,6 +461,7 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor     *monitor,
- 			AsRelationCompare comparator = as_relation_get_compare (relation);
- 			Range current_display_comparand, relation_comparand;
- 
-+#if !AS_CHECK_VERSION(1, 0, 0)
- 			/* From https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-requires-recommends-display_length */
- 			Range display_lengths[] = {
- 				[AS_DISPLAY_LENGTH_KIND_XSMALL] = { 0, 360 },
-@@ -469,6 +470,7 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor     *monitor,
- 				[AS_DISPLAY_LENGTH_KIND_LARGE] = { 1024, 3840 },
- 				[AS_DISPLAY_LENGTH_KIND_XLARGE] = { 3840, G_MAXUINT },
- 			};
-+#endif
- 
- 			any_display_relations_set = TRUE;
- 
-@@ -485,11 +487,14 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor     *monitor,
- 			case AS_DISPLAY_SIDE_KIND_LAST:
- 			default:
- 				current_display_comparand.min = current_display_comparand.max = MAX (current_screen_size.width, current_screen_size.height);
-+#if !AS_CHECK_VERSION(1, 0, 0)
- 				relation_comparand.min = display_lengths[as_relation_get_value_display_length_kind (relation)].min;
- 				relation_comparand.max = display_lengths[as_relation_get_value_display_length_kind (relation)].max;
-+#endif
- 				break;
- 			}
- 
-+#if !AS_CHECK_VERSION(1, 0, 0)
- 			if (evaluate_display_comparison (display_lengths[AS_DISPLAY_LENGTH_KIND_SMALL], comparator, relation_comparand)) {
- 				*mobile_relation_kind_out = max_relation_kind (*mobile_relation_kind_out, as_relation_get_kind (relation));
- 				*mobile_match_out = TRUE;
-@@ -499,6 +504,7 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor     *monitor,
- 				*desktop_relation_kind_out = max_relation_kind (*desktop_relation_kind_out, as_relation_get_kind (relation));
- 				*desktop_match_out = TRUE;
- 			}
-+#endif
- 
- 			if (evaluate_display_comparison (current_display_comparand, comparator, relation_comparand)) {
- 				*current_relation_kind_out = max_relation_kind (*current_relation_kind_out, as_relation_get_kind (relation));
-diff --git a/src/gs-repos-dialog.c b/src/gs-repos-dialog.c
-index c41c4944a1..7dac0416d9 100644
---- a/src/gs-repos-dialog.c
-+++ b/src/gs-repos-dialog.c
-@@ -154,7 +154,11 @@ enable_repo (GsReposDialog *dialog,
- 		g_autoptr(GError) error = NULL;
- 
- 		/* convert from AppStream markup */
-+#if AS_CHECK_VERSION(1, 0, 0)
-+		message = as_markup_convert (gs_app_get_agreement (repo), AS_MARKUP_KIND_TEXT, &error);
-+#else
- 		message = as_markup_convert_simple (gs_app_get_agreement (repo), &error);
-+#endif
- 		if (message == NULL) {
- 			/* failed, so just try and show the original markup */
- 			message = g_strdup (gs_app_get_agreement (repo));
-diff --git a/src/gs-screenshot-carousel.c b/src/gs-screenshot-carousel.c
-index 04bbf86a1e..d269af6605 100644
---- a/src/gs-screenshot-carousel.c
-+++ b/src/gs-screenshot-carousel.c
-@@ -141,8 +141,8 @@ gs_screenshot_carousel_load_screenshots (GsScreenshotCarousel *self, GsApp *app,
- 		gtk_widget_set_can_focus (gtk_widget_get_first_child (ssimg), FALSE);
- 		gs_screenshot_image_set_screenshot (GS_SCREENSHOT_IMAGE (ssimg), ss);
- 		gs_screenshot_image_set_size (GS_SCREENSHOT_IMAGE (ssimg),
--					      AS_IMAGE_NORMAL_WIDTH,
--					      AS_IMAGE_NORMAL_HEIGHT);
-+					      GS_IMAGE_NORMAL_WIDTH,
-+					      GS_IMAGE_NORMAL_HEIGHT);
- 		gtk_widget_add_css_class (ssimg, "screenshot-image-main");
- 		gs_screenshot_image_load_async (GS_SCREENSHOT_IMAGE (ssimg), cancellable);
- 
-diff --git a/src/gs-screenshot-image.c b/src/gs-screenshot-image.c
-index 93dba68f96..6b4db03d06 100644
---- a/src/gs-screenshot-image.c
-+++ b/src/gs-screenshot-image.c
-@@ -293,13 +293,13 @@ gs_screenshot_image_save_downloaded_img (GsScreenshotImage *ssimg,
- 	if (images->len > 1)
- 		return TRUE;
- 
--	if (width == AS_IMAGE_THUMBNAIL_WIDTH &&
--	    height == AS_IMAGE_THUMBNAIL_HEIGHT) {
--		width = AS_IMAGE_NORMAL_WIDTH;
--		height = AS_IMAGE_NORMAL_HEIGHT;
-+	if (width == GS_IMAGE_THUMBNAIL_WIDTH &&
-+	    height == GS_IMAGE_THUMBNAIL_HEIGHT) {
-+		width = GS_IMAGE_NORMAL_WIDTH;
-+		height = GS_IMAGE_NORMAL_HEIGHT;
- 	} else {
--		width = AS_IMAGE_THUMBNAIL_WIDTH;
--		height = AS_IMAGE_THUMBNAIL_HEIGHT;
-+		width = GS_IMAGE_THUMBNAIL_WIDTH;
-+		height = GS_IMAGE_THUMBNAIL_HEIGHT;
- 	}
- 
- 	width *= ssimg->scale;
-@@ -591,16 +591,30 @@ gs_screenshot_image_get_url (GsScreenshotImage *ssimg)
- 	} else if (as_screenshot_get_media_kind (ssimg->screenshot) == AS_SCREENSHOT_MEDIA_KIND_IMAGE) {
- 		AsImage *im;
- 
-+#if AS_CHECK_VERSION(1, 0, 0)
-+		im = as_screenshot_get_image (ssimg->screenshot,
-+					      ssimg->width,
-+					      ssimg->height,
-+					      ssimg->scale);
-+#else
- 		im = as_screenshot_get_image (ssimg->screenshot,
- 					      ssimg->width * ssimg->scale,
- 					      ssimg->height * ssimg->scale);
-+#endif
- 
- 		/* if we've failed to load a HiDPI image, fallback to LoDPI */
- 		if (im == NULL && ssimg->scale > 1) {
- 			ssimg->scale = 1;
-+#if AS_CHECK_VERSION(1, 0, 0)
-+			im = as_screenshot_get_image (ssimg->screenshot,
-+						      ssimg->width,
-+						      ssimg->height,
-+						      1);
-+#else
- 			im = as_screenshot_get_image (ssimg->screenshot,
- 						      ssimg->width,
- 						      ssimg->height);
-+#endif
- 		}
- 
- 		if (im)
-@@ -707,15 +721,22 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
- 	 * smaller version of it straight away */
- 	if (!ssimg->showing_image &&
- 	    as_screenshot_get_media_kind (ssimg->screenshot) == AS_SCREENSHOT_MEDIA_KIND_IMAGE &&
--	    ssimg->width > AS_IMAGE_THUMBNAIL_WIDTH &&
--	    ssimg->height > AS_IMAGE_THUMBNAIL_HEIGHT) {
-+	    ssimg->width > GS_IMAGE_THUMBNAIL_WIDTH &&
-+	    ssimg->height > GS_IMAGE_THUMBNAIL_HEIGHT) {
- 		const gchar *url_thumb;
- 		g_autofree gchar *basename_thumb = NULL;
- 		g_autofree gchar *cache_kind_thumb = NULL;
- 		AsImage *im;
-+#if AS_CHECK_VERSION(1, 0, 0)
- 		im = as_screenshot_get_image (ssimg->screenshot,
--					      AS_IMAGE_THUMBNAIL_WIDTH * ssimg->scale,
--					      AS_IMAGE_THUMBNAIL_HEIGHT * ssimg->scale);
-+					      GS_IMAGE_THUMBNAIL_WIDTH,
-+					      GS_IMAGE_THUMBNAIL_HEIGHT,
-+					      ssimg->scale);
-+#else
-+		im = as_screenshot_get_image (ssimg->screenshot,
-+					      GS_IMAGE_THUMBNAIL_WIDTH * ssimg->scale,
-+					      GS_IMAGE_THUMBNAIL_HEIGHT * ssimg->scale);
-+#endif
- 		url_thumb = as_image_get_url (im);
- 		basename_thumb = gs_screenshot_get_cachefn_for_url (url_thumb);
- 		cache_kind_thumb = g_build_filename ("screenshots", "112x63", NULL);
-diff --git a/src/gs-screenshot-image.h b/src/gs-screenshot-image.h
-index 1f6cf81ce6..6e45f5d20a 100644
---- a/src/gs-screenshot-image.h
-+++ b/src/gs-screenshot-image.h
-@@ -21,6 +21,13 @@ G_BEGIN_DECLS
- 
- G_DECLARE_FINAL_TYPE (GsScreenshotImage, gs_screenshot_image, GS, SCREENSHOT_IMAGE, GtkWidget)
- 
-+#define GS_IMAGE_LARGE_HEIGHT		423
-+#define GS_IMAGE_LARGE_WIDTH		752
-+#define GS_IMAGE_NORMAL_HEIGHT		351
-+#define GS_IMAGE_NORMAL_WIDTH		624
-+#define GS_IMAGE_THUMBNAIL_HEIGHT	63
-+#define GS_IMAGE_THUMBNAIL_WIDTH 	112
-+
- GtkWidget	*gs_screenshot_image_new		(SoupSession		*session);
- 
- AsScreenshot	*gs_screenshot_image_get_screenshot	(GsScreenshotImage	*ssimg);
-diff --git a/subprojects/appstream.wrap b/subprojects/appstream.wrap
-index 6f0beb0cbc..b9a9c7dbe5 100644
---- a/subprojects/appstream.wrap
-+++ b/subprojects/appstream.wrap
-@@ -1,5 +1,5 @@
- [wrap-git]
- directory = appstream
- url = https://github.com/ximion/appstream.git
--revision = v0.14.1
-+revision = v0.16.4
- depth = 1
--- 
-GitLab
-
diff --git a/meta-gnome/recipes-gnome/gnome-software/gnome-software/e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch b/meta-gnome/recipes-gnome/gnome-software/gnome-software/e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch
deleted file mode 100644
index b7bddc324..000000000
--- a/meta-gnome/recipes-gnome/gnome-software/gnome-software/e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch
+++ /dev/null
@@ -1,31 +0,0 @@ 
-From e431ab003f3fabf616b6eb7dc93f8967bc9473e5 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Wed, 22 Nov 2023 09:44:40 +0100
-Subject: [PATCH] gs-appstream: Remove use of AS_PROVIDED_KIND_PYTHON_2
-
-It's dropped in appstream 1.0.0 and it's not used anywhere in the gnome-software
-code, thus just remove it, rather than have it only for pre-1.0.0 appstream version.
-
-Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2388
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-software/-/commit/e431ab003f3fabf616b6eb7dc93f8967bc9473e5]
----
- lib/gs-appstream.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/lib/gs-appstream.c b/lib/gs-appstream.c
-index 6504d6f25..4fd7f5334 100644
---- a/lib/gs-appstream.c
-+++ b/lib/gs-appstream.c
-@@ -587,8 +587,6 @@ gs_appstream_refine_add_provides (GsApp *app, XbNode *component, GError **error)
- 					kind = AS_PROVIDED_KIND_FIRMWARE_RUNTIME;
- 				else if (g_strcmp0 (fw_type, "flashed") == 0)
- 					kind = AS_PROVIDED_KIND_FIRMWARE_FLASHED;
--			} else if (g_strcmp0 (element_name, "python2") == 0) {
--				kind = AS_PROVIDED_KIND_PYTHON_2;
- 			} else if (g_strcmp0 (element_name, "python3") == 0) {
- 				kind = AS_PROVIDED_KIND_PYTHON;
- 			} else if (g_strcmp0 (element_name, "dbus") == 0) {
--- 
-GitLab
-
diff --git a/meta-gnome/recipes-gnome/gnome-software/gnome-software_45.3.bb b/meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb
similarity index 85%
rename from meta-gnome/recipes-gnome/gnome-software/gnome-software_45.3.bb
rename to meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb
index 4beb79f1b..40a7141fc 100644
--- a/meta-gnome/recipes-gnome/gnome-software/gnome-software_45.3.bb
+++ b/meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb
@@ -28,11 +28,7 @@  RDEPENDS:${PN} = "iso-codes"
 
 EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
 
-SRC_URI += " \
-	file://0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch \
-	file://e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch \
-"
-SRC_URI[archive.sha256sum] = "d6b9245b22237da7bd1739dd28c23cc8f3835f99fa10c1037d9dd7635335251c"
+SRC_URI[archive.sha256sum] = "11893002bbb54082896683707bc3991ae55a2f3040811a760e3a92c96544f86e"
 
 PACKAGECONFIG ?= "flatpak"
 PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"