On Sun, 2019-01-20 at 16:32 +0100, Sven Eckelmann wrote:
On Wednesday, 16 January 2019 11.26.53 CET Thomas Gleixner wrote:
The SuperH boot code files use a magic format for the SPDX identifier comment:
LIST "SPDX-License-Identifier: .... "
The trailing quotation mark is not stripped before the token parser is invoked and causes the scan to fail. Handle it gracefully.
[...]
This patch introduces a false positive when checking files with an ANSI-C style /* SPDX-License-Identifier: .... */ comment line.
$ ./scripts/checkpatch.pl -q -f include/linux/bug.h WARNING: 'SPDX-License-Identifier: GPL-2.0 */' is not supported in LICENSES/... #1: FILE: include/linux/bug.h:1: +/* SPDX-License-Identifier: GPL-2.0 */ total: 0 errors, 1 warnings, 79 lines checked
checkpatch.pl is already stripping the "/* " prefix and only sends the remaining "SPDX-License-Identifier: GPL-2.0 */" via stdin to scripts/spdxcheck.py. Thus the newly introduced check
# Remove trailing comment closure
if line.startswith('/*'):
expr = expr.rstrip('*/').strip()
doesn't match and thus the code doesn't remove the " */" at the end of the line.
Well, maybe checkpatch should remove the comment trailer. --- Miscellanea:
o Indent a block properly too
scripts/checkpatch.pl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 155fa9305166..e0b542008256 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3029,8 +3029,10 @@ sub process { $checklicenseline = 2; } elsif ($rawline =~ /^+/) { my $comment = ""; + my $trailer = ""; if ($realfile =~ /.(h|s|S)$/) { $comment = '/*'; + $trailer = '*/'; } elsif ($realfile =~ /.(c|dts|dtsi)$/) { $comment = '//'; } elsif (($checklicenseline == 2) || $realfile =~ /.(sh|pl|py|awk|tc)$/) { @@ -3044,11 +3046,12 @@ sub process { 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); - } + my $spdx_license = rtrim($1); + $spdx_license =~ s/\s*\Q$trailer\E$//; + if (!is_SPDX_License_valid($spdx_license)) { + WARN("SPDX_LICENSE_TAG", + "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr); + } } } }