Re: Kernel modules under new copyleft licence : (was Re: [PATCH v2] module.h: add copyleft-next >= 0.3.1 as GPL compatible)

From: Luis R. Rodriguez
Date: Thu May 11 2017 - 14:02:21 EST


Sorry this is an old topic now but a clarification was requested by AKASHI,
so following up.

On Tue, Aug 09, 2016 at 07:58:27PM -0700, Linus Torvalds wrote:
> On Tue, Aug 9, 2016 at 1:14 PM, Luis R. Rodriguez <mcgrof@xxxxxxxxxx> wrote:
> >
> > I'm personally fine with MODULE_LICENSE("GPL") being used with copyleft-next code
> > and find it sensible.
>
> I'd rather have the kernel license be as clear as possible, so I'd
> tend to prefer that
>
> MODULE_LICENSE("GPL")

Great will use this.

> and then if you want to dual-license it, just put something like "or,
> at your option, copyleft-next" in the comment at the top.

The "or" language can be confusing though.

Even though the following document refers to permissive licenses and using them
on GPL projects it does contain some information about using the "or" clauses
on section 4 which may be relevant here:

https://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html

So experience seems to show that when the licenses are compatible such "or"
language can be a bit confusing. My understanding is such "or" language is
really is only necessary or helpful for when you have some sort of incompatible
licenses, and that's not the case here.

> That makes it clear that as far as the kernel is concerned, it's
> GPLv2, but if somebody finds it useful for other projects, they can
> choose to take that file under copyleft-next (whatever version that
> would be..).

Indeed, my goal is to make it clear GPLv2 applies to copyleft-next material
when used on Linux, and grant the right to use the code either on GPLv2 code or
larger copyleft-next code; that's in fact the neat benefit of copyleft-next: it
lets copyleft advance even when projects are stuck on the old copyleft.

Since the license *already explicitly states GPLv2 applies* when copyleft-next
code is used on a larger GPLv2 project I figured the above macro:

MODULE_LICENSE("GPL")

would suffice to make it even clearer, but to avoid propagating any further
"or" confusion -- I would prefer just using a copyleft-next license header to
suffice for folks use the code on either GPLv2 or copyleft-next code. Ie, the
or clauses would not be needed. Likewise for headers, only the macro would not
be used. That is:

file.c:
/* copyleft-next license header only */
MODULE_LICENSE("GPL")

file.h:
/* copyleft-next license header only */

Linus, is this fine?

Luis