License documentation

From: Matthew Wilcox
Date: Mon Feb 12 2018 - 12:20:38 EST


On Mon, Feb 12, 2018 at 08:28:49AM -0700, Jonathan Corbet wrote:
> On Fri, 9 Feb 2018 19:37:14 -0800
> Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> > I've done this as the first line of my new documentation files:
> >
> > .. SPDX-License-Identifier: CC-BY-SA-4.0
> >
> > I think this is the CC license that's closest in spirit to the GPL without
> > the unintended consequences of the GPL when used on documentation. The
> > GFDL seems to be out of favour these days.
>
> I think that's a great license. I still fear that it is not suitable for
> kernel documentation, though, especially when we produce documents that
> include significant text from the (GPL-licensed) kernel source. The
> result is almost certainly not distributable, and I don't think that's a
> good thing. The GPL is not perfect for documentation, but I don't think
> that we have a better alternative for in-kernel docs.

That's a reasonable concern. I've read other reasonable concerns about
the unintended effects of using the GPL to produce a printed book (eg
can you print it in a proprietary font, do you have to provide an
electronic version of the text, and so on). I fear these wise words
still ring true:

But the real problem is that we as a community lack a copyleft license
that works well for both code and text. About the only thing that even
comes close to working is putting the documentation under the GPL as
well, but the GPL is a poor fit for text. Nonetheless, it may be the
best we have in cases where GPL-licensed code is to be incorporated
into documentation.

I dare suggest another possibility: that we create a further exception to
the license that the kernel is distributed under. Something along these
lines:

Documentation [1] extracted from files marked as GPL [2] may be
distributed under the terms of the CC-BY-SA-4.0 license.

[1] This includes text explicitly marked for extraction using the kernel-doc
tool. It may include short example code sequences. It does not include
code that would normally be expected to be compiled.

[2] GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+

We'd want to run it by a lawyer, of course, to have them check for
unintended consequences.