linux-kernel-mentees.lists.linuxfoundation.org archive mirror
 help / color / mirror / Atom feed
* [Linux-kernel-mentees] [PATCH] checkpatch: Improve SPDX license identifier check for script files
@ 2020-08-03  7:58 Mrinal Pandey
  2020-08-03 10:59 ` Lukas Bulwahn
  0 siblings, 1 reply; 19+ messages in thread
From: Mrinal Pandey @ 2020-08-03  7:58 UTC (permalink / raw)
  To: lukas.bulwahn, skhan, Linux-kernel-mentees, mrinalmni


[-- Attachment #1.1: Type: text/plain, Size: 2491 bytes --]

The diff content includes the SPDX licensing information but excludes the
shebang when a change is made to a script file in commit 37f8173dd849
("locking/atomics: Flip fallbacks and  instrumentation") and commit
075c8aa79d54 ("selftests: forwarding: tc_actions.sh: add matchall mirror
test"). In these cases checkpatch issues a false positive warning:
"Misplaced SPDX-License-Identifier tag - use line 1 instead".

Currently, if checkpatch finds a shebang in line 1, it expects the
license identifier in line 2. However, this doesn't work when a shebang
isn't found on the line 1.

I noticed this false positive, while running checkpatch on the set of
commits from v5.7 to v5.8-rc1 of the kernel, on the said commits.
This false positive exists in checkpatch since commit a8da38a9cf0e
("checkpatch: add test for SPDX-License-Identifier on wrong line #")
when the corresponding rule was first added.

The alternatives considered to improve this check were looking the file
to be a script by either examining the file extension or file permissions.

The evaluation on former option resulted in 120 files which had a shebang
in the first line but no file extension. This didn't look like a promising
result and hence I dropped the idea of using this approach.

The evaluation on the latter approach shows that there are 53 files in the
kernel which have an executable bit set but don't have a shebang in the
first line.

At the first sight on these 53 files, it seems that they either have a
wrong file permission set or could be reasonably extended with a shebang
and SPDX license information. Thus, further cleanup in the repository
would make the latter approach to work even more precisely.

Hence, I chose to check the file permissions to determine if the file is a
script and notify checkpatch to expect SPDX on second line for such files.

Signed-off-by: Mrinal Pandey <mrinalmni@gmail.com>
---
 scripts/checkpatch.pl | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 4c820607540b..bae1dd824518 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3166,6 +3166,9 @@ sub process {
 		}
 
 # check for using SPDX license tag at beginning of files
+		if ($line =~ /^index\ .*\.\..*\ .*[7531]\d{0,2}$/) {
+			$checklicenseline = 2;
+		}
 		if ($realline == $checklicenseline) {
 			if ($rawline =~ /^[ \+]\s*\#\!\s*\//) {
 				$checklicenseline = 2;
-- 
2.25.1


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 201 bytes --]

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2020-09-11 10:34 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-03  7:58 [Linux-kernel-mentees] [PATCH] checkpatch: Improve SPDX license identifier check for script files Mrinal Pandey
2020-08-03 10:59 ` Lukas Bulwahn
2020-08-04 15:56   ` Mrinal Pandey
2020-08-04 19:37     ` Lukas Bulwahn
2020-08-09  7:22       ` Mrinal Pandey
2020-08-20  4:42         ` Mrinal Pandey
2020-08-22  8:24           ` Lukas Bulwahn
2020-08-22 19:25             ` Lukas Bulwahn
2020-08-24  8:35               ` Mrinal Pandey
2020-08-24  8:56                 ` Lukas Bulwahn
2020-08-25  4:56                   ` Mrinal Pandey
2020-08-25  5:54                     ` Lukas Bulwahn
2020-08-24  8:23             ` Mrinal Pandey
2020-08-24  8:54               ` Lukas Bulwahn
2020-08-25  4:53                 ` Mrinal Pandey
2020-09-06  4:27                   ` Mrinal Pandey
2020-09-07  7:10                     ` Lukas Bulwahn
2020-09-11 10:16                       ` Mrinal Pandey
2020-09-11 10:33                         ` Lukas Bulwahn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).