From: Rob Herring <robh@kernel.org>
To: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Joe Perches <joe@perches.com>
Cc: Andy Whitcroft <apw@canonical.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Philippe Ombredanne <pombredanne@nexb.com>
Subject: [PATCH v4] checkpatch.pl: Add SPDX license tag check
Date: Wed, 20 Dec 2017 17:46:25 -0600 [thread overview]
Message-ID: <20171220234625.16521-1-robh@kernel.org> (raw)
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@canonical.com>
Cc: Joe Perches <joe@perches.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Philippe Ombredanne <pombredanne@nexb.com>
Signed-off-by: Rob Herring <robh@kernel.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
index 31031f10fe56..0324f845011d 100755
--- 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\+]#!/)) {
+ my $ln = 1;
+ my $comment = "";
+
+ if ($realfile =~ /\.(h|s|S)$/) {
+ $comment = '/\*';
+ } elsif ($realfile =~ /\.(c|dts|dtsi)$/) {
+ $comment = '//';
+ } elsif ($realfile =~ /\.(sh|pl|py)$/) {
+ if ($prevrawline =~ /^[\s\+]#!/) {
+ $ln = 2;
+ }
+ $comment = '#';
+ } elsif ($realfile =~ /\.rst$/) {
+ $comment = '..';
+ }
+
+ if ($comment !~ /^$/ &&
+ ($realline == $ln xor $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);
+ }
+ }
+
# check we are in a valid source file if not then ignore this hunk
next if ($realfile !~ /\.(h|c|s|S|sh|dtsi|dts)$/);
--
2.14.1
next reply other threads:[~2017-12-20 23:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-20 23:46 Rob Herring [this message]
2017-12-21 6:28 ` [PATCH v4] checkpatch.pl: Add SPDX license tag check Joe Perches
2017-12-21 17:04 ` Rob Herring
2017-12-21 17:22 ` Joe Perches
2017-12-21 7:15 ` Philippe Ombredanne
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=20171220234625.16521-1-robh@kernel.org \
--to=robh@kernel.org \
--cc=apw@canonical.com \
--cc=gregkh@linuxfoundation.org \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pombredanne@nexb.com \
--cc=tglx@linutronix.de \
/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