summaryrefslogtreecommitdiffstats
path: root/meta-gnome
diff options
context:
space:
mode:
authorMarkus Volk <f_l_k@t-online.de>2024-03-18 02:35:34 +0100
committerKhem Raj <raj.khem@gmail.com>2024-03-18 15:42:48 -0700
commit0fad89abf86f68bb396bc01024c510f6f7b344f1 (patch)
tree0bf8a948c2d318b01d78a9fdc3e374be1da4d064 /meta-gnome
parent92eb65c11139a4004da96ba966d62123a66c6cc1 (diff)
downloadmeta-openembedded-0fad89abf86f68bb396bc01024c510f6f7b344f1.tar.gz
gnome-software: update 45.3 -> 46.0
- 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) Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-gnome')
-rw-r--r--meta-gnome/recipes-gnome/gnome-software/gnome-software/0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch504
-rw-r--r--meta-gnome/recipes-gnome/gnome-software/gnome-software/e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch31
-rw-r--r--meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb (renamed from meta-gnome/recipes-gnome/gnome-software/gnome-software_45.3.bb)6
3 files changed, 1 insertions, 540 deletions
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 @@
1From 0655f358ed0e8455e12d9634f60bc4dbaee434e3 Mon Sep 17 00:00:00 2001
2From: Matthias Klumpp <matthias@tenstral.net>
3Date: Sun, 8 Oct 2023 20:22:44 +0200
4Subject: [PATCH] Adjust to build with AppStream 1.0 as well as 0.16.x
5
6Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-software/-/commit/0655f358ed0e8455e12d9634f60bc4dbaee434e3]
7---
8 lib/gs-app.c | 4 ++
9 lib/gs-appstream.c | 61 +++++++++++++++++++-----
10 lib/gs-utils.c | 8 ++--
11 meson.build | 22 +--------
12 plugins/core/gs-plugin-appstream.c | 8 ----
13 plugins/fwupd/gs-fwupd-app.c | 8 ++++
14 plugins/fwupd/gs-plugin-fwupd.c | 4 ++
15 src/gs-hardware-support-context-dialog.c | 6 +++
16 src/gs-repos-dialog.c | 4 ++
17 src/gs-screenshot-carousel.c | 4 +-
18 src/gs-screenshot-image.c | 41 ++++++++++++----
19 src/gs-screenshot-image.h | 7 +++
20 subprojects/appstream.wrap | 2 +-
21 13 files changed, 122 insertions(+), 57 deletions(-)
22
23diff --git a/lib/gs-app.c b/lib/gs-app.c
24index 2308de504d..ea348f8c01 100644
25--- a/lib/gs-app.c
26+++ b/lib/gs-app.c
27@@ -609,7 +609,11 @@ gs_app_to_string_append (GsApp *app, GString *str)
28 AsScreenshot *ss = g_ptr_array_index (priv->screenshots, i);
29 g_autofree gchar *key = NULL;
30 tmp = as_screenshot_get_caption (ss);
31+#if AS_CHECK_VERSION(1, 0, 0)
32+ im = as_screenshot_get_image (ss, 0, 0, 1);
33+#else
34 im = as_screenshot_get_image (ss, 0, 0);
35+#endif
36 if (im == NULL)
37 continue;
38 key = g_strdup_printf ("screenshot-%02u", i);
39diff --git a/lib/gs-appstream.c b/lib/gs-appstream.c
40index deca176dcf..6504d6f25e 100644
41--- a/lib/gs-appstream.c
42+++ b/lib/gs-appstream.c
43@@ -1011,8 +1011,11 @@ gs_appstream_refine_app_relation (GsApp *app,
44 as_relation_set_item_kind (relation, AS_RELATION_ITEM_KIND_CONTROL);
45 as_relation_set_value_control_kind (relation, as_control_kind_from_string (xb_node_get_text (child)));
46 } else if (g_str_equal (item_kind, "display_length")) {
47- AsDisplayLengthKind display_length_kind;
48 const gchar *compare;
49+ const gchar *side;
50+#if !AS_CHECK_VERSION(1, 0, 0)
51+ AsDisplayLengthKind display_length_kind;
52+#endif
53
54 /* https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-relations-display_length */
55 as_relation_set_item_kind (relation, AS_RELATION_ITEM_KIND_DISPLAY_LENGTH);
56@@ -1020,15 +1023,21 @@ gs_appstream_refine_app_relation (GsApp *app,
57 compare = xb_node_get_attr (child, "compare");
58 as_relation_set_compare (relation, (compare != NULL) ? as_relation_compare_from_string (compare) : AS_RELATION_COMPARE_GE);
59
60+#if AS_CHECK_VERSION(1, 0, 0)
61+ side = xb_node_get_attr (child, "side");
62+ as_relation_set_display_side_kind (relation, (side != NULL) ? as_display_side_kind_from_string (side) : AS_DISPLAY_SIDE_KIND_SHORTEST);
63+ as_relation_set_value_px (relation, xb_node_get_text_as_uint (child));
64+#else
65 display_length_kind = as_display_length_kind_from_string (xb_node_get_text (child));
66 if (display_length_kind != AS_DISPLAY_LENGTH_KIND_UNKNOWN) {
67 /* Ignore the `side` attribute */
68 as_relation_set_value_display_length_kind (relation, display_length_kind);
69 } else {
70- const gchar *side = xb_node_get_attr (child, "side");
71+ side = xb_node_get_attr (child, "side");
72 as_relation_set_display_side_kind (relation, (side != NULL) ? as_display_side_kind_from_string (side) : AS_DISPLAY_SIDE_KIND_SHORTEST);
73 as_relation_set_value_px (relation, xb_node_get_text_as_uint (child));
74 }
75+#endif
76 } else {
77 g_debug ("Relation type ‘%s’ not currently supported for %s; ignoring",
78 item_kind, gs_app_get_id (app));
79@@ -1472,7 +1481,7 @@ gs_appstream_refine_app (GsPlugin *plugin,
80 }
81
82 typedef struct {
83- AsSearchTokenMatch match_value;
84+ guint16 match_value;
85 XbQuery *query;
86 } GsAppstreamSearchHelper;
87
88@@ -1522,7 +1531,7 @@ gs_appstream_silo_search_component (GPtrArray *array, XbNode *component, const g
89 }
90
91 typedef struct {
92- AsSearchTokenMatch match_value;
93+ guint16 match_value;
94 const gchar *xpath;
95 } Query;
96
97@@ -1539,6 +1548,11 @@ gs_appstream_do_search (GsPlugin *plugin,
98 g_autoptr(GPtrArray) array = g_ptr_array_new_with_free_func ((GDestroyNotify) gs_appstream_search_helper_free);
99 g_autoptr(GPtrArray) components = NULL;
100 g_autoptr(GTimer) timer = g_timer_new ();
101+#if AS_CHECK_VERSION(1, 0, 0)
102+ const guint16 component_id_weight = as_utils_get_tag_search_weight ("id");
103+#else
104+ const guint16 component_id_weight = AS_SEARCH_TOKEN_MATCH_ID;
105+#endif
106
107 g_return_val_if_fail (GS_IS_PLUGIN (plugin), FALSE);
108 g_return_val_if_fail (XB_IS_SILO (silo), FALSE);
109@@ -1585,7 +1599,7 @@ gs_appstream_do_search (GsPlugin *plugin,
110 * Drop the ID token from it as it’s the highest
111 * numeric value but isn’t visible to the user in the
112 * UI, which leads to confusing results ordering. */
113- gs_app_set_match_value (app, match_value & (~AS_SEARCH_TOKEN_MATCH_ID));
114+ gs_app_set_match_value (app, match_value & (~component_id_weight));
115 gs_app_list_add (list, app);
116
117 if (gs_app_get_kind (app) == AS_COMPONENT_KIND_ADDON) {
118@@ -1624,18 +1638,32 @@ gs_appstream_search (GsPlugin *plugin,
119 GCancellable *cancellable,
120 GError **error)
121 {
122+#if AS_CHECK_VERSION(1, 0, 0)
123+ guint16 pkgname_weight = as_utils_get_tag_search_weight ("pkgname");
124+ guint16 name_weight = as_utils_get_tag_search_weight ("name");
125+ guint16 id_weight = as_utils_get_tag_search_weight ("id");
126 const Query queries[] = {
127- #ifdef HAVE_AS_SEARCH_TOKEN_MATCH_MEDIATYPE
128- { AS_SEARCH_TOKEN_MATCH_MEDIATYPE, "mimetypes/mimetype[text()~=stem(?)]" },
129- #else
130- { AS_SEARCH_TOKEN_MATCH_MIMETYPE, "mimetypes/mimetype[text()~=stem(?)]" },
131- #endif
132+ { as_utils_get_tag_search_weight ("mediatype"), "provides/mediatype[text()~=stem(?)]" },
133 /* Search once with a tokenize-and-casefold operator (`~=`) to support casefolded
134 * full-text search, then again using substring matching (`contains()`), to
135 * support prefix matching. Only do the prefix matches on a few fields, and at a
136 * lower priority, otherwise things will get confusing.
137- *
138+ *
139 * See https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2277 */
140+ { pkgname_weight, "pkgname[text()~=stem(?)]" },
141+ { pkgname_weight / 2, "pkgname[contains(text(),stem(?))]" },
142+ { as_utils_get_tag_search_weight ("summary"), "summary[text()~=stem(?)]" },
143+ { name_weight, "name[text()~=stem(?)]" },
144+ { name_weight / 2, "name[contains(text(),stem(?))]" },
145+ { as_utils_get_tag_search_weight ("keyword"), "keywords/keyword[text()~=stem(?)]" },
146+ { id_weight, "id[text()~=stem(?)]" },
147+ { id_weight, "launchable[text()~=stem(?)]" },
148+ { as_utils_get_tag_search_weight ("origin"), "../components[@origin~=stem(?)]" },
149+ { 0, NULL }
150+ };
151+#else
152+ const Query queries[] = {
153+ { AS_SEARCH_TOKEN_MATCH_MEDIATYPE, "mimetypes/mimetype[text()~=stem(?)]" },
154 { AS_SEARCH_TOKEN_MATCH_PKGNAME, "pkgname[text()~=stem(?)]" },
155 { AS_SEARCH_TOKEN_MATCH_PKGNAME / 2, "pkgname[contains(text(),stem(?))]" },
156 { AS_SEARCH_TOKEN_MATCH_SUMMARY, "summary[text()~=stem(?)]" },
157@@ -1647,6 +1675,7 @@ gs_appstream_search (GsPlugin *plugin,
158 { AS_SEARCH_TOKEN_MATCH_ORIGIN, "../components[@origin~=stem(?)]" },
159 { AS_SEARCH_TOKEN_MATCH_NONE, NULL }
160 };
161+#endif
162
163 return gs_appstream_do_search (plugin, silo, values, queries, list, cancellable, error);
164 }
165@@ -1659,11 +1688,21 @@ gs_appstream_search_developer_apps (GsPlugin *plugin,
166 GCancellable *cancellable,
167 GError **error)
168 {
169+#if AS_CHECK_VERSION(1, 0, 0)
170+ const Query queries[] = {
171+ { as_utils_get_tag_search_weight ("pkgname"), "developer/name[text()~=stem(?)]" },
172+ { as_utils_get_tag_search_weight ("summary"), "project_group[text()~=stem(?)]" },
173+ /* for legacy support */
174+ { as_utils_get_tag_search_weight ("pkgname"), "developer_name[text()~=stem(?)]" },
175+ { 0, NULL }
176+ };
177+#else
178 const Query queries[] = {
179 { AS_SEARCH_TOKEN_MATCH_PKGNAME, "developer_name[text()~=stem(?)]" },
180 { AS_SEARCH_TOKEN_MATCH_SUMMARY, "project_group[text()~=stem(?)]" },
181 { AS_SEARCH_TOKEN_MATCH_NONE, NULL }
182 };
183+#endif
184
185 return gs_appstream_do_search (plugin, silo, values, queries, list, cancellable, error);
186 }
187diff --git a/lib/gs-utils.c b/lib/gs-utils.c
188index cf9073025f..19e6ebd046 100644
189--- a/lib/gs-utils.c
190+++ b/lib/gs-utils.c
191@@ -1694,9 +1694,9 @@ gs_utils_gstring_replace (GString *str,
192 const gchar *find,
193 const gchar *replace)
194 {
195- #ifdef HAVE_AS_GSTRING_REPLACE_WITH_FOUR_ARGS
196+#if AS_CHECK_VERSION(1, 0, 0)
197 as_gstring_replace (str, find, replace, 0);
198- #else
199- as_gstring_replace (str, find, replace);
200- #endif
201+#else
202+ as_gstring_replace2 (str, find, replace, 0);
203+#endif
204 }
205diff --git a/meson.build b/meson.build
206index bc19669dd5..8c82464cdb 100644
207--- a/meson.build
208+++ b/meson.build
209@@ -113,7 +113,7 @@ add_project_arguments('-D_GNU_SOURCE', language : 'c')
210 conf.set('HAVE_LINUX_UNISTD_H', cc.has_header('linux/unistd.h'))
211
212 appstream = dependency('appstream',
213- version : '>= 0.14.0',
214+ version : '>= 0.16.4',
215 fallback : ['appstream', 'appstream_dep'],
216 default_options : [
217 'docs=false',
218@@ -121,26 +121,6 @@ appstream = dependency('appstream',
219 'install-docs=false'
220 ]
221 )
222-if appstream.type_name() == 'internal'
223-else
224- if meson.get_compiler('c').has_header_symbol('appstream.h', 'AS_SEARCH_TOKEN_MATCH_MEDIATYPE', dependencies: appstream)
225- conf.set('HAVE_AS_SEARCH_TOKEN_MATCH_MEDIATYPE', '1')
226- endif
227- if meson.get_compiler('c').has_header_symbol('appstream.h', 'AS_FORMAT_STYLE_CATALOG', dependencies: appstream)
228- conf.set('HAVE_AS_FORMAT_STYLE_CATALOG', '1')
229- endif
230- if meson.get_compiler('c').has_function('as_metadata_components_to_catalog', prefix: '#include <appstream.h>', dependencies: appstream)
231- conf.set('HAVE_AS_METADATA_COMPONENTS_TO_CATALOG', '1')
232- endif
233- if meson.get_compiler('c').links('''#include <appstream.h>
234- int main (void)
235- {
236- as_gstring_replace (NULL, "a", "b", 0);
237- return 0;
238- }''', name: 'as_gstring_replace() has four arguments', dependencies: appstream)
239- conf.set('HAVE_AS_GSTRING_REPLACE_WITH_FOUR_ARGS', '1')
240- endif
241-endif
242
243 gdk_pixbuf = dependency('gdk-pixbuf-2.0', version : '>= 2.32.0')
244 libxmlb = dependency('xmlb', version : '>= 0.1.7', fallback : ['libxmlb', 'libxmlb_dep'])
245diff --git a/plugins/core/gs-plugin-appstream.c b/plugins/core/gs-plugin-appstream.c
246index cf9f3022b1..ef3226a591 100644
247--- a/plugins/core/gs-plugin-appstream.c
248+++ b/plugins/core/gs-plugin-appstream.c
249@@ -414,11 +414,7 @@ gs_plugin_appstream_load_dep11_cb (XbBuilderSource *self,
250 if (bytes == NULL)
251 return NULL;
252
253- #ifdef HAVE_AS_FORMAT_STYLE_CATALOG
254 as_metadata_set_format_style (mdata, AS_FORMAT_STYLE_CATALOG);
255- #else
256- as_metadata_set_format_style (mdata, AS_FORMAT_STYLE_COLLECTION);
257- #endif
258 as_metadata_parse_bytes (mdata,
259 bytes,
260 AS_FORMAT_KIND_YAML,
261@@ -428,11 +424,7 @@ gs_plugin_appstream_load_dep11_cb (XbBuilderSource *self,
262 return NULL;
263 }
264
265- #ifdef HAVE_AS_METADATA_COMPONENTS_TO_CATALOG
266 xml = as_metadata_components_to_catalog (mdata, AS_FORMAT_KIND_XML, &tmp_error);
267- #else
268- xml = as_metadata_components_to_collection (mdata, AS_FORMAT_KIND_XML, &tmp_error);
269- #endif
270 if (xml == NULL) {
271 // This API currently returns NULL if there is nothing to serialize, so we
272 // have to test if this is an error or not.
273diff --git a/plugins/fwupd/gs-fwupd-app.c b/plugins/fwupd/gs-fwupd-app.c
274index 6dcda6ee92..5d3254da59 100644
275--- a/plugins/fwupd/gs-fwupd-app.c
276+++ b/plugins/fwupd/gs-fwupd-app.c
277@@ -164,7 +164,11 @@ gs_fwupd_app_set_from_device (GsApp *app,
278 gs_app_set_install_date (app, fwupd_device_get_created (dev));
279 if (fwupd_device_get_description (dev) != NULL) {
280 g_autofree gchar *tmp = NULL;
281+#if AS_CHECK_VERSION(1, 0, 0)
282+ tmp = as_markup_convert (fwupd_device_get_description (dev), AS_MARKUP_KIND_TEXT, NULL);
283+#else
284 tmp = as_markup_convert_simple (fwupd_device_get_description (dev), NULL);
285+#endif
286 if (tmp != NULL)
287 gs_app_set_description (app, GS_APP_QUALITY_NORMAL, tmp);
288 }
289@@ -402,7 +406,11 @@ gs_fwupd_app_set_from_release (GsApp *app, FwupdRelease *rel)
290 }
291 if (fwupd_release_get_description (rel) != NULL) {
292 g_autofree gchar *tmp = NULL;
293+#if AS_CHECK_VERSION(1, 0, 0)
294+ tmp = as_markup_convert (fwupd_release_get_description (rel), AS_MARKUP_KIND_TEXT, NULL);
295+#else
296 tmp = as_markup_convert_simple (fwupd_release_get_description (rel), NULL);
297+#endif
298 if (tmp != NULL)
299 gs_app_set_update_details_text (app, tmp);
300 }
301diff --git a/plugins/fwupd/gs-plugin-fwupd.c b/plugins/fwupd/gs-plugin-fwupd.c
302index d8c0cd2dd4..a9b05028a0 100644
303--- a/plugins/fwupd/gs-plugin-fwupd.c
304+++ b/plugins/fwupd/gs-plugin-fwupd.c
305@@ -727,7 +727,11 @@ gs_plugin_add_updates (GsPlugin *plugin,
306 g_autofree gchar *desc = NULL;
307 if (fwupd_release_get_description (rel) == NULL)
308 continue;
309+#if AS_CHECK_VERSION(1, 0, 0)
310+ desc = as_markup_convert (fwupd_release_get_description (rel), AS_MARKUP_KIND_TEXT, NULL);
311+#else
312 desc = as_markup_convert_simple (fwupd_release_get_description (rel), NULL);
313+#endif
314 if (desc == NULL)
315 continue;
316 g_string_append_printf (update_desc,
317diff --git a/src/gs-hardware-support-context-dialog.c b/src/gs-hardware-support-context-dialog.c
318index 0e48c8c266..14653401de 100644
319--- a/src/gs-hardware-support-context-dialog.c
320+++ b/src/gs-hardware-support-context-dialog.c
321@@ -461,6 +461,7 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor *monitor,
322 AsRelationCompare comparator = as_relation_get_compare (relation);
323 Range current_display_comparand, relation_comparand;
324
325+#if !AS_CHECK_VERSION(1, 0, 0)
326 /* From https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-requires-recommends-display_length */
327 Range display_lengths[] = {
328 [AS_DISPLAY_LENGTH_KIND_XSMALL] = { 0, 360 },
329@@ -469,6 +470,7 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor *monitor,
330 [AS_DISPLAY_LENGTH_KIND_LARGE] = { 1024, 3840 },
331 [AS_DISPLAY_LENGTH_KIND_XLARGE] = { 3840, G_MAXUINT },
332 };
333+#endif
334
335 any_display_relations_set = TRUE;
336
337@@ -485,11 +487,14 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor *monitor,
338 case AS_DISPLAY_SIDE_KIND_LAST:
339 default:
340 current_display_comparand.min = current_display_comparand.max = MAX (current_screen_size.width, current_screen_size.height);
341+#if !AS_CHECK_VERSION(1, 0, 0)
342 relation_comparand.min = display_lengths[as_relation_get_value_display_length_kind (relation)].min;
343 relation_comparand.max = display_lengths[as_relation_get_value_display_length_kind (relation)].max;
344+#endif
345 break;
346 }
347
348+#if !AS_CHECK_VERSION(1, 0, 0)
349 if (evaluate_display_comparison (display_lengths[AS_DISPLAY_LENGTH_KIND_SMALL], comparator, relation_comparand)) {
350 *mobile_relation_kind_out = max_relation_kind (*mobile_relation_kind_out, as_relation_get_kind (relation));
351 *mobile_match_out = TRUE;
352@@ -499,6 +504,7 @@ gs_hardware_support_context_dialog_get_display_support (GdkMonitor *monitor,
353 *desktop_relation_kind_out = max_relation_kind (*desktop_relation_kind_out, as_relation_get_kind (relation));
354 *desktop_match_out = TRUE;
355 }
356+#endif
357
358 if (evaluate_display_comparison (current_display_comparand, comparator, relation_comparand)) {
359 *current_relation_kind_out = max_relation_kind (*current_relation_kind_out, as_relation_get_kind (relation));
360diff --git a/src/gs-repos-dialog.c b/src/gs-repos-dialog.c
361index c41c4944a1..7dac0416d9 100644
362--- a/src/gs-repos-dialog.c
363+++ b/src/gs-repos-dialog.c
364@@ -154,7 +154,11 @@ enable_repo (GsReposDialog *dialog,
365 g_autoptr(GError) error = NULL;
366
367 /* convert from AppStream markup */
368+#if AS_CHECK_VERSION(1, 0, 0)
369+ message = as_markup_convert (gs_app_get_agreement (repo), AS_MARKUP_KIND_TEXT, &error);
370+#else
371 message = as_markup_convert_simple (gs_app_get_agreement (repo), &error);
372+#endif
373 if (message == NULL) {
374 /* failed, so just try and show the original markup */
375 message = g_strdup (gs_app_get_agreement (repo));
376diff --git a/src/gs-screenshot-carousel.c b/src/gs-screenshot-carousel.c
377index 04bbf86a1e..d269af6605 100644
378--- a/src/gs-screenshot-carousel.c
379+++ b/src/gs-screenshot-carousel.c
380@@ -141,8 +141,8 @@ gs_screenshot_carousel_load_screenshots (GsScreenshotCarousel *self, GsApp *app,
381 gtk_widget_set_can_focus (gtk_widget_get_first_child (ssimg), FALSE);
382 gs_screenshot_image_set_screenshot (GS_SCREENSHOT_IMAGE (ssimg), ss);
383 gs_screenshot_image_set_size (GS_SCREENSHOT_IMAGE (ssimg),
384- AS_IMAGE_NORMAL_WIDTH,
385- AS_IMAGE_NORMAL_HEIGHT);
386+ GS_IMAGE_NORMAL_WIDTH,
387+ GS_IMAGE_NORMAL_HEIGHT);
388 gtk_widget_add_css_class (ssimg, "screenshot-image-main");
389 gs_screenshot_image_load_async (GS_SCREENSHOT_IMAGE (ssimg), cancellable);
390
391diff --git a/src/gs-screenshot-image.c b/src/gs-screenshot-image.c
392index 93dba68f96..6b4db03d06 100644
393--- a/src/gs-screenshot-image.c
394+++ b/src/gs-screenshot-image.c
395@@ -293,13 +293,13 @@ gs_screenshot_image_save_downloaded_img (GsScreenshotImage *ssimg,
396 if (images->len > 1)
397 return TRUE;
398
399- if (width == AS_IMAGE_THUMBNAIL_WIDTH &&
400- height == AS_IMAGE_THUMBNAIL_HEIGHT) {
401- width = AS_IMAGE_NORMAL_WIDTH;
402- height = AS_IMAGE_NORMAL_HEIGHT;
403+ if (width == GS_IMAGE_THUMBNAIL_WIDTH &&
404+ height == GS_IMAGE_THUMBNAIL_HEIGHT) {
405+ width = GS_IMAGE_NORMAL_WIDTH;
406+ height = GS_IMAGE_NORMAL_HEIGHT;
407 } else {
408- width = AS_IMAGE_THUMBNAIL_WIDTH;
409- height = AS_IMAGE_THUMBNAIL_HEIGHT;
410+ width = GS_IMAGE_THUMBNAIL_WIDTH;
411+ height = GS_IMAGE_THUMBNAIL_HEIGHT;
412 }
413
414 width *= ssimg->scale;
415@@ -591,16 +591,30 @@ gs_screenshot_image_get_url (GsScreenshotImage *ssimg)
416 } else if (as_screenshot_get_media_kind (ssimg->screenshot) == AS_SCREENSHOT_MEDIA_KIND_IMAGE) {
417 AsImage *im;
418
419+#if AS_CHECK_VERSION(1, 0, 0)
420+ im = as_screenshot_get_image (ssimg->screenshot,
421+ ssimg->width,
422+ ssimg->height,
423+ ssimg->scale);
424+#else
425 im = as_screenshot_get_image (ssimg->screenshot,
426 ssimg->width * ssimg->scale,
427 ssimg->height * ssimg->scale);
428+#endif
429
430 /* if we've failed to load a HiDPI image, fallback to LoDPI */
431 if (im == NULL && ssimg->scale > 1) {
432 ssimg->scale = 1;
433+#if AS_CHECK_VERSION(1, 0, 0)
434+ im = as_screenshot_get_image (ssimg->screenshot,
435+ ssimg->width,
436+ ssimg->height,
437+ 1);
438+#else
439 im = as_screenshot_get_image (ssimg->screenshot,
440 ssimg->width,
441 ssimg->height);
442+#endif
443 }
444
445 if (im)
446@@ -707,15 +721,22 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
447 * smaller version of it straight away */
448 if (!ssimg->showing_image &&
449 as_screenshot_get_media_kind (ssimg->screenshot) == AS_SCREENSHOT_MEDIA_KIND_IMAGE &&
450- ssimg->width > AS_IMAGE_THUMBNAIL_WIDTH &&
451- ssimg->height > AS_IMAGE_THUMBNAIL_HEIGHT) {
452+ ssimg->width > GS_IMAGE_THUMBNAIL_WIDTH &&
453+ ssimg->height > GS_IMAGE_THUMBNAIL_HEIGHT) {
454 const gchar *url_thumb;
455 g_autofree gchar *basename_thumb = NULL;
456 g_autofree gchar *cache_kind_thumb = NULL;
457 AsImage *im;
458+#if AS_CHECK_VERSION(1, 0, 0)
459 im = as_screenshot_get_image (ssimg->screenshot,
460- AS_IMAGE_THUMBNAIL_WIDTH * ssimg->scale,
461- AS_IMAGE_THUMBNAIL_HEIGHT * ssimg->scale);
462+ GS_IMAGE_THUMBNAIL_WIDTH,
463+ GS_IMAGE_THUMBNAIL_HEIGHT,
464+ ssimg->scale);
465+#else
466+ im = as_screenshot_get_image (ssimg->screenshot,
467+ GS_IMAGE_THUMBNAIL_WIDTH * ssimg->scale,
468+ GS_IMAGE_THUMBNAIL_HEIGHT * ssimg->scale);
469+#endif
470 url_thumb = as_image_get_url (im);
471 basename_thumb = gs_screenshot_get_cachefn_for_url (url_thumb);
472 cache_kind_thumb = g_build_filename ("screenshots", "112x63", NULL);
473diff --git a/src/gs-screenshot-image.h b/src/gs-screenshot-image.h
474index 1f6cf81ce6..6e45f5d20a 100644
475--- a/src/gs-screenshot-image.h
476+++ b/src/gs-screenshot-image.h
477@@ -21,6 +21,13 @@ G_BEGIN_DECLS
478
479 G_DECLARE_FINAL_TYPE (GsScreenshotImage, gs_screenshot_image, GS, SCREENSHOT_IMAGE, GtkWidget)
480
481+#define GS_IMAGE_LARGE_HEIGHT 423
482+#define GS_IMAGE_LARGE_WIDTH 752
483+#define GS_IMAGE_NORMAL_HEIGHT 351
484+#define GS_IMAGE_NORMAL_WIDTH 624
485+#define GS_IMAGE_THUMBNAIL_HEIGHT 63
486+#define GS_IMAGE_THUMBNAIL_WIDTH 112
487+
488 GtkWidget *gs_screenshot_image_new (SoupSession *session);
489
490 AsScreenshot *gs_screenshot_image_get_screenshot (GsScreenshotImage *ssimg);
491diff --git a/subprojects/appstream.wrap b/subprojects/appstream.wrap
492index 6f0beb0cbc..b9a9c7dbe5 100644
493--- a/subprojects/appstream.wrap
494+++ b/subprojects/appstream.wrap
495@@ -1,5 +1,5 @@
496 [wrap-git]
497 directory = appstream
498 url = https://github.com/ximion/appstream.git
499-revision = v0.14.1
500+revision = v0.16.4
501 depth = 1
502--
503GitLab
504
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 @@
1From e431ab003f3fabf616b6eb7dc93f8967bc9473e5 Mon Sep 17 00:00:00 2001
2From: Milan Crha <mcrha@redhat.com>
3Date: Wed, 22 Nov 2023 09:44:40 +0100
4Subject: [PATCH] gs-appstream: Remove use of AS_PROVIDED_KIND_PYTHON_2
5
6It's dropped in appstream 1.0.0 and it's not used anywhere in the gnome-software
7code, thus just remove it, rather than have it only for pre-1.0.0 appstream version.
8
9Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2388
10
11Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-software/-/commit/e431ab003f3fabf616b6eb7dc93f8967bc9473e5]
12---
13 lib/gs-appstream.c | 2 --
14 1 file changed, 2 deletions(-)
15
16diff --git a/lib/gs-appstream.c b/lib/gs-appstream.c
17index 6504d6f25..4fd7f5334 100644
18--- a/lib/gs-appstream.c
19+++ b/lib/gs-appstream.c
20@@ -587,8 +587,6 @@ gs_appstream_refine_add_provides (GsApp *app, XbNode *component, GError **error)
21 kind = AS_PROVIDED_KIND_FIRMWARE_RUNTIME;
22 else if (g_strcmp0 (fw_type, "flashed") == 0)
23 kind = AS_PROVIDED_KIND_FIRMWARE_FLASHED;
24- } else if (g_strcmp0 (element_name, "python2") == 0) {
25- kind = AS_PROVIDED_KIND_PYTHON_2;
26 } else if (g_strcmp0 (element_name, "python3") == 0) {
27 kind = AS_PROVIDED_KIND_PYTHON;
28 } else if (g_strcmp0 (element_name, "dbus") == 0) {
29--
30GitLab
31
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
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"
28 28
29EXTRA_OEMESON += "-Dtests=false -Dsoup2=false" 29EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
30 30
31SRC_URI += " \ 31SRC_URI[archive.sha256sum] = "11893002bbb54082896683707bc3991ae55a2f3040811a760e3a92c96544f86e"
32 file://0655f358ed0e8455e12d9634f60bc4dbaee434e3.patch \
33 file://e431ab003f3fabf616b6eb7dc93f8967bc9473e5.patch \
34"
35SRC_URI[archive.sha256sum] = "d6b9245b22237da7bd1739dd28c23cc8f3835f99fa10c1037d9dd7635335251c"
36 32
37PACKAGECONFIG ?= "flatpak" 33PACKAGECONFIG ?= "flatpak"
38PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree" 34PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"