mbox series

[0/2] LICENSES: add and use copyleft-next-0.3.1

Message ID 20210707184310.3624761-1-mcgrof@kernel.org (mailing list archive)
Headers show
Series LICENSES: add and use copyleft-next-0.3.1 | expand

Message

Luis Chamberlain July 7, 2021, 6:43 p.m. UTC
This adds the copyleft-next-0.3.1 SPDX tag and replaces existing
boilerplate with the tag.

Luis Chamberlain (2):
  LICENSES: Add the copyleft-next-0.3.1 license
  testing: use the copyleft-next-0.3.1 SPDX tag

 LICENSES/dual/copyleft-next-0.3.1        | 237 +++++++++++++++++++++++
 lib/test_kmod.c                          |  12 +-
 lib/test_sysctl.c                        |  12 +-
 tools/testing/selftests/kmod/kmod.sh     |  13 +-
 tools/testing/selftests/sysctl/sysctl.sh |  12 +-
 5 files changed, 241 insertions(+), 45 deletions(-)
 create mode 100644 LICENSES/dual/copyleft-next-0.3.1

Comments

Christoph Hellwig July 8, 2021, 4:14 a.m. UTC | #1
On Wed, Jul 07, 2021 at 11:43:08AM -0700, Luis Chamberlain wrote:
> This adds the copyleft-next-0.3.1 SPDX tag and replaces existing
> boilerplate with the tag.

Why do we need a random weirdo license in the kernel tree?  Is there
any benefit?  If so it needs to be clearly spelled out.
Greg Kroah-Hartman July 8, 2021, 6:22 a.m. UTC | #2
On Wed, Jul 07, 2021 at 11:43:08AM -0700, Luis Chamberlain wrote:
> This adds the copyleft-next-0.3.1 SPDX tag and replaces existing
> boilerplate with the tag.
> 
> Luis Chamberlain (2):
>   LICENSES: Add the copyleft-next-0.3.1 license
>   testing: use the copyleft-next-0.3.1 SPDX tag
> 
>  LICENSES/dual/copyleft-next-0.3.1        | 237 +++++++++++++++++++++++
>  lib/test_kmod.c                          |  12 +-
>  lib/test_sysctl.c                        |  12 +-
>  tools/testing/selftests/kmod/kmod.sh     |  13 +-
>  tools/testing/selftests/sysctl/sysctl.sh |  12 +-

As we only have 4 usages of this license in the tree, we have the
opportunity to actually remove it and keep the list of licenses that we
use in the kernel source smaller.

Any chance you wish to just change the license of these files, given
that you are the only one that has tried to use it for kernel code?

As a follow-up to this, I do not want to see your "test_sysfs.c" module
as a dual-licensed file, as that makes no sense whatsoever.  It is
directly testing GPL-v2-only code, so the attempt to dual license it
makes no sense to me.  How could anyone take that code and do anything
with it under the copyleft-next license only?  And where would that
happen?

I understand the appeal of copyleft-next in that it resolves many of the
"grey" areas around gplv2, but given that no one is rushing to advise us
to relicense all of the kernel with this thing, there is no need to
encourage the spread of it given the added complexity and confusion that
adding another license to our mix can only cause.

So please, no, I don't want to see new licenses added to the tree, if
anything we should be trimming them down to be less as it makes things
simpler and more obvious.

thanks,

greg k-h
Bradley M. Kuhn July 8, 2021, 2:59 p.m. UTC | #3
[ Full Disclosure: I've written parts of copyleft-next, have been involved
  with the initiative basically since its inception, and obviously I like the
  license a lot.  Take my comments with the recommend dose NaCl granules
  those facts require. ]

Greg KH wrote:
> Any chance you wish to just change the license of these files, given that
> you are the only one that has tried to use it for kernel code?

There is a lot of dual-licensed (GPLv2-only|{2,3}-Clause-BSD) code already in
Linux.  Many corporate copyright holders have well documented strong reasons
for wanting that.  (Those policy goals and the analysis behind them, I find
problematic and sometimes outright wrong, but nonetheless it's their right to
license their copyrights that way, and the license *is* GPLv2-only
compatible, as is Luis'!).

I assume that you're not asking those companies to relicense to pure
GPLv2-only.  While those companies perhaps faced early resistance when they
began their dual-licensing-in-upstream endeavor, it was ultimately accepted
and that opens the door, IMO, to accepting any form of GPL-compatible
dual-licensing upstream.  There is no cogent argument that I can see that
says “(GPLv2-only|{2,3}-Clause-BSD) is so special that it should be
grandfathered in over other forms of dual licensing”.

(Ironically, IIRC, (then acting on behalf of Qualcomm/Atheros, Luis — the
person proposing the (GPLv2-only|copyleft-next) dual-licensing *now* was a
champion of upstreaming (GPLv2-only|{2,3}-Clause-BSD) code years ago before
it was a wide and common practice.)

> As a follow-up to this, I do not want to see your "test_sysfs.c" module as
> a dual-licensed file, as that makes no sense whatsoever.  It is directly
> testing GPL-v2-only code, so the attempt to dual license it makes no sense
> to me.  How could anyone take that code and do anything with it under the
> copyleft-next license only?  And where would that happen?

But, it's a valid compatible license, so there is no harm.  And, see below,
regarding policy reasons …

> I understand the appeal of copyleft-next in that it resolves many of the
> "grey" areas around gplv2, but given that no one is rushing to advise us to
> relicense all of the kernel with this thing,

Consider me to be the first to advise that!  I realize it's a tough thing to
do, but every great adventure to solve a big problem starts with a first
step!  I further realize it's a non-starter, but please don't say again no
one has advised you such!

BTW, the only reason I didn't advise it because I know a top-level license
change away from straight, no-exceptions/no-additional-permissions GPLv2-only
is a non-starter for the Linux community.  (Great, BTW, that you've stuck so
firmly to your steadfast plan on this!)

Greg continued:
> there is no need to encourage the spread of it given the added complexity
> and confusion that adding another license to our mix can only cause.
Relatedly, Christoph asked (footnote mine):
>> Why do we need a random weirdo [0] license in the kernel tree?  Is there
>> any benefit?

To be frank, we in the copyleft-next community were very excited to learn
that such dual-licensed code had been added to upstream Linux, back when it
was many years ago.  It's a vote of confidence from a well-known developer
who really is excited about our policy goals.  FOSS licensing isn't just
about simplicity and cleanliness.  Like budgets, which seem dry topics on
surface, they are actual moral documents that make a statement about the
philosophy and aspirations for software freedom by the licensor.  Of course,
we all know it's completely symbolic to dual license
(GPLv2-only|copyleft-next), just like it's purely symbolic to dual license
(GPLv2-only|2-Clause-BSD) upstream [1].  But it makes a statement that I
think is a good one.

Finally, while GPLv2-only compatibility has been a mainstay so far in
copyleft-next drafting, it's not clear to me that we can keep that
compatibility forever and reach copyleft-next's policy goals.  There's been
no discussion of this yet, but it's certainly in the realm of possibility.
If GPLv2-incompatibility ultimately happens in future copyleft-next versions,
having dual-licensed code out there will be a huge help as it will assure
that code can forever be used both on GPLv2-only and copyleft-next sides of
future single-license-project equations.

Thanks for listening; of course it's the sole prerogative for the copyright
holder to decide whether to change the license of their code or not, and I
hope that they don't bow to pressure, just as Qualcomm wouldn't bow to
pressure if you started asking them to stop dual licensing all their upstream
Linux code under BSD licenses.

[0] BTW, Christoph, I remember when I started in FOSS in the early 1990s,
    everyone called the GPL a “random weirdo license”.  The incumbent always
    seems not as random and weirdo as the challenger.

[1] There is the argument that 2-Clause-BSD has fewer requirements than
    GPLv2-only; however, that's not an argument to release the code
    *upstream* that way, it's an argument to release a separate version under
    2-Clause-BSD.

--
Bradley M. Kuhn - he/him

Pls. support the charity where I work, Software Freedom Conservancy:
https://sfconservancy.org/supporter/
Greg Kroah-Hartman July 8, 2021, 3:32 p.m. UTC | #4
On Thu, Jul 08, 2021 at 07:59:13AM -0700, Bradley M. Kuhn wrote:
> Greg KH wrote:
> > Any chance you wish to just change the license of these files, given that
> > you are the only one that has tried to use it for kernel code?
> 
> There is a lot of dual-licensed (GPLv2-only|{2,3}-Clause-BSD) code already in
> Linux.  Many corporate copyright holders have well documented strong reasons
> for wanting that.  (Those policy goals and the analysis behind them, I find
> problematic and sometimes outright wrong, but nonetheless it's their right to
> license their copyrights that way, and the license *is* GPLv2-only
> compatible, as is Luis'!).
> 
> I assume that you're not asking those companies to relicense to pure
> GPLv2-only.

On the contrary, I have stated in public many times to companies that
try to add dual-licensed new kernel code that they should only do so if
they provide a really good reason, and pushed back on them numerous
times.  See the mailing list archives for details if you care.

So yes, I am asking them, this is not anything new.

Let's keep it simple please, and not add new licenses for no real good
reason if at all possible.

thanks,

greg k-h
Joe Perches July 8, 2021, 4:56 p.m. UTC | #5
On Thu, 2021-07-08 at 17:32 +0200, Greg KH wrote:
> On Thu, Jul 08, 2021 at 07:59:13AM -0700, Bradley M. Kuhn wrote:
> > Greg KH wrote:
> > > Any chance you wish to just change the license of these files, given that
> > > you are the only one that has tried to use it for kernel code?
> > 
> > There is a lot of dual-licensed (GPLv2-only|{2,3}-Clause-BSD) code already in
> > Linux.  Many corporate copyright holders have well documented strong reasons
> > for wanting that.  (Those policy goals and the analysis behind them, I find
> > problematic and sometimes outright wrong, but nonetheless it's their right to
> > license their copyrights that way, and the license *is* GPLv2-only
> > compatible, as is Luis'!).
> > 
> > I assume that you're not asking those companies to relicense to pure
> > GPLv2-only.
> 
> On the contrary, I have stated in public many times to companies that
> try to add dual-licensed new kernel code that they should only do so if
> they provide a really good reason, and pushed back on them numerous
> times.  See the mailing list archives for details if you care.
> 
> So yes, I am asking them, this is not anything new.
> 
> Let's keep it simple please, and not add new licenses for no real good
> reason if at all possible.

You can ask but it's the submitter's choice to license their code
however they desire.
Bird, Tim July 8, 2021, 5:08 p.m. UTC | #6
> -----Original Message-----
> From: Bradley M. Kuhn <bkuhn@ebb.org>
> 
> [ Full Disclosure: I've written parts of copyleft-next, have been involved
>   with the initiative basically since its inception, and obviously I like the
>   license a lot.  Take my comments with the recommend dose NaCl granules
>   those facts require. ]
> 
> Greg KH wrote:
> > Any chance you wish to just change the license of these files, given that
> > you are the only one that has tried to use it for kernel code?
> 
> There is a lot of dual-licensed (GPLv2-only|{2,3}-Clause-BSD) code already in
> Linux.  Many corporate copyright holders have well documented strong reasons
> for wanting that.  (Those policy goals and the analysis behind them, I find
> problematic and sometimes outright wrong, but nonetheless it's their right to
> license their copyrights that way, and the license *is* GPLv2-only
> compatible, as is Luis'!).
> 
> I assume that you're not asking those companies to relicense to pure
> GPLv2-only.  While those companies perhaps faced early resistance when they
> began their dual-licensing-in-upstream endeavor, it was ultimately accepted
> and that opens the door, IMO, to accepting any form of GPL-compatible
> dual-licensing upstream.  There is no cogent argument that I can see that
> says “(GPLv2-only|{2,3}-Clause-BSD) is so special that it should be
> grandfathered in over other forms of dual licensing”.
> 
> (Ironically, IIRC, (then acting on behalf of Qualcomm/Atheros, Luis — the
> person proposing the (GPLv2-only|copyleft-next) dual-licensing *now* was a
> champion of upstreaming (GPLv2-only|{2,3}-Clause-BSD) code years ago before
> it was a wide and common practice.)
> 
> > As a follow-up to this, I do not want to see your "test_sysfs.c" module as
> > a dual-licensed file, as that makes no sense whatsoever.  It is directly
> > testing GPL-v2-only code, so the attempt to dual license it makes no sense
> > to me.  How could anyone take that code and do anything with it under the
> > copyleft-next license only?  And where would that happen?
> 
> But, it's a valid compatible license, so there is no harm.  And, see below,
> regarding policy reasons …
> 
> > I understand the appeal of copyleft-next in that it resolves many of the
> > "grey" areas around gplv2, but given that no one is rushing to advise us to
> > relicense all of the kernel with this thing,
> 
> Consider me to be the first to advise that!  I realize it's a tough thing to
> do, but every great adventure to solve a big problem starts with a first
> step!  I further realize it's a non-starter, but please don't say again no
> one has advised you such!
> 
> BTW, the only reason I didn't advise it because I know a top-level license
> change away from straight, no-exceptions/no-additional-permissions GPLv2-only
> is a non-starter for the Linux community.  (Great, BTW, that you've stuck so
> firmly to your steadfast plan on this!)
> 
> Greg continued:
> > there is no need to encourage the spread of it given the added complexity
> > and confusion that adding another license to our mix can only cause.
> Relatedly, Christoph asked (footnote mine):
> >> Why do we need a random weirdo [0] license in the kernel tree?  Is there
> >> any benefit?
> 
> To be frank, we in the copyleft-next community were very excited to learn
> that such dual-licensed code had been added to upstream Linux, back when it
> was many years ago.  It's a vote of confidence from a well-known developer
> who really is excited about our policy goals.  FOSS licensing isn't just
> about simplicity and cleanliness.  Like budgets, which seem dry topics on
> surface, they are actual moral documents that make a statement about the
> philosophy and aspirations for software freedom by the licensor.  Of course,
> we all know it's completely symbolic to dual license
> (GPLv2-only|copyleft-next), just like it's purely symbolic to dual license
> (GPLv2-only|2-Clause-BSD) upstream [1]. 

It's not at all purely symbolic to dual license (GPLv2-only|2-Clause-BSD).
That dual-licensing has allowed the interchange of a lot of code between
the BSD Unixes and Linux, that otherwise would not have happened.

It's very much in the spirit of Linus' tit-for-tat compact to allow the BSD Unixes
to benefit from improvements made to code that originated there and made
it's way to Linux.
 -- Tim

> But it makes a statement that I
> think is a good one.
> 
> Finally, while GPLv2-only compatibility has been a mainstay so far in
> copyleft-next drafting, it's not clear to me that we can keep that
> compatibility forever and reach copyleft-next's policy goals.  There's been
> no discussion of this yet, but it's certainly in the realm of possibility.
> If GPLv2-incompatibility ultimately happens in future copyleft-next versions,
> having dual-licensed code out there will be a huge help as it will assure
> that code can forever be used both on GPLv2-only and copyleft-next sides of
> future single-license-project equations.
> 
> Thanks for listening; of course it's the sole prerogative for the copyright
> holder to decide whether to change the license of their code or not, and I
> hope that they don't bow to pressure, just as Qualcomm wouldn't bow to
> pressure if you started asking them to stop dual licensing all their upstream
> Linux code under BSD licenses.
> 
> [0] BTW, Christoph, I remember when I started in FOSS in the early 1990s,
>     everyone called the GPL a “random weirdo license”.  The incumbent always
>     seems not as random and weirdo as the challenger.
> 
> [1] There is the argument that 2-Clause-BSD has fewer requirements than
>     GPLv2-only; however, that's not an argument to release the code
>     *upstream* that way, it's an argument to release a separate version under
>     2-Clause-BSD.
> 
> --
> Bradley M. Kuhn - he/him
> 
> Pls. support the charity where I work, Software Freedom Conservancy:
> https://sfconservancy.org/supporter/
Bradley M. Kuhn July 8, 2021, 5:52 p.m. UTC | #7
Greg KH wrote:
> Let's keep it simple please, and not add new licenses for no real good
> reason if at all possible.

I've stated a number of real good reasons to keep copyleft-next as a
dual-licensing option; they seem to have not been refuted here. Indeed, this
point is quite salient:

Joe Perches wrote:
>>> You can ask but it's the submitter's choice to license their code however
>>> they desire.

… to which I'd add, as long as the license is GPLv2-only-compatible, which of
course (GPLv2-only|copyleft-next) is.


Rest is admittedly a bit OT:

Greg also noted:
> I have stated in public many times to companies that try to add
> dual-licensed new kernel code that they should only do so if they provide a
> really good reason

We can agree to disagree on the differences in how company vs. individual
requests and their "good reasons" are handled/prioritized; I think we'd both
agree it's actually moot anyway.  While it's an important topic, I apologize
for raising that as it was off-topic to the issue at hand.

On that off-topic point, Tim Bird added:
>> It's not at all purely symbolic to dual license (GPLv2-only|2-Clause-BSD).
>> That dual-licensing has allowed the interchange of a lot of code between
>> the BSD Unixes and Linux, that otherwise would not have happened.

This is a good point, but the same argument is of course valid for
copyleft-next-licensed projects.  While there are currently fewer than those
than BSD-ish projects, I don't think Linux should stand on ceremony of “your
project must be this tall to ride this ride” and share code with us … and
then there are the aspirational arguments that I made in my prior email.
--
Bradley M. Kuhn - he/him

Pls. support the charity where I work, Software Freedom Conservancy:
https://sfconservancy.org/supporter/
Luis Chamberlain July 8, 2021, 7 p.m. UTC | #8
On Thu, Jul 08, 2021 at 06:14:46AM +0200, Christoph Hellwig wrote:
> On Wed, Jul 07, 2021 at 11:43:08AM -0700, Luis Chamberlain wrote:
> > This adds the copyleft-next-0.3.1 SPDX tag and replaces existing
> > boilerplate with the tag.
> 
> Why do we need a random weirdo license in the kernel tree? 

Its already present in the kernel. This patch just adds the respective
SPDX license tag so we can remove the boiler plate.

> Is there
> any benefit?  If so it needs to be clearly spelled out.

The benefits are described in the first patch, I hope that's
clear enough. Let me know if its not!

  Luis
Steven Rostedt July 8, 2021, 7:01 p.m. UTC | #9
On Thu, 8 Jul 2021 10:52:54 -0700
"Bradley M. Kuhn" <bkuhn@ebb.org> wrote:

> Joe Perches wrote:
> >>> You can ask but it's the submitter's choice to license their code however
> >>> they desire.  
> 
> … to which I'd add, as long as the license is GPLv2-only-compatible, which of
> course (GPLv2-only|copyleft-next) is.

I agree with Joe on this, but I have to ask; What happens when someone
makes a change to this file? The default kernel license is GPL-v2. Does this
change automatically become the same as the file itself, or is the new
change under the dual license?

I've made changes to code that had a dual license that wasn't GPL
compatible, and the company involved asked me to sign off on the other
license (which I did).

-- Steve
Luis Chamberlain July 8, 2021, 7:33 p.m. UTC | #10
On Thu, Jul 08, 2021 at 08:22:26AM +0200, Greg KH wrote:
> On Wed, Jul 07, 2021 at 11:43:08AM -0700, Luis Chamberlain wrote:
> > This adds the copyleft-next-0.3.1 SPDX tag and replaces existing
> > boilerplate with the tag.
> > 
> > Luis Chamberlain (2):
> >   LICENSES: Add the copyleft-next-0.3.1 license
> >   testing: use the copyleft-next-0.3.1 SPDX tag
> > 
> >  LICENSES/dual/copyleft-next-0.3.1        | 237 +++++++++++++++++++++++
> >  lib/test_kmod.c                          |  12 +-
> >  lib/test_sysctl.c                        |  12 +-
> >  tools/testing/selftests/kmod/kmod.sh     |  13 +-
> >  tools/testing/selftests/sysctl/sysctl.sh |  12 +-
> 
> As we only have 4 usages of this license in the tree, we have the
> opportunity to actually remove it and keep the list of licenses that we
> use in the kernel source smaller.
> 
> Any chance you wish to just change the license of these files, given
> that you are the only one that has tried to use it for kernel code?

Since it is a "relatively" new license (2012, used in Linux since 2017)
obviously not many people would have used it, but one cannot assume it
is not because one does not want, but rather one is not aware.

I myself have used the license for all new projects, and the agreement
I reached with SUSE was I'd be using this license when I can for my
own projects and contributions. I'm not a zealot though, and I also
take care for proper considerations for such a large project such
as Linux. It is why I had the license vetted by attorneys at SUSE
in 2017, and also drew up a public discussion over its possible use on
Linux. My goal then, in so far as Linux is concerned, is to use it for
selftests as a safe place, which won't grow folks weary or concerned.

And then let things evolve from there.

Of all the items listed on patch #1 for which I prefer using
copyleft-next the most important one for me is an explicit patent
grant. Although GPL applies to Linux I do feel very strongly about
propagation of more projects with such type of licenses and I feel
we should be happy to help such projects grow by allowing cross
polination.

> As a follow-up to this, I do not want to see your "test_sysfs.c" module
> as a dual-licensed file, as that makes no sense whatsoever.

You can ignore the patch then, its a selftest driver, not a core sysfs
change. I believe it should be up to the selftest maintainer?

The changes I am making to sysfs are explicitly under GPLv2, and
has nothing to do with copyleft-next. I am using dual licensing with
copyleft-next only for selftests for now. I have support from SUSE to
use this license.

> It is
> directly testing GPL-v2-only code, so the attempt to dual license it
> makes no sense to me.

So what? I can have BSD licensed code testing GPLv2 code. In fact folks
out there use proprietary licensed code to test GPLv2 code as well. I
don't see your the rationale here.

> How could anyone take that code and do anything
> with it under the copyleft-next license only?  And where would that
> happen?

That's up to the users. In my case I am heavily involved with doing
automation of testing and so *I care* as I am building automation of
testing for all things kernel. My project kdevops, will soon be
relicensed to copyleft-next.

My personal development goal is I will embrace copyleft-next for
anything new I write, and only use GPLv2 or another license when
I am required to do so. I believe I am being reasonable also in using
this only for sefltests for now as discussions and awareness of the
license grows.

> I understand the appeal of copyleft-next in that it resolves many of the
> "grey" areas around gplv2, but given that no one is rushing to advise us
> to relicense all of the kernel with this thing, there is no need to
> encourage the spread of it given the added complexity and confusion that
> adding another license to our mix can only cause.

"Need" is subjective. I feel strongly about a need to have explicit patent
grants propagating in our community. So the more we can do this outside
of Linux and allow code from Linux to be used in such projects the
better.

The license is one of the only few licenses (if not only?) which is
GPLv2 compatible and also has an clear patent grant. I have reasons to
believe, we as a community face serious challenges if we don't grow our
collection of code with explicit patent grants. And so any new project
I create will have such licenses. It is simply my preference, and if I
can contribute code to Linux in a "safe place" to slowly build traction
of it, then fantastic.

> So please, no, I don't want to see new licenses added to the tree, if
> anything we should be trimming them down to be less as it makes things
> simpler and more obvious.

Too late. Dual GPLv2 / copyleft-next code was added in 2017 and I had
a clear community discussion over it.

I take caution and care about this. I do feel this discussion is worth
having and hence my contributions in 2017 and now adding the respective
SPDX license tag.

  Luis
Luis Chamberlain July 8, 2021, 7:37 p.m. UTC | #11
On Thu, Jul 08, 2021 at 03:01:58PM -0400, Steven Rostedt wrote:
> On Thu, 8 Jul 2021 10:52:54 -0700
> "Bradley M. Kuhn" <bkuhn@ebb.org> wrote:
> 
> > Joe Perches wrote:
> > >>> You can ask but it's the submitter's choice to license their code however
> > >>> they desire.  
> > 
> > … to which I'd add, as long as the license is GPLv2-only-compatible, which of
> > course (GPLv2-only|copyleft-next) is.
> 
> I agree with Joe on this, but I have to ask; What happens when someone
> makes a change to this file? The default kernel license is GPL-v2. Does this
> change automatically become the same as the file itself, or is the new
> change under the dual license?
> 
> I've made changes to code that had a dual license that wasn't GPL
> compatible, and the company involved asked me to sign off on the other
> license (which I did).

The Signed-off-by tag implies you are making a contribution under the
same license as the license file states. The more people are aware of
this fact, the better, and its then why we made DCO a public thing and
now other projects embrace it.

  Luis
Steven Rostedt July 8, 2021, 8:08 p.m. UTC | #12
On Thu, 8 Jul 2021 12:37:46 -0700
Luis Chamberlain <mcgrof@kernel.org> wrote:

> The Signed-off-by tag implies you are making a contribution under the
> same license as the license file states. The more people are aware of
> this fact, the better, and its then why we made DCO a public thing and
> now other projects embrace it.

Ah, I forgot it was "per-file" and not "per-project". That's the difference.

-- Steve