static gboolean as_app_validate_license (const gchar *license_text, GError **error) { guint i; g_auto(GStrv) licenses = NULL; licenses = as_utils_spdx_license_tokenize (license_text); if (licenses == NULL) { g_set_error (error, AS_APP_ERROR, AS_APP_ERROR_FAILED, "SPDX license text '%s' could not be parsed", license_text); return FALSE; } for (i = 0; licenses[i] != NULL; i++) { if (g_strcmp0 (licenses[i], "&") == 0 || g_strcmp0 (licenses[i], "|") == 0 || g_strcmp0 (licenses[i], "+") == 0 || g_strcmp0 (licenses[i], "(") == 0 || g_strcmp0 (licenses[i], ")") == 0) continue; if (licenses[i][0] != '@' || !as_utils_is_spdx_license_id (licenses[i] + 1)) { g_set_error (error, AS_APP_ERROR, AS_APP_ERROR_FAILED, "SPDX ID '%s' unknown", licenses[i]); return FALSE; } } return TRUE; }
/** * as_app_validate_license: **/ static gboolean as_app_validate_license (const gchar *license_text, GError **error) { guint i; _cleanup_strv_free_ gchar **licenses = NULL; licenses = as_utils_spdx_license_tokenize (license_text); for (i = 0; licenses[i] != NULL; i++) { if (g_str_has_prefix (licenses[i], "#")) continue; if (!as_utils_is_spdx_license_id (licenses[i])) { g_set_error (error, AS_APP_ERROR, AS_APP_ERROR_FAILED, "SPDX ID '%s' unknown", licenses[i]); return FALSE; } } return TRUE; }