linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch V2 00/11] LICENSES: Add documentation and initial License files
@ 2017-11-16 18:33 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
                   ` (11 more replies)
  0 siblings, 12 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

This is the second version of the licensing rules documentation.

Changes since v1 [1]:

 - Addressing the review comments from Jon, Joe and Jonas:

   - Moved the documentation file into Documentation/process, but kept the
     topic entry in the top level index file so it stands out. (Joe)

   - Changed the license file metatags so they are not overloading
     SPDX-License-Identifier (Jonas)

   - Cleaned up the inconsistencies in the document (Jon, Joe)

   - Added the comment style fior .rst files (Jon)

 - Added a few more links and cursed restructured text to make it render
   halfways sensible.

 - Added the license files for the SPDX tags which are already in tree and
   moved GPL-1.0 to the 'other' directory as it really does not belong into
   the preferrred category.

 - Removed the Reviewed-by tags as they not longer apply. 

Please go over it with a fine comb again. I'm sure that I screwed up
something on the way, but me staring more at it doesn't help.

Thanks to everyone who provided input!

It turned out that the original approach was incidentaly close to what the
FSFE REUSE initiative docuemented and I think we are now nearing the point
where we can wear the REUSE sticker if Jonas does not find any other holes
in it. :)

Thanks,

	tglx


[1] https://lkml.kernel.org/r/20171112191821.240484206@linutronix.de

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
@ 2017-11-16 18:33 ` Thomas Gleixner
  2017-11-16 19:44   ` Rob Herring
                     ` (4 more replies)
  2017-11-16 18:33 ` [patch V2 02/11] LICENSES: Add the GPL 2.0 license Thomas Gleixner
                   ` (10 subsequent siblings)
  11 siblings, 5 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: Documentation_Add_license-rules.rst_to_describe_how_to_properly_identify_file_licenses.patch --]
[-- Type: text/plain, Size: 15481 bytes --]

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
+
 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:
+
+::
+
+    GPL-1.0+  :  GNU General Public License v1.0 or later
+    GPL-2.0+  :  GNU General Public License v2.0 or later
+    LGPL-2.0  :  GNU Library General Public License v2 only
+    LGPL-2.0+ :  GNU Library General Public License v2 or later
+    LGPL-2.1  :  GNU Lesser General Public License v2.1 only
+    LGPL-2.1+ :  GNU Lesser General Public License v2.1 or later
+
+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.
+
+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
+in the kernel COPYING file the syscall interface is a clear boundary,
+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.
+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 identifier syntax
+-------------------------
+
+1. Placement:
+
+   The SPDX license identifier in kernel files shall be added at the first
+   possible line in a file which can contain a comment.  For the majority
+   or files this is the first line, except for scripts which require the
+   '#!PATH_TO_INTERPRETER' in the first line.  For those scripts the SPDX
+   identifier goes into the second line.
+
+|
+
+2. Style:
+
+   The SPDX license identifier is added in form of a comment.  The comment
+   style depends on the file type:
+
+   ::
+
+      C source:   // SPDX-License-Identifier: <SPDX License Expression>
+      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
+      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
+      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
+      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
+
+   If a specific tool cannot handle the standard comment style, then the
+   appropriate comment mechanism which the tool accepts shall be used. This
+   is the reason for having the "/\* \*/" style comment in C header
+   files. There was build breakage observed with generated .lds files where
+   'ld' failed to parse the C++ comment. This has been fixed by now, but
+   there are still older assembler tools which cannot handle C++ style
+   comments.
+
+|
+
+3. Syntax:
+
+   A <SPDX License Expression> is either an SPDX short form license
+   identifier found on the SPDX License List, or when multiple licenses
+   apply, an expression consisting of keywords "AND", "OR", and "WITH"
+   separating SPDX short form license identifiers surrounded by "(", ")".
+
+   License identifiers for licenses like [L]GPL with the 'or later' option
+   are constructed by using a "+" for indicating the 'or later' option.
+
+   ::
+
+      // SPDX-License-Identifier: GPL-2.0+
+      // SPDX-License-Identifier: LGPL-2.1+
+
+   WITH should be used when there is a modifier to a license needed.
+   For example, the linux kernel UAPI files use the expression:
+
+   ::
+
+      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note)
+      // SPDX-License-Identifier: (GPL-2.0+ WITH Linux-syscall-note)
+
+   Other examples using WITH exceptions found in the kernel are:
+
+   ::
+
+      (GPL-2.0 WITH mif-exception)
+      (GPL-2.0+ WITH GCC-exception-2.0)
+
+
+   Exceptions can only be used with particular License identifiers. The
+   valid License identifiers are listed in the tags of the exception text
+   file. For details see the point `Exceptions`_ in the chapter `License
+   identifiers`_.
+
+   OR should be used if the file is dual licensed and only one license is
+   to be selected.  For example, some dtsi files are available under dual
+   licenses:
+
+   ::
+
+      // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+
+   Examples from the kernel for license expressions in dual licensed files:
+
+   ::
+
+      (GPL-2.0 OR MIT)
+      (GPL-2.0 OR BSD-2-Clause)
+      (GPL-2.0 OR Apache-2.0)
+      (GPL-2.0 OR MPL-1.1)
+      ((GPL-2.0 WITH Linux-syscall-note) OR MIT)
+      ((GPL-1.0+ OR BSD-3-Clause) OR OpenSSL)
+
+   AND should be used if the file has multiple licenses whose terms all
+   apply to use the file. For example, if code is inherited from another
+   project and permission has been given to put it in the kernel, but the
+   original license terms need to remain in effect:
+
+   ::
+
+      // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) AND MIT)
+
+   Another other example where both sets of license terms need to be
+   adhered to is:
+
+   ::
+
+      (GPL-1.0+ AND LGPL-2.1+)
+
+License identifiers
+-------------------
+
+The licenses currently used, as well as the licenses for code added to the
+kernel can be broken down into:
+
+1. _`Preferred licenses`:
+
+   Whenever possible these licenses should be used as they are known to be
+   fully compatible and widely used.  These licenses are available from the
+   directory:
+
+   ::
+
+      LICENSES/preferred/
+
+   in the kernel source tree.
+
+   The files in this directory the full license text and `Metatags`_.
+
+   The file names are identical to the SPDX license identifier which shall
+   be used for the license in source files.
+
+   Examples:
+
+   ::
+
+      LICENSES/preferred/GPL-2.0
+
+   Contains the GPL version 2 license text and the required metatags
+
+   ::
+
+      LICENSES/preferred/MIT
+
+   Contains the MIT license text and the required metatags
+
+   _`Metatags`:
+
+   The following meta tags must be available in a license file:
+
+   - Valid-License-Identifier:
+
+     One or more lines which declare which License Identifiers are valid
+     inside the project to reference this particular license text.  Usually
+     this is a single valid identifier, but e.g. for licenses with the 'or
+     later' options two identifiers are valid.
+
+   - SPDX-URL:
+
+     The URL of the SPDX page which contains additional information related
+     to the license.
+
+   - Usage-Guidance:
+
+     Freeform text for usage advice. The text must include correct examples
+     for the SPDX license identifiers as they should be put into source
+     files according to the `License identifier syntax`_ guidelines.
+
+   - License-Text:
+
+     All text after this tag is treated as the original license text
+
+   File format examples:
+
+   ::
+
+      Valid-License-Identifier: GPL-2.0
+      Valid-License-Identifier: GPL-2.0+
+      SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
+      Usage-Guide:
+        To use this license in source code, put one of the following SPDX
+	tag/value pairs into a comment according to the placement
+	guidelines in the licensing rules documentation.
+	For 'GNU General Public License (GPL) version 2 only' use:
+	  SPDX-License-Identifier: GPL-2.0
+	For 'GNU General Public License (GPL) version 2 or any later version' use:
+	  SPDX-License-Identifier: GPL-2.0+
+      License-Text:
+        Full license text
+
+   ::
+
+      SPDX-License-Identifier: MIT
+      SPDX-URL: https://spdx.org/licenses/MIT.html
+      Usage-Guide:
+	To use this license in source code, put the following SPDX
+	tag/value pair into a comment according to the placement
+	guidelines in the licensing rules documentation.
+	  SPDX-License-Identifier: MIT
+      License-Text:
+        Full license text
+
+|
+
+2. Not recommended licenses:
+
+   These licenses should only be used for existing code or for importing
+   code from a different project.  These licenses are available from the
+   directory:
+
+   ::
+
+      LICENSES/other/
+
+   in the kernel source tree.
+
+   The files in this directory the full license text and `Metatags`_.
+
+   The file names are identical to the SPDX license identifier which shall be
+   used for the license in source files.
+
+   Examples:
+
+   ::
+
+      LICENSES/other/ISC
+
+   Contains the Internet Systems Consortium license text and the required
+   metatags
+
+   ::
+
+      LICENSES/other/ZLib
+
+   Contains the ZLIB license text and the required metatags.
+
+   Metatags:
+
+   The metatag requirements for 'other' licenses are identical to the
+   requirements of the `Preferred licenses`_.
+
+   File format example:
+
+   ::
+
+      Valid-License-Identifier: ISC
+      SPDX-URL: https://spdx.org/licenses/ISC.html
+      Usage-Guide:
+        Usage of this license in the kernel for new code is discouraged
+	and it should solely be used for importing code from an already
+	existing project.
+        To use this license in source code, put the following SPDX
+	tag/value pair into a comment according to the placement
+	guidelines in the licensing rules documentation.
+	  SPDX-License-Identifier: ISC
+      License-Text:
+        Full license text
+
+|
+
+3. _`Exceptions`:
+
+   Some licenses can be amended with exceptions which grant certain rights
+   which the original license does not.  These exceptions are available
+   from the directory:
+
+   ::
+
+      LICENSES/exceptions/
+
+   in the kernel source tree.  The files in this directory contain the full
+   exception text and the required `Exception Metatags`_.
+
+   Examples:
+
+   ::
+
+      LICENSES/exceptions/Linux-syscall-note
+
+   Contains the Linux syscall exception as documented in the COPYING
+   file of the Linux kernel, which is used for UAPI header files.
+   e.g. /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/
+
+   ::
+
+      LICENSES/exceptions/GCC-exception-2.0
+
+   Contains the GCC 'linking exception' which allows to link any binary
+   independent of its license against the compiled version of a file marked
+   with this exception. This is required for creating runnable executables
+   from source code which is not compatible with the GPL.
+
+   _`Exception Metatags`:
+
+   The following meta tags must be available in an exception file:
+
+   - SPDX-Exception-Identifier:
+
+     One exception identifier which can be used with SPDX license
+     identifiers.
+
+   - SPDX-URL:
+
+     The URL of the SPDX page which contains additional information related
+     to the exception.
+
+   - SPDX-Licenses:
+
+     A comma separated list of SPDX license identifiers for which the
+     exception can be used.
+
+   - Usage-Guidance:
+
+     Freeform text for usage advice. The text must be followed by correct
+     examples for the SPDX license identifiers as they should be put into
+     source files according to the `License identifier syntax`_ guidelines.
+
+   - Exception-Text:
+
+     All text after this tag is treated as the original exception text
+
+   File format examples:
+
+   ::
+
+      SPDX-Exception-Identifier: Linux-syscall-note
+      SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
+      SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
+      Usage-Guidance:
+        This exception is used together with one of the above SPDX-Licenses
+	to mark user space API (uapi) header files so they can be included
+	into non GPL compliant user space application code.
+        To use this exception add it with the keyword WITH to one of the
+	identifiers in the SPDX-Licenses tag:
+	  SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
+      Exception-Text:
+        Full exception text
+
+   ::
+
+      SPDX-Exception-Identifier: GCC-exception-2.0
+      SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
+      SPDX-Licenses: GPL-2.0, GPL-2.0+
+      Usage-Guidance:
+        The "GCC Runtime Library exception 2.0" is used together with one
+	of the above SPDX-Licenses for code imported from the GCC runtime
+	library.
+        To use this exception add it with the keyword WITH to one of the
+	identifiers in the SPDX-Licenses tag:
+	  SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
+      Exception-Text:
+        Full exception text
+
+
+All SPDX license identifiers and exceptions must have a corresponding file
+in the LICENSING subdirectories. This is required to allow tool
+verification (e.g. checkpatch.pl) and to have the licenses ready to read
+and extract right from the source, which is recommended by various FOSS
+organizations, e.g. the `FSFE REUSE initiative <https://reuse.software/>`_.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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 18:33 ` Thomas Gleixner
  2017-11-17 10:09   ` Greg Kroah-Hartman
  2017-11-18 19:03   ` Charlemagne Lasse
  2017-11-16 18:33 ` [patch V2 03/11] LICENSES: Add the LGPL " Thomas Gleixner
                   ` (9 subsequent siblings)
  11 siblings, 2 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES_Add_the_GPL_2.0_license.patch --]
[-- Type: text/plain, Size: 19757 bytes --]

Add the full text of the GPL 2.0 license to the kernel tree.  It was
copied directly from:

   https://spdx.org/licenses/GPL-2.0.html#licenseText

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 LICENSES/preferred/GPL-2.0 |  348 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 348 insertions(+)
 create mode 100644 LICENSES/GPL-2.0

--- /dev/null
+++ b/LICENSES/preferred/GPL-2.0
@@ -0,0 +1,348 @@
+Valid-License-Identifier: GPL-2.0
+Valid-License-Identifier: GPL-2.0+
+SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
+Usage-Guide:
+  To use this license in source code, put one of the following SPDX
+  tag/value pairs into a comment according to the placement
+  guidelines in the licensing rules documentation.
+  For 'GNU General Public License (GPL) version 2 only' use:
+    SPDX-License-Identifier: GPL-2.0
+  For 'GNU General Public License (GPL) version 2 or any later version' use:
+    SPDX-License-Identifier: GPL-2.0+
+License-Text:
+
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public
+License applies to most of the Free Software Foundation's software and to
+any other program whose authors commit to using it. (Some other Free
+Software Foundation software is covered by the GNU Library General Public
+License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for this service if you
+wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or
+for a fee, you must give the recipients all the rights that you have. You
+must make sure that they, too, receive or can get the source code. And you
+must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If
+the software is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original, so that any
+problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program
+proprietary. To prevent this, we have made it clear that any patent must be
+licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a
+   notice placed by the copyright holder saying it may be distributed under
+   the terms of this General Public License. The "Program", below, refers
+   to any such program or work, and a "work based on the Program" means
+   either the Program or any derivative work under copyright law: that is
+   to say, a work containing the Program or a portion of it, either
+   verbatim or with modifications and/or translated into another
+   language. (Hereinafter, translation is included without limitation in
+   the term "modification".)  Each licensee is addressed as "you".
+
+   Activities other than copying, distribution and modification are not
+   covered by this License; they are outside its scope. The act of running
+   the Program is not restricted, and the output from the Program is
+   covered only if its contents constitute a work based on the Program
+   (independent of having been made by running the Program). Whether that
+   is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code
+   as you receive it, in any medium, provided that you conspicuously and
+   appropriately publish on each copy an appropriate copyright notice and
+   disclaimer of warranty; keep intact all the notices that refer to this
+   License and to the absence of any warranty; and give any other recipients
+   of the Program a copy of this License along with the Program.
+
+   You may charge a fee for the physical act of transferring a copy, and
+   you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+   thus forming a work based on the Program, and copy and distribute such
+   modifications or work under the terms of Section 1 above, provided that you
+   also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices stating
+       that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+       whole or in part contains or is derived from the Program or any part
+       thereof, to be licensed as a whole at no charge to all third parties
+       under the terms of this License.
+
+    c) If the modified program normally reads commands interactively when
+       run, you must cause it, when started running for such interactive
+       use in the most ordinary way, to print or display an announcement
+       including an appropriate copyright notice and a notice that there is
+       no warranty (or else, saying that you provide a warranty) and that
+       users may redistribute the program under these conditions, and
+       telling the user how to view a copy of this License. (Exception: if
+       the Program itself is interactive but does not normally print such
+       an announcement, your work based on the Program is not required to
+       print an announcement.)
+
+   These requirements apply to the modified work as a whole. If
+   identifiable sections of that work are not derived from the Program, and
+   can be reasonably considered independent and separate works in
+   themselves, then this License, and its terms, do not apply to those
+   sections when you distribute them as separate works. But when you
+   distribute the same sections as part of a whole which is a work based on
+   the Program, the distribution of the whole must be on the terms of this
+   License, whose permissions for other licensees extend to the entire
+   whole, and thus to each and every part regardless of who wrote it.
+
+   Thus, it is not the intent of this section to claim rights or contest
+   your rights to work written entirely by you; rather, the intent is to
+   exercise the right to control the distribution of derivative or
+   collective works based on the Program.
+
+   In addition, mere aggregation of another work not based on the Program
+   with the Program (or with a work based on the Program) on a volume of a
+   storage or distribution medium does not bring the other work under the
+   scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+   Section 2) in object code or executable form under the terms of Sections 1
+   and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable source
+       code, which must be distributed under the terms of Sections 1 and 2
+       above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three years,
+       to give any third party, for a charge no more than your cost of
+       physically performing source distribution, a complete
+       machine-readable copy of the corresponding source code, to be
+       distributed under the terms of Sections 1 and 2 above on a medium
+       customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer to
+       distribute corresponding source code. (This alternative is allowed
+       only for noncommercial distribution and only if you received the
+       program in object code or executable form with such an offer, in
+       accord with Subsection b above.)
+
+       The source code for a work means the preferred form of the work for
+       making modifications to it. For an executable work, complete source
+       code means all the source code for all modules it contains, plus any
+       associated interface definition files, plus the scripts used to
+       control compilation and installation of the executable. However, as
+       a special exception, the source code distributed need not include
+       anything that is normally distributed (in either source or binary
+       form) with the major components (compiler, kernel, and so on) of the
+       operating system on which the executable runs, unless that component
+       itself accompanies the executable.
+
+       If distribution of executable or object code is made by offering
+       access to copy from a designated place, then offering equivalent
+       access to copy the source code from the same place counts as
+       distribution of the source code, even though third parties are not
+       compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except
+   as expressly provided under this License. Any attempt otherwise to copy,
+   modify, sublicense or distribute the Program is void, and will
+   automatically terminate your rights under this License. However, parties
+   who have received copies, or rights, from you under this License will
+   not have their licenses terminated so long as such parties remain in
+   full compliance.
+
+5. You are not required to accept this License, since you have not signed
+   it. However, nothing else grants you permission to modify or distribute
+   the Program or its derivative works. These actions are prohibited by law
+   if you do not accept this License. Therefore, by modifying or
+   distributing the Program (or any work based on the Program), you
+   indicate your acceptance of this License to do so, and all its terms and
+   conditions for copying, distributing or modifying the Program or works
+   based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+   Program), the recipient automatically receives a license from the
+   original licensor to copy, distribute or modify the Program subject to
+   these terms and conditions. You may not impose any further restrictions
+   on the recipients' exercise of the rights granted herein. You are not
+   responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+   infringement or for any other reason (not limited to patent issues),
+   conditions are imposed on you (whether by court order, agreement or
+   otherwise) that contradict the conditions of this License, they do not
+   excuse you from the conditions of this License. If you cannot distribute
+   so as to satisfy simultaneously your obligations under this License and
+   any other pertinent obligations, then as a consequence you may not
+   distribute the Program at all. For example, if a patent license would
+   not permit royalty-free redistribution of the Program by all those who
+   receive copies directly or indirectly through you, then the only way you
+   could satisfy both it and this License would be to refrain entirely from
+   distribution of the Program.
+
+   If any portion of this section is held invalid or unenforceable under
+   any particular circumstance, the balance of the section is intended to
+   apply and the section as a whole is intended to apply in other
+   circumstances.
+
+   It is not the purpose of this section to induce you to infringe any
+   patents or other property right claims or to contest validity of any
+   such claims; this section has the sole purpose of protecting the
+   integrity of the free software distribution system, which is implemented
+   by public license practices. Many people have made generous
+   contributions to the wide range of software distributed through that
+   system in reliance on consistent application of that system; it is up to
+   the author/donor to decide if he or she is willing to distribute
+   software through any other system and a licensee cannot impose that
+   choice.
+
+   This section is intended to make thoroughly clear what is believed to be
+   a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+   countries either by patents or by copyrighted interfaces, the original
+   copyright holder who places the Program under this License may add an
+   explicit geographical distribution limitation excluding those countries,
+   so that distribution is permitted only in or among countries not thus
+   excluded. In such case, this License incorporates the limitation as if
+   written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of
+   the General Public License from time to time. Such new versions will be
+   similar in spirit to the present version, but may differ in detail to
+   address new problems or concerns.
+
+   Each version is given a distinguishing version number. If the Program
+   specifies a version number of this License which applies to it and "any
+   later version", you have the option of following the terms and
+   conditions either of that version or of any later version published by
+   the Free Software Foundation. If the Program does not specify a version
+   number of this License, you may choose any version ever published by the
+   Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+    programs whose distribution conditions are different, write to the
+    author to ask for permission. For software which is copyrighted by the
+    Free Software Foundation, write to the Free Software Foundation; we
+    sometimes make exceptions for this. Our decision will be guided by the
+    two goals of preserving the free status of all derivatives of our free
+    software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+    FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+    EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+    ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
+    YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+    NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+    DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+    DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
+    (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
+    INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+    THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
+    OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it free
+software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey the
+exclusion of warranty; and each file should have at least the "copyright"
+line and a pointer to where the full notice is found.
+
+    One line to give the program's name and a brief idea of what it does.
+    Copyright (C) <year> <name of author>
+
+    This program is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+    General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when
+it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author Gnomovision
+    comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is
+    free software, and you are welcome to redistribute it under certain
+    conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+    Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+    `Gnomovision' (which makes passes at compilers) written by James
+    Hacker.
+
+    signature of Ty Coon, 1 April 1989
+    Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 03/11] LICENSES: Add the LGPL 2.0 license
  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 18:33 ` [patch V2 02/11] LICENSES: Add the GPL 2.0 license Thomas Gleixner
@ 2017-11-16 18:33 ` 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
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES--Add-the-LGPL-2.0-license.patch --]
[-- Type: text/plain, Size: 27171 bytes --]

Add the full text of the LGPL 2.0 license to the kernel tree.  It was
copied directly from:

   https://spdx.org/licenses/LGPL-2.0.html#licenseText

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 LICENSES/preferred/LGPL-2.0 |  487 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 487 insertions(+)

--- /dev/null
+++ b/LICENSES/preferred/LGPL-2.0
@@ -0,0 +1,487 @@
+Valid-License-Identifier: LGPL-2.0
+Valid-License-Identifier: LGPL-2.0+
+SPDX-URL: https://spdx.org/licenses/LGPL-2.0.html
+Usage-Guide:
+  To use this license in source code, put one of the following SPDX
+  tag/value pairs into a comment according to the placement
+  guidelines in the licensing rules documentation.
+  For 'GNU Library General Public License (LGPL) version 2.0 only' use:
+    SPDX-License-Identifier: LGPL-2.0
+  For 'GNU Library General Public License (LGPL) version 2.0 or any later
+  version' use:
+    SPDX-License-Identifier: LGPL-2.0+
+License-Text:
+
+GNU LIBRARY GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+Copyright (C) 1991 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is numbered 2
+because it goes with version 2 of the ordinary GPL.]
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public Licenses are
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users.
+
+This license, the Library General Public License, applies to some specially
+designated Free Software Foundation software, and to any other libraries
+whose authors decide to use it. You can use it for your libraries, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for this service if you
+wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you
+distribute copies of the library, or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis or for
+a fee, you must give the recipients all the rights that we gave you. You
+must make sure that they, too, receive or can get the source code. If you
+link a program with the library, you must provide complete object files to
+the recipients so that they can relink them with the library, after making
+changes to the library and recompiling it. And you must show them these
+terms so they know their rights.
+
+Our method of protecting your rights has two steps: (1) copyright the
+library, and (2) offer you this license which gives you legal permission to
+copy, distribute and/or modify the library.
+
+Also, for each distributor's protection, we want to make certain that
+everyone understands that there is no warranty for this free library. If
+the library is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original version, so that
+any problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that companies distributing free software will
+individually obtain patent licenses, thus in effect transforming the
+program into proprietary software. To prevent this, we have made it clear
+that any patent must be licensed for everyone's free use or not licensed at
+all.
+
+Most GNU software, including some libraries, is covered by the ordinary GNU
+General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+Because of this blurred distinction, using the ordinary General Public
+License for libraries did not effectively promote software sharing, because
+most developers did not use the libraries. We concluded that weaker
+conditions might promote sharing better.
+
+However, unrestricted linking of non-free programs would deprive the users
+of those programs of all benefit from the free status of the libraries
+themselves. This Library General Public License is intended to permit
+developers of non-free programs to use free libraries, while preserving
+your freedom as a user of such programs to change the free libraries that
+are incorporated in them. (We have not seen how to achieve this as regards
+changes in header files, but we have achieved it as regards changes in the
+actual functions of the Library.) The hope is that this will lead to faster
+development of free libraries.
+
+The precise terms and conditions for copying, distribution and modification
+follow. Pay close attention to the difference between a "work based on the
+library" and a "work that uses the library". The former contains code
+derived from the library, while the latter only works together with the
+library.
+
+Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License Agreement applies to any software library which contains a
+   notice placed by the copyright holder or other authorized party saying
+   it may be distributed under the terms of this Library General Public
+   License (also called "this License"). Each licensee is addressed as
+   "you".
+
+   A "library" means a collection of software functions and/or data
+   prepared so as to be conveniently linked with application programs
+   (which use some of those functions and data) to form executables.
+
+   The "Library", below, refers to any such software library or work which
+   has been distributed under these terms. A "work based on the Library"
+   means either the Library or any derivative work under copyright law:
+   that is to say, a work containing the Library or a portion of it, either
+   verbatim or with modifications and/or translated straightforwardly into
+   another language. (Hereinafter, translation is included without
+   limitation in the term "modification".)
+
+   "Source code" for a work means the preferred form of the work for making
+   modifications to it. For a library, complete source code means all the
+   source code for all modules it contains, plus any associated interface
+   definition files, plus the scripts used to control compilation and
+   installation of the library.
+
+   Activities other than copying, distribution and modification are not
+   covered by this License; they are outside its scope. The act of running
+   a program using the Library is not restricted, and output from such a
+   program is covered only if its contents constitute a work based on the
+   Library (independent of the use of the Library in a tool for writing
+   it). Whether that is true depends on what the Library does and what the
+   program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the Library's complete
+   source code as you receive it, in any medium, provided that you
+   conspicuously and appropriately publish on each copy an appropriate
+   copyright notice and disclaimer of warranty; keep intact all the notices
+   that refer to this License and to the absence of any warranty; and
+   distribute a copy of this License along with the Library.
+
+   You may charge a fee for the physical act of transferring a copy, and
+   you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Library or any portion of it,
+   thus forming a work based on the Library, and copy and distribute such
+   modifications or work under the terms of Section 1 above, provided that
+   you also meet all of these conditions:
+
+   a) The modified work must itself be a software library.
+
+   b) You must cause the files modified to carry prominent notices stating
+      that you changed the files and the date of any change.
+
+   c) You must cause the whole of the work to be licensed at no charge to
+      all third parties under the terms of this License.
+
+   d) If a facility in the modified Library refers to a function or a table
+      of data to be supplied by an application program that uses the
+      facility, other than as an argument passed when the facility is
+      invoked, then you must make a good faith effort to ensure that, in
+      the event an application does not supply such function or table, the
+      facility still operates, and performs whatever part of its purpose
+      remains meaningful.
+
+   (For example, a function in a library to compute square roots has a
+   purpose that is entirely well-defined independent of the
+   application. Therefore, Subsection 2d requires that any
+   application-supplied function or table used by this function must be
+   optional: if the application does not supply it, the square root
+   function must still compute square roots.)
+
+   These requirements apply to the modified work as a whole. If
+   identifiable sections of that work are not derived from the Library, and
+   can be reasonably considered independent and separate works in
+   themselves, then this License, and its terms, do not apply to those
+   sections when you distribute them as separate works. But when you
+   distribute the same sections as part of a whole which is a work based on
+   the Library, the distribution of the whole must be on the terms of this
+   License, whose permissions for other licensees extend to the entire
+   whole, and thus to each and every part regardless of who wrote it.
+
+   Thus, it is not the intent of this section to claim rights or contest
+   your rights to work written entirely by you; rather, the intent is to
+   exercise the right to control the distribution of derivative or
+   collective works based on the Library.
+
+   In addition, mere aggregation of another work not based on the Library
+   with the Library (or with a work based on the Library) on a volume of a
+   storage or distribution medium does not bring the other work under the
+   scope of this License.
+
+3. You may opt to apply the terms of the ordinary GNU General Public
+   License instead of this License to a given copy of the Library. To do
+   this, you must alter all the notices that refer to this License, so that
+   they refer to the ordinary GNU General Public License, version 2,
+   instead of to this License. (If a newer version than version 2 of the
+   ordinary GNU General Public License has appeared, then you can specify
+   that version instead if you wish.) Do not make any other change in these
+   notices.
+
+   Once this change is made in a given copy, it is irreversible for that
+   copy, so the ordinary GNU General Public License applies to all
+   subsequent copies and derivative works made from that copy.
+
+   This option is useful when you wish to copy part of the code of the
+   Library into a program that is not a library.
+
+4. You may copy and distribute the Library (or a portion or derivative of
+   it, under Section 2) in object code or executable form under the terms
+   of Sections 1 and 2 above provided that you accompany it with the
+   complete corresponding machine-readable source code, which must be
+   distributed under the terms of Sections 1 and 2 above on a medium
+   customarily used for software interchange.
+
+   If distribution of object code is made by offering access to copy from a
+   designated place, then offering equivalent access to copy the source
+   code from the same place satisfies the requirement to distribute the
+   source code, even though third parties are not compelled to copy the
+   source along with the object code.
+
+5. A program that contains no derivative of any portion of the Library, but
+   is designed to work with the Library by being compiled or linked with
+   it, is called a "work that uses the Library". Such a work, in isolation,
+   is not a derivative work of the Library, and therefore falls outside the
+   scope of this License.
+
+   However, linking a "work that uses the Library" with the Library creates
+   an executable that is a derivative of the Library (because it contains
+   portions of the Library), rather than a "work that uses the
+   library". The executable is therefore covered by this License. Section 6
+   states terms for distribution of such executables.
+
+   When a "work that uses the Library" uses material from a header file
+   that is part of the Library, the object code for the work may be a
+   derivative work of the Library even though the source code is
+   not. Whether this is true is especially significant if the work can be
+   linked without the Library, or if the work is itself a library. The
+   threshold for this to be true is not precisely defined by law.
+
+   If such an object file uses only numerical parameters, data structure
+   layouts and accessors, and small macros and small inline functions (ten
+   lines or less in length), then the use of the object file is
+   unrestricted, regardless of whether it is legally a derivative
+   work. (Executables containing this object code plus portions of the
+   Library will still fall under Section 6.)
+
+   Otherwise, if the work is a derivative of the Library, you may
+   distribute the object code for the work under the terms of Section
+   6. Any executables containing that work also fall under Section 6,
+   whether or not they are linked directly with the Library itself.
+
+6. As an exception to the Sections above, you may also compile or link a
+   "work that uses the Library" with the Library to produce a work
+   containing portions of the Library, and distribute that work under terms
+   of your choice, provided that the terms permit modification of the work
+   for the customer's own use and reverse engineering for debugging such
+   modifications.
+
+   You must give prominent notice with each copy of the work that the
+   Library is used in it and that the Library and its use are covered by
+   this License. You must supply a copy of this License. If the work during
+   execution displays copyright notices, you must include the copyright
+   notice for the Library among them, as well as a reference directing the
+   user to the copy of this License. Also, you must do one of these things:
+
+   a) Accompany the work with the complete corresponding machine-readable
+      source code for the Library including whatever changes were used in
+      the work (which must be distributed under Sections 1 and 2 above);
+      and, if the work is an executable linked with the Library, with the
+      complete machine-readable "work that uses the Library", as object
+      code and/or source code, so that the user can modify the Library and
+      then relink to produce a modified executable containing the modified
+      Library. (It is understood that the user who changes the contents of
+      definitions files in the Library will not necessarily be able to
+      recompile the application to use the modified definitions.)
+
+   b) Accompany the work with a written offer, valid for at least three
+      years, to give the same user the materials specified in Subsection
+      6a, above, for a charge no more than the cost of performing this
+      distribution.
+
+   c) If distribution of the work is made by offering access to copy from a
+      designated place, offer equivalent access to copy the above specified
+      materials from the same place.
+
+   d) Verify that the user has already received a copy of these materials
+      or that you have already sent this user a copy.
+
+   For an executable, the required form of the "work that uses the Library"
+   must include any data and utility programs needed for reproducing the
+   executable from it. However, as a special exception, the source code
+   distributed need not include anything that is normally distributed (in
+   either source or binary form) with the major components (compiler,
+   kernel, and so on) of the operating system on which the executable runs,
+   unless that component itself accompanies the executable.
+
+   It may happen that this requirement contradicts the license restrictions
+   of other proprietary libraries that do not normally accompany the
+   operating system. Such a contradiction means you cannot use both them
+   and the Library together in an executable that you distribute.
+
+7. You may place library facilities that are a work based on the Library
+   side-by-side in a single library together with other library facilities
+   not covered by this License, and distribute such a combined library,
+   provided that the separate distribution of the work based on the Library
+   and of the other library facilities is otherwise permitted, and provided
+   that you do these two things:
+
+   a) Accompany the combined library with a copy of the same work based on
+      the Library, uncombined with any other library facilities. This must
+      be distributed under the terms of the Sections above.
+
+   b) Give prominent notice with the combined library of the fact that part
+      of it is a work based on the Library, and explaining where to find
+      the accompanying uncombined form of the same work.
+
+8. You may not copy, modify, sublicense, link with, or distribute the
+   Library except as expressly provided under this License. Any attempt
+   otherwise to copy, modify, sublicense, link with, or distribute the
+   Library is void, and will automatically terminate your rights under this
+   License. However, parties who have received copies, or rights, from you
+   under this License will not have their licenses terminated so long as
+   such parties remain in full compliance.
+
+9. You are not required to accept this License, since you have not signed
+   it. However, nothing else grants you permission to modify or distribute
+   the Library or its derivative works. These actions are prohibited by law
+   if you do not accept this License. Therefore, by modifying or
+   distributing the Library (or any work based on the Library), you
+   indicate your acceptance of this License to do so, and all its terms and
+   conditions for copying, distributing or modifying the Library or works
+   based on it.
+
+10. Each time you redistribute the Library (or any work based on the
+    Library), the recipient automatically receives a license from the
+    original licensor to copy, distribute, link with or modify the Library
+    subject to these terms and conditions. You may not impose any further
+    restrictions on the recipients' exercise of the rights granted
+    herein. You are not responsible for enforcing compliance by third
+    parties to this License.
+
+11. If, as a consequence of a court judgment or allegation of patent
+    infringement or for any other reason (not limited to patent issues),
+    conditions are imposed on you (whether by court order, agreement or
+    otherwise) that contradict the conditions of this License, they do not
+    excuse you from the conditions of this License. If you cannot
+    distribute so as to satisfy simultaneously your obligations under this
+    License and any other pertinent obligations, then as a consequence you
+    may not distribute the Library at all. For example, if a patent license
+    would not permit royalty-free redistribution of the Library by all
+    those who receive copies directly or indirectly through you, then the
+    only way you could satisfy both it and this License would be to refrain
+    entirely from distribution of the Library.
+
+    If any portion of this section is held invalid or unenforceable under
+    any particular circumstance, the balance of the section is intended to
+    apply, and the section as a whole is intended to apply in other
+    circumstances.
+
+    It is not the purpose of this section to induce you to infringe any
+    patents or other property right claims or to contest validity of any
+    such claims; this section has the sole purpose of protecting the
+    integrity of the free software distribution system which is implemented
+    by public license practices. Many people have made generous
+    contributions to the wide range of software distributed through that
+    system in reliance on consistent application of that system; it is up
+    to the author/donor to decide if he or she is willing to distribute
+    software through any other system and a licensee cannot impose that
+    choice.
+
+    This section is intended to make thoroughly clear what is believed to
+    be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in certain
+    countries either by patents or by copyrighted interfaces, the original
+    copyright holder who places the Library under this License may add an
+    explicit geographical distribution limitation excluding those
+    countries, so that distribution is permitted only in or among countries
+    not thus excluded. In such case, this License incorporates the
+    limitation as if written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new versions of
+    the Library General Public License from time to time. Such new versions
+    will be similar in spirit to the present version, but may differ in
+    detail to address new problems or concerns.
+
+    Each version is given a distinguishing version number. If the Library
+    specifies a version number of this License which applies to it and "any
+    later version", you have the option of following the terms and
+    conditions either of that version or of any later version published by
+    the Free Software Foundation. If the Library does not specify a license
+    version number, you may choose any version ever published by the Free
+    Software Foundation.
+
+14. If you wish to incorporate parts of the Library into other free
+    programs whose distribution conditions are incompatible with these,
+    write to the author to ask for permission. For software which is
+    copyrighted by the Free Software Foundation, write to the Free Software
+    Foundation; we sometimes make exceptions for this. Our decision will be
+    guided by the two goals of preserving the free status of all
+    derivatives of our free software and of promoting the sharing and reuse
+    of software generally.
+
+NO WARRANTY
+
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+    FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+    PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+    EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+    ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH
+    YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+    NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+    REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+    DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+    DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY
+    (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
+    INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+    THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR
+    OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Libraries
+
+If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+one line to give the library's name and an idea of what it does.
+Copyright (C) year name of author
+
+This library is free software; you can redistribute it and/or modify it
+under the terms of the GNU Library General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+
+This library is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+License for more details.
+
+You should have received a copy of the GNU Library General Public License
+along with this library; if not, write to the Free Software Foundation,
+Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in
+the library `Frob' (a library for tweaking knobs) written
+by James Random Hacker.
+
+signature of Ty Coon, 1 April 1990
+Ty Coon, President of Vice
+
+That's all there is to it!

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 04/11] LICENSES: Add the LGPL-2.1 license
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (2 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 03/11] LICENSES: Add the LGPL " Thomas Gleixner
@ 2017-11-16 18:33 ` 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
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES--Add-the-LGPL-2.1-license.patch --]
[-- Type: text/plain, Size: 28354 bytes --]

Add the full text of the LGPL 2.1 license to the kernel tree.  It was
copied directly from:

   https://spdx.org/licenses/LGPL-2.1.html#licenseText

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 LICENSES/preferred/LGPL-2.1 |  503 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 503 insertions(+)

--- /dev/null
+++ b/LICENSES/preferred/LGPL-2.1
@@ -0,0 +1,503 @@
+Valid-License-Identifier: LGPL-2.1
+Valid-License-Identifier: LGPL-2.1+
+SPDX-URL: https://spdx.org/licenses/LGPL-2.1.html
+Usage-Guide:
+  To use this license in source code, put one of the following SPDX
+  tag/value pairs into a comment according to the placement
+  guidelines in the licensing rules documentation.
+  For 'GNU Lesser General Public License (LGPL) version 2.1 only' use:
+    SPDX-License-Identifier: LGPL-2.1
+  For 'GNU Lesser General Public License (LGPL) version 2.1 or any later
+  version' use:
+    SPDX-License-Identifier: LGPL-2.1+
+License-Text:
+
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts as
+the successor of the GNU Library Public License, version 2, hence the
+version number 2.1.]
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public Licenses are
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users.
+
+This license, the Lesser General Public License, applies to some specially
+designated software packages--typically libraries--of the Free Software
+Foundation and other authors who decide to use it. You can use it too, but
+we suggest you first think carefully about whether this license or the
+ordinary General Public License is the better strategy to use in any
+particular case, based on the explanations below.
+
+When we speak of free software, we are referring to freedom of use, not
+price. Our General Public Licenses are designed to make sure that you have
+the freedom to distribute copies of free software (and charge for this
+service if you wish); that you receive source code or can get it if you
+want it; that you can change the software and use pieces of it in new free
+programs; and that you are informed that you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for you if
+you distribute copies of the library or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis or for
+a fee, you must give the recipients all the rights that we gave you. You
+must make sure that they, too, receive or can get the source code. If you
+link other code with the library, you must provide complete object files to
+the recipients, so that they can relink them with the library after making
+changes to the library and recompiling it. And you must show them these
+terms so they know their rights.
+
+We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+To protect each distributor, we want to make it very clear that there is no
+warranty for the free library. Also, if the library is modified by someone
+else and passed on, the recipients should know that what they have is not
+the original version, so that the original author's reputation will not be
+affected by problems that might be introduced by others.
+
+Finally, software patents pose a constant threat to the existence of any
+free program. We wish to make sure that a company cannot effectively
+restrict the users of a free program by obtaining a restrictive license
+from a patent holder. Therefore, we insist that any patent license obtained
+for a version of the library must be consistent with the full freedom of
+use specified in this license.
+
+Most GNU software, including some libraries, is covered by the ordinary GNU
+General Public License. This license, the GNU Lesser General Public
+License, applies to certain designated libraries, and is quite different
+from the ordinary General Public License. We use this license for certain
+libraries in order to permit linking those libraries into non-free
+programs.
+
+When a program is linked with a library, whether statically or using a
+shared library, the combination of the two is legally speaking a combined
+work, a derivative of the original library. The ordinary General Public
+License therefore permits such linking only if the entire combination fits
+its criteria of freedom. The Lesser General Public License permits more lax
+criteria for linking other code with the library.
+
+We call this license the "Lesser" General Public License because it does
+Less to protect the user's freedom than the ordinary General Public
+License. It also provides other free software developers Less of an
+advantage over competing non-free programs. These disadvantages are the
+reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+For example, on rare occasions, there may be a special need to encourage
+the widest possible use of a certain library, so that it becomes a de-facto
+standard. To achieve this, non-free programs must be allowed to use the
+library. A more frequent case is that a free library does the same job as
+widely used non-free libraries. In this case, there is little to gain by
+limiting the free library to free software only, so we use the Lesser
+General Public License.
+
+In other cases, permission to use a particular library in non-free programs
+enables a greater number of people to use a large body of free
+software. For example, permission to use the GNU C Library in non-free
+programs enables many more people to use the whole GNU operating system, as
+well as its variant, the GNU/Linux operating system.
+
+Although the Lesser General Public License is Less protective of the users'
+freedom, it does ensure that the user of a program that is linked with the
+Library has the freedom and the wherewithal to run that program using a
+modified version of the Library.
+
+The precise terms and conditions for copying, distribution and modification
+follow. Pay close attention to the difference between a "work based on the
+library" and a "work that uses the library". The former contains code
+derived from the library, whereas the latter must be combined with the
+library in order to run.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License Agreement applies to any software library or other program
+   which contains a notice placed by the copyright holder or other
+   authorized party saying it may be distributed under the terms of this
+   Lesser General Public License (also called "this License"). Each
+   licensee is addressed as "you".
+
+   A "library" means a collection of software functions and/or data
+   prepared so as to be conveniently linked with application programs
+   (which use some of those functions and data) to form executables.
+
+   The "Library", below, refers to any such software library or work which
+   has been distributed under these terms. A "work based on the Library"
+   means either the Library or any derivative work under copyright law:
+   that is to say, a work containing the Library or a portion of it, either
+   verbatim or with modifications and/or translated straightforwardly into
+   another language. (Hereinafter, translation is included without
+   limitation in the term "modification".)
+
+   "Source code" for a work means the preferred form of the work for making
+   modifications to it. For a library, complete source code means all the
+   source code for all modules it contains, plus any associated interface
+   definition files, plus the scripts used to control compilation and
+   installation of the library.
+
+    Activities other than copying, distribution and modification are not
+    covered by this License; they are outside its scope. The act of running
+    a program using the Library is not restricted, and output from such a
+    program is covered only if its contents constitute a work based on the
+    Library (independent of the use of the Library in a tool for writing
+    it). Whether that is true depends on what the Library does and what the
+    program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the Library's complete
+   source code as you receive it, in any medium, provided that you
+   conspicuously and appropriately publish on each copy an appropriate
+   copyright notice and disclaimer of warranty; keep intact all the notices
+   that refer to this License and to the absence of any warranty; and
+   distribute a copy of this License along with the Library.
+
+   You may charge a fee for the physical act of transferring a copy, and
+   you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Library or any portion of it,
+   thus forming a work based on the Library, and copy and distribute such
+   modifications or work under the terms of Section 1 above, provided that
+   you also meet all of these conditions:
+
+   a) The modified work must itself be a software library.
+
+   b) You must cause the files modified to carry prominent notices stating
+      that you changed the files and the date of any change.
+
+   c) You must cause the whole of the work to be licensed at no charge to
+      all third parties under the terms of this License.
+
+   d) If a facility in the modified Library refers to a function or a table
+      of data to be supplied by an application program that uses the
+      facility, other than as an argument passed when the facility is
+      invoked, then you must make a good faith effort to ensure that, in
+      the event an application does not supply such function or table, the
+      facility still operates, and performs whatever part of its purpose
+      remains meaningful.
+
+   (For example, a function in a library to compute square roots has a
+    purpose that is entirely well-defined independent of the
+    application. Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must be
+    optional: if the application does not supply it, the square root
+    function must still compute square roots.)
+
+   These requirements apply to the modified work as a whole. If
+   identifiable sections of that work are not derived from the Library, and
+   can be reasonably considered independent and separate works in
+   themselves, then this License, and its terms, do not apply to those
+   sections when you distribute them as separate works. But when you
+   distribute the same sections as part of a whole which is a work based on
+   the Library, the distribution of the whole must be on the terms of this
+   License, whose permissions for other licensees extend to the entire
+   whole, and thus to each and every part regardless of who wrote it.
+
+   Thus, it is not the intent of this section to claim rights or contest
+   your rights to work written entirely by you; rather, the intent is to
+   exercise the right to control the distribution of derivative or
+   collective works based on the Library.
+
+   In addition, mere aggregation of another work not based on the Library
+   with the Library (or with a work based on the Library) on a volume of a
+   storage or distribution medium does not bring the other work under the
+   scope of this License.
+
+3. You may opt to apply the terms of the ordinary GNU General Public
+   License instead of this License to a given copy of the Library. To do
+   this, you must alter all the notices that refer to this License, so that
+   they refer to the ordinary GNU General Public License, version 2,
+   instead of to this License. (If a newer version than version 2 of the
+   ordinary GNU General Public License has appeared, then you can specify
+   that version instead if you wish.) Do not make any other change in these
+   notices.
+
+   Once this change is made in a given copy, it is irreversible for that
+   copy, so the ordinary GNU General Public License applies to all
+   subsequent copies and derivative works made from that copy.
+
+   This option is useful when you wish to copy part of the code of the
+   Library into a program that is not a library.
+
+4. You may copy and distribute the Library (or a portion or derivative of
+   it, under Section 2) in object code or executable form under the terms
+   of Sections 1 and 2 above provided that you accompany it with the
+   complete corresponding machine-readable source code, which must be
+   distributed under the terms of Sections 1 and 2 above on a medium
+   customarily used for software interchange.
+
+   If distribution of object code is made by offering access to copy from a
+   designated place, then offering equivalent access to copy the source
+   code from the same place satisfies the requirement to distribute the
+   source code, even though third parties are not compelled to copy the
+   source along with the object code.
+
+5. A program that contains no derivative of any portion of the Library, but
+   is designed to work with the Library by being compiled or linked with
+   it, is called a "work that uses the Library". Such a work, in isolation,
+   is not a derivative work of the Library, and therefore falls outside the
+   scope of this License.
+
+   However, linking a "work that uses the Library" with the Library creates
+   an executable that is a derivative of the Library (because it contains
+   portions of the Library), rather than a "work that uses the
+   library". The executable is therefore covered by this License. Section 6
+   states terms for distribution of such executables.
+
+   When a "work that uses the Library" uses material from a header file
+   that is part of the Library, the object code for the work may be a
+   derivative work of the Library even though the source code is
+   not. Whether this is true is especially significant if the work can be
+   linked without the Library, or if the work is itself a library. The
+   threshold for this to be true is not precisely defined by law.
+
+   If such an object file uses only numerical parameters, data structure
+   layouts and accessors, and small macros and small inline functions (ten
+   lines or less in length), then the use of the object file is
+   unrestricted, regardless of whether it is legally a derivative
+   work. (Executables containing this object code plus portions of the
+   Library will still fall under Section 6.)
+
+   Otherwise, if the work is a derivative of the Library, you may
+   distribute the object code for the work under the terms of Section
+   6. Any executables containing that work also fall under Section 6,
+   whether or not they are linked directly with the Library itself.
+
+6. As an exception to the Sections above, you may also combine or link a
+   "work that uses the Library" with the Library to produce a work
+   containing portions of the Library, and distribute that work under terms
+   of your choice, provided that the terms permit modification of the work
+   for the customer's own use and reverse engineering for debugging such
+   modifications.
+
+   You must give prominent notice with each copy of the work that the
+   Library is used in it and that the Library and its use are covered by
+   this License. You must supply a copy of this License. If the work during
+   execution displays copyright notices, you must include the copyright
+   notice for the Library among them, as well as a reference directing the
+   user to the copy of this License. Also, you must do one of these things:
+
+   a) Accompany the work with the complete corresponding machine-readable
+      source code for the Library including whatever changes were used in
+      the work (which must be distributed under Sections 1 and 2 above);
+      and, if the work is an executable linked with the Library, with the
+      complete machine-readable "work that uses the Library", as object
+      code and/or source code, so that the user can modify the Library and
+      then relink to produce a modified executable containing the modified
+      Library. (It is understood that the user who changes the contents of
+      definitions files in the Library will not necessarily be able to
+      recompile the application to use the modified definitions.)
+
+   b) Use a suitable shared library mechanism for linking with the
+      Library. A suitable mechanism is one that (1) uses at run time a copy
+      of the library already present on the user's computer system, rather
+      than copying library functions into the executable, and (2) will
+      operate properly with a modified version of the library, if the user
+      installs one, as long as the modified version is interface-compatible
+      with the version that the work was made with.
+
+   c) Accompany the work with a written offer, valid for at least three
+      years, to give the same user the materials specified in Subsection
+      6a, above, for a charge no more than the cost of performing this
+      distribution.
+
+   d) If distribution of the work is made by offering access to copy from a
+      designated place, offer equivalent access to copy the above specified
+      materials from the same place.
+
+   e) Verify that the user has already received a copy of these materials
+      or that you have already sent this user a copy.
+
+   For an executable, the required form of the "work that uses the Library"
+   must include any data and utility programs needed for reproducing the
+   executable from it. However, as a special exception, the materials to be
+   distributed need not include anything that is normally distributed (in
+   either source or binary form) with the major components (compiler,
+   kernel, and so on) of the operating system on which the executable runs,
+   unless that component itself accompanies the executable.
+
+   It may happen that this requirement contradicts the license restrictions
+   of other proprietary libraries that do not normally accompany the
+   operating system. Such a contradiction means you cannot use both them
+   and the Library together in an executable that you distribute.
+
+7. You may place library facilities that are a work based on the Library
+   side-by-side in a single library together with other library facilities
+   not covered by this License, and distribute such a combined library,
+   provided that the separate distribution of the work based on the Library
+   and of the other library facilities is otherwise permitted, and provided
+   that you do these two things:
+
+   a) Accompany the combined library with a copy of the same work based on
+      the Library, uncombined with any other library facilities. This must
+      be distributed under the terms of the Sections above.
+
+   b) Give prominent notice with the combined library of the fact that part
+      of it is a work based on the Library, and explaining where to find
+      the accompanying uncombined form of the same work.
+
+8. You may not copy, modify, sublicense, link with, or distribute the
+   Library except as expressly provided under this License. Any attempt
+   otherwise to copy, modify, sublicense, link with, or distribute the
+   Library is void, and will automatically terminate your rights under this
+   License. However, parties who have received copies, or rights, from you
+   under this License will not have their licenses terminated so long as
+   such parties remain in full compliance.
+
+9. You are not required to accept this License, since you have not signed
+   it. However, nothing else grants you permission to modify or distribute
+   the Library or its derivative works. These actions are prohibited by law
+   if you do not accept this License. Therefore, by modifying or
+   distributing the Library (or any work based on the Library), you
+   indicate your acceptance of this License to do so, and all its terms and
+   conditions for copying, distributing or modifying the Library or works
+   based on it.
+
+10. Each time you redistribute the Library (or any work based on the
+    Library), the recipient automatically receives a license from the
+    original licensor to copy, distribute, link with or modify the Library
+    subject to these terms and conditions. You may not impose any further
+    restrictions on the recipients' exercise of the rights granted
+    herein. You are not responsible for enforcing compliance by third
+    parties with this License.
+
+11. If, as a consequence of a court judgment or allegation of patent
+    infringement or for any other reason (not limited to patent issues),
+    conditions are imposed on you (whether by court order, agreement or
+    otherwise) that contradict the conditions of this License, they do not
+    excuse you from the conditions of this License. If you cannot
+    distribute so as to satisfy simultaneously your obligations under this
+    License and any other pertinent obligations, then as a consequence you
+    may not distribute the Library at all. For example, if a patent license
+    would not permit royalty-free redistribution of the Library by all
+    those who receive copies directly or indirectly through you, then the
+    only way you could satisfy both it and this License would be to refrain
+    entirely from distribution of the Library.
+
+    If any portion of this section is held invalid or unenforceable under
+    any particular circumstance, the balance of the section is intended to
+    apply, and the section as a whole is intended to apply in other
+    circumstances.
+
+    It is not the purpose of this section to induce you to infringe any
+    patents or other property right claims or to contest validity of any
+    such claims; this section has the sole purpose of protecting the
+    integrity of the free software distribution system which is implemented
+    by public license practices. Many people have made generous
+    contributions to the wide range of software distributed through that
+    system in reliance on consistent application of that system; it is up
+    to the author/donor to decide if he or she is willing to distribute
+    software through any other system and a licensee cannot impose that
+    choice.
+
+    This section is intended to make thoroughly clear what is believed to
+    be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in certain
+    countries either by patents or by copyrighted interfaces, the original
+    copyright holder who places the Library under this License may add an
+    explicit geographical distribution limitation excluding those
+    countries, so that distribution is permitted only in or among countries
+    not thus excluded. In such case, this License incorporates the
+    limitation as if written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new versions of
+    the Lesser General Public License from time to time. Such new versions
+    will be similar in spirit to the present version, but may differ in
+    detail to address new problems or concerns.
+
+    Each version is given a distinguishing version number. If the Library
+    specifies a version number of this License which applies to it and "any
+    later version", you have the option of following the terms and
+    conditions either of that version or of any later version published by
+    the Free Software Foundation. If the Library does not specify a license
+    version number, you may choose any version ever published by the Free
+    Software Foundation.
+
+14. If you wish to incorporate parts of the Library into other free
+    programs whose distribution conditions are incompatible with these,
+    write to the author to ask for permission. For software which is
+    copyrighted by the Free Software Foundation, write to the Free Software
+    Foundation; we sometimes make exceptions for this. Our decision will be
+    guided by the two goals of preserving the free status of all
+    derivatives of our free software and of promoting the sharing and reuse
+    of software generally.
+
+NO WARRANTY
+
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+    FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+    PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+    EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+    ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH
+    YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+    NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+    REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+    DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+    DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY
+    (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
+    INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+    THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR
+    OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Libraries
+
+If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+one line to give the library's name and an idea of what it does.
+Copyright (C) year name of author
+
+This library is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or (at
+your option) any later version.
+
+This library is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this library; if not, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add
+information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in
+the library `Frob' (a library for tweaking knobs) written
+by James Random Hacker.
+
+signature of Ty Coon, 1 April 1990
+Ty Coon, President of Vice
+That's all there is to it!

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 05/11] LICENSES: Add the BSD 2-clause "Simplified" license
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (3 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 04/11] LICENSES: Add the LGPL-2.1 license Thomas Gleixner
@ 2017-11-16 18:33 ` 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
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES_Add_the_BSD_2-clause_Simplified_license.patch --]
[-- Type: text/plain, Size: 2168 bytes --]

Add the full text of the BSD 2-clause "Simplified" license to the kernel
tree.  It was copied directly from:

   https://spdx.org/licenses/BSD-2-Clause.html#licenseText

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 LICENSES/preferred/BSD-2-Clause |   32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 LICENSES/BSD-2-Clause

--- /dev/null
+++ b/LICENSES/preferred/BSD-2-Clause
@@ -0,0 +1,32 @@
+Valid-License-Identifier: BSD-2-Clause
+SPDX-URL: https://spdx.org/licenses/BSD-2-Clause.html
+Usage-Guide:
+  To use the BSD 2-clause "Simplified" License put the following SPDX
+  tag/value pair into a comment according to the placement guidelines in
+  the licensing rules documentation:
+    SPDX-License-Identifier: BSD-2-Clause
+License-Text:
+
+Copyright (c) <year> <owner> . All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 06/11] LICENSES: Add the BSD 3-clause "New" or "Revised" License
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (4 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 05/11] LICENSES: Add the BSD 2-clause "Simplified" license Thomas Gleixner
@ 2017-11-16 18:33 ` 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
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES_Add_the_BSD_3-clause_New_Revised_license.patch --]
[-- Type: text/plain, Size: 2386 bytes --]

Add the full text of the BSD 3-clause "New" or "Revised" License to the
kernel tree.  It was copied directly from:

  https://spdx.org/licenses/BSD-3-Clause.html#licenseText

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 LICENSES/preferred/BSD-3-Clause |   36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 LICENSES/BSD-3-Clause

--- /dev/null
+++ b/LICENSES/preferred/BSD-3-Clause
@@ -0,0 +1,36 @@
+Valid-License-Identifier: BSD-3-Clause
+SPDX-URL: https://spdx.org/licenses/BSD-3-Clause.html
+Usage-Guide:
+  To use the BSD 3-clause "New" or "Revised" License put the following SPDX
+  tag/value pair into a comment according to the placement guidelines in
+  the licensing rules documentation:
+    SPDX-License-Identifier: BSD-3-Clause
+License-Text:
+
+Copyright (c) <year> <owner> . All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+   contributors may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 07/11] LICENSES: Add the BSD-3-clause "Clear" license
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (5 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 06/11] LICENSES: Add the BSD 3-clause "New" or "Revised" License Thomas Gleixner
@ 2017-11-16 18:33 ` 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
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES--Add-the-BSD-3-clause-Clear-license.patch --]
[-- Type: text/plain, Size: 2531 bytes --]

Add the full text of the BSD 3-clause "Clear" License to the
kernel tree.  It was copied directly from:

  https://spdx.org/licenses/BSD-3-Clause-Clear.html

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 LICENSES/preferred/BSD-3-Clause-Clear |   41 ++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

--- /dev/null
+++ b/LICENSES/preferred/BSD-3-Clause-Clear
@@ -0,0 +1,41 @@
+Valid-License-Identifier: BSD-3-Clause-Clear
+SPDX-URL: https://spdx.org/licenses/BSD-3-Clause-Clear.html
+Usage-Guide:
+  To use the BSD 3-clause "Clear" License put the following SPDX
+  tag/value pair into a comment according to the placement guidelines in
+  the licensing rules documentation:
+    SPDX-License-Identifier: BSD-3-Clause-Clear
+License-Text:
+
+The Clear BSD License
+
+Copyright (c) [xxxx]-[xxxx] [Owner Organization]
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the disclaimer
+below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+ * Neither the name of [Owner Organization] nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
+THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 08/11] LICENSES: Add the MIT license
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (6 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 07/11] LICENSES: Add the BSD-3-clause "Clear" license Thomas Gleixner
@ 2017-11-16 18:33 ` Thomas Gleixner
  2017-11-16 18:33 ` [patch V2 09/11] LICENSES: Add Linux syscall note exception Thomas Gleixner
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker, Kate Stewart

[-- Attachment #1: LICENSES_Add_the_MIT_license.patch --]
[-- Type: text/plain, Size: 2000 bytes --]

Add the full text of the MIT license to the kernel tree.  It was copied
directly from:

  https://spdx.org/licenses/MIT.html#licenseText

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Greg KH <gregkh@linuxfoundation.org>
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>

---
 LICENSES/preferred/MIT |   30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 LICENSES/MIT

--- /dev/null
+++ b/LICENSES/preferred/MIT
@@ -0,0 +1,30 @@
+Valid-License-Identifier: MIT
+SPDX-URL: https://spdx.org/licenses/MIT.html
+Usage-Guide:
+  To use the MIT License put the following SPDX tag/value pair into a
+  comment according to the placement guidelines in the licensing rules
+  documentation:
+    SPDX-License-Identifier: MIT
+License-Text:
+
+MIT License
+
+Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 09/11] LICENSES: Add Linux syscall note exception
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (7 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 08/11] LICENSES: Add the MIT license Thomas Gleixner
@ 2017-11-16 18:33 ` 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
                   ` (2 subsequent siblings)
  11 siblings, 2 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES--Add-Linux-syscall-note-exception.patch --]
[-- Type: text/plain, Size: 1586 bytes --]

Copied from the Linux kernel COPYING file.

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 LICENSES/exceptions/Linux-syscall-note |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

--- /dev/null
+++ b/LICENSES/exceptions/Linux-syscall-note
@@ -0,0 +1,25 @@
+SPDX-Exception-Identifier: Linux-syscall-note
+SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
+SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
+Usage-Guide:
+  This exception is used together with one of the above SPDX-Licenses
+  to mark user space API (uapi) header files so they can be included
+  into non GPL compliant user space application code.
+  To use this exception add it with the keyword WITH to one of the
+  identifiers in the SPDX-Licenses tag:
+    SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
+License-Text:
+
+   NOTE! This copyright does *not* cover user programs that use kernel
+ services by normal system calls - this is merely considered normal use
+ of the kernel, and does *not* fall under the heading of "derived work".
+ Also note that the GPL below is copyrighted by the Free Software
+ Foundation, but the instance of code that it refers to (the Linux
+ kernel) is copyrighted by me and others who actually wrote it.
+
+ Also note that the only valid version of the GPL as far as the kernel
+ is concerned is _this_ particular version of the license (ie v2, not
+ v2.2 or v3.x or whatever), unless explicitly otherwise stated.
+
+			Linus Torvalds
+

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 10/11] LICENSES: Add the GPL 1.0 license
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (8 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 09/11] LICENSES: Add Linux syscall note exception Thomas Gleixner
@ 2017-11-16 18:33 ` 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-16 19:25 ` [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES_Add_the_GPL_1.0_license.patch --]
[-- Type: text/plain, Size: 13705 bytes --]

Add the full text of the GPL 1.0 license to the kernel tree.  It was
copied directly from:

       https://spdx.org/licenses/GPL-1.0.html#licenseText

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 LICENSES/other/GPL-1.0 |  260 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 260 insertions(+)
 create mode 100644 LICENSES/GPL-1.0

--- /dev/null
+++ b/LICENSES/other/GPL-1.0
@@ -0,0 +1,260 @@
+Valid-License-Identifier: GPL-1.0+
+SPDX-URL: https://spdx.org/licenses/GPL-1.0.html
+Usage-Guide:
+  The GNU General Public License (GPL) version 1 should not be used in new
+  code. For existing kernel code the 'or any later version' option is
+  required to be compatible with the general license of the project: GPLv2.
+  To use the license in source code, put the following SPDX tag/value pair
+  into a comment according to the placement guidelines in the licensing
+  rules documentation:
+    SPDX-License-Identifier: GPL-1.0+
+License-Text:
+
+	    GNU GENERAL PUBLIC LICENSE
+	     Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+                    675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The license agreements of most software companies try to keep users
+at the mercy of those companies.  By contrast, our General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  The
+General Public License applies to the Free Software Foundation's
+software and to any other program whose authors commit to using it.
+You can use it for your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Specifically, the General Public License is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of a such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must tell them their rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public License.  The
+"Program", below, refers to any such program or work, and a "work based
+on the Program" means either the Program or any work containing the
+Program or a portion of it, either verbatim or with modifications.  Each
+licensee is addressed as "you".
+
+  1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public License and to the absence of any warranty; and give any
+other recipients of the Program a copy of this General Public License
+along with the Program.  You may charge a fee for the physical act of
+transferring a copy.
+
+  2. You may modify your copy or copies of the Program or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+    a) cause the modified files to carry prominent notices stating that
+    you changed the files and the date of any change; and
+
+    b) cause the whole of any work that you distribute or publish, that
+    in whole or in part contains the Program or any part thereof, either
+    with or without modifications, to be licensed at no charge to all
+    third parties under the terms of this General Public License (except
+    that you may choose to grant warranty protection to some or all
+    third parties, at your option).
+
+    c) If the modified program normally reads commands interactively when
+    run, you must cause it, when started running for such interactive use
+    in the simplest and most usual way, to print or display an
+    announcement including an appropriate copyright notice and a notice
+    that there is no warranty (or else, saying that you provide a
+    warranty) and that users may redistribute the program under these
+    conditions, and telling the user how to view a copy of this General
+    Public License.
+
+    d) You may charge a fee for the physical act of transferring a
+    copy, and you may at your option offer warranty protection in
+    exchange for a fee.
+
+Mere aggregation of another independent work with the Program (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+  3. You may copy and distribute the Program (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+    a) accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of
+    Paragraphs 1 and 2 above; or,
+
+    b) accompany it with a written offer, valid for at least three
+    years, to give any third party free (except for a nominal charge
+    for the cost of distribution) a complete machine-readable copy of the
+    corresponding source code, to be distributed under the terms of
+    Paragraphs 1 and 2 above; or,
+
+    c) accompany it with the information you received as to where the
+    corresponding source code may be obtained.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it.  For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+  4. You may not copy, modify, sublicense, distribute or transfer the
+Program except as expressly provided under this General Public License.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Program is void, and will automatically terminate your rights to use
+the Program under this License.  However, parties who have received
+copies, or rights to use copies, from you under this General Public
+License will not have their licenses terminated so long as such parties
+remain in full compliance.
+
+  5. By copying, distributing or modifying the Program (or any work based
+on the Program) you indicate your acceptance of this license to do so,
+and all its terms and conditions.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these
+terms and conditions.  You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein.
+
+  7. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of the license which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+the license, you may choose any version ever published by the Free Software
+Foundation.
+
+  8. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+  To do so, attach the following notices to the program.  It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 1, or (at your option)
+    any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19xx name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License.  Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  program `Gnomovision' (a program to direct compilers to make passes
+  at assemblers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+That's all there is to it!

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V2 11/11] LICENSES: Add MPL-1.1 license
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (9 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 10/11] LICENSES: Add the GPL 1.0 license Thomas Gleixner
@ 2017-11-16 18:33 ` 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
  11 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 18:33 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: LICENSES--Add-MPL-1.1-license.patch --]
[-- Type: text/plain, Size: 26958 bytes --]

Add the full text of the Mozilla Public License 1.1 to the kernel tree.  It was
copied directly from:

       https://spdx.org/licenses/MPL-1.1.html#licenseText

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 LICENSES/other/MPL-1.1 |  478 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 478 insertions(+)

--- /dev/null
+++ b/LICENSES/other/MPL-1.1
@@ -0,0 +1,478 @@
+Valid-License-Identifier: MPL-1.1
+SPDX-URL: https://spdx.org/licenses/MPL-1.1.html
+Usage-Guide:
+  To use the Mozilla Public License version 1.1 put the following SPDX
+  tag/value pair into a comment according to the placement guidelines in
+  the licensing rules documentation:
+    SPDX-License-Identifier: MPL-1.1
+License-Text:
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the MPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     https://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 00/11] LICENSES: Add documentation and initial License files
  2017-11-16 18:33 [patch V2 00/11] LICENSES: Add documentation and initial License files Thomas Gleixner
                   ` (10 preceding siblings ...)
  2017-11-16 18:33 ` [patch V2 11/11] LICENSES: Add MPL-1.1 license Thomas Gleixner
@ 2017-11-16 19:25 ` Thomas Gleixner
  11 siblings, 0 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-16 19:25 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, 16 Nov 2017, Thomas Gleixner wrote:

Sorry, I was too stupid to fixup Kate's e-mail address after Joe pointed it
out. My apologies. Please remove 'kate@linuxfoundation.org' from the CC
list and replace it with 'kstewart@linuxfoundation.org'

/me goes off to rumage for brown paperbags

> This is the second version of the licensing rules documentation.
> 
> Changes since v1 [1]:
> 
>  - Addressing the review comments from Jon, Joe and Jonas:
> 
>    - Moved the documentation file into Documentation/process, but kept the
>      topic entry in the top level index file so it stands out. (Joe)
> 
>    - Changed the license file metatags so they are not overloading
>      SPDX-License-Identifier (Jonas)
> 
>    - Cleaned up the inconsistencies in the document (Jon, Joe)
> 
>    - Added the comment style fior .rst files (Jon)
> 
>  - Added a few more links and cursed restructured text to make it render
>    halfways sensible.
> 
>  - Added the license files for the SPDX tags which are already in tree and
>    moved GPL-1.0 to the 'other' directory as it really does not belong into
>    the preferrred category.
> 
>  - Removed the Reviewed-by tags as they not longer apply. 
> 
> Please go over it with a fine comb again. I'm sure that I screwed up
> something on the way, but me staring more at it doesn't help.
> 
> Thanks to everyone who provided input!
> 
> It turned out that the original approach was incidentaly close to what the
> FSFE REUSE initiative docuemented and I think we are now nearing the point
> where we can wear the REUSE sticker if Jonas does not find any other holes
> in it. :)
> 
> Thanks,
> 
> 	tglx
> 
> 
> [1] https://lkml.kernel.org/r/20171112191821.240484206@linutronix.de
> 
> 
> 

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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   ` [patch V3 " Jonathan Corbet
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 68+ messages in thread
From: Rob Herring @ 2017-11-16 19:44 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Jonas Oberg, Joe Perches,
	linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 12:33 PM, 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>
> ---

[...]

> +2. Style:
> +
> +   The SPDX license identifier is added in form of a comment.  The comment
> +   style depends on the file type:
> +
> +   ::
> +
> +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
> +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
> +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
> +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
> +      .rst:      .. SPDX-License-Identifier: <SPDX License Expression>

.dts{i}  // SPDX-License-Identifier: <SPDX License Expression>

Or use "DT source"

Rob

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V3 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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
  2017-11-17  9:48     ` Thomas Gleixner
  2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
                     ` (2 subsequent siblings)
  4 siblings, 1 reply; 68+ messages in thread
From: Jonathan Corbet @ 2017-11-16 20:57 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

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

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V3 09/11] LICENSES: Add Linux syscall note exception
  2017-11-16 18:33 ` [patch V2 09/11] LICENSES: Add Linux syscall note exception Thomas Gleixner
@ 2017-11-16 21:00   ` Jonathan Corbet
  2017-11-17 10:07   ` [patch V2 " Greg Kroah-Hartman
  1 sibling, 0 replies; 68+ messages in thread
From: Jonathan Corbet @ 2017-11-16 21:00 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

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

> Copied from the Linux kernel COPYING file.
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> 
> ---
>  LICENSES/exceptions/Linux-syscall-note |   25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> --- /dev/null
> +++ b/LICENSES/exceptions/Linux-syscall-note
> @@ -0,0 +1,25 @@
> +SPDX-Exception-Identifier: Linux-syscall-note
> +SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
> +SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
> +Usage-Guide:
> +  This exception is used together with one of the above SPDX-Licenses
> +  to mark user space API (uapi) header files so they can be included
> +  into non GPL compliant user space application code.
> +  To use this exception add it with the keyword WITH to one of the
> +  identifiers in the SPDX-Licenses tag:
> +    SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
> +License-Text:
> +
> +   NOTE! This copyright does *not* cover user programs that use kernel
> + services by normal system calls - this is merely considered normal use
> + of the kernel, and does *not* fall under the heading of "derived work".
> + Also note that the GPL below is copyrighted by the Free Software
> + Foundation, but the instance of code that it refers to (the Linux
> + kernel) is copyrighted by me and others who actually wrote it.
> +
> + Also note that the only valid version of the GPL as far as the kernel
> + is concerned is _this_ particular version of the license (ie v2, not
> + v2.2 or v3.x or whatever), unless explicitly otherwise stated.

This seems off-topic for the syscall exception..?  Getting the GPL
versions right is what this exercise is a whole is about (among other
things); I wouldn't expect people to look for it here.

jon

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V3 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-16 20:57   ` [patch V3 " Jonathan Corbet
@ 2017-11-17  9:48     ` Thomas Gleixner
  2017-11-17 22:38       ` Jonathan Corbet
  0 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-17  9:48 UTC (permalink / raw)
  To: Jonathan Corbet
  Cc: LKML, Linus Torvalds, Andrew Morton, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, 16 Nov 2017, Jonathan Corbet wrote:

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

No.

> 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.

Ok.

> On Thu, 16 Nov 2017 19:33:07 +0100
> > +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 :)

Any suggestions for a better place?

> > +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.

Done. Thanks for the free rst training!

> > +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.

Right you are.

> > +
> > +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.

Done

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

Correctly placing commatas was never one of my key skills and I fear this
will persist.

> > +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.

Indeed.

> > +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]

Phew :)

Thanks for looking at it!

       tglx

^ permalink raw reply	[flat|nested] 68+ messages in thread

* [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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   ` [patch V3 " Jonathan Corbet
@ 2017-11-17 10:00   ` Thomas Gleixner
  2017-11-17 11:58     ` Philippe Ombredanne
                       ` (5 more replies)
  2017-11-17 10:07   ` [patch V2 " Greg Kroah-Hartman
  2017-11-17 10:17   ` Carmen Bianca Bakker
  4 siblings, 6 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-17 10:00 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

Subject: Documentation: Add license-rules.rst to describe how to properly identify file licenses
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 10 Nov 2017 09:30:00 +0100

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, Greg and Jonathan 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>
---

Changes since V3:
  - Addressed Jonathans review comments
  - Added .dts{i} syntax (Rob)
 
---
 Documentation/index.rst                 |   12 +
 Documentation/process/license-rules.rst |  370 ++++++++++++++++++++++++++++++++
 2 files changed, 382 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
+
 User-oriented documentation
 ---------------------------
 
--- /dev/null
+++ b/Documentation/process/license-rules.rst
@@ -0,0 +1,370 @@
+.. 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::
+
+    GPL-1.0+  :  GNU General Public License v1.0 or later
+    GPL-2.0+  :  GNU General Public License v2.0 or later
+    LGPL-2.0  :  GNU Library General Public License v2 only
+    LGPL-2.0+ :  GNU Library General Public License v2 or later
+    LGPL-2.1  :  GNU Lesser General Public License v2.1 only
+    LGPL-2.1+ :  GNU Lesser General Public License v2.1 or later
+
+Aside from that, individual files can be provided under a dual license,
+e.g. one of the compatible GPL variants and alternatively under a
+permissive license like BSD, MIT etc.
+
+The User-space API (UAPI) header files, which describe the interface of
+user-space programs to the kernel are a special case.  According to the
+note in the kernel COPYING file, the syscall interface is a clear boundary,
+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.
+
+An alternative to boilerplate text is the use of Software Package Data
+Exchange (SPDX) license identifiers in 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.
+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 identifier syntax
+-------------------------
+
+1. Placement:
+
+   The SPDX license identifier in kernel files shall be added at the first
+   possible line in a file which can contain a comment.  For the majority
+   or files this is the first line, except for scripts which require the
+   '#!PATH_TO_INTERPRETER' in the first line.  For those scripts the SPDX
+   identifier goes into the second line.
+
+|
+
+2. Style:
+
+   The SPDX license identifier is added in form of a comment.  The comment
+   style depends on the file type::
+
+      C source:   // SPDX-License-Identifier: <SPDX License Expression>
+      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
+      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
+      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
+      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
+      .dts{i}:	  // SPDX-License-Identifier: <SPDX License Expression>
+
+   If a specific tool cannot handle the standard comment style, then the
+   appropriate comment mechanism which the tool accepts shall be used. This
+   is the reason for having the "/\* \*/" style comment in C header
+   files. There was build breakage observed with generated .lds files where
+   'ld' failed to parse the C++ comment. This has been fixed by now, but
+   there are still older assembler tools which cannot handle C++ style
+   comments.
+
+|
+
+3. Syntax:
+
+   A <SPDX License Expression> is either an SPDX short form license
+   identifier found on the SPDX License List, or when multiple licenses
+   apply, an expression consisting of keywords "AND", "OR", and "WITH"
+   separating SPDX short form license identifiers surrounded by "(", ")".
+
+   License identifiers for licenses like [L]GPL with the 'or later' option
+   are constructed by using a "+" for indicating the 'or later' option.::
+
+      // SPDX-License-Identifier: GPL-2.0+
+      // SPDX-License-Identifier: LGPL-2.1+
+
+   WITH should be used when there is a modifier to a license needed.
+   For example, the linux kernel UAPI files use the expression::
+
+      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note)
+      // SPDX-License-Identifier: (GPL-2.0+ WITH Linux-syscall-note)
+
+   Other examples using WITH exceptions found in the kernel are::
+
+      // SPDX-License-Identifier: (GPL-2.0 WITH mif-exception)
+      // SPDX-License-Identifier: (GPL-2.0+ WITH GCC-exception-2.0)
+
+   Exceptions can only be used with particular License identifiers. The
+   valid License identifiers are listed in the tags of the exception text
+   file. For details see the point `Exceptions`_ in the chapter `License
+   identifiers`_.
+
+   OR should be used if the file is dual licensed and only one license is
+   to be selected.  For example, some dtsi files are available under dual
+   licenses::
+
+      // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
+
+   Examples from the kernel for license expressions in dual licensed files::
+
+      // SPDX-License-Identifier: (GPL-2.0 OR MIT)
+      // SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+      // SPDX-License-Identifier: (GPL-2.0 OR Apache-2.0)
+      // SPDX-License-Identifier: (GPL-2.0 OR MPL-1.1)
+      // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR MIT)
+      // SPDX-License-Identifier: ((GPL-1.0+ OR BSD-3-Clause) OR OpenSSL)
+
+   AND should be used if the file has multiple licenses whose terms all
+   apply to use the file. For example, if code is inherited from another
+   project and permission has been given to put it in the kernel, but the
+   original license terms need to remain in effect::
+
+      // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) AND MIT)
+
+   Another other example where both sets of license terms need to be
+   adhered to is::
+
+      // SPDX-License-Identifier: (GPL-1.0+ AND LGPL-2.1+)
+
+License identifiers
+-------------------
+
+The licenses currently used, as well as the licenses for code added to the
+kernel, can be broken down into:
+
+1. _`Preferred licenses`:
+
+   Whenever possible these licenses should be used as they are known to be
+   fully compatible and widely used.  These licenses are available from the
+   directory::
+
+      LICENSES/preferred/
+
+   in the kernel source tree.
+
+   The files in this directory the full license text and `Metatags`_.
+
+   The file names are identical to the SPDX license identifier which shall
+   be used for the license in source files.
+
+   Examples::
+
+      LICENSES/preferred/GPL-2.0
+
+   Contains the GPL version 2 license text and the required metatags::
+
+      LICENSES/preferred/MIT
+
+   Contains the MIT license text and the required metatags
+
+   _`Metatags`:
+
+   The following meta tags must be available in a license file:
+
+   - Valid-License-Identifier:
+
+     One or more lines which declare which License Identifiers are valid
+     inside the project to reference this particular license text.  Usually
+     this is a single valid identifier, but e.g. for licenses with the 'or
+     later' options two identifiers are valid.
+
+   - SPDX-URL:
+
+     The URL of the SPDX page which contains additional information related
+     to the license.
+
+   - Usage-Guidance:
+
+     Freeform text for usage advice. The text must include correct examples
+     for the SPDX license identifiers as they should be put into source
+     files according to the `License identifier syntax`_ guidelines.
+
+   - License-Text:
+
+     All text after this tag is treated as the original license text
+
+   File format examples::
+
+      Valid-License-Identifier: GPL-2.0
+      Valid-License-Identifier: GPL-2.0+
+      SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
+      Usage-Guide:
+        To use this license in source code, put one of the following SPDX
+	tag/value pairs into a comment according to the placement
+	guidelines in the licensing rules documentation.
+	For 'GNU General Public License (GPL) version 2 only' use:
+	  SPDX-License-Identifier: GPL-2.0
+	For 'GNU General Public License (GPL) version 2 or any later version' use:
+	  SPDX-License-Identifier: GPL-2.0+
+      License-Text:
+        Full license text
+
+   ::
+
+      SPDX-License-Identifier: MIT
+      SPDX-URL: https://spdx.org/licenses/MIT.html
+      Usage-Guide:
+	To use this license in source code, put the following SPDX
+	tag/value pair into a comment according to the placement
+	guidelines in the licensing rules documentation.
+	  SPDX-License-Identifier: MIT
+      License-Text:
+        Full license text
+
+|
+
+2. Not recommended licenses:
+
+   These licenses should only be used for existing code or for importing
+   code from a different project.  These licenses are available from the
+   directory::
+
+      LICENSES/other/
+
+   in the kernel source tree.
+
+   The files in this directory the full license text and `Metatags`_.
+
+   The file names are identical to the SPDX license identifier which shall be
+   used for the license in source files.
+
+   Examples::
+
+      LICENSES/other/ISC
+
+   Contains the Internet Systems Consortium license text and the required
+   metatags::
+
+      LICENSES/other/ZLib
+
+   Contains the ZLIB license text and the required metatags.
+
+   Metatags:
+
+   The metatag requirements for 'other' licenses are identical to the
+   requirements of the `Preferred licenses`_.
+
+   File format example::
+
+      Valid-License-Identifier: ISC
+      SPDX-URL: https://spdx.org/licenses/ISC.html
+      Usage-Guide:
+        Usage of this license in the kernel for new code is discouraged
+	and it should solely be used for importing code from an already
+	existing project.
+        To use this license in source code, put the following SPDX
+	tag/value pair into a comment according to the placement
+	guidelines in the licensing rules documentation.
+	  SPDX-License-Identifier: ISC
+      License-Text:
+        Full license text
+
+|
+
+3. _`Exceptions`:
+
+   Some licenses can be amended with exceptions which grant certain rights
+   which the original license does not.  These exceptions are available
+   from the directory::
+
+      LICENSES/exceptions/
+
+   in the kernel source tree.  The files in this directory contain the full
+   exception text and the required `Exception Metatags`_.
+
+   Examples::
+
+      LICENSES/exceptions/Linux-syscall-note
+
+   Contains the Linux syscall exception as documented in the COPYING
+   file of the Linux kernel, which is used for UAPI header files.
+   e.g. /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/::
+
+      LICENSES/exceptions/GCC-exception-2.0
+
+   Contains the GCC 'linking exception' which allows to link any binary
+   independent of its license against the compiled version of a file marked
+   with this exception. This is required for creating runnable executables
+   from source code which is not compatible with the GPL.
+
+   _`Exception Metatags`:
+
+   The following meta tags must be available in an exception file:
+
+   - SPDX-Exception-Identifier:
+
+     One exception identifier which can be used with SPDX license
+     identifiers.
+
+   - SPDX-URL:
+
+     The URL of the SPDX page which contains additional information related
+     to the exception.
+
+   - SPDX-Licenses:
+
+     A comma separated list of SPDX license identifiers for which the
+     exception can be used.
+
+   - Usage-Guidance:
+
+     Freeform text for usage advice. The text must be followed by correct
+     examples for the SPDX license identifiers as they should be put into
+     source files according to the `License identifier syntax`_ guidelines.
+
+   - Exception-Text:
+
+     All text after this tag is treated as the original exception text
+
+   File format examples::
+
+      SPDX-Exception-Identifier: Linux-syscall-note
+      SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
+      SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
+      Usage-Guidance:
+        This exception is used together with one of the above SPDX-Licenses
+	to mark user-space API (uapi) header files so they can be included
+	into non GPL compliant user-space application code.
+        To use this exception add it with the keyword WITH to one of the
+	identifiers in the SPDX-Licenses tag:
+	  SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
+      Exception-Text:
+        Full exception text
+
+   ::
+
+      SPDX-Exception-Identifier: GCC-exception-2.0
+      SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
+      SPDX-Licenses: GPL-2.0, GPL-2.0+
+      Usage-Guidance:
+        The "GCC Runtime Library exception 2.0" is used together with one
+	of the above SPDX-Licenses for code imported from the GCC runtime
+	library.
+        To use this exception add it with the keyword WITH to one of the
+	identifiers in the SPDX-Licenses tag:
+	  SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
+      Exception-Text:
+        Full exception text
+
+
+All SPDX license identifiers and exceptions must have a corresponding file
+in the LICENSING subdirectories. This is required to allow tool
+verification (e.g. checkpatch.pl) and to have the licenses ready to read
+and extract right from the source, which is recommended by various FOSS
+organizations, e.g. the `FSFE REUSE initiative <https://reuse.software/>`_.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-16 18:33 ` [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses Thomas Gleixner
                     ` (2 preceding siblings ...)
  2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
@ 2017-11-17 10:07   ` Greg Kroah-Hartman
  2017-11-17 10:17   ` Carmen Bianca Bakker
  4 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:07 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:07PM +0100, Thomas Gleixner wrote:
> +2. Style:
> +
> +   The SPDX license identifier is added in form of a comment.  The comment
> +   style depends on the file type:
> +
> +   ::
> +
> +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
> +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
> +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
> +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
> +      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>

Minor nit, do you want a tab there on the .rst line or should it be all
spaces like the other lines above it to make things line up properly?

Otherwise, looks great to me:

	Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 09/11] LICENSES: Add Linux syscall note exception
  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   ` Greg Kroah-Hartman
  1 sibling, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:07 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:15PM +0100, Thomas Gleixner wrote:
> Copied from the Linux kernel COPYING file.
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 11/11] LICENSES: Add MPL-1.1 license
  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
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:08 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:17PM +0100, Thomas Gleixner wrote:
> Add the full text of the Mozilla Public License 1.1 to the kernel tree.  It was
> copied directly from:
> 
>        https://spdx.org/licenses/MPL-1.1.html#licenseText
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 10/11] LICENSES: Add the GPL 1.0 license
  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
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:08 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:16PM +0100, Thomas Gleixner wrote:
> Add the full text of the GPL 1.0 license to the kernel tree.  It was
> copied directly from:
> 
>        https://spdx.org/licenses/GPL-1.0.html#licenseText
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 07/11] LICENSES: Add the BSD-3-clause "Clear" license
  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
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:08 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:13PM +0100, Thomas Gleixner wrote:
> Add the full text of the BSD 3-clause "Clear" License to the
> kernel tree.  It was copied directly from:
> 
>   https://spdx.org/licenses/BSD-3-Clause-Clear.html
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 05/11] LICENSES: Add the BSD 2-clause "Simplified" license
  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
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:08 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:11PM +0100, Thomas Gleixner wrote:
> Add the full text of the BSD 2-clause "Simplified" license to the kernel
> tree.  It was copied directly from:
> 
>    https://spdx.org/licenses/BSD-2-Clause.html#licenseText
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 06/11] LICENSES: Add the BSD 3-clause "New" or "Revised" License
  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
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:09 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:12PM +0100, Thomas Gleixner wrote:
> Add the full text of the BSD 3-clause "New" or "Revised" License to the
> kernel tree.  It was copied directly from:
> 
>   https://spdx.org/licenses/BSD-3-Clause.html#licenseText
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 04/11] LICENSES: Add the LGPL-2.1 license
  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
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:09 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:10PM +0100, Thomas Gleixner wrote:
> Add the full text of the LGPL 2.1 license to the kernel tree.  It was
> copied directly from:
> 
>    https://spdx.org/licenses/LGPL-2.1.html#licenseText
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 03/11] LICENSES: Add the LGPL 2.0 license
  2017-11-16 18:33 ` [patch V2 03/11] LICENSES: Add the LGPL " Thomas Gleixner
@ 2017-11-17 10:09   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:09 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:09PM +0100, Thomas Gleixner wrote:
> Add the full text of the LGPL 2.0 license to the kernel tree.  It was
> copied directly from:
> 
>    https://spdx.org/licenses/LGPL-2.0.html#licenseText
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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
  1 sibling, 0 replies; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-17 10:09 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Thu, Nov 16, 2017 at 07:33:08PM +0100, Thomas Gleixner wrote:
> Add the full text of the GPL 2.0 license to the kernel tree.  It was
> copied directly from:
> 
>    https://spdx.org/licenses/GPL-2.0.html#licenseText
> 
> Add the required tags for reference and tooling.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-16 18:33 ` [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses Thomas Gleixner
                     ` (3 preceding siblings ...)
  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
  4 siblings, 1 reply; 68+ messages in thread
From: Carmen Bianca Bakker @ 2017-11-17 10:17 UTC (permalink / raw)
  To: Thomas Gleixner, LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse

[-- Attachment #1: Type: text/plain, Size: 494 bytes --]

Went through the documentation with a fine comb.  Apart from Jonathan's
good comments, I could only find the following nitpick.

Thomas Gleixner schreef op do 16-11-2017 om 19:33 [+0100]:
> +All SPDX license identifiers and exceptions must have a corresponding file
> +in the LICENSING subdirectories. This is required to allow tool

LICENSES, surely :)

Documentation looks really good otherwise!

-- 
Carmen Bianca Bakker
Technical Intern
Free Software Foundation Europe e.V.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 10:17   ` Carmen Bianca Bakker
@ 2017-11-17 10:21     ` Thomas Gleixner
  0 siblings, 0 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-17 10:21 UTC (permalink / raw)
  To: Carmen Bianca Bakker
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse

[-- Attachment #1: Type: text/plain, Size: 490 bytes --]

On Fri, 17 Nov 2017, Carmen Bianca Bakker wrote:

> Went through the documentation with a fine comb.  Apart from Jonathan's
> good comments, I could only find the following nitpick.
> 
> Thomas Gleixner schreef op do 16-11-2017 om 19:33 [+0100]:
> > +All SPDX license identifiers and exceptions must have a corresponding file
> > +in the LICENSING subdirectories. This is required to allow tool
> 
> LICENSES, surely :)

Oops.

> Documentation looks really good otherwise!

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
@ 2017-11-17 11:58     ` Philippe Ombredanne
       [not found]     ` <CAG_66ZRPXxodLw=eeTRtXuRGfvmonVNknzNmMuNMVooJgd1Uxw@mail.gmail.com>
                       ` (4 subsequent siblings)
  5 siblings, 0 replies; 68+ messages in thread
From: Philippe Ombredanne @ 2017-11-17 11:58 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Fri, Nov 17, 2017 at 11:00 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> Subject: Documentation: Add license-rules.rst to describe how to properly identify file licenses
> From: Thomas Gleixner <tglx@linutronix.de>
> Date: Fri, 10 Nov 2017 09:30:00 +0100
>
> 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, Greg and Jonathan 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>
> ---
>
> Changes since V3:
>   - Addressed Jonathans review comments
>   - Added .dts{i} syntax (Rob)
>
> ---

For this V4 and all the V2 11 patch series, after using a fine comb....

Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>

-- 
Cordially
Philippe Ombredanne

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
       [not found]     ` <CAG_66ZRPXxodLw=eeTRtXuRGfvmonVNknzNmMuNMVooJgd1Uxw@mail.gmail.com>
@ 2017-11-17 13:16       ` Thomas Gleixner
  0 siblings, 0 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-17 13:16 UTC (permalink / raw)
  To: Kate Stewart
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Fri, 17 Nov 2017, Kate Stewart wrote:
> On Fri, Nov 17, 2017 at 4:00 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > +   The files in this directory the full license text and `Metatags`_.
> >
> Missing verb.   Possibly "contain"?
> 
> The files in this directory contain the full license text and `Metatags`_.

Yes. Fixed.

> Feel free to add my
> 
> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
> 
> For this V4 and the other 11 patches.

Thanks!

	tglx

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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 17:06     ` Mauro Carvalho Chehab
  2017-11-17 18:11       ` Thomas Gleixner
  2017-11-25 18:51       ` Pavel Machek
  2017-11-17 19:02     ` Jonas Oberg
                       ` (2 subsequent siblings)
  5 siblings, 2 replies; 68+ messages in thread
From: Mauro Carvalho Chehab @ 2017-11-17 17:06 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

Hi Thomas,

Em Fri, 17 Nov 2017 11:00:33 +0100 (CET)
Thomas Gleixner <tglx@linutronix.de> escreveu:

> Subject: Documentation: Add license-rules.rst to describe how to properly identify file licenses
> From: Thomas Gleixner <tglx@linutronix.de>
> Date: Fri, 10 Nov 2017 09:30:00 +0100
> 
> 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, Greg and Jonathan 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>

The document itself looks good, but I think it should also mention
what would be the expected values for the MODULE_LICENSE() macro and
how each license would be mapped into it.

Right now, include/linux/module.h says:

/*
 * The following license idents are currently accepted as indicating free
 * software modules
 *
 *	"GPL"				[GNU Public License v2 or later]
 *	"GPL v2"			[GNU Public License v2]
 *	"GPL and additional rights"	[GNU Public License v2 rights and more]
 *	"Dual BSD/GPL"			[GNU Public License v2
 *					 or BSD license choice]
 *	"Dual MIT/GPL"			[GNU Public License v2
 *					 or MIT license choice]
 *	"Dual MPL/GPL"			[GNU Public License v2
 *					 or Mozilla license choice]
 *
 * The following other idents are available
 *
 *	"Proprietary"			[Non free products]
 *
 * There are dual licensed components, but when running with Linux it is the
 * GPL that is relevant so this is a non issue. Similarly LGPL linked with GPL
 * is a GPL combined work.
 *
 * This exists for several reasons
 * 1.	So modinfo can show license info for users wanting to vet their setup
 *	is free
 * 2.	So the community can ignore bug reports including proprietary modules
 * 3.	So vendors can do likewise based on their own policies
 */
#define MODULE_LICENSE(_license) MODULE_INFO(license, _license)

In thesis, for every SPDX property at C or assembler files, we should have
a mapping into one of those MODULE_LICENSE().


> ---
> 
> Changes since V3:
>   - Addressed Jonathans review comments
>   - Added .dts{i} syntax (Rob)
>  
> ---
>  Documentation/index.rst                 |   12 +
>  Documentation/process/license-rules.rst |  370 ++++++++++++++++++++++++++++++++
>  2 files changed, 382 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
> +
>  User-oriented documentation
>  ---------------------------
>  
> --- /dev/null
> +++ b/Documentation/process/license-rules.rst
> @@ -0,0 +1,370 @@
> +.. 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::
> +
> +    GPL-1.0+  :  GNU General Public License v1.0 or later
> +    GPL-2.0+  :  GNU General Public License v2.0 or later
> +    LGPL-2.0  :  GNU Library General Public License v2 only
> +    LGPL-2.0+ :  GNU Library General Public License v2 or later
> +    LGPL-2.1  :  GNU Lesser General Public License v2.1 only
> +    LGPL-2.1+ :  GNU Lesser General Public License v2.1 or later
> +
> +Aside from that, individual files can be provided under a dual license,
> +e.g. one of the compatible GPL variants and alternatively under a
> +permissive license like BSD, MIT etc.
> +
> +The User-space API (UAPI) header files, which describe the interface of
> +user-space programs to the kernel are a special case.  According to the
> +note in the kernel COPYING file, the syscall interface is a clear boundary,
> +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.
> +
> +An alternative to boilerplate text is the use of Software Package Data
> +Exchange (SPDX) license identifiers in 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.
> +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 identifier syntax
> +-------------------------
> +
> +1. Placement:
> +
> +   The SPDX license identifier in kernel files shall be added at the first
> +   possible line in a file which can contain a comment.  For the majority
> +   or files this is the first line, except for scripts which require the
> +   '#!PATH_TO_INTERPRETER' in the first line.  For those scripts the SPDX
> +   identifier goes into the second line.
> +
> +|
> +
> +2. Style:
> +
> +   The SPDX license identifier is added in form of a comment.  The comment
> +   style depends on the file type::
> +
> +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
> +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
> +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
> +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
> +      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
> +      .dts{i}:	  // SPDX-License-Identifier: <SPDX License Expression>
> +
> +   If a specific tool cannot handle the standard comment style, then the
> +   appropriate comment mechanism which the tool accepts shall be used. This
> +   is the reason for having the "/\* \*/" style comment in C header
> +   files. There was build breakage observed with generated .lds files where
> +   'ld' failed to parse the C++ comment. This has been fixed by now, but
> +   there are still older assembler tools which cannot handle C++ style
> +   comments.
> +
> +|
> +
> +3. Syntax:
> +
> +   A <SPDX License Expression> is either an SPDX short form license
> +   identifier found on the SPDX License List, or when multiple licenses
> +   apply, an expression consisting of keywords "AND", "OR", and "WITH"
> +   separating SPDX short form license identifiers surrounded by "(", ")".
> +
> +   License identifiers for licenses like [L]GPL with the 'or later' option
> +   are constructed by using a "+" for indicating the 'or later' option.::
> +
> +      // SPDX-License-Identifier: GPL-2.0+
> +      // SPDX-License-Identifier: LGPL-2.1+
> +
> +   WITH should be used when there is a modifier to a license needed.
> +   For example, the linux kernel UAPI files use the expression::
> +
> +      // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note)
> +      // SPDX-License-Identifier: (GPL-2.0+ WITH Linux-syscall-note)
> +
> +   Other examples using WITH exceptions found in the kernel are::
> +
> +      // SPDX-License-Identifier: (GPL-2.0 WITH mif-exception)
> +      // SPDX-License-Identifier: (GPL-2.0+ WITH GCC-exception-2.0)
> +
> +   Exceptions can only be used with particular License identifiers. The
> +   valid License identifiers are listed in the tags of the exception text
> +   file. For details see the point `Exceptions`_ in the chapter `License
> +   identifiers`_.
> +
> +   OR should be used if the file is dual licensed and only one license is
> +   to be selected.  For example, some dtsi files are available under dual
> +   licenses::
> +
> +      // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
> +
> +   Examples from the kernel for license expressions in dual licensed files::
> +
> +      // SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +      // SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +      // SPDX-License-Identifier: (GPL-2.0 OR Apache-2.0)
> +      // SPDX-License-Identifier: (GPL-2.0 OR MPL-1.1)
> +      // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR MIT)
> +      // SPDX-License-Identifier: ((GPL-1.0+ OR BSD-3-Clause) OR OpenSSL)
> +
> +   AND should be used if the file has multiple licenses whose terms all
> +   apply to use the file. For example, if code is inherited from another
> +   project and permission has been given to put it in the kernel, but the
> +   original license terms need to remain in effect::
> +
> +      // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) AND MIT)
> +
> +   Another other example where both sets of license terms need to be
> +   adhered to is::
> +
> +      // SPDX-License-Identifier: (GPL-1.0+ AND LGPL-2.1+)
> +
> +License identifiers
> +-------------------
> +
> +The licenses currently used, as well as the licenses for code added to the
> +kernel, can be broken down into:
> +
> +1. _`Preferred licenses`:
> +
> +   Whenever possible these licenses should be used as they are known to be
> +   fully compatible and widely used.  These licenses are available from the
> +   directory::
> +
> +      LICENSES/preferred/
> +
> +   in the kernel source tree.
> +
> +   The files in this directory the full license text and `Metatags`_.
> +
> +   The file names are identical to the SPDX license identifier which shall
> +   be used for the license in source files.
> +
> +   Examples::
> +
> +      LICENSES/preferred/GPL-2.0
> +
> +   Contains the GPL version 2 license text and the required metatags::
> +
> +      LICENSES/preferred/MIT
> +
> +   Contains the MIT license text and the required metatags
> +
> +   _`Metatags`:
> +
> +   The following meta tags must be available in a license file:
> +
> +   - Valid-License-Identifier:
> +
> +     One or more lines which declare which License Identifiers are valid
> +     inside the project to reference this particular license text.  Usually
> +     this is a single valid identifier, but e.g. for licenses with the 'or
> +     later' options two identifiers are valid.
> +
> +   - SPDX-URL:
> +
> +     The URL of the SPDX page which contains additional information related
> +     to the license.
> +
> +   - Usage-Guidance:
> +
> +     Freeform text for usage advice. The text must include correct examples
> +     for the SPDX license identifiers as they should be put into source
> +     files according to the `License identifier syntax`_ guidelines.
> +
> +   - License-Text:
> +
> +     All text after this tag is treated as the original license text
> +
> +   File format examples::
> +
> +      Valid-License-Identifier: GPL-2.0
> +      Valid-License-Identifier: GPL-2.0+
> +      SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
> +      Usage-Guide:
> +        To use this license in source code, put one of the following SPDX
> +	tag/value pairs into a comment according to the placement
> +	guidelines in the licensing rules documentation.
> +	For 'GNU General Public License (GPL) version 2 only' use:
> +	  SPDX-License-Identifier: GPL-2.0
> +	For 'GNU General Public License (GPL) version 2 or any later version' use:
> +	  SPDX-License-Identifier: GPL-2.0+
> +      License-Text:
> +        Full license text
> +
> +   ::
> +
> +      SPDX-License-Identifier: MIT
> +      SPDX-URL: https://spdx.org/licenses/MIT.html
> +      Usage-Guide:
> +	To use this license in source code, put the following SPDX
> +	tag/value pair into a comment according to the placement
> +	guidelines in the licensing rules documentation.
> +	  SPDX-License-Identifier: MIT
> +      License-Text:
> +        Full license text
> +
> +|
> +
> +2. Not recommended licenses:
> +
> +   These licenses should only be used for existing code or for importing
> +   code from a different project.  These licenses are available from the
> +   directory::
> +
> +      LICENSES/other/
> +
> +   in the kernel source tree.
> +
> +   The files in this directory the full license text and `Metatags`_.
> +
> +   The file names are identical to the SPDX license identifier which shall be
> +   used for the license in source files.
> +
> +   Examples::
> +
> +      LICENSES/other/ISC
> +
> +   Contains the Internet Systems Consortium license text and the required
> +   metatags::
> +
> +      LICENSES/other/ZLib
> +
> +   Contains the ZLIB license text and the required metatags.
> +
> +   Metatags:
> +
> +   The metatag requirements for 'other' licenses are identical to the
> +   requirements of the `Preferred licenses`_.
> +
> +   File format example::
> +
> +      Valid-License-Identifier: ISC
> +      SPDX-URL: https://spdx.org/licenses/ISC.html
> +      Usage-Guide:
> +        Usage of this license in the kernel for new code is discouraged
> +	and it should solely be used for importing code from an already
> +	existing project.
> +        To use this license in source code, put the following SPDX
> +	tag/value pair into a comment according to the placement
> +	guidelines in the licensing rules documentation.
> +	  SPDX-License-Identifier: ISC
> +      License-Text:
> +        Full license text
> +
> +|
> +
> +3. _`Exceptions`:
> +
> +   Some licenses can be amended with exceptions which grant certain rights
> +   which the original license does not.  These exceptions are available
> +   from the directory::
> +
> +      LICENSES/exceptions/
> +
> +   in the kernel source tree.  The files in this directory contain the full
> +   exception text and the required `Exception Metatags`_.
> +
> +   Examples::
> +
> +      LICENSES/exceptions/Linux-syscall-note
> +
> +   Contains the Linux syscall exception as documented in the COPYING
> +   file of the Linux kernel, which is used for UAPI header files.
> +   e.g. /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/::
> +
> +      LICENSES/exceptions/GCC-exception-2.0
> +
> +   Contains the GCC 'linking exception' which allows to link any binary
> +   independent of its license against the compiled version of a file marked
> +   with this exception. This is required for creating runnable executables
> +   from source code which is not compatible with the GPL.
> +
> +   _`Exception Metatags`:
> +
> +   The following meta tags must be available in an exception file:
> +
> +   - SPDX-Exception-Identifier:
> +
> +     One exception identifier which can be used with SPDX license
> +     identifiers.
> +
> +   - SPDX-URL:
> +
> +     The URL of the SPDX page which contains additional information related
> +     to the exception.
> +
> +   - SPDX-Licenses:
> +
> +     A comma separated list of SPDX license identifiers for which the
> +     exception can be used.
> +
> +   - Usage-Guidance:
> +
> +     Freeform text for usage advice. The text must be followed by correct
> +     examples for the SPDX license identifiers as they should be put into
> +     source files according to the `License identifier syntax`_ guidelines.
> +
> +   - Exception-Text:
> +
> +     All text after this tag is treated as the original exception text
> +
> +   File format examples::
> +
> +      SPDX-Exception-Identifier: Linux-syscall-note
> +      SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
> +      SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+
> +      Usage-Guidance:
> +        This exception is used together with one of the above SPDX-Licenses
> +	to mark user-space API (uapi) header files so they can be included
> +	into non GPL compliant user-space application code.
> +        To use this exception add it with the keyword WITH to one of the
> +	identifiers in the SPDX-Licenses tag:
> +	  SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
> +      Exception-Text:
> +        Full exception text
> +
> +   ::
> +
> +      SPDX-Exception-Identifier: GCC-exception-2.0
> +      SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html
> +      SPDX-Licenses: GPL-2.0, GPL-2.0+
> +      Usage-Guidance:
> +        The "GCC Runtime Library exception 2.0" is used together with one
> +	of the above SPDX-Licenses for code imported from the GCC runtime
> +	library.
> +        To use this exception add it with the keyword WITH to one of the
> +	identifiers in the SPDX-Licenses tag:
> +	  SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0
> +      Exception-Text:
> +        Full exception text
> +
> +
> +All SPDX license identifiers and exceptions must have a corresponding file
> +in the LICENSING subdirectories. This is required to allow tool
> +verification (e.g. checkpatch.pl) and to have the licenses ready to read
> +and extract right from the source, which is recommended by various FOSS
> +organizations, e.g. the `FSFE REUSE initiative <https://reuse.software/>`_.



Thanks,
Mauro

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 17:06     ` Mauro Carvalho Chehab
@ 2017-11-17 18:11       ` Thomas Gleixner
  2017-11-17 18:39         ` Christoph Hellwig
  2017-11-25 18:51       ` Pavel Machek
  1 sibling, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-17 18:11 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

Mauro,

On Fri, 17 Nov 2017, Mauro Carvalho Chehab wrote:
> Em Fri, 17 Nov 2017 11:00:33 +0100 (CET)
> Thomas Gleixner <tglx@linutronix.de> escreveu:
> 
> > Subject: Documentation: Add license-rules.rst to describe how to properly identify file licenses
> > From: Thomas Gleixner <tglx@linutronix.de>
> > Date: Fri, 10 Nov 2017 09:30:00 +0100
> > 
> > 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, Greg and Jonathan 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>
> 
> The document itself looks good, but I think it should also mention
> what would be the expected values for the MODULE_LICENSE() macro and
> how each license would be mapped into it.
> 
> Right now, include/linux/module.h says:
> 
> /*
>  * The following license idents are currently accepted as indicating free
>  * software modules
>  *
>  *	"GPL"				[GNU Public License v2 or later]
>  *	"GPL v2"			[GNU Public License v2]
>  *	"GPL and additional rights"	[GNU Public License v2 rights and more]
>  *	"Dual BSD/GPL"			[GNU Public License v2
>  *					 or BSD license choice]
>  *	"Dual MIT/GPL"			[GNU Public License v2
>  *					 or MIT license choice]
>  *	"Dual MPL/GPL"			[GNU Public License v2
>  *					 or Mozilla license choice]
>  *
>  * The following other idents are available
>  *
>  *	"Proprietary"			[Non free products]
>  *
>  * There are dual licensed components, but when running with Linux it is the
>  * GPL that is relevant so this is a non issue. Similarly LGPL linked with GPL
>  * is a GPL combined work.
>  *
>  * This exists for several reasons
>  * 1.	So modinfo can show license info for users wanting to vet their setup
>  *	is free
>  * 2.	So the community can ignore bug reports including proprietary modules
>  * 3.	So vendors can do likewise based on their own policies
>  */
> #define MODULE_LICENSE(_license) MODULE_INFO(license, _license)
> 
> In thesis, for every SPDX property at C or assembler files, we should have
> a mapping into one of those MODULE_LICENSE().

I know. This is on the list of things which need to be addressed. The
module license tags are a mess on their own and I have yet to come up with
something smart to make this consistent.

Whatever I came up with so far requires postprocessing.

For files which have MODULE_LICENSE("...."):

   1) Grab the SPDX identifier from the source file

   2) Check whether the module license string is matching the SPDX license
      id. This is limited because the module license strings are pretty
      restricted.

   2) Store the SPDX license id string in a separate module info variable

Introcude a MODULE_LICENSE_SPDX macro which flags the module info storage
as 'SPDXIFY' and let the postprocessor do:

   1) Grab the SPDX identifier from the source file

   2) Map it to the "known" module license string and store both in module
      info.

That way tools can get access to the SPDX identifier and start to support it.

I refrained from documenting anything in that area yet, because we really
need to sit down and figure out a solution first.

It's on that huge thingy which is append only, aka. todo list.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 18:11       ` Thomas Gleixner
@ 2017-11-17 18:39         ` Christoph Hellwig
  2017-11-22 11:12           ` Thomas Gleixner
  0 siblings, 1 reply; 68+ messages in thread
From: Christoph Hellwig @ 2017-11-17 18:39 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Mauro Carvalho Chehab, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Christoph Hellwig, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

On Fri, Nov 17, 2017 at 07:11:41PM +0100, Thomas Gleixner wrote:
> Introcude a MODULE_LICENSE_SPDX macro which flags the module info storage
> as 'SPDXIFY' and let the postprocessor do:

Shouldn;t this be a FILE_LICENSE_SPDX?  I'd also much prefer that over
the nasty C99 comments to start with.  And while I'm a bit behind on
email I still haven't managed to find a good rationale for those to
start with.

So it would be good to figure this out before people start spamming
the lists with all kinds of mass conversions and checkpatch fixes
for licensing..

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
                       ` (2 preceding siblings ...)
  2017-11-17 17:06     ` Mauro Carvalho Chehab
@ 2017-11-17 19:02     ` Jonas Oberg
  2017-12-14 16:25     ` Joe Perches
  2018-01-05 13:05     ` [V4, " Alexandre Belloni
  5 siblings, 0 replies; 68+ messages in thread
From: Jonas Oberg @ 2017-11-17 19:02 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Joe Perches,
	linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

Hi Thomas,

> 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/).

I've given this a once over now, cross referenced against our recommendations
and checked the patch set. Happy with the latest versions circulated (V4 of
1/11 and V3 of the others).

   Reviewed-by: Jonas Oberg <jonas@fsfe.org>


Best,

-- 
Jonas Öberg
Executive Director

FSFE e.V. - keeping the power of technology in your hands. Your
support enables our work, please join us today http://fsfe.org/join

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V3 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17  9:48     ` Thomas Gleixner
@ 2017-11-17 22:38       ` Jonathan Corbet
  0 siblings, 0 replies; 68+ messages in thread
From: Jonathan Corbet @ 2017-11-17 22:38 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Fri, 17 Nov 2017 10:48:57 +0100 (CET)
Thomas Gleixner <tglx@linutronix.de> wrote:

> > > +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 :)  
> 
> Any suggestions for a better place?

I'd put it into Documentation/process/index.rst.  That is where we have
put the rest of that kind of information - stuff that people who want to
do kernel development need to know.

Other than that quibble, V4 looks good to me; toss in a

	Reviewed-by: Jonathan Corbet <corbet@lwn.net>

if you like.

Thanks,

jon

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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
                       ` (3 more replies)
  1 sibling, 4 replies; 68+ messages in thread
From: Charlemagne Lasse @ 2017-11-18 19:03 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

2017-11-16 19:33 GMT+01:00 Thomas Gleixner <tglx@linutronix.de>:
> Add the full text of the GPL 2.0 license to the kernel tree.  It was
> copied directly from:
>
>    https://spdx.org/licenses/GPL-2.0.html#licenseText
>
> Add the required tags for reference and tooling.
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

NACKed-by: Charlemagne Lasse <charlemagnelasse@gmail.com>

This is neither the GPL-2.0 from https://www.gnu.org/licenses/gpl-2.0.txt
(which you should have used) or
https://spdx.org/licenses/GPL-2.0.html#licenseText

Please download the correct ASCII version from gnu.org and add your SPDX
info in front of it. But I have also added detailed info about
non-whitespace changes in your patch.

But I am sure that you will tell me again that I am only arguing in
circles.

>
> ---
>  LICENSES/preferred/GPL-2.0 |  348 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 348 insertions(+)
>  create mode 100644 LICENSES/GPL-2.0

This patch seems to have been modified by hand because the summary doesn't
match the patch.

>
> --- /dev/null
> +++ b/LICENSES/preferred/GPL-2.0
<cut>
> +GNU GENERAL PUBLIC LICENSE
> +Version 2, June 1991
> +
> +Copyright (C) 1989, 1991 Free Software Foundation, Inc.

That should be:  "Inc.," and not "Inc."

<cut>
> +
> +Everyone is permitted to copy and distribute verbatim copies
> +of this license document, but changing it is not allowed.
> +
> +Preamble
> +
> +The licenses for most software are designed to take away your freedom to
> +share and change it. By contrast, the GNU General Public License is
> +intended to guarantee your freedom to share and change free software--to
> +make sure the software is free for all its users. This General Public
> +License applies to most of the Free Software Foundation's software and to
> +any other program whose authors commit to using it. (Some other Free
> +Software Foundation software is covered by the GNU Library General Public
> +License instead.) You can apply it to your programs, too.

That should be "GNU Lesser General Public" and not "GNU Library General Public"

<cut>
> +The precise terms and conditions for copying, distribution and modification follow.
> +
> +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

"GNU GENERAL PUBLIC LICENSE" is missing before
"TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION"

<cut>
> +To do so, attach the following notices to the program. It is safest to
> +attach them to the start of each source file to most effectively convey the
> +exclusion of warranty; and each file should have at least the "copyright"
> +line and a pointer to where the full notice is found.
> +
> +    One line to give the program's name and a brief idea of what it does.

This should actually be:

<one line to give the program's name and a brief idea of what it does.>


> +    Copyright (C) <year> <name of author>
> +
> +    This program is free software; you can redistribute it and/or modify it
> +    under the terms of the GNU General Public License as published by the
> +    Free Software Foundation; either version 2 of the License, or (at your
> +    option) any later version.
> +
> +    This program is distributed in the hope that it will be useful, but
> +    WITHOUT ANY WARRANTY; without even the implied warranty of
> +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +    General Public License for more details.
> +
> +    You should have received a copy of the GNU General Public License along
> +    with this program; if not, write to the Free Software Foundation, Inc.,
> +    59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

This is the wrong address. It should actually be

51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

<cut>
> +    Yoyodyne, Inc., hereby disclaims all copyright interest in the program
> +    `Gnomovision' (which makes passes at compilers) written by James
> +    Hacker.
> +
> +    signature of Ty Coon, 1 April 1989

This should actually be:

<signature of Ty Coon>, 1 April 1989


> +    Ty Coon, President of Vice
> +
> +This General Public License does not permit incorporating your program into
> +proprietary programs. If your program is a subroutine library, you may
> +consider it more useful to permit linking proprietary applications with the
> +library. If this is what you want to do, use the GNU Library General Public
> +License instead of this License.

"Lesser Library General Public" and not "Library General Public License"

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  2017-11-18 19:03   ` Charlemagne Lasse
@ 2017-11-18 19:05     ` Charlemagne Lasse
  2017-11-18 19:13     ` Jonas Oberg
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 68+ messages in thread
From: Charlemagne Lasse @ 2017-11-18 19:05 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

2017-11-18 20:03 GMT+01:00 Charlemagne Lasse <charlemagnelasse@gmail.com>:
<cut>
>> +    Ty Coon, President of Vice
>> +
>> +This General Public License does not permit incorporating your program into
>> +proprietary programs. If your program is a subroutine library, you may
>> +consider it more useful to permit linking proprietary applications with the
>> +library. If this is what you want to do, use the GNU Library General Public
>> +License instead of this License.
>
> "Lesser Library General Public" and not "Library General Public License"

I meant: "Lesser General Public License" and not "Library General
Public License"

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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-20  9:42     ` Thomas Gleixner
  3 siblings, 0 replies; 68+ messages in thread
From: Jonas Oberg @ 2017-11-18 19:13 UTC (permalink / raw)
  To: Charlemagne Lasse, Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Joe Perches,
	linux-xfs, Carmen Bianca Bakker

>This is neither the GPL-2.0 from
>https://www.gnu.org/licenses/gpl-2.0.txt

I think it should be the copy from COPYING, in fact, since that's the exact GPL 2.0 license the kernel is under. Library GPL is factually correct; Lesser GPL is a newer name for the same license, but COPYING retains the old name.

I don't remember when the FSF moved from Temple place but indeed, the address, which is correct in COPYING, could be updated.

Best
Jonas Öberg
Free Software Foundation Europe | jonas@fsfe.org
Your support enables our work (fsfe.org/join)

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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-20 15:31       ` Alan Cox
  2017-11-20  9:42     ` Thomas Gleixner
  3 siblings, 2 replies; 68+ messages in thread
From: Linus Torvalds @ 2017-11-18 19:14 UTC (permalink / raw)
  To: Charlemagne Lasse
  Cc: Thomas Gleixner, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

You may be confusing things because of a newer version.

On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
<charlemagnelasse@gmail.com> wrote:
>
> That should be "GNU Lesser General Public" and not "GNU Library General Public"

That's just FSF revisionism.

It used to be called "Library" over "Lesser", in the original GPL2.

I suspect your other issues are similar "there's been different
versions over time" things. the address being one of them.

We've actually taken some of the FSF updates over the years ("19yy" ->
"<year>", and the address change) but the main COPYING file still
calls the LGPL the "GNU Library General Public License".

I refuse to change the original copyright wording due to idiotic
internal FSF politics that tried to change history.

             Linus

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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
  1 sibling, 1 reply; 68+ messages in thread
From: Charlemagne Lasse @ 2017-11-18 20:41 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Thomas Gleixner, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

2017-11-18 20:14 GMT+01:00 Linus Torvalds <torvalds@linux-foundation.org>:
> You may be confusing things because of a newer version.
>
<cut>
> I refuse to change the original copyright wording due to idiotic
> internal FSF politics that tried to change history.

But you are accepting commit messages which are factually wrong? I am not
confusing anything here but state the obvious. Either he copied it from
https://spdx.org/licenses/GPL-2.0.html#licenseText or not. There is no
reality where https://spdx.org/licenses/GPL-2.0.html#licenseText has the
same content as the patch which he send.

And do you even know the best part: it is also not the version from your
COPYING file.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  2017-11-18 20:41       ` Charlemagne Lasse
@ 2017-11-19  8:50         ` Charlemagne Lasse
  0 siblings, 0 replies; 68+ messages in thread
From: Charlemagne Lasse @ 2017-11-19  8:50 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Thomas Gleixner, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

2017-11-18 21:41 GMT+01:00 Charlemagne Lasse <charlemagnelasse@gmail.com>:
> 2017-11-18 20:14 GMT+01:00 Linus Torvalds <torvalds@linux-foundation.org>:
>> You may be confusing things because of a newer version.
>>
> <cut>
>> I refuse to change the original copyright wording due to idiotic
>> internal FSF politics that tried to change history.
>

<cut>
> And do you even know the best part: it is also not the version from your
> COPYING file.

Let us check the non-whitespace differences (the whitespaces are
completely different in this patch) between the Linux COPYING file
and this patch:

<cut>
> +Copyright (C) 1989, 1991 Free Software Foundation, Inc.
> +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

This should have been "St." and not "Street"

<cut>
> +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

"GNU GENERAL PUBLIC LICENSE" missing before
"TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION"

<cut>
> +    One line to give the program's name and a brief idea of what it does.

This should have been

<one line to give the program's name and a brief idea of what it does.>

<cut>
> +    You should have received a copy of the GNU General Public License along
> +    with this program; if not, write to the Free Software Foundation, Inc.,
> +    59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

This should have been:

51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

<cut>
> +    signature of Ty Coon, 1 April 1989

This should have been

  <signature of Ty Coon>, 1 April 1989

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  2017-11-18 19:03   ` Charlemagne Lasse
                       ` (2 preceding siblings ...)
  2017-11-18 19:14     ` Linus Torvalds
@ 2017-11-20  9:42     ` Thomas Gleixner
  3 siblings, 0 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-20  9:42 UTC (permalink / raw)
  To: Charlemagne Lasse
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

On Sat, 18 Nov 2017, Charlemagne Lasse wrote:
> 2017-11-16 19:33 GMT+01:00 Thomas Gleixner <tglx@linutronix.de>:
> > Add the full text of the GPL 2.0 license to the kernel tree.  It was
> > copied directly from:
> >
> >    https://spdx.org/licenses/GPL-2.0.html#licenseText
> >
> > Add the required tags for reference and tooling.
> >
> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> 
> NACKed-by: Charlemagne Lasse <charlemagnelasse@gmail.com>
> 
> This is neither the GPL-2.0 from https://www.gnu.org/licenses/gpl-2.0.txt
> (which you should have used) or
> https://spdx.org/licenses/GPL-2.0.html#licenseText
> 
> Please download the correct ASCII version from gnu.org and add your SPDX
> info in front of it. But I have also added detailed info about
> non-whitespace changes in your patch.

Indeed. I messed that up when I noticed that the license from the SPDX site
is indeed different from the COPYING file in a few minor aspects.

I started to rumage around to find out why and found the matching one on

  https://opensource.org/licenses/GPL-2.0

which is linked to from the SPDX page. I downloaded that version to check
the differences. The opensource page has the original version of the GPLv2
and not the one which got modified by FSF later on without changing the
version number.

I then decided to copy the text from COPYING, which is the right thing to
do as Jonas pointed, got dragged into dealing with a regression and forgot
about it. Neither did I update the changelog.

Thanks for spotting it!

I'll send out a revised version later.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  2017-11-18 19:14     ` Linus Torvalds
  2017-11-18 20:41       ` Charlemagne Lasse
@ 2017-11-20 15:31       ` Alan Cox
  2017-11-20 15:42         ` Russell King - ARM Linux
                           ` (2 more replies)
  1 sibling, 3 replies; 68+ messages in thread
From: Alan Cox @ 2017-11-20 15:31 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Charlemagne Lasse, Thomas Gleixner, LKML, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Christoph Hellwig, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Carmen Bianca Bakker

On Sat, 18 Nov 2017 11:14:00 -0800
Linus Torvalds <torvalds@linux-foundation.org> wrote:

> You may be confusing things because of a newer version.
> 
> On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
> <charlemagnelasse@gmail.com> wrote:
> >
> > That should be "GNU Lesser General Public" and not "GNU Library General Public"  
> 
> That's just FSF revisionism.
> 
> It used to be called "Library" over "Lesser", in the original GPL2.
> 
> I suspect your other issues are similar "there's been different
> versions over time" things. the address being one of them.
> 
> We've actually taken some of the FSF updates over the years ("19yy" ->
> "<year>", and the address change) but the main COPYING file still
> calls the LGPL the "GNU Library General Public License".
> 
> I refuse to change the original copyright wording due to idiotic
> internal FSF politics that tried to change history.

Do we have any files which had the later LGPL text attached to them - if
so then they should be keeping that header.

Which raises another question. If there are multiple GPL 2.0 texts which
are *supposedly* legally identical but this has never been tested in law
-that implies SPDX is wrong in tagging them identically in case they turn
out not to be...

Alan

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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
  2 siblings, 0 replies; 68+ messages in thread
From: Russell King - ARM Linux @ 2017-11-20 15:42 UTC (permalink / raw)
  To: Alan Cox
  Cc: Linus Torvalds, Charlemagne Lasse, Thomas Gleixner, LKML,
	Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Carmen Bianca Bakker

On Mon, Nov 20, 2017 at 03:31:05PM +0000, Alan Cox wrote:
> On Sat, 18 Nov 2017 11:14:00 -0800
> Linus Torvalds <torvalds@linux-foundation.org> wrote:
> 
> > You may be confusing things because of a newer version.
> > 
> > On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
> > <charlemagnelasse@gmail.com> wrote:
> > >
> > > That should be "GNU Lesser General Public" and not "GNU Library General Public"  
> > 
> > That's just FSF revisionism.
> > 
> > It used to be called "Library" over "Lesser", in the original GPL2.
> > 
> > I suspect your other issues are similar "there's been different
> > versions over time" things. the address being one of them.
> > 
> > We've actually taken some of the FSF updates over the years ("19yy" ->
> > "<year>", and the address change) but the main COPYING file still
> > calls the LGPL the "GNU Library General Public License".
> > 
> > I refuse to change the original copyright wording due to idiotic
> > internal FSF politics that tried to change history.
> 
> Do we have any files which had the later LGPL text attached to them - if
> so then they should be keeping that header.
> 
> Which raises another question. If there are multiple GPL 2.0 texts which
> are *supposedly* legally identical but this has never been tested in law
> -that implies SPDX is wrong in tagging them identically in case they turn
> out not to be...

There are also licenses that have been amended (sometimes incorrectly)
to convert them from GPL2+ to GPL2 only, and in the process messing up
the wording.  My understanding is that, even though it's obvious that
the wording is wrong, only the author(s) have the authority to correct
it for exactly the reason you give.

I have some DTS files that are blocked from being merged into the kernel
because of the license wording being messed up - but as I'm not the
author, I can't do anything about it.  People have tried sending me
patches to fix the license text, but I can't merge them because... I'm
not the author.  I've tried to get the author to ack them, but to no
success.

So, since many of us have contributed code under the exact license
given in the top-level "COPYING" file, this is the license text that
applies, and not any other text that someone else happens to call
"GPL 2".

This is exactly why I'm so concerned about the SPDX stuff, and I'm
glad that Thomas is trying to address the concerns that I've raised
with it by including the corresponding license texts with the kernel,
thereby making the kernel independent of the SPDX website.

I haven't been able to fully review Thomas' patches, but they're
definitely a step in the right direction - provided there's a
statement which indicates which is the authoritive reference for the
SPDX tags used in code merged into the kernel.  Without such a
statement, I can see lawyers arguing over that point.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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
  2 siblings, 0 replies; 68+ messages in thread
From: Jonas Oberg @ 2017-11-21  8:27 UTC (permalink / raw)
  To: Alan Cox
  Cc: Linus Torvalds, Charlemagne Lasse, Thomas Gleixner, LKML,
	Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Joe Perches, linux-xfs,
	Carmen Bianca Bakker

Hi Alan,

> Which raises another question. If there are multiple GPL 2.0 texts which
> are *supposedly* legally identical but this has never been tested in law
> -that implies SPDX is wrong in tagging them identically in case they turn
> out not to be...

For the cases, and the differences we're talking about now, I believe the
current approach is fine. In the general case though, the FSFE's REUSE
recommendations are that for situations where the license in use differ
from the one included in SPDX, you make use of a local reference to the
license file instead of the SPDX identifier.

This is sometimes the case with the umpteen versions of the BSD licenses.
The way we recommend doing this is you define an identifier of the form
LicenseRef-<unique_code> (consistent with the SPDX specification).
Source code files would be marked up with:

   SPDX-License-Identifier: LicenseRef-MyBSD4

and the corresponding license file in LICENSES/ with:

   Valid-License-Identifier: LicenseRef-MyBSD4
   License-Text:
     ...


Best,

-- 
Jonas Öberg
Executive Director

FSFE e.V. - keeping the power of technology in your hands. Your
support enables our work, please join us today http://fsfe.org/join

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  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
  2 siblings, 1 reply; 68+ messages in thread
From: Philippe Ombredanne @ 2017-11-21 13:57 UTC (permalink / raw)
  To: Alan Cox, Linus Torvalds
  Cc: Charlemagne Lasse, Thomas Gleixner, LKML, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

Alan, Linus,

On Mon, Nov 20, 2017 at 4:31 PM, Alan Cox <gnomes@lxorguk.ukuu.org.uk> wrote:
> On Sat, 18 Nov 2017 11:14:00 -0800
> Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
>> You may be confusing things because of a newer version.
>>
>> On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
>> <charlemagnelasse@gmail.com> wrote:
>> >
>> > That should be "GNU Lesser General Public" and not "GNU Library General Public"
>>
>> That's just FSF revisionism.

Linus:

Revisionism it is indeed! Please see the fun and twisted tale of the
five official GPL texts below.


>> It used to be called "Library" over "Lesser", in the original GPL2.
>>
>> I suspect your other issues are similar "there's been different
>> versions over time" things. the address being one of them.
>>
>> We've actually taken some of the FSF updates over the years ("19yy" ->
>> "<year>", and the address change) but the main COPYING file still
>> calls the LGPL the "GNU Library General Public License".
>>
>> I refuse to change the original copyright wording due to idiotic
>> internal FSF politics that tried to change history.
>
> Do we have any files which had the later LGPL text attached to them - if
> so then they should be keeping that header.
>
> Which raises another question. If there are multiple GPL 2.0 texts which
> are *supposedly* legally identical but this has never been tested in law
> -that implies SPDX is wrong in tagging them identically in case they turn
> out not to be...

Alan:

This last comment rings as a red herring to me. There are many minute
variations of the GPL around and these are unlikely relevant.
No sane judge would consider any of these variations material IMHO and
should fine and throw in jail for contempt anyone arguing that this is
important.

Now, on the fun side, I discovered a while back through fixing a bug
in scancode-toolkit that there are FIVE versions of the official GPL
2.0 texts published by the FSF over the years. I am ashamed that I end
up doing this research and I would never thought I would need to
rummage through this pile.... but that came up while reviewing kernel
license scans and a few other scans to support Thomas and Greg
licensing clarification efforts.

Shocking, isn't it?

Let me call these GPL versions the GPL-2.0.0, GPL-2.0.1, GPL-2.0.2,
GPL-2.0.3 and GPL-2.0.4 :D

(but please this one time only!, let's forget about these afterwards)

GPL-2.0.4 v5. The most recent one was published after the GPL 3.0
publication [1] [2]. It refers to the `Franklin Street` address and to
the `GNU Lesser General Public License` top and bottom

GPL-2.0.3 v4. Slightly after the HTML publication of the new address
in v3, the address was changed in the text version [3]: It refers to
the  `Franklin Street` address and to the `GNU Library General Public
License` top and bottom.

GPL-2.0.2 v3. The previous one in force before the publication of the
GPL 3.0 came about the time of the FSF office move on May 1, 2005 to
Franklin Street [4] In this HTML version, it refers to the `Franklin
St` address and uses the `GNU Library General Public License` at the
top and `GNU Lesser General Public License`  at the bottom with a
conflicted opinion on which one of the LGPL 2 or 2.1 version to use.

GPL-2.0.1 v2. Around December 2003, a variation was published [5]. It
also predates the move to Franklin and it refers to the `Temple Place`
address and the `GNU Library General Public License` at the top and
`GNU Lesser General Public License`  at the bottom. Still split on
confused about which LGPL version to recommend.

GPL-2.0.1 v1. The one true and only original GPL 2.0.... the oldest
cached version [6] predates the move and it refers to the `Temple
Place` address and the `GNU Library General Public License`
throughout.

FWIW, I made sure I have all these texts as scancode detection rules
so I would get 100% exact hash matches on these oddities.

Now you will surely agree with me that the sole sane conclusion of
studying this mess is that there must some unhappy ghost that
triggered these text changes when the FSF moved from Temple Place to
Franklin Street in protest for the move. The only other possible
explanation I could fathom would be a bug in their teletype [7].

[1] https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
[2] http://web.archive.org/web/20070716031727/http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
[3] http://web.archive.org/web/20050511030123/http://www.fsf.org/licensing/licenses/gpl.txt
[4] http://web.archive.org/web/20050507090312/http://www.fsf.org/licensing/licenses/gpl.html
[5] http://web.archive.org/web/20031202220858/http://www.fsf.org/copyleft/gpl.html
[6] http://web.archive.org/web/19980119061851/http://www.fsf.org/copyleft/gpl.html
[7] https://en.wikipedia.org/wiki/IBM_Selectric_typewriter
-- 
Cordially
Philippe Ombredanne

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
  2017-11-21 13:57         ` Philippe Ombredanne
@ 2017-11-21 17:55           ` Philippe Ombredanne
  0 siblings, 0 replies; 68+ messages in thread
From: Philippe Ombredanne @ 2017-11-21 17:55 UTC (permalink / raw)
  To: Alan Cox, Linus Torvalds
  Cc: Charlemagne Lasse, Thomas Gleixner, LKML, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Carmen Bianca Bakker

On Tue, Nov 21, 2017 at 2:57 PM, Philippe Ombredanne
<pombredanne@nexb.com> wrote:
> Alan, Linus,
>
> On Mon, Nov 20, 2017 at 4:31 PM, Alan Cox <gnomes@lxorguk.ukuu.org.uk> wrote:
>> On Sat, 18 Nov 2017 11:14:00 -0800
>> Linus Torvalds <torvalds@linux-foundation.org> wrote:
>>
>>> You may be confusing things because of a newer version.
>>>
>>> On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
>>> <charlemagnelasse@gmail.com> wrote:
>>> >
>>> > That should be "GNU Lesser General Public" and not "GNU Library General Public"
>>>
>>> That's just FSF revisionism.
>
> Linus:
>
> Revisionism it is indeed! Please see the fun and twisted tale of the
> five official GPL texts below.
>
>
>>> It used to be called "Library" over "Lesser", in the original GPL2.
>>>
>>> I suspect your other issues are similar "there's been different
>>> versions over time" things. the address being one of them.
>>>
>>> We've actually taken some of the FSF updates over the years ("19yy" ->
>>> "<year>", and the address change) but the main COPYING file still
>>> calls the LGPL the "GNU Library General Public License".
>>>
>>> I refuse to change the original copyright wording due to idiotic
>>> internal FSF politics that tried to change history.
>>
>> Do we have any files which had the later LGPL text attached to them - if
>> so then they should be keeping that header.
>>
>> Which raises another question. If there are multiple GPL 2.0 texts which
>> are *supposedly* legally identical but this has never been tested in law
>> -that implies SPDX is wrong in tagging them identically in case they turn
>> out not to be...
>
> Alan:
>
> This last comment rings as a red herring to me. There are many minute
> variations of the GPL around and these are unlikely relevant.
> No sane judge would consider any of these variations material IMHO and
> should fine and throw in jail for contempt anyone arguing that this is
> important.
>
> Now, on the fun side, I discovered a while back through fixing a bug
> in scancode-toolkit that there are FIVE versions of the official GPL
> 2.0 texts published by the FSF over the years. I am ashamed that I end
> up doing this research and I would never thought I would need to
> rummage through this pile.... but that came up while reviewing kernel
> license scans and a few other scans to support Thomas and Greg
> licensing clarification efforts.
>
> Shocking, isn't it?
>
> Let me call these GPL versions the GPL-2.0.0, GPL-2.0.1, GPL-2.0.2,
> GPL-2.0.3 and GPL-2.0.4 :D
>
> (but please this one time only!, let's forget about these afterwards)
>
> GPL-2.0.4 v5. The most recent one was published after the GPL 3.0
> publication [1] [2]. It refers to the `Franklin Street` address and to
> the `GNU Lesser General Public License` top and bottom
>
> GPL-2.0.3 v4. Slightly after the HTML publication of the new address
> in v3, the address was changed in the text version [3]: It refers to
> the  `Franklin Street` address and to the `GNU Library General Public
> License` top and bottom.
>
> GPL-2.0.2 v3. The previous one in force before the publication of the
> GPL 3.0 came about the time of the FSF office move on May 1, 2005 to
> Franklin Street [4] In this HTML version, it refers to the `Franklin
> St` address and uses the `GNU Library General Public License` at the
> top and `GNU Lesser General Public License`  at the bottom with a
> conflicted opinion on which one of the LGPL 2 or 2.1 version to use.
>
> GPL-2.0.1 v2. Around December 2003, a variation was published [5]. It
> also predates the move to Franklin and it refers to the `Temple Place`
> address and the `GNU Library General Public License` at the top and
> `GNU Lesser General Public License`  at the bottom. Still split on
> confused about which LGPL version to recommend.
>
> GPL-2.0.1 v1. The one true and only original GPL 2.0.... the oldest
> cached version [6] predates the move and it refers to the `Temple
> Place` address and the `GNU Library General Public License`
> throughout.
>
> FWIW, I made sure I have all these texts as scancode detection rules
> so I would get 100% exact hash matches on these oddities.
>
> Now you will surely agree with me that the sole sane conclusion of
> studying this mess is that there must some unhappy ghost that
> triggered these text changes when the FSF moved from Temple Place to
> Franklin Street in protest for the move. The only other possible
> explanation I could fathom would be a bug in their teletype [7].
>
> [1] https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
> [2] http://web.archive.org/web/20070716031727/http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
> [3] http://web.archive.org/web/20050511030123/http://www.fsf.org/licensing/licenses/gpl.txt
> [4] http://web.archive.org/web/20050507090312/http://www.fsf.org/licensing/licenses/gpl.html
> [5] http://web.archive.org/web/20031202220858/http://www.fsf.org/copyleft/gpl.html
> [6] http://web.archive.org/web/19980119061851/http://www.fsf.org/copyleft/gpl.html
> [7] https://en.wikipedia.org/wiki/IBM_Selectric_typewriter

Now in earnest here is the situation: There is NO trustworthy version
of an official GPL 2.0 text: the FSF official texts are all fubar (if
only in small and subtle ways). The FSF texts should be authoritative,
but then which one? they published more GPL 2.0 versions than most. So
we would be hard pressed to blame SPDX or the OSI for having their own
minor variant.

Then in digging further, I found the ONE true original GPL with a file
time stamp on June 2 1991, 01:50 (AM?, PM? unknown time zone?)  ! in
an old GCC archive.

For the posterity and everyone's enjoyment I have built a git history
of GPL 2.0 Mark1 to Mark6

See https://github.com/pombredanne/gpl-history/commits/master/COPYING

Each commit message has the link to the original archive.org page or
archive download.

For simplified diffs, the allvers/ dir contains all the versions of the texts.

Acks and reviews are welcomed, but not really.

I also added a shorter history of the Linux COPYING text. The first
version in Linus's git tree is based on the very fine and well tuned
GPL 2 Mark4, the first fully Y2K compliant version of the GPL 2, as
you can see from the diffs with the former Mark3: that was dangerously
stuck in the last century.

The current version in is based on a rare GPL 2.0 Mark5.1 aka
"Franklin St",  that I do not have in my history yet and spells
"Franklin St." rather than "Franklin Street."
Therefore there is likely another GPL 2.0 version between Mark4 and
Mark5 that I have yet to find and may not have been caught by the
archive.org spiders. Here help and patches welcomed: this is likely
an important missing link.

Linus:
I am rather sad to see that you never adopted the GPL 2.0 Mark6 ;)
aka. the  "final frontier" or "graveyard" release that came after the
GPL 3 launch and when the GPL 2.0 was made an "old" license: this
latest version is the finest ever published and I am sure we are all
missing out something worthy!

I look forward to the future publication of Mark7 and all the fine GPL
2.0 versions to come that we should all long for.

-- 
Cordially
Philippe Ombredanne aka. the unwelcomed GPL archeologist

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 18:39         ` Christoph Hellwig
@ 2017-11-22 11:12           ` Thomas Gleixner
  2017-11-22 11:51             ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 68+ messages in thread
From: Thomas Gleixner @ 2017-11-22 11:12 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Mauro Carvalho Chehab, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

On Fri, 17 Nov 2017, Christoph Hellwig wrote:
> On Fri, Nov 17, 2017 at 07:11:41PM +0100, Thomas Gleixner wrote:
> > Introcude a MODULE_LICENSE_SPDX macro which flags the module info storage
> > as 'SPDXIFY' and let the postprocessor do:
> 
> Shouldn;t this be a FILE_LICENSE_SPDX?  I'd also much prefer that over
> the nasty C99 comments to start with.  And while I'm a bit behind on
> email I still haven't managed to find a good rationale for those to
> start with.
> 
> So it would be good to figure this out before people start spamming
> the lists with all kinds of mass conversions and checkpatch fixes
> for licensing..

I tried solving this with a macro in the first place and ran into issues:

   - Does not work in headers, especially not in UAPI ones

   - Breaks in assembly, boot and other special source files. There was no
     easy solution to that and the result would have been to have macros in
     some files and not in others.

So the fallback was to use a comment and Linus decided the '//' style.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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:48               ` Greg Kroah-Hartman
  0 siblings, 2 replies; 68+ messages in thread
From: Mauro Carvalho Chehab @ 2017-11-22 11:51 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Christoph Hellwig, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

Em Wed, 22 Nov 2017 12:12:04 +0100 (CET)
Thomas Gleixner <tglx@linutronix.de> escreveu:

> On Fri, 17 Nov 2017, Christoph Hellwig wrote:
> > On Fri, Nov 17, 2017 at 07:11:41PM +0100, Thomas Gleixner wrote:  
> > > Introcude a MODULE_LICENSE_SPDX macro which flags the module info storage
> > > as 'SPDXIFY' and let the postprocessor do:  
> > 
> > Shouldn;t this be a FILE_LICENSE_SPDX?  I'd also much prefer that over
> > the nasty C99 comments to start with.  And while I'm a bit behind on
> > email I still haven't managed to find a good rationale for those to
> > start with.

Yeah, I also find nasty to have things like this on each C file:

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright ...
 * ...
 */

Also, one may forget that headers use /**/ and end by doing the wrong
thing, as a common practice is to just cut-and-paste the same copyright
header on both C and H files at development time.

> > 
> > So it would be good to figure this out before people start spamming
> > the lists with all kinds of mass conversions and checkpatch fixes
> > for licensing..  
> 
> I tried solving this with a macro in the first place and ran into issues:
> 
>    - Does not work in headers, especially not in UAPI ones

Make headers_install could replace such macros by SPDX comments when
installing on userspace.

>    - Breaks in assembly, boot and other special source files. There was no
>      easy solution to that and the result would have been to have macros in
>      some files and not in others.

At the end, we have different markups, depending on the file type.
I guess the main problem of using a macro is that a module composed
by multiple C files will end by defining it multiple times. Not sure
if gcc would do the right thing on grouping everything altogether
and producing the right equivalent to MODULE_LICENSE().

Also, at least on media, I found cases where the same module
has multiple licenses, e. g. some files that are grouped together on
a module are GPL v2 only, while others are GPL v2+.

> So the fallback was to use a comment and Linus decided the '//' style.
> 
> Thanks,
> 
> 	tglx
> 

Thanks,
Mauro

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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
  1 sibling, 1 reply; 68+ messages in thread
From: Christoph Hellwig @ 2017-11-22 13:23 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Thomas Gleixner, Christoph Hellwig, LKML, Linus Torvalds,
	Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Russell King,
	Rob Herring, Jonas Oberg, Joe Perches, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Wed, Nov 22, 2017 at 09:51:17AM -0200, Mauro Carvalho Chehab wrote:
> Also, one may forget that headers use /**/ and end by doing the wrong
> thing, as a common practice is to just cut-and-paste the same copyright
> header on both C and H files at development time.

Yes.

> Make headers_install could replace such macros by SPDX comments when
> installing on userspace.

Agreed.  Or for that matter we could simply stick to the comment version
for UAPI headers only, and have a macro for everything else.

> >    - Breaks in assembly, boot and other special source files. There was no
> >      easy solution to that and the result would have been to have macros in
> >      some files and not in others.
> 
> At the end, we have different markups, depending on the file type.
> I guess the main problem of using a macro is that a module composed
> by multiple C files will end by defining it multiple times. Not sure
> if gcc would do the right thing on grouping everything altogether
> and producing the right equivalent to MODULE_LICENSE().

We'd basically need to add a new entry to a section, similar to how
say __setup works in the core kernel.  But I think the important bit
is to start with a macro now, even if it has zero functionality to
start with - at least that enables us to fill the functionality once
needed.

> Also, at least on media, I found cases where the same module
> has multiple licenses, e. g. some files that are grouped together on
> a module are GPL v2 only, while others are GPL v2+.

A module always has the least permissive license of all files.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-22 13:23               ` Christoph Hellwig
@ 2017-11-22 13:35                 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 68+ messages in thread
From: Mauro Carvalho Chehab @ 2017-11-22 13:35 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Thomas Gleixner, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

Em Wed, 22 Nov 2017 14:23:29 +0100
Christoph Hellwig <hch@lst.de> escreveu:

> On Wed, Nov 22, 2017 at 09:51:17AM -0200, Mauro Carvalho Chehab wrote:
> > Also, one may forget that headers use /**/ and end by doing the wrong
> > thing, as a common practice is to just cut-and-paste the same copyright
> > header on both C and H files at development time.  
> 
> Yes.
> 
> > Make headers_install could replace such macros by SPDX comments when
> > installing on userspace.  
> 
> Agreed.  Or for that matter we could simply stick to the comment version
> for UAPI headers only, and have a macro for everything else.
> 
> > >    - Breaks in assembly, boot and other special source files. There was no
> > >      easy solution to that and the result would have been to have macros in
> > >      some files and not in others.  
> > 
> > At the end, we have different markups, depending on the file type.
> > I guess the main problem of using a macro is that a module composed
> > by multiple C files will end by defining it multiple times. Not sure
> > if gcc would do the right thing on grouping everything altogether
> > and producing the right equivalent to MODULE_LICENSE().  
> 
> We'd basically need to add a new entry to a section, similar to how
> say __setup works in the core kernel.  But I think the important bit
> is to start with a macro now, even if it has zero functionality to
> start with - at least that enables us to fill the functionality once
> needed.
> 
> > Also, at least on media, I found cases where the same module
> > has multiple licenses, e. g. some files that are grouped together on
> > a module are GPL v2 only, while others are GPL v2+.  
> 
> A module always has the least permissive license of all files.

Yes, but I'm not sure how a macro would work. I mean, if a driver
foo has, let's say:

	foo-core.h: FILE_LICENSE_SPDX("SPDX-License-Identifier: GPL-2.0");
	foo-core.c: FILE_LICENSE_SPDX("SPDX-License-Identifier: GPL-2.0");
	foo-driver.c: FILE_LICENSE_SPDX("SPDX-License-Identifier: GPL-2.0+");

I can't see how to write such macro in a way that it would be
discovering the license interception.

Thanks,
Mauro

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-22 11:51             ` Mauro Carvalho Chehab
  2017-11-22 13:23               ` Christoph Hellwig
@ 2017-11-22 13:48               ` Greg Kroah-Hartman
  2017-11-25 19:04                 ` Pavel Machek
  1 sibling, 1 reply; 68+ messages in thread
From: Greg Kroah-Hartman @ 2017-11-22 13:48 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Thomas Gleixner, Christoph Hellwig, LKML, Linus Torvalds,
	Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

On Wed, Nov 22, 2017 at 09:51:17AM -0200, Mauro Carvalho Chehab wrote:
> Em Wed, 22 Nov 2017 12:12:04 +0100 (CET)
> Thomas Gleixner <tglx@linutronix.de> escreveu:
> 
> > On Fri, 17 Nov 2017, Christoph Hellwig wrote:
> > > On Fri, Nov 17, 2017 at 07:11:41PM +0100, Thomas Gleixner wrote:  
> > > > Introcude a MODULE_LICENSE_SPDX macro which flags the module info storage
> > > > as 'SPDXIFY' and let the postprocessor do:  
> > > 
> > > Shouldn;t this be a FILE_LICENSE_SPDX?  I'd also much prefer that over
> > > the nasty C99 comments to start with.  And while I'm a bit behind on
> > > email I still haven't managed to find a good rationale for those to
> > > start with.
> 
> Yeah, I also find nasty to have things like this on each C file:
> 
> // SPDX-License-Identifier: GPL-2.0
> /*
>  * Copyright ...
>  * ...
>  */
> 
> Also, one may forget that headers use /**/ and end by doing the wrong
> thing, as a common practice is to just cut-and-paste the same copyright
> header on both C and H files at development time.

You break the build when you get it wrong, so you will notice it.  For
most "internal" .h files, using // is just fine.

Yes, it's "ugly", but again, that's what Linus said he wanted it to look
like, take it up with him :)

> > > So it would be good to figure this out before people start spamming
> > > the lists with all kinds of mass conversions and checkpatch fixes
> > > for licensing..  
> > 
> > I tried solving this with a macro in the first place and ran into issues:
> > 
> >    - Does not work in headers, especially not in UAPI ones
> 
> Make headers_install could replace such macros by SPDX comments when
> installing on userspace.

The big issue is when you build, putting those macros all into something
logical is a mess.  I too tried it and failed.

But feel to give it a go if you think it is possible :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 17:06     ` Mauro Carvalho Chehab
  2017-11-17 18:11       ` Thomas Gleixner
@ 2017-11-25 18:51       ` Pavel Machek
  2017-11-25 23:41         ` Philippe Ombredanne
  1 sibling, 1 reply; 68+ messages in thread
From: Pavel Machek @ 2017-11-25 18:51 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Thomas Gleixner, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Christoph Hellwig, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

[-- Attachment #1: Type: text/plain, Size: 1517 bytes --]

On Fri 2017-11-17 15:06:39, Mauro Carvalho Chehab wrote:
> Hi Thomas,
> 
> Em Fri, 17 Nov 2017 11:00:33 +0100 (CET)
> Thomas Gleixner <tglx@linutronix.de> escreveu:
> 
> > Subject: Documentation: Add license-rules.rst to describe how to properly identify file licenses
> > From: Thomas Gleixner <tglx@linutronix.de>
> > Date: Fri, 10 Nov 2017 09:30:00 +0100
> > 
> > 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, Greg and Jonathan 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>
> 
> The document itself looks good, but I think it should also mention
> what would be the expected values for the MODULE_LICENSE() macro and
> how each license would be mapped into it.
> 
> Right now, include/linux/module.h says:
> 
> /*
>  * The following license idents are currently accepted as indicating free
>  * software modules
>  *
>  *	"GPL"				[GNU Public License v2 or later]

Hmm. AFAICT Greg translated GPL as GPL v1 or later. That seemed
wrong... and now it seems even more wrong.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-22 13:48               ` Greg Kroah-Hartman
@ 2017-11-25 19:04                 ` Pavel Machek
  2017-11-25 19:11                   ` Linus Torvalds
  0 siblings, 1 reply; 68+ messages in thread
From: Pavel Machek @ 2017-11-25 19:04 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Mauro Carvalho Chehab, Thomas Gleixner, Christoph Hellwig, LKML,
	Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

[-- Attachment #1: Type: text/plain, Size: 2031 bytes --]

On Wed 2017-11-22 14:48:04, Greg Kroah-Hartman wrote:
> On Wed, Nov 22, 2017 at 09:51:17AM -0200, Mauro Carvalho Chehab wrote:
> > Em Wed, 22 Nov 2017 12:12:04 +0100 (CET)
> > Thomas Gleixner <tglx@linutronix.de> escreveu:
> > 
> > > On Fri, 17 Nov 2017, Christoph Hellwig wrote:
> > > > On Fri, Nov 17, 2017 at 07:11:41PM +0100, Thomas Gleixner wrote:  
> > > > > Introcude a MODULE_LICENSE_SPDX macro which flags the module info storage
> > > > > as 'SPDXIFY' and let the postprocessor do:  
> > > > 
> > > > Shouldn;t this be a FILE_LICENSE_SPDX?  I'd also much prefer that over
> > > > the nasty C99 comments to start with.  And while I'm a bit behind on
> > > > email I still haven't managed to find a good rationale for those to
> > > > start with.
> > 
> > Yeah, I also find nasty to have things like this on each C file:
> > 
> > // SPDX-License-Identifier: GPL-2.0
> > /*
> >  * Copyright ...
> >  * ...
> >  */
> > 
> > Also, one may forget that headers use /**/ and end by doing the wrong
> > thing, as a common practice is to just cut-and-paste the same copyright
> > header on both C and H files at development time.
> 
> You break the build when you get it wrong, so you will notice it.  For
> most "internal" .h files, using // is just fine.
> 
> Yes, it's "ugly", but again, that's what Linus said he wanted it to look
> like, take it up with him :)

Linus said:

# So in general, the _hope_ is that we can just end up replacing
# existing boilerplate comments with that single line SPDX comment
# (using "//" in *.[ch] files, but obviously some other kinds of files
# end up having a different comment character, typically '#').

That does not sound like he was deciding between /* */ and //. And
actually this was in context of files with no existing license. You
made the ugly patches. Stop hiding behind Linus.

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-25 19:04                 ` Pavel Machek
@ 2017-11-25 19:11                   ` Linus Torvalds
  2017-11-25 19:17                     ` Pavel Machek
  0 siblings, 1 reply; 68+ messages in thread
From: Linus Torvalds @ 2017-11-25 19:11 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Greg Kroah-Hartman, Mauro Carvalho Chehab, Thomas Gleixner,
	Christoph Hellwig, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

On Sat, Nov 25, 2017 at 9:04 AM, Pavel Machek <pavel@ucw.cz> wrote:
>
> That does not sound like he was deciding between /* */ and //. And
> actually this was in context of files with no existing license. You
> made the ugly patches. Stop hiding behind Linus.

No, Linus happily stands up for //.

I really don't like one-liner /* */ comments. Let's face it, // was
the _one_ thing C++ got right, among all the horrible bad decisions.

I think we should just start moving to // in general, but only when
adding new ones (ie I don't want to see any automatic conversion
patches).

And it's _particularly_ true for the whole case where we mix
one-liners like the SPDX line with block comments. That's where /* */
really sucks.

           Linus

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-25 19:11                   ` Linus Torvalds
@ 2017-11-25 19:17                     ` Pavel Machek
  2017-11-25 19:30                       ` Linus Torvalds
  0 siblings, 1 reply; 68+ messages in thread
From: Pavel Machek @ 2017-11-25 19:17 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Greg Kroah-Hartman, Mauro Carvalho Chehab, Thomas Gleixner,
	Christoph Hellwig, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

[-- Attachment #1: Type: text/plain, Size: 1573 bytes --]

On Sat 2017-11-25 09:11:58, Linus Torvalds wrote:
> On Sat, Nov 25, 2017 at 9:04 AM, Pavel Machek <pavel@ucw.cz> wrote:
> >
> > That does not sound like he was deciding between /* */ and //. And
> > actually this was in context of files with no existing license. You
> > made the ugly patches. Stop hiding behind Linus.
> 
> No, Linus happily stands up for //.
> 
> I really don't like one-liner /* */ comments. Let's face it, // was
> the _one_ thing C++ got right, among all the horrible bad decisions.
> 
> I think we should just start moving to // in general, but only when
> adding new ones (ie I don't want to see any automatic conversion
> patches).
> 
> And it's _particularly_ true for the whole case where we mix
> one-liners like the SPDX line with block comments. That's where /* */
> really sucks.

I agree that we should not do

/* SPDX-License-Identifier:     GPL-2.0+ */
/*
 * Driver for SMSC USB3503 USB 2.0 hub controller driver
 *
 * Copyright (c) 2012-2013 Dongjin Kim (tobetter@gmail.com)
 */

There's logical place in the comment, and it should look like this:

/*
 * Driver for SMSC USB3503 USB 2.0 hub controller driver
 *
 * SPDX-License-Identifier:     GPL-2.0+
 * Copyright (c) 2012-2013 Dongjin Kim (tobetter@gmail.com)
 */

So I'm not saying "use one-line comments with SPDX identifier". I'm
saying place it where people expect it.

Best regards,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-25 19:17                     ` Pavel Machek
@ 2017-11-25 19:30                       ` Linus Torvalds
  2017-11-25 19:53                         ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 68+ messages in thread
From: Linus Torvalds @ 2017-11-25 19:30 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Greg Kroah-Hartman, Mauro Carvalho Chehab, Thomas Gleixner,
	Christoph Hellwig, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

On Sat, Nov 25, 2017 at 9:17 AM, Pavel Machek <pavel@ucw.cz> wrote:
>
> There's logical place in the comment, and it should look like this:
>
> /*
>  * Driver for SMSC USB3503 USB 2.0 hub controller driver
>  *
>  * SPDX-License-Identifier:     GPL-2.0+
>  * Copyright (c) 2012-2013 Dongjin Kim (tobetter@gmail.com)
>  */

And this is *exactly* what I don't want o see, because now the SPDX
placement is basically entirely random, and we'll get stupid conflicts
that are must nastier, and people will get it wrong and we'll end up
with two lines etc etc headaches.

Yes, the single line at the top _also_ causes conflicts, but they are
really easy to resolve exactly because there is absolutely no
ambiguity about what the resolution is, and there is no question that
there could be two different SPDX lines in the file.

The "//" format is ambiguous and simple, and works well for the first line.

And if we have the long-term plan to move over to // (which I really
hope for), it's also the cleanest of them all.

Btw, your exact line is also an example of another thing I *never*
want to see: indentation of the identifier. I'm not sure what was
going on there, and what you tried to line up, but it has already
happened once in include/dt-bindings/clock/boston-clock.h, and I
suspect it was *exactly* because it was in a /* block comment and
people tried to make it match that comment.

THAT IS WRONG.

We already had the damn "random whitespace fixes" crap with the
existing license mess. Let's learn from our mistakes, AND NOT DO IT
AGAIN!

So I want the format to be _fixed_. On the very first line that the
file format allows, with no whitespace garbage, and no "let's try to
make it pretty and match the rest".

Seriously.

You should be able to do

    git grep -h SPDX-License-Identifier: | sort | uniq -c

and not get fifty different versions just because of stupid "let's
match things around it" crap.

If you want to match something, switch to using '//' at he top
copyright comment, and remove the garbage boilerplate.

              Linus

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-25 19:30                       ` Linus Torvalds
@ 2017-11-25 19:53                         ` Mauro Carvalho Chehab
  2017-11-25 20:30                           ` Linus Torvalds
  0 siblings, 1 reply; 68+ messages in thread
From: Mauro Carvalho Chehab @ 2017-11-25 19:53 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Pavel Machek, Greg Kroah-Hartman, Thomas Gleixner,
	Christoph Hellwig, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

Em Sat, 25 Nov 2017 09:30:46 -1000
Linus Torvalds <torvalds@linux-foundation.org> escreveu:

> On Sat, Nov 25, 2017 at 9:17 AM, Pavel Machek <pavel@ucw.cz> wrote:
> >
> > There's logical place in the comment, and it should look like this:
> >
> > /*
> >  * Driver for SMSC USB3503 USB 2.0 hub controller driver
> >  *
> >  * SPDX-License-Identifier:     GPL-2.0+
> >  * Copyright (c) 2012-2013 Dongjin Kim (tobetter@gmail.com)
> >  */  
> 
> And this is *exactly* what I don't want o see, because now the SPDX
> placement is basically entirely random, and we'll get stupid conflicts
> that are must nastier, and people will get it wrong and we'll end up
> with two lines etc etc headaches.
> 
> Yes, the single line at the top _also_ causes conflicts, but they are
> really easy to resolve exactly because there is absolutely no
> ambiguity about what the resolution is, and there is no question that
> there could be two different SPDX lines in the file.
> 
> The "//" format is ambiguous and simple, and works well for the first line.
> 
> And if we have the long-term plan to move over to // (which I really
> hope for), it's also the cleanest of them all.

Let me see if I got it straight. At drivers/media/common/siano/smsir.c,
we have, currently:


	/****************************************************************

	 Siano Mobile Silicon, Inc.
	 MDTV receiver kernel modules.
	 Copyright (C) 2006-2009, Uri Shkolnik

	 Copyright (c) 2010 - Mauro Carvalho Chehab
		- Ported the driver to use rc-core
		- IR raw event decoding is now done at rc-core
		- Code almost re-written

	 This program is free software: you can redistribute it and/or modify
	 it under the terms of the GNU General Public License as published by
	 the Free Software Foundation, either version 2 of the License, or
	 (at your option) any later version.

	 This program is distributed in the hope that it will be useful,
	 but WITHOUT ANY WARRANTY; without even the implied warranty of
	 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	 GNU General Public License for more details.

	 You should have received a copy of the GNU General Public License
	 along with this program.  If not, see <http://www.gnu.org/licenses/>.

	 ****************************************************************/

With is completely out of standard. I'd like to add an SPDX tag there
and, while doing that, adjust the comments.

So, if I understand well, your preference would be to make it like:

	// SPDX-License-Identifier: GPL-2.0+
	//
	// Siano Mobile Silicon, Inc.
	// MDTV receiver kernel modules.
	// Copyright (C) 2006-2009, Uri Shkolnik
	//
	// Copyright (c) 2010 - Mauro Carvalho Chehab
	//	- Ported the driver to use rc-core
	//	- IR raw event decoding is now done at rc-core
	//	- Code almost re-written

Right?

Also, what about the header file (that, currently, has an identical header?

The way it was proposed (with /**/), it would be:

	/* SPDX-License-Identifier: GPL-2.0+ */
	/*
	 * Siano Mobile Silicon, Inc.
	 * MDTV receiver kernel modules.
	 * Copyright (C) 2006-2009, Uri Shkolnik
	 *
	 * Copyright (c) 2010 - Mauro Carvalho Chehab
	 *	- Ported the driver to use rc-core
	 *	- IR raw event decoding is now done at rc-core
	 *	- Code almost re-written
	 */

With, IMHO, looks really ugly.

Thanks,
Mauro

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-25 19:53                         ` Mauro Carvalho Chehab
@ 2017-11-25 20:30                           ` Linus Torvalds
  0 siblings, 0 replies; 68+ messages in thread
From: Linus Torvalds @ 2017-11-25 20:30 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Pavel Machek, Greg Kroah-Hartman, Thomas Gleixner,
	Christoph Hellwig, LKML, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

On Sat, Nov 25, 2017 at 9:53 AM, Mauro Carvalho Chehab
<mchehab@s-opensource.com> wrote:
>
> Let me see if I got it straight. At drivers/media/common/siano/smsir.c,
> we have, currently:

.. snip snip ..

> With is completely out of standard. I'd like to add an SPDX tag there
> and, while doing that, adjust the comments.
>
> So, if I understand well, your preference would be to make it like:
>
>         // SPDX-License-Identifier: GPL-2.0+
>         //
>         // Siano Mobile Silicon, Inc.
>         // MDTV receiver kernel modules.
>         // Copyright (C) 2006-2009, Uri Shkolnik
>         //
>         // Copyright (c) 2010 - Mauro Carvalho Chehab
>         //      - Ported the driver to use rc-core
>         //      - IR raw event decoding is now done at rc-core
>         //      - Code almost re-written
>
> Right?

Exactly.

I would also like to make clear that this is not a "let's do this in
bulk and automatically". But let's just say that if the "//" for the
SPDX line ends up encouraging people towards this kind of  format over
the long run, I think that would be lovely.

The /* */ format really  ends up encouraging some odd formatting. Your
example with the whole "box of stars" is not standard kernel format,
but it's surprisingly common. And you find various lopsided versions
of the multi-line thing, and even when you do *single* lines, the /*
*/ thing ends up being something where people try to align the closing
"*/" part.

Honestly now, how many people have seen things like

    struct somestruct {
        int member;    /* For Xyz         */
        int other;     /* For Abracadabra */
        ...

where people try to align that ending thing?

Or tell me you haven't seen block comments where  people do

    /*  This is a multi-line
     * thing that tries to be dense */

and other odd formats that are just ugly and unbalanced.

That's why I think "//" ends up being better in the end. And yes, I've
changed my mind over time. Had you asked me ten or fifteen years ago,
I probably would have said that "//" is not real C.

               Linus

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-25 18:51       ` Pavel Machek
@ 2017-11-25 23:41         ` Philippe Ombredanne
  0 siblings, 0 replies; 68+ messages in thread
From: Philippe Ombredanne @ 2017-11-25 23:41 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Mauro Carvalho Chehab, Thomas Gleixner, LKML, Linus Torvalds,
	Andrew Morton, Jonathan Corbet, Kate Stewart, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, xfs, Charlemagne Lasse, Carmen Bianca Bakker

Pavel:

On Sat, Nov 25, 2017 at 7:51 PM, Pavel Machek <pavel@ucw.cz> wrote:
> On Fri 2017-11-17 15:06:39, Mauro Carvalho Chehab wrote:
>> Hi Thomas,
>>
>> Em Fri, 17 Nov 2017 11:00:33 +0100 (CET)
>> Thomas Gleixner <tglx@linutronix.de> escreveu:
>>
>> > Subject: Documentation: Add license-rules.rst to describe how to properly identify file licenses
>> > From: Thomas Gleixner <tglx@linutronix.de>
>> > Date: Fri, 10 Nov 2017 09:30:00 +0100
>> >
>> > 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, Greg and Jonathan 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>
>>
>> The document itself looks good, but I think it should also mention
>> what would be the expected values for the MODULE_LICENSE() macro and
>> how each license would be mapped into it.
>>
>> Right now, include/linux/module.h says:
>>
>> /*
>>  * The following license idents are currently accepted as indicating free
>>  * software modules
>>  *
>>  *    "GPL"                           [GNU Public License v2 or later]
>
> Hmm. AFAICT Greg translated GPL as GPL v1 or later. That seemed
> wrong... and now it seems even more wrong.

While this may come out as weird or wrong, this is neither wrong nor
"more wrong" when you dive in the details:

1. the meaning of a bare "GPL" in MODULE_LICENSE is well defined in
module.h as "GPL 2.0 or later" so there is no ambiguity there. It
would have been best to align this with SPDX, but this would break
instantly so many out of tree kernel modules and module loading tools
that expect these hard coded values and conventions that it is not
worth changing it IMHO.

2. the meaning of a bare "GPL" as a the only license notice is also
well defined in the GPL 2.0 text itself  in section 9 [1] and means
any version of the GPL that therefore can be made clear as GPL-1.0 or
later, i.e. GPL-1.+:
" If the Program does not specify a version number of this License,
you may choose any version ever published by the Free Software
Foundation. "

Therefore I do not think Greg did any translation and got anything
wrong but used exactly the convention in 2.

For instance when the only license notice in a file was a terse and
unclear: "Copyright (c) Jane Doe, GPL" or "Copyright (c) John Doe,
GPL'ed" then the resulting SPDX license id applied was  "GPL-1.0+"

I personally think this is unfortunate that we have warts like this:
it could have been the intent of author, or an oversight, or the
author may have meant 2.0.... we can only guess! What is clear is that
in these cases and short of any other indication, "GPL-1.0+" is the
precise meaning that "GPL" or "GPL'ed" has in a notice outside of the
MODULE_LICENSE macro.

Note that no MODULE_LICENSE macro was harmed in the process.... though
having SPDX ids makes quite visible some discrepancies as you noticed
such as when:
- a MODULE_LICENSE is "GPL"  and the top level license is "GPL 2.0
only": here the MODULE_LICENSE would need to be fixed to "GPL v2"
- or MODULE_LICENSE is "GPL v2" and the top level license is "GPL 2.0
or later": here the MODULE_LICENSE would need to be fixed to "GPL"

These will need to be fixed over time and this is made easier with the
clarity brought by the SPDX id. My take there is that the best
approach is likely:

1. the top level license notice should take precedence over the
MODULE_LICENSE and MODULE_LICENSE should be updated accordingly
2. you might want an ack or a review from the original author in these
weird cases of mismatch

[1] https://www.gnu.org/licenses/old-licenses/gpl-2.0.html#section9
-- 
Cordially
Philippe Ombredanne

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
                       ` (3 preceding siblings ...)
  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
  5 siblings, 1 reply; 68+ messages in thread
From: Joe Perches @ 2017-12-14 16:25 UTC (permalink / raw)
  To: Thomas Gleixner, LKML
  Cc: Linus Torvalds, Andrew Morton, Jonathan Corbet, Kate Stewart,
	Philippe Ombredanne, Greg Kroah-Hartman, Christoph Hellwig,
	Russell King, Rob Herring, Jonas Oberg, linux-xfs,
	Charlemagne Lasse, Carmen Bianca Bakker

On Fri, 2017-11-17 at 11:00 +0100, Thomas Gleixner wrote:
> spdx

Is there something preventing this from being applied
to some tree included in -next?

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [patch V4 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-12-14 16:25     ` Joe Perches
@ 2017-12-14 16:29       ` Thomas Gleixner
  0 siblings, 0 replies; 68+ messages in thread
From: Thomas Gleixner @ 2017-12-14 16:29 UTC (permalink / raw)
  To: Joe Perches
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

On Thu, 14 Dec 2017, Joe Perches wrote:

> On Fri, 2017-11-17 at 11:00 +0100, Thomas Gleixner wrote:
> > spdx
> 
> Is there something preventing this from being applied
> to some tree included in -next?

Nothing than me being busy and not coming around to fix the last review
comments.

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [V4, 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2017-11-17 10:00   ` [patch V4 " Thomas Gleixner
                       ` (4 preceding siblings ...)
  2017-12-14 16:25     ` Joe Perches
@ 2018-01-05 13:05     ` Alexandre Belloni
  2018-01-05 18:55       ` Russell King - ARM Linux
  2018-01-05 22:48       ` Frank Rowand
  5 siblings, 2 replies; 68+ messages in thread
From: Alexandre Belloni @ 2018-01-05 13:05 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

Hi,

I'm definitively late to the party but...

On 17/11/2017 at 11:00:33 +0100, Thomas Gleixner wrote:
> +2. Style:
> +
> +   The SPDX license identifier is added in form of a comment.  The comment
> +   style depends on the file type::
> +
> +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
> +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
> +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
> +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
> +      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
> +      .dts{i}:	  // SPDX-License-Identifier: <SPDX License Expression>

dtc doesn't handle // comments. This works in the kernel tree because
dts files are preprocessed by CPP. But this doesn't work when using dtc
directly (most likely when compiling DT overlays). So, the choice is
between making dtc handle // comments or changing the documentation.

I don't have an opinion and Rob doesn't seem to care but I think we need
to do something now instead of letting each maintainer have to handle
this issue.

> +   If a specific tool cannot handle the standard comment style, then the
> +   appropriate comment mechanism which the tool accepts shall be used. This
> +   is the reason for having the "/\* \*/" style comment in C header
> +   files. There was build breakage observed with generated .lds files where
> +   'ld' failed to parse the C++ comment. This has been fixed by now, but
> +   there are still older assembler tools which cannot handle C++ style
> +   comments.
> +
-- 
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [V4, 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2018-01-05 13:05     ` [V4, " Alexandre Belloni
@ 2018-01-05 18:55       ` Russell King - ARM Linux
  2018-01-05 22:48       ` Frank Rowand
  1 sibling, 0 replies; 68+ messages in thread
From: Russell King - ARM Linux @ 2018-01-05 18:55 UTC (permalink / raw)
  To: Alexandre Belloni
  Cc: Thomas Gleixner, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Christoph Hellwig, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

On Fri, Jan 05, 2018 at 02:05:26PM +0100, Alexandre Belloni wrote:
> Hi,
> 
> I'm definitively late to the party but...
> 
> On 17/11/2017 at 11:00:33 +0100, Thomas Gleixner wrote:
> > +2. Style:
> > +
> > +   The SPDX license identifier is added in form of a comment.  The comment
> > +   style depends on the file type::
> > +
> > +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
> > +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
> > +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
> > +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
> > +      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
> > +      .dts{i}:	  // SPDX-License-Identifier: <SPDX License Expression>
> 
> dtc doesn't handle // comments. This works in the kernel tree because
> dts files are preprocessed by CPP. But this doesn't work when using dtc
> directly (most likely when compiling DT overlays). So, the choice is
> between making dtc handle // comments or changing the documentation.

Does all the CPP macros that we use for things like GPIOs work when you
avoid CPP?

What I'm saying is that preprocessing the DTS in the kernel tree with
CPP appears to be a necessity, and doing so will deal with the C++
comments.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [V4, 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  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
  1 sibling, 1 reply; 68+ messages in thread
From: Frank Rowand @ 2018-01-05 22:48 UTC (permalink / raw)
  To: Alexandre Belloni, Thomas Gleixner
  Cc: LKML, Linus Torvalds, Andrew Morton, Jonathan Corbet,
	Kate Stewart, Philippe Ombredanne, Greg Kroah-Hartman,
	Christoph Hellwig, Russell King, Rob Herring, Jonas Oberg,
	Joe Perches, linux-xfs, Charlemagne Lasse, Carmen Bianca Bakker

On 01/05/18 05:05, Alexandre Belloni wrote:
> Hi,
> 
> I'm definitively late to the party but...
> 
> On 17/11/2017 at 11:00:33 +0100, Thomas Gleixner wrote:
>> +2. Style:
>> +
>> +   The SPDX license identifier is added in form of a comment.  The comment
>> +   style depends on the file type::
>> +
>> +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
>> +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
>> +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
>> +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
>> +      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
>> +      .dts{i}:	  // SPDX-License-Identifier: <SPDX License Expression>
> 
> dtc doesn't handle // comments. This works in the kernel tree because

dtc does handle // comments.


$ cat test_comment.dts 
/dts-v1/;

// this is comment 1

/* this is comment 2 */

/ {
	#address-cells = < 1 >;
	#size-cells = < 1 >;

	// this is comment 3

	tree_1: soc@0 {
		reg = <0x0 0x0>;
	};

};


Using the dtc version in linux v4.14:

$ dtc -v
Version: DTC 1.4.4-g756ffc4f

$ dtc -O dts test_comment.dts
/dts-v1/;

/ {
  	#address-cells = <0x1>;
	#size-cells = <0x1>;

	tree_1: soc@0 {
		reg = <0x0 0x0>;
	};
};


Using the latest dtc version in the git_dtc repo:

$ dtc -v
Version: DTC 1.4.6-ge5438801

$ dtc -O dts test_comment.dts 
/dts-v1/;

/ {
	#address-cells = <0x1>;
	#size-cells = <0x1>;

	tree_1: soc@0 {
		reg = <0x0 0x0>;
	};
};

-Frank


> dts files are preprocessed by CPP. But this doesn't work when using dtc
> directly (most likely when compiling DT overlays). So, the choice is
> between making dtc handle // comments or changing the documentation.
> 
> I don't have an opinion and Rob doesn't seem to care but I think we need
> to do something now instead of letting each maintainer have to handle
> this issue.
> 
>> +   If a specific tool cannot handle the standard comment style, then the
>> +   appropriate comment mechanism which the tool accepts shall be used. This
>> +   is the reason for having the "/\* \*/" style comment in C header
>> +   files. There was build breakage observed with generated .lds files where
>> +   'ld' failed to parse the C++ comment. This has been fixed by now, but
>> +   there are still older assembler tools which cannot handle C++ style
>> +   comments.
>> +

^ permalink raw reply	[flat|nested] 68+ messages in thread

* Re: [V4, 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses
  2018-01-05 22:48       ` Frank Rowand
@ 2018-01-05 23:05         ` Alexandre Belloni
  0 siblings, 0 replies; 68+ messages in thread
From: Alexandre Belloni @ 2018-01-05 23:05 UTC (permalink / raw)
  To: Frank Rowand
  Cc: Thomas Gleixner, LKML, Linus Torvalds, Andrew Morton,
	Jonathan Corbet, Kate Stewart, Philippe Ombredanne,
	Greg Kroah-Hartman, Christoph Hellwig, Russell King, Rob Herring,
	Jonas Oberg, Joe Perches, linux-xfs, Charlemagne Lasse,
	Carmen Bianca Bakker

On 05/01/2018 at 14:48:04 -0800, Frank Rowand wrote:
> On 01/05/18 05:05, Alexandre Belloni wrote:
> > Hi,
> > 
> > I'm definitively late to the party but...
> > 
> > On 17/11/2017 at 11:00:33 +0100, Thomas Gleixner wrote:
> >> +2. Style:
> >> +
> >> +   The SPDX license identifier is added in form of a comment.  The comment
> >> +   style depends on the file type::
> >> +
> >> +      C source:   // SPDX-License-Identifier: <SPDX License Expression>
> >> +      C header:   /* SPDX-License-Identifier: <SPDX License Expression> */
> >> +      ASM:        /* SPDX-License-Identifier: <SPDX License Expression> */
> >> +      scripts:    # SPDX-License-Identifier: <SPDX License Expression>
> >> +      .rst:	  .. SPDX-License-Identifier: <SPDX License Expression>
> >> +      .dts{i}:	  // SPDX-License-Identifier: <SPDX License Expression>
> > 
> > dtc doesn't handle // comments. This works in the kernel tree because
> 
> dtc does handle // comments.
> 

Hum, correct. I got a report saying it didn't and when I only checked
the COMMENT line of dtc-lexer.l. For whatever reason, I missed the
following line handling c++ comments.

I'll get back to the original report, trying to find why it was not
compiling.

-- 
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2018-01-05 23:05 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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   ` [patch V3 " Jonathan Corbet
2017-11-17  9:48     ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).