2023-03-20 10:00:49

by Dmitry Rokosov

[permalink] [raw]
Subject: [PATCH v2] checkpatch: add missing bindings license check

All headers from 'include/dt-bindings/' must be verified by checkpatch
together with Documentation bindings, because all of them are part of
the whole DT bindings system.

The requirement is dual licensed and matching pattern:
/GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/

The issue was found during patch review:
https://lore.kernel.org/all/[email protected]/

Signed-off-by: Dmitry Rokosov <[email protected]>
---
Changes v2 since v1 at [1]:
- include/dt-bindings check is aligned to open parens
- introduce more strict pattern for bindings license:
/GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/

Links:
[1] https://lore.kernel.org/all/[email protected]/
---
scripts/checkpatch.pl | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 78cc595b98ce..de669d29f60c 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3709,8 +3709,9 @@ 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/) {
+ if (($realfile =~ m@^Documentation/devicetree/bindings/@ ||
+ $realfile =~ m@^include/dt-bindings/@) &&
+ not $spdx_license =~ /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/) {
my $msg_level = \&WARN;
$msg_level = \&CHK if ($file);
if (&{$msg_level}("SPDX_LICENSE_TAG",
--
2.36.0



2023-03-20 17:18:16

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v2] checkpatch: add missing bindings license check

On Mon, 2023-03-20 at 13:00 +0300, Dmitry Rokosov wrote:
> All headers from 'include/dt-bindings/' must be verified by checkpatch
> together with Documentation bindings, because all of them are part of
> the whole DT bindings system.
>
> The requirement is dual licensed and matching pattern:
> /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/
>
> The issue was found during patch review:
> https://lore.kernel.org/all/[email protected]/
>
> Signed-off-by: Dmitry Rokosov <[email protected]>
> ---
> Changes v2 since v1 at [1]:
> - include/dt-bindings check is aligned to open parens
> - introduce more strict pattern for bindings license:
> /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/
>
> Links:
> [1] https://lore.kernel.org/all/[email protected]/
> ---
> scripts/checkpatch.pl | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)

OK but:

> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -3709,8 +3709,9 @@ 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/) {
> + if (($realfile =~ m@^Documentation/devicetree/bindings/@ ||
> + $realfile =~ m@^include/dt-bindings/@) &&
> + not $spdx_license =~ /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/) {

I believe this is the only checkpatch use of
not <foo> =~ <bar>
instead of
<foo> !~ <bar>

I prefer !~


2023-03-20 19:33:47

by Dmitry Rokosov

[permalink] [raw]
Subject: Re: [PATCH v2] checkpatch: add missing bindings license check

On Mon, Mar 20, 2023 at 10:12:27AM -0700, Joe Perches wrote:
> On Mon, 2023-03-20 at 13:00 +0300, Dmitry Rokosov wrote:
> > All headers from 'include/dt-bindings/' must be verified by checkpatch
> > together with Documentation bindings, because all of them are part of
> > the whole DT bindings system.
> >
> > The requirement is dual licensed and matching pattern:
> > /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/
> >
> > The issue was found during patch review:
> > https://lore.kernel.org/all/[email protected]/
> >
> > Signed-off-by: Dmitry Rokosov <[email protected]>
> > ---
> > Changes v2 since v1 at [1]:
> > - include/dt-bindings check is aligned to open parens
> > - introduce more strict pattern for bindings license:
> > /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/
> >
> > Links:
> > [1] https://lore.kernel.org/all/[email protected]/
> > ---
> > scripts/checkpatch.pl | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
>
> OK but:
>
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
> > @@ -3709,8 +3709,9 @@ 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/) {
> > + if (($realfile =~ m@^Documentation/devicetree/bindings/@ ||
> > + $realfile =~ m@^include/dt-bindings/@) &&
> > + not $spdx_license =~ /GPL-2\.0(?:-only|-or-later|\+)? (?:OR|or) BSD-2-Clause/) {
>
> I believe this is the only checkpatch use of
> not <foo> =~ <bar>
> instead of
> <foo> !~ <bar>
>
> I prefer !~
>

You are totally right. Only this place uses such strange comparing. Let
me fix it and prepare new version quickly :)

--
Thank you,
Dmitry