summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2016-08-09 08:49:43 +0100
committerRichard Hughes <richard@hughsie.com>2016-08-09 11:10:01 +0100
commit2ff0073836439f1cc2d544b7afe779890ce68997 (patch)
treea8ca0b6db634ffaf9726f858417136312f2c0a00
parent6d2a83b382e7ea48d3235809687e72a1cc780030 (diff)
downloadappstream-glib-2ff0073836439f1cc2d544b7afe779890ce68997.tar.gz
Don't include the architecture in the unique ID
These are the same 'app' to the end user.
-rw-r--r--libappstream-glib/as-app.c10
-rw-r--r--libappstream-glib/as-self-test.c52
-rw-r--r--libappstream-glib/as-store.c8
-rw-r--r--libappstream-glib/as-utils-private.h2
-rw-r--r--libappstream-glib/as-utils.c5
-rw-r--r--libappstream-glib/as-utils.h1
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);