All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Corbet <corbet@lwn.net>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Linus Torvalds <torvalds@linuxfoundation.org>,
	Andrew Morton <akpm@linuxfoundation.org>,
	Kate Stewart <kstewart@linuxfoundation.org>,
	Philippe Ombredanne <pombredanne@nexb.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Russell King <rmk+kernel@armlinux.org.uk>,
	Rob Herring <rob.herring@linaro.org>,
	Jonas Oberg <jonas@fsfe.org>, Joe Perches <joe@perches.com>,
	linux-xfs@vger.kernel.org,
	Charlemagne Lasse <charlemagnelasse@gmail.com>,
	Carmen Bianca Bakker <carmenbianca@fsfe.org>
Subject: Re: [patch V3 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
Date: Thu, 16 Nov 2017 13:57:30 -0700	[thread overview]
Message-ID: <20171116135730.265a8323@lwn.net> (raw)
In-Reply-To: <20171116184358.398030394@linutronix.de>

The following is all extreme nits; you can ignore all of it and the file
will be just fine.

I assume you're planning to merge this directly with the rest; feel free to
add my ack if that's worth anything.  If you want me to take it, instead,
just let me know.

On Thu, 16 Nov 2017 19:33:07 +0100
Thomas Gleixner <tglx@linutronix.de> wrote:

> Add a file to the Documentation directory to describe how file licenses
> should be described in all kernel files, using the SPDX identifier, as well
> as where all licenses should be in the kernel source tree for people to
> refer to (LICENSES/).
> 
> Thanks to Kate and Greg for review and editing and Jonas for the
> suggestions concerning the meta tags in the licenses files.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  Documentation/index.rst                 |   12 
>  Documentation/process/license-rules.rst |  414 ++++++++++++++++++++++++++++++++
>  2 files changed, 426 insertions(+)
>  create mode 100644 Documentation/license-rules.rst
> 
> --- a/Documentation/index.rst
> +++ b/Documentation/index.rst
> @@ -13,6 +13,18 @@ documents into a coherent whole.  Please
>  documentation are welcome; join the linux-doc list at vger.kernel.org if
>  you want to help out.
>  
> +Licensing documentation
> +-----------------------
> +
> +The following describes the license of the Linux kernel source code
> +(GPLv2), how to properly mark the license of individual files in the source
> +tree, as well as links to the full license text.
> +
> +.. toctree::
> +   :maxdepth: 2
> +
> +   process/license-rules.rst
> +

I'll confess that I'm not convinced that information on license identifiers
is the very first thing readers should encounter when entering the kernel's
documentation.  But I'll not quibble about it for now, we can always move
it later :)

>  User-oriented documentation
>  ---------------------------
>  
> --- /dev/null
> +++ b/Documentation/process/license-rules.rst
> @@ -0,0 +1,414 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +Linux kernel licensing rules
> +============================
> +
> +The Linux Kernel is provided under the terms of the GNU General Public
> +License version 2 only (GPL-2.0), as published by the Free Software
> +Foundation, and provided in the COPYING file.  This documentation file is
> +not meant to replace the COPYING file, but provides a description of how
> +each source file should be annotated to make the licensing it is governed
> +under clear and unambiguous.
> +
> +The license in the COPYING file applies to the kernel source as a whole,
> +though individual source files can have a different license which is
> +required to be compatible with the GPL-2.0:
> +
> +::

So this sort of construction (line ending with colon followed by a literal
block) can also be done like this:

	required to be compatible with the GPL-2.0::

    		GPL-1.0+  :  GNU General Public License v1.0 or later
		GPL-2.0+  :  GNU General Public License v2.0 or later

(i.e. just put the "::" at the end of the text line).  The end result is
the same, but the source document is a bit more compact and less
alien-looking.  If you concur, there's lots of places that could be fixed
up this way.

> +Aside from that, individual files can be provided under a dual license,
> +i.e. one of the compatible GPL variants and alternatively under a
> +permissive license like BSD, MIT etc.

Wanna see now nitly I can get?  "i.e." ("id est") is an identity mapping;
you want "e.g." here.

> +
> +The Userspace API (UAPI) header files, which describe the interface of user
> +space programs to the kernel are a special case.  According to the note

I might suggest being consistent between "userspace" and "user space" (or
"user-space" as an adjective).  I prefer the latter, but that's just me.

> +in the kernel COPYING file the syscall interface is a clear boundary,

comma after "file"

> +which does not extend the GPL requirements to any software which uses
> +it to communicate with the kernel.  Because the UAPI headers must be
> +includable into any source files which create an executable running on
> +the Linux kernel, the exception must be documented by a special license
> +expression.
> +
> +The common way of expressing the license of a source file is to add the
> +matching boiler plate text into the top comment of the file.  Due to
> +formatting, typos etc. these "boiler plates" are hard to validate for
> +tools which are used in the context of license compliance.
> +
> +To avoid license inconsistencies and to help tooling, it is required to add
> +a Software Package Data Exchange (SPDX) license identifier to each source
> +file.  SPDX license identifiers are machine parsable and precise shorthands
> +for the license under which the content of the file is contributed.  SPDX
> +license identifiers are managed by the SPDX Workgroup at the Linux
> +Foundation and have been agreed on by partners throughout the industry,
> +tool vendors, and legal teams.  For further information see
> +https://spdx.org/
> +
> +The Linux kernel requires the precise SPDX identifier in all source files.

This is redundant with the first line of the previous paragraph.  I'd fix
it by keeping the first paragraph true to its topic of introducing SPDX and
replacing its first line with something like:

	An alternative to boilerplate text is the use of Software Package
	Data Exchange (SPDX) license identifiers in each source file.

> +The valid identifiers used in the kernel are explained in the section
> +`License identifiers`_ and have been retrieved from the official SPDX
> +license list at https://spdx.org/licenses/ along with the license texts.

[...]

> +License identifiers
> +-------------------
> +
> +The licenses currently used, as well as the licenses for code added to the
> +kernel can be broken down into:

comma after "kernel"

[ran out of things to quibble about here]

jon

  parent reply	other threads:[~2017-11-16 20:57 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
2017-11-16 18:33 ` [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses Thomas Gleixner
2017-11-16 19:44   ` Rob Herring
2017-11-16 20:57   ` Jonathan Corbet [this message]
2017-11-17  9:48     ` [patch V3 " Thomas Gleixner
2017-11-17 22:38       ` Jonathan Corbet
2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
2017-11-17 11:58     ` Philippe Ombredanne
     [not found]     ` <CAG_66ZRPXxodLw=eeTRtXuRGfvmonVNknzNmMuNMVooJgd1Uxw@mail.gmail.com>
2017-11-17 13:16       ` Thomas Gleixner
2017-11-17 17:06     ` Mauro Carvalho Chehab
2017-11-17 18:11       ` Thomas Gleixner
2017-11-17 18:39         ` Christoph Hellwig
2017-11-22 11:12           ` Thomas Gleixner
2017-11-22 11:51             ` Mauro Carvalho Chehab
2017-11-22 13:23               ` Christoph Hellwig
2017-11-22 13:35                 ` Mauro Carvalho Chehab
2017-11-22 13:48               ` Greg Kroah-Hartman
2017-11-25 19:04                 ` Pavel Machek
2017-11-25 19:11                   ` Linus Torvalds
2017-11-25 19:17                     ` Pavel Machek
2017-11-25 19:30                       ` Linus Torvalds
2017-11-25 19:53                         ` Mauro Carvalho Chehab
2017-11-25 20:30                           ` Linus Torvalds
2017-11-25 18:51       ` Pavel Machek
2017-11-25 23:41         ` Philippe Ombredanne
2017-11-17 19:02     ` Jonas Oberg
2017-12-14 16:25     ` Joe Perches
2017-12-14 16:29       ` Thomas Gleixner
2018-01-05 13:05     ` [V4, " Alexandre Belloni
2018-01-05 18:55       ` Russell King - ARM Linux
2018-01-05 22:48       ` Frank Rowand
2018-01-05 23:05         ` Alexandre Belloni
2017-11-17 10:07   ` [patch V2 " Greg Kroah-Hartman
2017-11-17 10:17   ` Carmen Bianca Bakker
2017-11-17 10:21     ` Thomas Gleixner
2017-11-16 18:33 ` [patch V2 02/11] LICENSES: Add the GPL 2.0 license Thomas Gleixner
2017-11-17 10:09   ` Greg Kroah-Hartman
2017-11-18 19:03   ` Charlemagne Lasse
2017-11-18 19:05     ` Charlemagne Lasse
2017-11-18 19:13     ` Jonas Oberg
2017-11-18 19:14     ` Linus Torvalds
2017-11-18 20:41       ` Charlemagne Lasse
2017-11-19  8:50         ` Charlemagne Lasse
2017-11-20 15:31       ` Alan Cox
2017-11-20 15:42         ` Russell King - ARM Linux
2017-11-21  8:27         ` Jonas Oberg
2017-11-21 13:57         ` Philippe Ombredanne
2017-11-21 17:55           ` Philippe Ombredanne
2017-11-20  9:42     ` Thomas Gleixner
2017-11-16 18:33 ` [patch V2 03/11] LICENSES: Add the LGPL " Thomas Gleixner
2017-11-17 10:09   ` Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 04/11] LICENSES: Add the LGPL-2.1 license Thomas Gleixner
2017-11-17 10:09   ` Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 05/11] LICENSES: Add the BSD 2-clause "Simplified" license Thomas Gleixner
2017-11-17 10:08   ` Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 06/11] LICENSES: Add the BSD 3-clause "New" or "Revised" License Thomas Gleixner
2017-11-17 10:09   ` Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 07/11] LICENSES: Add the BSD-3-clause "Clear" license Thomas Gleixner
2017-11-17 10:08   ` Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 08/11] LICENSES: Add the MIT license Thomas Gleixner
2017-11-16 18:33 ` [patch V2 09/11] LICENSES: Add Linux syscall note exception Thomas Gleixner
2017-11-16 21:00   ` [patch V3 " Jonathan Corbet
2017-11-17 10:07   ` [patch V2 " Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 10/11] LICENSES: Add the GPL 1.0 license Thomas Gleixner
2017-11-17 10:08   ` Greg Kroah-Hartman
2017-11-16 18:33 ` [patch V2 11/11] LICENSES: Add MPL-1.1 license Thomas Gleixner
2017-11-17 10:08   ` Greg Kroah-Hartman
2017-11-16 19:25 ` [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171116135730.265a8323@lwn.net \
    --to=corbet@lwn.net \
    --cc=akpm@linuxfoundation.org \
    --cc=carmenbianca@fsfe.org \
    --cc=charlemagnelasse@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@lst.de \
    --cc=joe@perches.com \
    --cc=jonas@fsfe.org \
    --cc=kstewart@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=pombredanne@nexb.com \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=rob.herring@linaro.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.