diff options
author | Richard Hughes <richard@hughsie.com> | 2016-08-09 08:49:43 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2016-08-09 11:10:01 +0100 |
commit | 2ff0073836439f1cc2d544b7afe779890ce68997 (patch) | |
tree | a8ca0b6db634ffaf9726f858417136312f2c0a00 /libappstream-glib | |
parent | 6d2a83b382e7ea48d3235809687e72a1cc780030 (diff) | |
download | appstream-glib-2ff0073836439f1cc2d544b7afe779890ce68997.tar.gz |
Don't include the architecture in the unique ID
These are the same 'app' to the end user.
Diffstat (limited to 'libappstream-glib')
-rw-r--r-- | libappstream-glib/as-app.c | 10 | ||||
-rw-r--r-- | libappstream-glib/as-self-test.c | 52 | ||||
-rw-r--r-- | libappstream-glib/as-store.c | 8 | ||||
-rw-r--r-- | libappstream-glib/as-utils-private.h | 2 | ||||
-rw-r--r-- | libappstream-glib/as-utils.c | 5 | ||||
-rw-r--r-- | libappstream-glib/as-utils.h | 1 |
6 files changed, 33 insertions, 45 deletions
diff --git a/libappstream-glib/as-app.c b/libappstream-glib/as-app.c index 5ba2254..ebbb132 100644 --- a/libappstream-glib/as-app.c +++ b/libappstream-glib/as-app.c @@ -548,8 +548,7 @@ as_app_get_bundle_kind (AsApp *app) * 3. origin, e.g. `fedora` or `gnome-apps-nightly` * 4. kind, e.g. `app` or `runtime` * 5. AppStream ID, e.g. `gimp.desktop` - * 6. arch, e.g. `x86_64` or `i386` - * 7. branch, e.g. `stable` or `master` + * 6. branch, e.g. `stable` or `master` * * Returns: %TRUE if the applications are equal * @@ -591,7 +590,7 @@ as_app_equal (AsApp *app1, AsApp *app2) * * Gets the unique ID value to represent the component. * - * Returns: the unique ID, e.g. `system/package/fedora/desktop/gimp.desktop/i386/master` + * Returns: the unique ID, e.g. `system/package/fedora/desktop/gimp.desktop/master` * * Since: 0.6.1 **/ @@ -606,18 +605,13 @@ as_app_get_unique_id (AsApp *app) NULL, priv->kind, as_app_get_id_no_prefix (app), - NULL, NULL); } else { - const gchar *arch_str = NULL; - if (priv->architectures->len == 1) - arch_str = g_ptr_array_index (priv->architectures, 0); priv->unique_id = as_utils_unique_id_build (priv->scope, as_app_get_bundle_kind (app), priv->origin, priv->kind, as_app_get_id_no_prefix (app), - arch_str, priv->branch); } } diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index e6dbff2..172628d 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -1537,7 +1537,7 @@ as_test_app_func (void) /* verify */ g_assert_cmpstr (as_app_get_id (app), ==, "org.gnome.Software.desktop"); g_assert_cmpstr (as_app_get_id_filename (app), ==, "org.gnome.Software"); - g_assert_cmpstr (as_app_get_unique_id (app), ==, "*/flatpak/*/desktop/org.gnome.Software.desktop/i386/master"); + g_assert_cmpstr (as_app_get_unique_id (app), ==, "*/flatpak/*/desktop/org.gnome.Software.desktop/master"); g_assert_cmpstr (as_app_get_name (app, "pl"), ==, "Oprogramowanie"); g_assert_cmpstr (as_app_get_comment (app, NULL), ==, "Application manager"); g_assert_cmpstr (as_app_get_description (app, NULL), ==, "<p>Software allows you to find stuff</p>"); @@ -2989,19 +2989,19 @@ as_test_store_prefix_func (void) "flatpak-user:org.gnome.Software.desktop"); /* exact unique match */ - app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/test/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/test/*", AS_STORE_SEARCH_FLAG_NONE); g_assert (app_tmp == NULL); - app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/test/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/test/*", AS_STORE_SEARCH_FLAG_USE_WILDCARDS); g_assert (app_tmp == NULL); - app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/org.gnome.Software.desktop/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/org.gnome.Software.desktop/*", AS_STORE_SEARCH_FLAG_NONE); g_assert (app_tmp != NULL); - app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/org.gnome.Software.desktop/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/org.gnome.Software.desktop/*", AS_STORE_SEARCH_FLAG_USE_WILDCARDS); g_assert (app_tmp != NULL); - app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/*/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/*/*/*/*/*", AS_STORE_SEARCH_FLAG_USE_WILDCARDS); g_assert (app_tmp != NULL); } @@ -3027,10 +3027,10 @@ as_test_store_wildcard_func (void) as_store_add_app (store, app2); /* check negative match */ - app_tmp = as_store_get_app_by_unique_id (store, "*/*/xxx/*/gimp.desktop/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/*/xxx/*/gimp.desktop/*", AS_STORE_SEARCH_FLAG_USE_WILDCARDS); g_assert (app_tmp == NULL); - app_tmp = as_store_get_app_by_unique_id (store, "*/snap/*/*/gimp.desktop/*/*", + app_tmp = as_store_get_app_by_unique_id (store, "*/snap/*/*/gimp.desktop/*", AS_STORE_SEARCH_FLAG_USE_WILDCARDS); g_assert (app_tmp == NULL); } @@ -3071,7 +3071,7 @@ as_test_store_flatpak_func (void) g_assert_cmpint (apps->len, ==, 1); app = g_ptr_array_index (apps, 0); g_assert_cmpstr (as_app_get_id (app), ==, "flatpak:test.desktop"); - g_assert_cmpstr (as_app_get_unique_id (app), ==, "system/flatpak/remote-name/desktop/test.desktop/x86_64/master"); + g_assert_cmpstr (as_app_get_unique_id (app), ==, "system/flatpak/remote-name/desktop/test.desktop/master"); g_assert_cmpstr (as_app_get_id_filename (app), ==, "test"); g_assert_cmpstr (as_app_get_origin (app), ==, "remote-name"); g_assert_cmpstr (as_app_get_source_file (app), ==, filename); @@ -3457,16 +3457,16 @@ as_test_store_unique_func (void) g_assert_cmpint (apps->len, ==, 3); app = g_ptr_array_index (apps, 0); g_assert_cmpstr (as_app_get_unique_id (app), ==, - "*/package/*/desktop/org.gnome.Software.desktop/*/*"); + "*/package/*/desktop/org.gnome.Software.desktop/*"); app = g_ptr_array_index (apps, 1); g_assert_cmpstr (as_app_get_unique_id (app), ==, - "*/flatpak/*/desktop/org.gnome.Software.desktop/i386/3-18"); + "*/flatpak/*/desktop/org.gnome.Software.desktop/3-18"); app = g_ptr_array_index (apps, 2); g_assert_cmpstr (as_app_get_unique_id (app), ==, - "*/flatpak/*/desktop/org.gnome.Software.desktop/i386/master"); + "*/flatpak/*/desktop/org.gnome.Software.desktop/master"); app = as_store_get_app_by_unique_id (store, "*/flatpak/*/desktop/" - "org.gnome.Software.desktop/i386/master", + "org.gnome.Software.desktop/master", AS_STORE_SEARCH_FLAG_NONE); g_assert (app != NULL); } @@ -5059,16 +5059,16 @@ as_test_utils_unique_id_func (void) g_assert (!as_utils_unique_id_equal ("foo/bar/baz", "foo/bar")); for (i = 0; i < loops; i++) { - g_assert (as_utils_unique_id_equal ("aa/bb/cc/dd/ee/ff/gg", - "aa/bb/cc/dd/ee/ff/gg")); - g_assert (as_utils_unique_id_equal ("aa/bb/cc/dd/ee/ff/gg", - "aa/*/cc/dd/ee/ff/gg")); - g_assert (as_utils_unique_id_equal ("user/flatpak/utopia/desktop/gimp.desktop/i386/master", - "*/*/*/*/*/*/*")); - g_assert (!as_utils_unique_id_equal ("zz/zz/zz/zz/zz/zz/zz", - "aa/bb/cc/dd/ee/ff/gg")); - g_assert (!as_utils_unique_id_equal ("user/*/*/shell-extension/gmail_notify@jablona123.pl.shell-extension/*/*", - "*/*/*/desktop/org.gnome.accerciser.desktop/*/*")); + g_assert (as_utils_unique_id_equal ("aa/bb/cc/dd/ee/ff", + "aa/bb/cc/dd/ee/ff")); + g_assert (as_utils_unique_id_equal ("aa/bb/cc/dd/ee/ff", + "aa/*/cc/dd/ee/ff")); + g_assert (as_utils_unique_id_equal ("user/flatpak/utopia/desktop/gimp.desktop/master", + "*/*/*/*/*/*")); + g_assert (!as_utils_unique_id_equal ("zz/zz/zz/zz/zz/zz", + "aa/bb/cc/dd/ee/ff")); + g_assert (!as_utils_unique_id_equal ("user/*/*/shell-extension/gmail_notify@jablona123.pl.shell-extension/*", + "*/*/*/desktop/org.gnome.accerciser.desktop/*")); } duration_ns = g_timer_elapsed (timer, NULL) * 1000000000.f; g_print ("%.0f ns: ", duration_ns / (loops * 4)); @@ -5094,7 +5094,7 @@ as_test_store_merge_func (void) as_app_set_source_kind (app1, AS_APP_SOURCE_KIND_APPDATA); as_app_add_pkgname (app1, "gnome-software"); g_assert_cmpstr (as_app_get_unique_id (app1), ==, - "*/package/*/*/org.gnome.Software.desktop/*/master"); + "*/package/*/*/org.gnome.Software.desktop/master"); as_store_add_app (store, app1); /* add merge component */ @@ -5108,7 +5108,7 @@ as_test_store_merge_func (void) as_app_set_source_file (app_merge, "DO-NOT-SUBSUME.xml"); as_store_add_app (store, app_merge); g_assert_cmpstr (as_app_get_unique_id (app_merge), ==, - "*/*/*/desktop/org.gnome.Software.desktop/*/*"); + "*/*/*/desktop/org.gnome.Software.desktop/*"); /* add app */ app2 = as_app_new (); @@ -5117,7 +5117,7 @@ as_test_store_merge_func (void) as_app_set_source_kind (app2, AS_APP_SOURCE_KIND_APPSTREAM); as_app_add_pkgname (app2, "gnome-software"); g_assert_cmpstr (as_app_get_unique_id (app2), ==, - "*/package/*/*/org.gnome.Software.desktop/*/stable"); + "*/package/*/*/org.gnome.Software.desktop/stable"); as_store_add_app (store, app2); /* verify that both apps have the category */ diff --git a/libappstream-glib/as-store.c b/libappstream-glib/as-store.c index 732d1df..f11b197 100644 --- a/libappstream-glib/as-store.c +++ b/libappstream-glib/as-store.c @@ -488,9 +488,7 @@ _as_app_new_from_unique_id (const gchar *unique_id) if (g_strcmp0 (split[4], AS_APP_UNIQUE_WILDCARD) != 0) as_app_set_id (app, split[4]); if (g_strcmp0 (split[5], AS_APP_UNIQUE_WILDCARD) != 0) - as_app_add_arch (app, split[5]); - if (g_strcmp0 (split[6], AS_APP_UNIQUE_WILDCARD) != 0) - as_app_set_branch (app, split[6]); + as_app_set_branch (app, split[5]); return g_steal_pointer (&app); } @@ -513,7 +511,7 @@ as_store_get_app_by_app (AsStore *store, AsApp *app) * as_store_get_app_by_unique_id: * @store: a #AsStore instance. * @unique_id: the application unique ID, e.g. - * `user/flatpak/gnome-apps-nightly/app/gimp.desktop/i386/master` + * `user/flatpak/gnome-apps-nightly/app/gimp.desktop/master` * @search_flags: the search flags, e.g. %AS_STORE_SEARCH_FLAG_USE_WILDCARDS * * Finds an application in the store by matching the unique ID. @@ -537,7 +535,7 @@ as_store_get_app_by_unique_id (AsStore *store, if ((search_flags & AS_STORE_SEARCH_FLAG_USE_WILDCARDS) == 0) return g_hash_table_lookup (priv->hash_unique_id, unique_id); - /* create virtual app using scope/system/origin/kind/id/arch/branch */ + /* create virtual app using scope/system/origin/kind/id/branch */ app_tmp = _as_app_new_from_unique_id (unique_id); if (app_tmp == NULL) return NULL; diff --git a/libappstream-glib/as-utils-private.h b/libappstream-glib/as-utils-private.h index a3bef1a..5e16993 100644 --- a/libappstream-glib/as-utils-private.h +++ b/libappstream-glib/as-utils-private.h @@ -32,7 +32,7 @@ G_BEGIN_DECLS -#define AS_UTILS_UNIQUE_ID_PARTS 7 +#define AS_UTILS_UNIQUE_ID_PARTS 6 const gchar *as_hash_lookup_by_locale (GHashTable *hash, const gchar *locale); diff --git a/libappstream-glib/as-utils.c b/libappstream-glib/as-utils.c index ece8c3e..fd0a920 100644 --- a/libappstream-glib/as-utils.c +++ b/libappstream-glib/as-utils.c @@ -1721,7 +1721,6 @@ _as_utils_fix_unique_id_part (const gchar *tmp) * @origin: Origin, e.g. 'fedora' or 'gnome-apps-nightly' * @kind: #AsAppKind, e.g. %AS_APP_KIND_DESKTOP * @id: AppStream ID, e.g. 'gimp.desktop' - * @arch: Arch, e.g. 'x86_64' or 'i386' * @branch: Branch, e.g. '3-20' or 'master' * * Builds a valid unique ID using available data. @@ -1736,7 +1735,6 @@ as_utils_unique_id_build (AsAppScope scope, const gchar *origin, AsAppKind kind, const gchar *id, - const gchar *arch, const gchar *branch) { const gchar *bundle_str = NULL; @@ -1751,13 +1749,12 @@ as_utils_unique_id_build (AsAppScope scope, scope_str = as_app_scope_to_string (scope); if (bundle_kind != AS_BUNDLE_KIND_UNKNOWN) bundle_str = as_bundle_kind_to_string (bundle_kind); - return g_strdup_printf ("%s/%s/%s/%s/%s/%s/%s", + return g_strdup_printf ("%s/%s/%s/%s/%s/%s", _as_utils_fix_unique_id_part (scope_str), _as_utils_fix_unique_id_part (bundle_str), _as_utils_fix_unique_id_part (origin), _as_utils_fix_unique_id_part (kind_str), _as_utils_fix_unique_id_part (id), - _as_utils_fix_unique_id_part (arch), _as_utils_fix_unique_id_part (branch)); } diff --git a/libappstream-glib/as-utils.h b/libappstream-glib/as-utils.h index 95fdc47..e38c412 100644 --- a/libappstream-glib/as-utils.h +++ b/libappstream-glib/as-utils.h @@ -137,7 +137,6 @@ gchar *as_utils_unique_id_build (AsAppScope scope, const gchar *origin, AsAppKind kind, const gchar *id, - const gchar *arch, const gchar *branch); gboolean as_utils_unique_id_equal (const gchar *unique_id1, const gchar *unique_id2); |