From ac16c7e3b75346a71987bd1d6bb3eb495e727dda Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Fri, 20 Apr 2018 11:42:07 +0100 Subject: [PATCH] New upstream release --- .gitignore | 1 + 0001-Add-as_utils_unique_id_match.patch | 170 ------------------ ...Veto-apps-that-have-empty-OnlyShowIn.patch | 34 ---- libappstream-glib.spec | 17 +- sources | 2 +- 5 files changed, 13 insertions(+), 211 deletions(-) delete mode 100644 0001-Add-as_utils_unique_id_match.patch delete mode 100644 0001-Veto-apps-that-have-empty-OnlyShowIn.patch diff --git a/.gitignore b/.gitignore index 6963140..b4ae0f0 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ /appstream-glib-0.7.5.tar.xz /appstream-glib-0.7.6.tar.xz /appstream-glib-0.7.7.tar.xz +/appstream-glib-0.7.8.tar.xz diff --git a/0001-Add-as_utils_unique_id_match.patch b/0001-Add-as_utils_unique_id_match.patch deleted file mode 100644 index 23c58a0..0000000 --- a/0001-Add-as_utils_unique_id_match.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 911ef7fb4b3bdda8acd6cf57715b9020c65e274c Mon Sep 17 00:00:00 2001 -From: Richard Hughes -Date: Thu, 15 Mar 2018 10:10:54 +0000 -Subject: [PATCH] Add as_utils_unique_id_match() - -This allows us to whitelist the sections that have to match. ---- - libappstream-glib/as-self-test.c | 16 +++++++++++++++ - libappstream-glib/as-utils.c | 42 +++++++++++++++++++++++++++++++++------- - libappstream-glib/as-utils.h | 27 ++++++++++++++++++++++++++ - 3 files changed, 78 insertions(+), 7 deletions(-) - -diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c -index a6edd49186a7..8f4e6e9a7c69 100644 ---- a/libappstream-glib/as-self-test.c -+++ b/libappstream-glib/as-self-test.c -@@ -5249,6 +5249,22 @@ as_test_utils_unique_id_func (void) - } - duration_ns = g_timer_elapsed (timer, NULL) * 1000000000.f; - g_print ("%.0f ns: ", duration_ns / (loops * 4)); -+ -+ /* allow ignoring using bitfields */ -+ g_assert (as_utils_unique_id_match ("aa/bb/cc/dd/ee/ff", -+ "aa/bb/cc/dd/ee/XXXXXXXXXXXXX", -+ AS_UNIQUE_ID_MATCH_FLAG_SCOPE | -+ AS_UNIQUE_ID_MATCH_FLAG_BUNDLE_KIND | -+ AS_UNIQUE_ID_MATCH_FLAG_ORIGIN | -+ AS_UNIQUE_ID_MATCH_FLAG_KIND | -+ AS_UNIQUE_ID_MATCH_FLAG_ID)); -+ g_assert (as_utils_unique_id_match ("XXXXXXXXXXXXX/bb/cc/dd/ee/ff", -+ "aa/bb/cc/dd/ee/ff", -+ AS_UNIQUE_ID_MATCH_FLAG_BUNDLE_KIND | -+ AS_UNIQUE_ID_MATCH_FLAG_ORIGIN | -+ AS_UNIQUE_ID_MATCH_FLAG_KIND | -+ AS_UNIQUE_ID_MATCH_FLAG_ID | -+ AS_UNIQUE_ID_MATCH_FLAG_BRANCH)); - } - - static void -diff --git a/libappstream-glib/as-utils.c b/libappstream-glib/as-utils.c -index b4e2d8c8aed7..eab324203c38 100644 ---- a/libappstream-glib/as-utils.c -+++ b/libappstream-glib/as-utils.c -@@ -1877,20 +1877,23 @@ as_utils_unique_id_is_wildcard_part (const gchar *str, guint len) - } - - /** -- * as_utils_unique_id_equal: -+ * as_utils_unique_id_match: - * @unique_id1: a unique ID - * @unique_id2: another unique ID -+ * @match_flags: a #AsUniqueIdMatchFlags bitfield, e.g. %AS_UNIQUE_ID_MATCH_FLAG_ID - * -- * Checks two unique IDs for equality allowing globs to match. -+ * Checks two unique IDs for equality allowing globs to match, whilst also -+ * allowing clients to whitelist sections that have to match. - * - * Returns: %TRUE if the ID's should be considered equal. - * -- * Since: 0.6.1 -+ * Since: 0.7.8 - */ - gboolean --as_utils_unique_id_equal (const gchar *unique_id1, const gchar *unique_id2) -+as_utils_unique_id_match (const gchar *unique_id1, -+ const gchar *unique_id2, -+ AsUniqueIdMatchFlags match_flags) - { -- guint i; - guint last1 = 0; - guint last2 = 0; - guint len1; -@@ -1906,7 +1909,7 @@ as_utils_unique_id_equal (const gchar *unique_id1, const gchar *unique_id2) - return g_strcmp0 (unique_id1, unique_id2) == 0; - - /* look at each part */ -- for (i = 0; i < AS_UTILS_UNIQUE_ID_PARTS; i++) { -+ for (guint i = 0; i < AS_UTILS_UNIQUE_ID_PARTS; i++) { - const gchar *tmp1 = unique_id1 + last1; - const gchar *tmp2 = unique_id2 + last2; - -@@ -1915,7 +1918,8 @@ as_utils_unique_id_equal (const gchar *unique_id1, const gchar *unique_id2) - len2 = as_utils_unique_id_find_part (tmp2); - - /* either string was a wildcard */ -- if (!as_utils_unique_id_is_wildcard_part (tmp1, len1) && -+ if (match_flags & (1 << i) && -+ !as_utils_unique_id_is_wildcard_part (tmp1, len1) && - !as_utils_unique_id_is_wildcard_part (tmp2, len2)) { - /* are substrings the same */ - if (len1 != len2) -@@ -1931,6 +1935,30 @@ as_utils_unique_id_equal (const gchar *unique_id1, const gchar *unique_id2) - return TRUE; - } - -+/** -+ * as_utils_unique_id_equal: -+ * @unique_id1: a unique ID -+ * @unique_id2: another unique ID -+ * -+ * Checks two unique IDs for equality allowing globs to match. -+ * -+ * Returns: %TRUE if the ID's should be considered equal. -+ * -+ * Since: 0.6.1 -+ */ -+gboolean -+as_utils_unique_id_equal (const gchar *unique_id1, const gchar *unique_id2) -+{ -+ return as_utils_unique_id_match (unique_id1, -+ unique_id2, -+ AS_UNIQUE_ID_MATCH_FLAG_SCOPE | -+ AS_UNIQUE_ID_MATCH_FLAG_BUNDLE_KIND | -+ AS_UNIQUE_ID_MATCH_FLAG_ORIGIN | -+ AS_UNIQUE_ID_MATCH_FLAG_KIND | -+ AS_UNIQUE_ID_MATCH_FLAG_ID | -+ AS_UNIQUE_ID_MATCH_FLAG_BRANCH); -+} -+ - /** - * as_utils_unique_id_hash: - * @unique_id: a unique ID -diff --git a/libappstream-glib/as-utils.h b/libappstream-glib/as-utils.h -index a8d56a015c1e..ecb7cdda35b1 100644 ---- a/libappstream-glib/as-utils.h -+++ b/libappstream-glib/as-utils.h -@@ -95,6 +95,30 @@ typedef enum { - AS_VERSION_PARSE_FLAG_LAST - } AsVersionParseFlag; - -+/** -+ * AsUniqueIdMatchFlags: -+ * @AS_UNIQUE_ID_MATCH_FLAG_NONE: No flags set -+ * @AS_UNIQUE_ID_MATCH_FLAG_SCOPE: Scope, e.g. a #AsAppScope -+ * @AS_UNIQUE_ID_MATCH_FLAG_BUNDLE_KIND: Bundle kind, e.g. a #AsBundleKind -+ * @AS_UNIQUE_ID_MATCH_FLAG_ORIGIN: Origin -+ * @AS_UNIQUE_ID_MATCH_FLAG_KIND: Component kind, e.g. a #AsAppKind -+ * @AS_UNIQUE_ID_MATCH_FLAG_ID: Component AppStream ID -+ * @AS_UNIQUE_ID_MATCH_FLAG_BRANCH: Branch -+ * -+ * The flags used when matching unique IDs. -+ **/ -+typedef enum { -+ AS_UNIQUE_ID_MATCH_FLAG_NONE = 0, -+ AS_UNIQUE_ID_MATCH_FLAG_SCOPE = 1 << 0, -+ AS_UNIQUE_ID_MATCH_FLAG_BUNDLE_KIND = 1 << 1, /* Since: 0.7.8 */ -+ AS_UNIQUE_ID_MATCH_FLAG_ORIGIN = 1 << 2, /* Since: 0.7.8 */ -+ AS_UNIQUE_ID_MATCH_FLAG_KIND = 1 << 3, /* Since: 0.7.8 */ -+ AS_UNIQUE_ID_MATCH_FLAG_ID = 1 << 4, /* Since: 0.7.8 */ -+ AS_UNIQUE_ID_MATCH_FLAG_BRANCH = 1 << 5, /* Since: 0.7.8 */ -+ /*< private >*/ -+ AS_UNIQUE_ID_MATCH_FLAG_LAST -+} AsUniqueIdMatchFlags; -+ - GQuark as_utils_error_quark (void); - gboolean as_utils_is_stock_icon_name (const gchar *name); - gboolean as_utils_is_spdx_license_id (const gchar *license_id); -@@ -146,6 +170,9 @@ gchar *as_utils_unique_id_build (AsAppScope scope, - const gchar *branch); - gboolean as_utils_unique_id_equal (const gchar *unique_id1, - const gchar *unique_id2); -+gboolean as_utils_unique_id_match (const gchar *unique_id1, -+ const gchar *unique_id2, -+ AsUniqueIdMatchFlags match_flags); - gboolean as_utils_unique_id_valid (const gchar *unique_id); - guint as_utils_unique_id_hash (const gchar *unique_id); - gchar *as_utils_appstream_id_build (const gchar *str); --- -2.16.2 - diff --git a/0001-Veto-apps-that-have-empty-OnlyShowIn.patch b/0001-Veto-apps-that-have-empty-OnlyShowIn.patch deleted file mode 100644 index dd4967f..0000000 --- a/0001-Veto-apps-that-have-empty-OnlyShowIn.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5a7d76de734b049192b5b992a1e54117b98de733 Mon Sep 17 00:00:00 2001 -From: Kalev Lember -Date: Tue, 17 Apr 2018 13:14:19 +0200 -Subject: [PATCH] Veto apps that have empty OnlyShowIn= - -Apps that have OnlyShowIn= are equivalent to NoDisplay=True (gnome-shell -doesn't show them). Veto such apps to avoid them inadvertently showing -up in gnome-software and to match gnome-shell behaviour. - -https://bugzilla.redhat.com/show_bug.cgi?id=1567689 -https://gitlab.gnome.org/GNOME/gnome-software/issues/367 ---- - libappstream-glib/as-app-desktop.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/libappstream-glib/as-app-desktop.c b/libappstream-glib/as-app-desktop.c -index fadf4ab006ec..ee5742dac663 100644 ---- a/libappstream-glib/as-app-desktop.c -+++ b/libappstream-glib/as-app-desktop.c -@@ -324,7 +324,10 @@ as_app_parse_file_key (AsApp *app, - G_KEY_FILE_DESKTOP_GROUP, - key, - NULL, NULL); -- if (g_strv_length (list) == 1) -+ /* "OnlyShowIn=" is the same as "NoDisplay=True" */ -+ if (g_strv_length (list) == 0) -+ as_app_add_veto (app, "Empty OnlyShowIn"); -+ else if (g_strv_length (list) == 1) - as_app_set_project_group (app, list[0]); - - /* Name */ --- -2.17.0 - diff --git a/libappstream-glib.spec b/libappstream-glib.spec index a0193f7..a5e7fb8 100644 --- a/libappstream-glib.spec +++ b/libappstream-glib.spec @@ -5,16 +5,12 @@ Summary: Library for AppStream metadata Name: libappstream-glib -Version: 0.7.7 -Release: 3%{?dist} +Version: 0.7.8 +Release: 1%{?dist} License: LGPLv2+ URL: http://people.freedesktop.org/~hughsient/appstream-glib/ Source0: http://people.freedesktop.org/~hughsient/appstream-glib/releases/appstream-glib-%{version}.tar.xz -# Backported from upstream -Patch0: 0001-Add-as_utils_unique_id_match.patch -Patch1: 0001-Veto-apps-that-have-empty-OnlyShowIn.patch - BuildRequires: glib2-devel >= %{glib2_version} BuildRequires: docbook-utils BuildRequires: gtk-doc @@ -149,6 +145,15 @@ GLib headers and libraries for appstream-builder. %{_datadir}/gir-1.0/AppStreamBuilder-1.0.gir %changelog +* Fri Apr 20 2018 Richard Hughes 0.7.8-1 +- New upstream release +- Add as_version_string() for fwupd +- Add support for component agreements +- Correctly compare version numbers like '1.2.3' and '1.2.3a' +- Don't include the path component in the name when parsing the package filename +- If the launchable is specified don't guess it when composing +- Never add more than one component to the AppStream store when composing + * Tue Apr 17 2018 Kalev Lember 0.7.7-3 - Veto apps that have empty OnlyShowIn= (#1568492) diff --git a/sources b/sources index 55b8923..1fba2f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (appstream-glib-0.7.7.tar.xz) = ba0cab57e41af8d7ba9dc0b5eaec665715c923ce1767668d2a2c61ab58e7949f1e12cc2734b5c811f25c642d966b7dca90ff5a13997acd73463cbe64edf231d6 +SHA512 (appstream-glib-0.7.8.tar.xz) = 2e451e007862558475feae918afac570c1124bfcf6c1db0332abf4311340538917c7aa51dda5443d59b32540fabde90161a4e5137f1cd187327799db005376a1