lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 21 Dec 2017 11:04:14 -0600
From:   Rob Herring <robh@...nel.org>
To:     Joe Perches <joe@...ches.com>
Cc:     linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
        Andy Whitcroft <apw@...onical.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Philippe Ombredanne <pombredanne@...b.com>
Subject: Re: [PATCH v4] checkpatch.pl: Add SPDX license tag check

On Wed, Dec 20, 2017 at 10:28:48PM -0800, Joe Perches wrote:
> On Wed, 2017-12-20 at 17:46 -0600, Rob Herring wrote:
> > Add SPDX license tag check based on the rules defined in
> > Documentation/process/license-rules.rst. To summarize, SPDX license tags
> > should be on the 1st line (or 2nd line in scripts) using the appropriate
> > comment style for the file type.
> > 
> > Cc: Andy Whitcroft <apw@...onical.com>
> > Cc: Joe Perches <joe@...ches.com>
> > Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> > Cc: Thomas Gleixner <tglx@...utronix.de>
> > Cc: Philippe Ombredanne <pombredanne@...b.com>
> > Signed-off-by: Rob Herring <robh@...nel.org>
> > ---
> > Thomas, if you are inclined and Joe is happy with this, can you add this 
> > on top of your series adding license-rules.rst.
> > 
> > v4:
> > - Reference license-rules.rst
> > - Add comment style checks based on file types
> > - Check .rst files
> > 
> > v3:
> > - Since we specify that the tag goes on the 1st or 2nd line, the logic
> >   can be greatly simplified compared to v2 because we can just use the
> >   line number. And now the check is improved too.
> > 
> >  scripts/checkpatch.pl | 25 +++++++++++++++++++++++++
> >  1 file changed, 25 insertions(+)
> > 
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
> > @@ -2866,6 +2866,31 @@ sub process {
> >  			}
> >  		}
> >  
> > +# check for using SPDX license tag at beginning of files
> > +		if ($rawline =~ /^\+/ && !($realline == 1 && $rawline =~ /^[\s\+]#!/)) {
> 
> This test will enter this block for every added line of the patch.
> 
> Needs to be /^[ \+]/ and not [\t\+] and probably should just be ^\+
> 
> I'd probably have something like
> 	my $checklicenseline = 1;
> 	
> at the start of sub process
> 
> and use something
> 
> 		if ($realline == $checklicenseline) {
> 			if ($realfile =~ /\.(?:sh|pl|py)/ && $rawline =~ /\[ \+]\s*\!\#/) {
> 				$checklicenseline = 2;
> 			} elsif (etc...) {
> 			}
> 		}

Okay, here's what I've ended up with:

		if ($realline == $checklicenseline) {
			if ($realfile =~ /\.(?:sh|pl|py)/ && $rawline =~ /\[ \+]\s*\!\#/) {
				$checklicenseline = 2;
			} elsif ($rawline =~ /^\+/) {
				my $comment = "";
				if ($realfile =~ /\.(h|s|S)$/) {
					$comment = '/\*';
				} elsif ($realfile =~ /\.(c|dts|dtsi)$/) {
					$comment = '//';
				} elsif ($realfile =~ /\.(sh|pl|py)$/) {
					$comment = '#';
				} elsif ($realfile =~ /\.rst$/) {
					$comment = '\.\.';
				}

				if ($comment !~ /^$/ &&
				    $rawline !~ m@^\+$comment SPDX-License-Identifier: @) {
					WARN("SPDX_LICENSE_TAG",
					     "Missing or malformed SPDX-License-Identifier tag in 1st (or 2nd for scripts) line\n" . 
$herecurr);
				}
			}
		}


> 
> > +			} elsif ($realfile =~ /\.rst$/) {
> > +				$comment = '..';
> 
> \.\.
> 
> What about .txt, .json, .cocci, and .awk ?

What about them? They aren't documented in license-rules.rst and I'm 
just implementing what's documented as you said I should on v3.

Rob

Powered by blists - more mailing lists