Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b6e8ac9 authored by Joe Perches's avatar Joe Perches Committed by Linus Torvalds
Browse files

checkpatch: validate SPDX license with spdxcheck.py

Use the existing scripts/spdxcheck.py to validate any
SPDX-License-Identifier found in line 1 or 2 of patches or files.

Miscellanea:

o Properly indent the existing SPDX-License-Identifier block.

Link: http://lkml.kernel.org/r/05b832407b24e0a27e419906187cd863bc1617c7.camel@perches.com


Signed-off-by: default avatarJoe Perches <joe@perches.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8c8c45cf
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -849,6 +849,16 @@ sub is_maintained_obsolete {
	return $status =~ /obsolete/i;
}

sub is_SPDX_License_valid {
	my ($license) = @_;

	return 1 if (!$tree || which("python") eq "" || !(-e "$root/scripts/spdxcheck.py"));

	my $status = `echo "$license" | python $root/scripts/spdxcheck.py -`;
	return 0 if ($status ne "");
	return 1;
}

my $camelcase_seeded = 0;
sub seed_camelcase_includes {
	return if ($camelcase_seeded);
@@ -2980,6 +2990,12 @@ sub process {
				    $rawline !~ /^\+\Q$comment\E SPDX-License-Identifier: /) {
					 WARN("SPDX_LICENSE_TAG",
					      "Missing or malformed SPDX-License-Identifier tag in line $checklicenseline\n" . $herecurr);
				} elsif ($rawline =~ /(SPDX-License-Identifier: .*)/) {
					 my $spdx_license = $1;
					 if (!is_SPDX_License_valid($spdx_license)) {
						  WARN("SPDX_LICENSE_TAG",
						       "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
					 }
				}
			}
		}