summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominique Leuenberger <dimstar@opensuse.org>2016-05-13 13:37:27 +0200
committerDominique Leuenberger <dimstar@opensuse.org>2016-05-13 13:45:46 +0200
commitafcdcf01cf5d5a3476968da01487b402ec6d70f8 (patch)
tree67161fa4da1e152cc78368e758dbc4b15489254b
parenta852822fe2037c6b9c43984b5bd38c952f3a6abe (diff)
downloadappstream-glib-afcdcf01cf5d5a3476968da01487b402ec6d70f8.tar.gz
Addons can have duplcate names
It's not uncommon for addons to be called after the functionality they provide to the application they extend (e.g. "Spell checker").
-rw-r--r--libappstream-glib/as-store.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/libappstream-glib/as-store.c b/libappstream-glib/as-store.c
index b24c9d8..5268510 100644
--- a/libappstream-glib/as-store.c
+++ b/libappstream-glib/as-store.c
@@ -3044,22 +3044,24 @@ as_store_validate (AsStore *store, AsAppValidateFlags flags, GError **error)
}
/* check uniqueness */
- app_key = as_store_get_unique_name_app_key (app);
- if (app_key != NULL) {
- app_tmp = g_hash_table_lookup (hash_names, app_key);
- if (app_tmp != NULL) {
- as_store_validate_add (probs,
- AS_PROBLEM_KIND_DUPLICATE_DATA,
- "%s[%s] as the same name as %s[%s]: %s",
- as_app_get_id (app),
- as_app_get_pkgname_default (app),
- as_app_get_id (app_tmp),
- as_app_get_pkgname_default (app_tmp),
- app_key);
- } else {
- g_hash_table_insert (hash_names,
- g_strdup (app_key),
- g_object_ref (app));
+ if (as_app_get_kind (app) != AS_APP_KIND_ADDON) {
+ app_key = as_store_get_unique_name_app_key (app);
+ if (app_key != NULL) {
+ app_tmp = g_hash_table_lookup (hash_names, app_key);
+ if (app_tmp != NULL) {
+ as_store_validate_add (probs,
+ AS_PROBLEM_KIND_DUPLICATE_DATA,
+ "%s[%s] as the same name as %s[%s]: %s",
+ as_app_get_id (app),
+ as_app_get_pkgname_default (app),
+ as_app_get_id (app_tmp),
+ as_app_get_pkgname_default (app_tmp),
+ app_key);
+ } else {
+ g_hash_table_insert (hash_names,
+ g_strdup (app_key),
+ g_object_ref (app));
+ }
}
}
}