All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Lubomir Rintel <lkundrak@v3.sk>, Andy Whitcroft <apw@canonical.com>
Cc: Rob Herring <robh@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] checkpatch: check proper licensing of Devicetree bindings
Date: Wed, 29 Jan 2020 14:11:17 -0800	[thread overview]
Message-ID: <39042657067088e4ca960f630a7d222fc48f947a.camel@perches.com> (raw)
In-Reply-To: <20200129123334.388530-1-lkundrak@v3.sk>

On Wed, 2020-01-29 at 13:33 +0100, Lubomir Rintel wrote:
> According to Devicetree maintainers (see Link: below), the Devicetree
> binding documents are preferrably licensed (GPL-2.0-only OR
> BSD-2-Clause).
> 
> Let's check that. The actual check is a bit more relaxed, to allow more
> liberal but compatible licensing (e.g. GPL-2.0-or-later OR
> BSD-2-Clause).
> 
> Link: https://lore.kernel.org/lkml/20200108142132.GA4830@bogus/
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> ---
>  scripts/checkpatch.pl | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index e2976c3fe5ff8..ac93e98cddcee 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -3111,6 +3111,11 @@ sub process {
>  						WARN("SPDX_LICENSE_TAG",
>  						     "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
>  					}
> +					if ($realfile =~ m@^Documentation/devicetree/bindings/@ &&
> +					    not $spdx_license =~ /GPL-2\.0.*BSD-2-Clause/) {
> +						WARN("SPDX_LICENSE_TAG",
> +						     "DT binding documents should be licensed (GPL-2.0-only OR BSD-2-Clause)\n" . $herecurr);

I think not unless the existing licenses already
there are changed first.  Only about 1/3 are
dual licensed BSD.

Do all the existing license holders agree?

$ git grep -oh "SPDX.*$" Documentation/devicetree/bindings/ | \
  sort |
uniq -c | sort -rn
    269 SPDX-License-Identifier: GPL-2.0
     81 SPDX-
License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
     69 SPDX-License-
Identifier: (GPL-2.0 OR BSD-2-Clause)
     23 SPDX-License-Identifier:
GPL-2.0-only
      9 SPDX-License-Identifier: GPL-2.0+
      5 SPDX-
License-Identifier: GPL-2.0-or-later
      3 SPDX-License-Identifier:
(GPL-2.0+ OR X11)
      3 SPDX-License-Identifier: (GPL-2.0 OR MIT)
      
3 SPDX-License-Identifier: (GPL-2.0)
      2 SPDX-License-Identifier:
GPL-2.0-or-later OR BSD-2-Clause
      2 SPDX-License-Identifier: (GPL-
2.0-or-later OR BSD-2-Clause)
      2 SPDX-License-Identifier: GPL-2.0 OR
BSD-2-Clause
      1 SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
 
     1 SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause

There would be way too many false positives given
the current licensing types in existing files.

Also, the link seems to show just a desire for an
OR BSD for this file not a desire for a treewide
change.

But:

Documentation/devicetree/bindings/submitting-patches.txt does show:

 3) DT binding files should be dual licensed. The preferred license tag is
     (GPL-2.0-only OR BSD-2-Clause).

So perhaps use code like:

				my $msg_level = \&WARN;
				$msg_level = \&CHK if ($file);
				if (&{$msg_level}("SPDX_LICENSE_TAG",
						  "The preferred bindings license is '(GPL-2.0-only OR BSD-2-Clause)'\n" . $herecurr)

so that when checkpatch is run over existing files,
this message is not emitted unless using --strict.

Maybe something like:
---
 scripts/checkpatch.pl | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index f3b8434..1734c9b 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3124,6 +3124,17 @@ sub process {
 					if (!is_SPDX_License_valid($spdx_license)) {
 						WARN("SPDX_LICENSE_TAG",
 						     "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
+					    }
+					if ($realfile =~ m@^Documentation/devicetree/bindings/@ &&
+					    $spdx_license !~ /\(GPL-2\.0-only OR BSD-2-Clause\)/) {
+						my $msg_level = \&WARN;
+						$msg_level = \&CHK if ($file);
+						if (&{$msg_level}("SPDX_LICENSE_TAG",
+
+								  "DT binding documents should be licensed (GPL-2.0-only OR BSD-2-Clause)\n" . $herecurr) &&
+						    $fix) {
+							$fixed[$fixlinenr] =~ s/SPDX-License-Identifier: .*/SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)/;
+						}
 					}
 				}
 			}



  reply	other threads:[~2020-01-29 22:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-29 12:33 [PATCH] checkpatch: check proper licensing of Devicetree bindings Lubomir Rintel
2020-01-29 22:11 ` Joe Perches [this message]
2020-03-09 21:51 Lubomir Rintel
2020-03-09 22:06 ` Joe Perches

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=39042657067088e4ca960f630a7d222fc48f947a.camel@perches.com \
    --to=joe@perches.com \
    --cc=apw@canonical.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkundrak@v3.sk \
    --cc=robh@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.