summaryrefslogtreecommitdiff
path: root/libappstream-glib/as-app-validate.c
diff options
context:
space:
mode:
authorOtto Urpelainen <oturpe@iki.fi>2021-05-13 23:21:34 +0300
committerRichard Hughes <richard@hughsie.com>2021-05-18 13:31:18 +0100
commitcf73b762112730acfd4f7b11594a30a2b49e2443 (patch)
tree1241d3198362ccf7ba65342e263228b33bd429c2 /libappstream-glib/as-app-validate.c
parent462dcd2b74dbeec45d900603320c8d9074f13cc9 (diff)
downloadappstream-glib-cf73b762112730acfd4f7b11594a30a2b49e2443.tar.gz
Add validation for duplicate license xml elements
AppStream license syntax allows constructs of form "LICENSE1 AND LICENSE2". It is possible to confuse this with writing multiple license xml elements in a metainfo file. In order to spot this type of error, duplicate detection is added for xml elements metadata_license and project_license.
Diffstat (limited to 'libappstream-glib/as-app-validate.c')
-rw-r--r--libappstream-glib/as-app-validate.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libappstream-glib/as-app-validate.c b/libappstream-glib/as-app-validate.c
index 60b46e5..7de7814 100644
--- a/libappstream-glib/as-app-validate.c
+++ b/libappstream-glib/as-app-validate.c
@@ -1525,6 +1525,16 @@ as_app_validate (AsApp *app, guint32 flags, GError **error)
AS_PROBLEM_KIND_TAG_INVALID,
"<updatecontact> should be <update_contact>");
}
+ if ((problems & AS_APP_PROBLEM_DUPLICATE_PROJECT_LICENSE) > 0) {
+ ai_app_validate_add(helper,
+ AS_PROBLEM_KIND_TAG_INVALID,
+ "<project_license> was duplicated");
+ }
+ if ((problems & AS_APP_PROBLEM_DUPLICATE_METADATA_LICENSE) > 0) {
+ ai_app_validate_add(helper,
+ AS_PROBLEM_KIND_TAG_INVALID,
+ "<metadata_license> was duplicated");
+ }
}
/* check invalid values */