Support building with appstream 0.16 and 1.0 Origin: https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/1810 https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/1830 --- lib/gs-app.c | 4 ++ lib/gs-appstream.c | 63 +++++++++++++++++++----- 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(+), 59 deletions(-) diff --git a/lib/gs-app.c b/lib/gs-app.c index 048a061..e269405 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 deca176..4fd7f53 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) { @@ -1011,8 +1009,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 +1021,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 +1479,7 @@ gs_appstream_refine_app (GsPlugin *plugin, } typedef struct { - AsSearchTokenMatch match_value; + guint16 match_value; XbQuery *query; } GsAppstreamSearchHelper; @@ -1522,7 +1529,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 +1546,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 +1597,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 +1636,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 +1673,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 +1686,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 cf90730..19e6ebd 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 da9e7ac..2cab9d6 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 ', dependencies: appstream) - conf.set('HAVE_AS_METADATA_COMPONENTS_TO_CATALOG', '1') - endif - if meson.get_compiler('c').links('''#include - 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 cf9f302..ef3226a 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 6dcda6e..5d3254d 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 e931b2b..0747d6e 100644 --- a/plugins/fwupd/gs-plugin-fwupd.c +++ b/plugins/fwupd/gs-plugin-fwupd.c @@ -726,7 +726,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 0e48c8c..1465340 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 c41c494..7dac041 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 04bbf86..d269af6 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 c313a25..b24083b 100644 --- a/src/gs-screenshot-image.c +++ b/src/gs-screenshot-image.c @@ -284,13 +284,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; @@ -582,16 +582,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) @@ -698,15 +712,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 1f6cf81..6e45f5d 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 6f0beb0..b9a9c7d 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 -- 2.43.0