Re: [PATCH v2] checkpatch: validate MODULE_LICENSE content

Bjorn Andersson
2015-04-07T19:55:55Z

On Tue 07 Apr 12:48 PDT 2015, Joe Perches wrote:

> On Tue, 2015-04-07 at 12:37 -0700, Bjorn Andersson wrote:
> > There is a well defined list of expected values for MODULE_LICENSE so
> > warn the user upon usage of unknown values.
> >
> > Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
> > ---
> >
> > Thanks for the review Joe!
>
> No charge.
>
> > "Proprietary" is in the list because this is the full list of "valid" values
> > mentioned in include/linux/module.h. So it's the list of licenses valid for
> > submission, but rather the list of valid values.
>
> So the "Proprietary" entry is only for non kernel-tree uses.
> I wonder if the kernel checkpatch script should account for that.
>

The way I read the comment in module.h is that if you're writing a
non-free kernel module then you should mark it with "Proprietary".

If people doing so are using checkpatch that's great, but it's just
included for completeness, not to argue about the concept of proprietary
kernel modules.

> I've no strong opinion though if Andrew wants to accept this as-is.
>

Let me know and I'll drop it from the patch.

> cheers, Joe
>

Thanks,
Bjorn

> > Changes since v1:
> > - Fixed nits pointed out by Joe
> > - Added comment to clarify the purpose, as well as origin of the values
> >
> > scripts/checkpatch.pl | 18 ++++++++++++++++++
> > 1 file changed, 18 insertions(+)
> >
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > index 9a8b2bd..ca10d79 100755
> > --- a/scripts/checkpatch.pl
> > +++ b/scripts/checkpatch.pl
> > @@ -5431,6 +5431,24 @@ sub process {
> > }
> > }
> > }
> > +
> > +# validate content of MODULE_LICENSE against list from include/linux/module.h
> > + if ($line =~ /\bMODULE_LICENSE\s*\(\s*($String)\s*\)/) {
> > + my $extracted_string = get_quoted_string($line, $rawline);
> > + my $valid_licenses = qr{
> > + GPL|
> > + GPL\ v2|
> > + GPL\ and\ additional\ rights|
> > + Dual\ BSD/GPL|
> > + Dual\ MIT/GPL|
> > + Dual\ MPL/GPL|
> > + Proprietary
> > + }x;
> > + if ($extracted_string !~ /^"(?:$valid_licenses)"$/x) {
> > + WARN("MODULE_LICENSE",
> > + "unknown module license " . $extracted_string . "\n" . $herecurr);
> > + }
> > + }
> > }
> >
> > # If we have no input at all, then there is nothing to report on
>
>
>