Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package AppStream for openSUSE:Factory checked in at 2026-07-20 09:57:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/AppStream (Old) and /work/SRC/openSUSE:Factory/.AppStream.new.24530 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "AppStream" Mon Jul 20 09:57:30 2026 rev:61 rq:1366482 version:1.1.3 Changes: -------- --- /work/SRC/openSUSE:Factory/AppStream/AppStream.changes 2026-06-04 18:56:24.366052697 +0200 +++ /work/SRC/openSUSE:Factory/.AppStream.new.24530/AppStream.changes 2026-07-20 10:00:11.209839891 +0200 @@ -1,0 +2,40 @@ +Sat Jul 18 07:14:00 UTC 2026 - Christophe Marin <[email protected]> + +- Add upstream changes: + * 0001-yaml-Fix-potential-crashes-when-encountering-missing.patch + * 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch + * 0001-yaml-Ensure-version-relations-are-consistently-quote.patch + * 0001-trivial-yaml-Ensure-branding-color-values-are-also-c.patch +- Drop patch, no longer needed: + * 0001-Disable-failing-test-with-old-libfyaml.patch + +------------------------------------------------------------------- +Fri Jun 19 12:09:50 UTC 2026 - Christophe Marin <[email protected]> + +- Update to 1.1.3 + Features: + * Officially support & read JXL images for icons, validate permitted filetypes + * meson: Allow disabling command-line tools + * news-convert: Recognize "=" as release block header + * news-convert: Handle extra linebreaks better and add support for issue-blocks + * compose: Create content hashes with Blake3 instead of MD5 + * Update static data for category and license additions + * validator: Tags without namespace are an error + Specification: + * docs: Convert to Docbook 5 + Bugfixes: + * yaml: Ensure certain values are always explicitly emitted as strings + * Never emit usertags that are missing a namespace + * compose: add bounds checks when parsing malformed translation files + * Explicitly add fcfreetype.h include to asc-font.c + * compose: Unref icon_policy in asc_compose_finalize + * compose: Free array from asc_result_get_component_ids_with_hints + Miscellaneous: + * yaml: Improve string quoting heuristics + * meson: Drop -Winline from maintainer flags +- Drop patch, merged upstream: + * 0001-Explicitly-add-fcfreetype.h-include-to-asc-font.c.patch +- Drop no longer needed patch: + * support-meson0.59.patch + +------------------------------------------------------------------- Old: ---- 0001-Disable-failing-test-with-old-libfyaml.patch 0001-Explicitly-add-fcfreetype.h-include-to-asc-font.c.patch AppStream-1.1.2.tar.xz AppStream-1.1.2.tar.xz.asc support-meson0.59.patch New: ---- 0001-trivial-yaml-Ensure-branding-color-values-are-also-c.patch 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch 0001-yaml-Ensure-version-relations-are-consistently-quote.patch 0001-yaml-Fix-potential-crashes-when-encountering-missing.patch AppStream-1.1.3.tar.xz AppStream-1.1.3.tar.xz.asc ----------(Old B)---------- Old:- Drop patch, no longer needed: * 0001-Disable-failing-test-with-old-libfyaml.patch Old:- Drop patch, merged upstream: * 0001-Explicitly-add-fcfreetype.h-include-to-asc-font.c.patch - Drop no longer needed patch: Old:- Drop no longer needed patch: * support-meson0.59.patch ----------(Old E)---------- ----------(New B)---------- New: * 0001-yaml-Ensure-version-relations-are-consistently-quote.patch * 0001-trivial-yaml-Ensure-branding-color-values-are-also-c.patch - Drop patch, no longer needed: New: * 0001-yaml-Fix-potential-crashes-when-encountering-missing.patch * 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch * 0001-yaml-Ensure-version-relations-are-consistently-quote.patch New: * 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch * 0001-yaml-Ensure-version-relations-are-consistently-quote.patch * 0001-trivial-yaml-Ensure-branding-color-values-are-also-c.patch New:- Add upstream changes: * 0001-yaml-Fix-potential-crashes-when-encountering-missing.patch * 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ AppStream.spec ++++++ --- /var/tmp/diff_new_pack.Z8zvUq/_old 2026-07-20 10:00:12.005866679 +0200 +++ /var/tmp/diff_new_pack.Z8zvUq/_new 2026-07-20 10:00:12.009866813 +0200 @@ -16,25 +16,24 @@ # -%define min_qt_version 6.2.4 -%if 0%{?sle_version} >= 150400 && 0%{?is_opensuse} || 0%{?sle_version} >= 150600 || 0%{?suse_version} > 1500 -%bcond_without vala -%endif +%define min_qt_version 6.4.2 -# Use the same compiler that was used to build Qt 6 packages in the devel project -# Mixing gcc 13 and 15 on Leap 16 causes linker errors ('undefined reference to __cxa_call_terminate@CXXABI_1.3.15') -%if 0%{?suse_version} == 1500 -%bcond_without gcc14 -%endif +%bcond_without vala +# %if 0%{?suse_version} == 1600 %bcond_without gcc15 %endif +# Not available in Leap 16 +%if 0%{?suse_version} >= 1699 +%bcond_without libblake3 +%endif +# %define rname AppStream %define libappstream_sover 5 %define libAppStreamQt_sover 3 %define libappstream_compose_sover 0 Name: AppStream -Version: 1.1.2 +Version: 1.1.3 Release: 0 Summary: Tools and libraries to work with AppStream metadata License: LGPL-2.1-or-later @@ -42,20 +41,13 @@ Source0: https://www.freedesktop.org/software/appstream/releases/%{rname}-%{version}.tar.xz Source1: https://www.freedesktop.org/software/appstream/releases/%{rname}-%{version}.tar.xz.asc Source2: AppStream.keyring -# PATCH-FIX-OPENSUSE -Patch0: support-meson0.59.patch -# PATCH-FIX-OPENSUSE -# TODO: Only apply to Leap when libfyaml >= 0.9.3 will be in factory -Patch1: 0001-Disable-failing-test-with-old-libfyaml.patch # PATCH-FIX-UPSTREAM -Patch2: 0001-Explicitly-add-fcfreetype.h-include-to-asc-font.c.patch +Patch0: 0001-yaml-Fix-potential-crashes-when-encountering-missing.patch +Patch1: 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch +Patch2: 0001-yaml-Ensure-version-relations-are-consistently-quote.patch +Patch3: 0001-trivial-yaml-Ensure-branding-color-values-are-also-c.patch BuildRequires: cairo-devel -BuildRequires: docbook-xsl-stylesheets -%if %{with gcc14} -BuildRequires: gcc14 -BuildRequires: gcc14-PIE -BuildRequires: gcc14-c++ -%endif +BuildRequires: docbook5-xsl-stylesheets %if %{with gcc15} BuildRequires: gcc15 BuildRequires: gcc15-PIE @@ -72,25 +64,28 @@ BuildRequires: itstool BuildRequires: meson >= 0.59 BuildRequires: pkgconfig +%if %{with vala} +BuildRequires: vala +%endif BuildRequires: xsltproc BuildRequires: pkgconfig(bash-completion) >= 2.0 BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glib-2.0) >= 2.62 BuildRequires: pkgconfig(gobject-introspection-1.0) +%if %{with libblake3} +BuildRequires: pkgconfig(libblake3) +%endif +BuildRequires: pkgconfig(Qt6Core) >= %{min_qt_version} +BuildRequires: pkgconfig(Qt6Test) >= %{min_qt_version} BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libfyaml) BuildRequires: pkgconfig(librsvg-2.0) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(pango) -BuildRequires: pkgconfig(Qt6Core) >= %{min_qt_version} -BuildRequires: pkgconfig(Qt6Test) >= %{min_qt_version} BuildRequires: pkgconfig(xmlb) >= 0.3.14 Recommends: curl -%if %{with vala} -BuildRequires: vala -%endif %description AppStream-Core makes it easy to access application information from the @@ -206,12 +201,14 @@ %else %define build_vapi false %endif +%if %{with libblake3} +%define blake3_support true +%else +%define blake3_support false +%endif -%define options -Dqt=true -Dcompose=true -Dvapi=%{build_vapi} +%define options -Dqt=true -Dcompose=true -Dvapi=%{build_vapi} -Dblake3-support=%{blake3_support} -%if %{with gcc14} -export CC=gcc-14 CXX=g++-14 -%endif %if %{with gcc15} export CC=gcc-15 CXX=g++-15 %endif ++++++ 0001-trivial-yaml-Ensure-branding-color-values-are-also-c.patch ++++++ >From 71711e6568be7c8df2af475f36b58b22440b7b6d Mon Sep 17 00:00:00 2001 From: Matthias Klumpp <[email protected]> Date: Sat, 18 Jul 2026 03:25:28 +0200 Subject: [PATCH] trivial: yaml: Ensure branding color values are also consistently quoted --- src/as-branding.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/as-branding.c b/src/as-branding.c index 877a0d8b..f6dc42b1 100644 --- a/src/as-branding.c +++ b/src/as-branding.c @@ -526,7 +526,7 @@ as_branding_emit_yaml (AsBranding *branding, AsContext *ctx, struct fy_emitter * "scheme-preference", as_color_scheme_kind_to_string (color->scheme_preference)); - as_yaml_emit_entry (emitter, "value", color->value); + as_yaml_emit_entry_str (emitter, "value", color->value); as_yaml_mapping_end (emitter); } -- 2.55.0 ++++++ 0001-yaml-Adjust-tests-and-emitter-to-work-around-libfyam.patch ++++++ >From 46cf6296663aabf82207a3191482a6ce5b94875f Mon Sep 17 00:00:00 2001 From: Matthias Klumpp <[email protected]> Date: Sat, 18 Jul 2026 02:51:51 +0200 Subject: [PATCH] yaml: Adjust tests and emitter to work around libfyaml string-quoting change Resolves: #756 --- meson.build | 2 ++ src/as-yaml.c | 9 ++++++--- src/as-yaml.h | 8 +++++--- tests/test-yamldata.c | 8 +++++++- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/meson.build b/meson.build index 5d989419..0d0704ca 100644 --- a/meson.build +++ b/meson.build @@ -221,8 +221,10 @@ gperf = find_program('gperf') fyaml_ver_parts = fyaml_dep.version().split('.') fyaml_major = fyaml_ver_parts[0].to_int() fyaml_minor = fyaml_ver_parts[1].to_int() +fyaml_micro = fyaml_ver_parts.length() > 2 ? fyaml_ver_parts[2].to_int() : 0 conf.set('_FYAML_MAJOR_VERSION', fyaml_major) conf.set('_FYAML_MINOR_VERSION', fyaml_minor) +conf.set('_FYAML_MICRO_VERSION', fyaml_micro) # configure config.h file (finally) configure_file(output: 'config.h', configuration: conf) diff --git a/src/as-yaml.c b/src/as-yaml.c index 522f646d..84e9efeb 100644 --- a/src/as-yaml.c +++ b/src/as-yaml.c @@ -392,11 +392,14 @@ as_yaml_emit_scalar_str (struct fy_emitter *emitter, const gchar *value) * is a good tradeoff for speed (comparing a bunch of bytes is very fast). * We use double-quoting, since English strings are more likely to contain apostrophes, so * double-quotes may lead to less escaping than single-quotes. - * By using FYSS_ANY, libfyaml will handle any dangerous internal punctuation ("=", "#", etc.) - * for us, so we only need to test for numerics and booleans. */ + * Leading punctuation would make libfyaml quote the string as well, but which quoting + * style it selects changed between versions, so we pin double-quoting ourselves to get + * deterministic output. + * By using FYSS_ANY otherwise, libfyaml will handle any dangerous internal punctuation + * ("=", "#", etc.) for us. */ if (as_is_empty (value)) style = FYSS_DOUBLE_QUOTED; - else if (g_ascii_isdigit (value[0]) || value[0] == '-' || value[0] == '+') + else if (g_ascii_isdigit (value[0]) || g_ascii_ispunct (value[0])) style = FYSS_DOUBLE_QUOTED; else if (as_str_equal0 (value, "true") || as_str_equal0 (value, "false")) style = FYSS_DOUBLE_QUOTED; diff --git a/src/as-yaml.h b/src/as-yaml.h index 3547ef30..b70e256e 100644 --- a/src/as-yaml.h +++ b/src/as-yaml.h @@ -39,14 +39,16 @@ AS_BEGIN_PRIVATE_DECLS * AS_FYAML_CHECK_VERSION: * @major: major version number * @minor: minor version number + * @micro: micro version number * * Check whether a libfyaml version equal to or greater than - * major.minor is present. + * major.minor.micro is present. */ -#define AS_FYAML_CHECK_VERSION(major, minor) \ +#define AS_FYAML_CHECK_VERSION(major, minor, micro) \ (_FYAML_MAJOR_VERSION > (major) || \ (_FYAML_MAJOR_VERSION == (major) && _FYAML_MINOR_VERSION > (minor)) || \ - (_FYAML_MAJOR_VERSION == (major) && _FYAML_MINOR_VERSION == (minor))) + (_FYAML_MAJOR_VERSION == (major) && _FYAML_MINOR_VERSION == (minor) && \ + _FYAML_MICRO_VERSION >= (micro))) /** * Helper macro for iterating through YAML sequences more compactly - we do this a lot! diff --git a/tests/test-yamldata.c b/tests/test-yamldata.c index 18f8cc95..6dca4f25 100644 --- a/tests/test-yamldata.c +++ b/tests/test-yamldata.c @@ -1445,7 +1445,7 @@ static const gchar *yamldata_screenshots = "Type: generic\n" "- environment: plasma:mobile\n" " caption:\n" " C: The app, on mobile!\n" -#if AS_FYAML_CHECK_VERSION(0, 9) +#if AS_FYAML_CHECK_VERSION(0, 9, 0) " thumbnails: []\n" #else " thumbnails:\n" @@ -2098,7 +2098,13 @@ test_yaml_write_weird_strings (void) " de: \"# why?\"\n" "Keywords:\n" " la:\n" + /* which quoting style libfyaml auto-selects for strings that contain + * special characters (but need quoting for other reasons) changed with 0.9.5 */ +#if AS_FYAML_CHECK_VERSION(0, 9, 5) + " - 'Auxilium: Help Contents=Adiuvantes Res'\n" +#else " - \"Auxilium: Help Contents=Adiuvantes Res\"\n" +#endif " eo:\n" " - \"2048\"\n" " C:\n" -- 2.55.0 ++++++ 0001-yaml-Ensure-version-relations-are-consistently-quote.patch ++++++ >From 564e1d8ca2a9260b97648166735831794e6bcc28 Mon Sep 17 00:00:00 2001 From: Matthias Klumpp <[email protected]> Date: Sat, 18 Jul 2026 03:11:15 +0200 Subject: [PATCH] yaml: Ensure version relations are consistently quoted --- src/as-relation.c | 2 +- tests/test-yamldata.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/as-relation.c b/src/as-relation.c index 6bde4f14..21e660d5 100644 --- a/src/as-relation.c +++ b/src/as-relation.c @@ -1308,7 +1308,7 @@ as_relation_emit_yaml (AsRelation *relation, AsContext *ctx, struct fy_emitter * "%s %s", as_relation_compare_to_symbols_string (priv->compare), priv->version); - as_yaml_emit_entry (emitter, "version", ver_str); + as_yaml_emit_entry_str (emitter, "version", ver_str); } as_yaml_mapping_end (emitter); diff --git a/tests/test-yamldata.c b/tests/test-yamldata.c index 6dca4f25..3e27f1f8 100644 --- a/tests/test-yamldata.c +++ b/tests/test-yamldata.c @@ -1058,7 +1058,7 @@ static const gchar *yamldata_relations_field = "Type: generic\n" "- kernel: Linux\n" " version: \">= 4.15\"\n" "- id: org.example.TestDependency\n" - " version: == 1.2\n" + " version: \"== 1.2\"\n" "- display_length: 4200\n" "- internet: always\n" " bandwidth_mbitps: 2\n" -- 2.55.0 ++++++ 0001-yaml-Fix-potential-crashes-when-encountering-missing.patch ++++++ >From ab744841dd5bb44b0c953f4a50ff1fa1e922de8a Mon Sep 17 00:00:00 2001 From: Matthias Klumpp <[email protected]> Date: Sat, 18 Jul 2026 01:12:15 +0200 Subject: [PATCH] yaml: Fix potential crashes when encountering missing relation entry values --- src/as-relation.c | 20 ++++++++++++-------- tests/test-yamldata.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/as-relation.c b/src/as-relation.c index eeae92ac..6bde4f14 100644 --- a/src/as-relation.c +++ b/src/as-relation.c @@ -1147,8 +1147,8 @@ as_relation_load_from_yaml (AsRelation *relation, if (g_strcmp0 (entry, "version") == 0) { g_autofree gchar *compare_str = NULL; const gchar *ver_str = as_yaml_node_get_value0 (pair); - if (strlen (ver_str) <= 2) - continue; /* this string is too short to contain any valid version */ + if (ver_str == NULL || strlen (ver_str) <= 2) + continue; /* missing or too short to contain any valid version */ compare_str = g_strndup (ver_str, 2); priv->compare = as_relation_compare_from_string (compare_str); g_free (priv->version); @@ -1158,9 +1158,10 @@ as_relation_load_from_yaml (AsRelation *relation, priv->display_side_kind = as_display_side_kind_from_string ( as_yaml_node_get_value0 (pair)); } else if (g_strcmp0 (entry, "bandwidth_mbitps") == 0) { - priv->bandwidth_mbitps = g_ascii_strtoll (as_yaml_node_get_value0 (pair), - NULL, - 10); + const gchar *bw_str = as_yaml_node_get_value0 (pair); + priv->bandwidth_mbitps = (bw_str == NULL) + ? 0 + : g_ascii_strtoll (bw_str, NULL, 10); } else { AsRelationItemKind kind = as_relation_item_kind_from_string (entry); if (kind == AS_RELATION_ITEM_KIND_UNKNOWN) { @@ -1173,6 +1174,8 @@ as_relation_load_from_yaml (AsRelation *relation, g_autofree gchar *value_str = NULL; gint value_px; const gchar *len_str = as_yaml_node_get_value0 (pair); + if (len_str == NULL) + len_str = ""; if (strlen (len_str) <= 2) { /* this string is too short to contain a comparison operator */ value_str = g_strdup (len_str); @@ -1196,9 +1199,10 @@ as_relation_load_from_yaml (AsRelation *relation, g_variant_new_int32 (value_px)); } else if (kind == AS_RELATION_ITEM_KIND_MEMORY) { - gint value_i = g_ascii_strtoll (as_yaml_node_get_value0 (pair), - NULL, - 10); + const gchar *mem_str = as_yaml_node_get_value0 (pair); + gint value_i = (mem_str == NULL) + ? 0 + : g_ascii_strtoll (mem_str, NULL, 10); as_relation_set_value_var (relation, g_variant_new_int32 (value_i)); } else if (kind == AS_RELATION_ITEM_KIND_CONTROL) { diff --git a/tests/test-yamldata.c b/tests/test-yamldata.c index 8d4ad896..18f8cc95 100644 --- a/tests/test-yamldata.c +++ b/tests/test-yamldata.c @@ -1300,6 +1300,34 @@ test_yaml_read_relations (void) g_assert_cmpint (as_relation_get_value_internet_bandwidth (relation), ==, 0); } +/* Relations with empty/absent scalar values. */ +static const gchar *yamldata_relations_empty = "Type: generic\n" + "ID: org.example.RelationsEmptyTest\n" + "Requires:\n" + "- id: org.example.TestDependency\n" + " version:\n" + "- memory:\n" + "- display_length:\n" + "- internet: always\n" + " bandwidth_mbitps:\n"; + +/** + * test_yaml_read_relations_empty: + * + * Ensure that relations with empty scalar values are parsed without crashing. + */ +static void +test_yaml_read_relations_empty (void) +{ + g_autoptr(AsComponent) cpt = NULL; + + cpt = as_yaml_test_read_data (yamldata_relations_empty, NULL); + g_assert_cmpstr (as_component_get_id (cpt), ==, "org.example.RelationsEmptyTest"); + + /* an empty version is ignored, so the ID relation carries no version constraint */ + g_assert_cmpint (as_component_get_requires (cpt)->len, ==, 4); +} + static const gchar *yamldata_agreements = "Type: generic\n" "ID: org.example.AgreementsTest\n" "Agreements:\n" @@ -2152,6 +2180,7 @@ main (int argc, char **argv) g_test_add_func ("/YAML/Write/Launchable", test_yaml_write_launchable); g_test_add_func ("/YAML/Read/Relations", test_yaml_read_relations); + g_test_add_func ("/YAML/Read/RelationsEmpty", test_yaml_read_relations_empty); g_test_add_func ("/YAML/Write/Relations", test_yaml_write_relations); g_test_add_func ("/YAML/Read/Agreements", test_yaml_read_agreements); -- 2.55.0 ++++++ AppStream-1.1.2.tar.xz -> AppStream-1.1.3.tar.xz ++++++ ++++ 50385 lines of diff (skipped)
