#include <err.h>
#include <ccan/talloc/talloc.h>
#include <ccan/str/str.h>
-#include <ccan/str_talloc/str_talloc.h>
-
-static struct doc_section *find_license_tag(const struct manifest *m)
-{
- struct doc_section *d;
-
- list_for_each(m->info_file->doc_sections, d, list) {
- if (!streq(d->function, m->basename))
- continue;
- if (streq(d->type, "license"))
- return d;
- }
- return NULL;
-}
-
-static enum license which_license(struct doc_section *d)
-{
- if (strstarts(d->lines[0], "GPL")) {
- if (strchr(d->lines[0], '3'))
- return LICENSE_GPLv3;
- else if (strchr(d->lines[0], '2')) {
- if (strreg(NULL, d->lines[0], "or (any )?later", NULL))
- return LICENSE_GPLv2_PLUS;
- else
- return LICENSE_GPLv2;
- }
- return LICENSE_GPL;
- }
-
- if (strstarts(d->lines[0], "LGPL")) {
- if (strchr(d->lines[0], '3'))
- return LICENSE_LGPLv3;
- else if (strchr(d->lines[0], '2')) {
- if (strreg(NULL, d->lines[0], "or (any )?later", NULL))
- return LICENSE_LGPLv2_PLUS;
- else
- return LICENSE_LGPLv2;
- }
- return LICENSE_LGPL;
- }
- if (streq(d->lines[0], "BSD-MIT")
- || streq(d->lines[0], "MIT"))
- return LICENSE_MIT;
- if (streq(d->lines[0], "BSD (3 clause)"))
- return LICENSE_BSD;
- if (strreg(NULL, d->lines[0], "[Pp]ublic [Dd]omain"))
- return LICENSE_PUBLIC_DOMAIN;
-
- return LICENSE_UNKNOWN;
-}
static const char *expected_link(enum license license)
{
}
m->license = which_license(d);
+ if (m->license == LICENSE_UNKNOWN) {
+ score_file_error(score, m->info_file, d->srcline,
+ "WARNING: unknown License: in _info: %s",
+ d->lines[0]);
+ /* FIXME: For historical reasons, don't fail here. */
+ score->pass = true;
+ return;
+ }
/* If they have a license tag at all, we pass. */
score->pass = true;