linux-kernel-mentees.lists.linuxfoundation.org archive mirror
 help / color / mirror / Atom feed
From: Lukas Bulwahn <lukas.bulwahn@gmail.com>
To: Mrinal Pandey <mrinalmni@gmail.com>
Cc: Linux-kernel-mentees@lists.linuxfoundation.org
Subject: Re: [Linux-kernel-mentees] [PATCH] checkpatch: Improve SPDX license identifier check for script files
Date: Tue, 4 Aug 2020 21:37:22 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.21.2008042131530.4346@felia> (raw)
In-Reply-To: <20200804155640.x3kzgqfsmmkj5z2b@mrinalpandey>



On Tue, 4 Aug 2020, Mrinal Pandey wrote:

> On 20/08/03 12:59PM, Lukas Bulwahn wrote:
> > 
> > 
> > On Mon, 3 Aug 2020, Mrinal Pandey wrote:
> > 
> > > 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.
> > 
> > It does not work when the diff does not contain line 1, but only line 2,
> > because then the shebang check for line 1 cannot work.
> > 
> > > 
> > > 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.
> > >
> > 
> > Make this sentence shorter. Try.
> >  
> > > 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.
> > >
> > 
> > There is no notification here. Think about better wording.
> >  
> > > 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;
> > > +		}
> > 
> > That check looks good now.
> > 
> > >  		if ($realline == $checklicenseline) {
> > >  			if ($rawline =~ /^[ \+]\s*\#\!\s*\//) {
> > >  				$checklicenseline = 2;
> > 
> > This is probably broken now. It should check for shebang in line 1 and 
> > then set checklicenseline to line 2, right?
> 
> Sir,
> 
> Should we remove this check? Earlier when I checked for file extension
> we had 120 cases where this check was also needed but now we have a
> better heuristic which is going to work for all cases where license
> should be on line 2 irrespective of the fact that we know the first line
> or not.
>

Are you sure about that? Where is the evaluation that proves your point?

E.g., are all files that contain a shebang really with an executable flag?

Which commands did you run to check this?
 
> If I am missing out on something and we should not be removing this check,
> then I suggest placing the new heuristics below this block so that it doesn't
> interfere with the existing logic.
> 
> Please let me know which path should I go about and then I shall resend
> the patch with the modified commit message.
> 

Think about the strengths and weaknesses of the potential solutions, then 
show with some commands (as I did for example, for finding the first 
lines previously) that you can show that it practically makes a 
difference and you can numbers on those differences.

When you did that, send a new patch.

Lukas

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

  reply	other threads:[~2020-08-04 19:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.21.2008042131530.4346@felia \
    --to=lukas.bulwahn@gmail.com \
    --cc=Linux-kernel-mentees@lists.linuxfoundation.org \
    --cc=mrinalmni@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).