> -----Original Message----- > From: Luis Chamberlain <mcgrof@xxxxxxxxxxxxx> On Behalf Of Luis Chamberlain > Subject: [PATCH v11 1/2] LICENSES: Add the copyleft-next-0.3.1 license > > Add the full text of the copyleft-next-0.3.1 license to the kernel > tree as well as the required tags for reference and tooling. > The license text was copied directly from the copyleft-next project's > git tree [0]. > > Discussion of using copyleft-next-0.3.1 on Linux started since June, > 2016 [1]. In the end Linus' preference was to have drivers use > MODULE_LICENSE("GPL") to make it clear that the GPL applies when it > comes to Linux [2]. Additionally, even though copyleft-next-0.3.1 has > been found to be to be GPLv2 compatible by three attorneys at SUSE and > Redhat [3], to err on the side of caution we simply recommend to > always use the "OR" language for this license [4]. > > Even though it has been a goal of the project to be GPL-v2 compatible > to be certain in 2016 I asked for a clarification about what makes > copyleft-next GPLv2 compatible and also asked for a summary of > benefits. This prompted some small minor changes to make compatibility > even further clear and as of copyleft 0.3.1 compatibility should > be crystal clear [5]. > > The summary of why copyleft-next 0.3.1 is compatible with GPLv2 > is explained as follows: > > Like GPLv2, copyleft-next requires distribution of derivative works > ("Derived Works" in copyleft-next 0.3.x) to be under the same license. > Ordinarily this would make the two licenses incompatible. However, > copyleft-next 0.3.1 says: "If the Derived Work includes material > licensed under the GPL, You may instead license the Derived Work under > the GPL." "GPL" is defined to include GPLv2. > > In practice this means copyleft-next code in Linux may be licensed > under the GPL2, however there are additional obvious gains for > bringing contributions from Linux outbound where copyleft-next is > preferred. A summary of benefits why projects outside of Linux might > prefer to use copyleft-next >= 0.3.1 over GPLv2: > > o It is much shorter and simpler > o It has an explicit patent license grant, unlike GPLv2 > o Its notice preservation conditions are clearer > o More free software/open source licenses are compatible > with it (via section 4) > o The source code requirement triggered by binary distribution > is much simpler in a procedural sense > o Recipients potentially have a contract claim against distributors > who are noncompliant with the source code requirement > o There is a built-in inbound=outbound policy for upstream > contributions (cf. Apache License 2.0 section 5) > o There are disincentives to engage in the controversial practice > of copyleft/ proprietary dual-licensing > o In 15 years copyleft expires, which can be advantageous > for legacy code > o There are explicit disincentives to bringing patent infringement > claims accusing the licensed work of infringement (see 10b) > o There is a cure period for licensees who are not compliant > with the license (there is no cure opportunity in GPLv2) > o copyleft-next has a 'built-in or-later' provision > > The first driver submission to Linux under this dual strategy was > lib/test_sysctl.c through commit 9308f2f9e7f05 ("test_sysctl: add > dedicated proc sysctl test driver") merged in July 2017. Shortly after > that I also added test_kmod through commit d9c6a72d6fa29 ("kmod: add > test driver to stress test the module loader") in the same month. These > two drivers went in just a few months before the SPDX license practice > kicked in. In 2018 Kuno Woudt went through the process to get SPDX > identifiers for copyleft-next [6] [7]. Although there are SPDX tags > for copyleft-next-0.3.0, we only document use in Linux starting from > copyleft-next-0.3.1 which makes GPLv2 compatibility crystal clear. > > This patch will let us update the two Linux selftest drivers in > subsequent patches with their respective SPDX license identifiers and > let us remove repetitive license boiler plate. > > [0] https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.1 > [1] https://lore.kernel.org/lkml/1465929311-13509-1-git-send-email-mcgrof@xxxxxxxxxx/ > [2] https://lore.kernel.org/lkml/CA+55aFyhxcvD+q7tp+-yrSFDKfR0mOHgyEAe=f_94aKLsOu0Og@xxxxxxxxxxxxxx/ > [3] https://lore.kernel.org/lkml/20170516232702.GL17314@xxxxxxxxxxxxx/ > [4] https://lkml.kernel.org/r/1495234558.7848.122.camel@xxxxxxxxxxxxxxx > [5] https://lists.fedorahosted.org/archives/list/copyleft- > next@xxxxxxxxxxxxxxxxxxxxxx/thread/JTGV56DDADWGKU7ZKTZA4DLXTGTLNJ57/#SQMDIKBRAVDOCT4UVNOOCRGBN2UJIKHZ > [6] https://spdx.org/licenses/copyleft-next-0.3.0.html > [7] https://spdx.org/licenses/copyleft-next-0.3.1.html > > Cc: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> > Cc: Kuno Woudt <kuno@xxxxxxx> > Cc: Richard Fontana <fontana@xxxxxxxxxxxxxxx> > Cc: copyleft-next@xxxxxxxxxxxxxxxxxxxxxx > Cc: Ciaran Farrell <Ciaran.Farrell@xxxxxxxx> > Cc: Christopher De Nicolo <Christopher.DeNicolo@xxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Jonathan Corbet <corbet@xxxxxxx> > Cc: Thorsten Leemhuis <linux@xxxxxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> > Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx> > --- > LICENSES/dual/copyleft-next-0.3.1 | 236 ++++++++++++++++++++++++++++++ I'm OK with this license going into the LICENSES/dual directory, and being used as an "OR" along with GPL-2.0. > 1 file changed, 236 insertions(+) > create mode 100644 LICENSES/dual/copyleft-next-0.3.1 > > diff --git a/LICENSES/dual/copyleft-next-0.3.1 b/LICENSES/dual/copyleft-next-0.3.1 > new file mode 100644 > index 000000000000..c81acf710657 > --- /dev/null > +++ b/LICENSES/dual/copyleft-next-0.3.1 > @@ -0,0 +1,236 @@ > +Valid-License-Identifier: copyleft-next-0.3.1 > +SPDX-URL: https://spdx.org/licenses/copyleft-next-0.3.1 > +Usage-Guide: > + copyleft-next-0.3.1 is explicitly compatible with GPLv2 (or later) and > + can therefore be used for kernel code. Though the best and recommended > + practice is to express this in the SPDX license identifier by > + licensing the code under both licenses expressed by the OR operator. > + To use the copyleft-next-0.3.1 license put the following SPDX tag/value > + pair into a comment according to the placement guidelines in the > + licensing rules documentation: > + SPDX-License-Identifier: GPL-2.0-only OR copyleft-next 0.3.1 > + SPDX-License-Identifier: GPL-2.0-or-later OR copyleft-next-0.3.1 Sounds good. It's good to cover both cases. > +License-Text: > + > +======================================================================= > + > + copyleft-next 0.3.1 ("this License") > + Release date: 2016-04-29 > + > +1. License Grants; No Trademark License > + > + Subject to the terms of this License, I grant You: > + > + a) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable > + copyright license, to reproduce, Distribute, prepare derivative works > + of, publicly perform and publicly display My Work. > + > + b) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable > + patent license under Licensed Patents to make, have made, use, sell, > + offer for sale, and import Covered Works. > + > + This License does not grant any rights in My name, trademarks, service > + marks, or logos. > + > +2. Distribution: General Conditions > + > + You may Distribute Covered Works, provided that You (i) inform > + recipients how they can obtain a copy of this License; (ii) satisfy the > + applicable conditions of sections 3 through 6; and (iii) preserve all > + Legal Notices contained in My Work (to the extent they remain > + pertinent). "Legal Notices" means copyright notices, license notices, > + license texts, and author attributions, but does not include logos, > + other graphical images, trademarks or trademark legends. > + > +3. Conditions for Distributing Derived Works; Outbound GPL Compatibility > + > + If You Distribute a Derived Work, You must license the entire Derived > + Work as a whole under this License, with prominent notice of such > + licensing. This condition may not be avoided through such means as > + separate Distribution of portions of the Derived Work. > + > + If the Derived Work includes material licensed under the GPL, You may > + instead license the Derived Work under the GPL. > + > +4. Condition Against Further Restrictions; Inbound License Compatibility > + > + When Distributing a Covered Work, You may not impose further > + restrictions on the exercise of rights in the Covered Work granted under > + this License. This condition is not excused merely because such > + restrictions result from Your compliance with conditions or obligations > + extrinsic to this License (such as a court order or an agreement with a > + third party). > + > + However, You may Distribute a Covered Work incorporating material > + governed by a license that is both OSI-Approved and FSF-Free as of the > + release date of this License, provided that compliance with such > + other license would not conflict with any conditions stated in other > + sections of this License. > + > +5. Conditions for Distributing Object Code > + > + You may Distribute an Object Code form of a Covered Work, provided that > + you accompany the Object Code with a URL through which the Corresponding > + Source is made available, at no charge, by some standard or customary > + means of providing network access to source code. > + > + If you Distribute the Object Code in a physical product or tangible > + storage medium ("Product"), the Corresponding Source must be available > + through such URL for two years from the date of Your most recent > + Distribution of the Object Code in the Product. However, if the Product > + itself contains or is accompanied by the Corresponding Source (made > + available in a customarily accessible manner), You need not also comply > + with the first paragraph of this section. > + > + Each direct and indirect recipient of the Covered Work from You is an > + intended third-party beneficiary of this License solely as to this > + section 5, with the right to enforce its terms. > + > +6. Symmetrical Licensing Condition for Upstream Contributions > + > + If You Distribute a work to Me specifically for inclusion in or > + modification of a Covered Work (a "Patch"), and no explicit licensing > + terms apply to the Patch, You license the Patch under this License, to > + the extent of Your copyright in the Patch. This condition does not > + negate the other conditions of this License, if applicable to the Patch. > + > +7. Nullification of Copyleft/Proprietary Dual Licensing > + > + If I offer to license, for a fee, a Covered Work under terms other than > + a license that is OSI-Approved or FSF-Free as of the release date of this > + License or a numbered version of copyleft-next released by the > + Copyleft-Next Project, then the license I grant You under section 1 is no > + longer subject to the conditions in sections 3 through 5. > + > +8. Copyleft Sunset > + > + The conditions in sections 3 through 5 no longer apply once fifteen > + years have elapsed from the date of My first Distribution of My Work > + under this License. > + > +9. Pass-Through > + > + When You Distribute a Covered Work, the recipient automatically receives > + a license to My Work from Me, subject to the terms of this License. > + > +10. Termination > + > + Your license grants under section 1 are automatically terminated if You > + > + a) fail to comply with the conditions of this License, unless You cure > + such noncompliance within thirty days after becoming aware of it, or > + > + b) initiate a patent infringement litigation claim (excluding > + declaratory judgment actions, counterclaims, and cross-claims) > + alleging that any part of My Work directly or indirectly infringes > + any patent. > + > + Termination of Your license grants extends to all copies of Covered > + Works You subsequently obtain. Termination does not terminate the > + rights of those who have received copies or rights from You subject to > + this License. > + > + To the extent permission to make copies of a Covered Work is necessary > + merely for running it, such permission is not terminable. > + > +11. Later License Versions > + > + The Copyleft-Next Project may release new versions of copyleft-next, > + designated by a distinguishing version number ("Later Versions"). > + Unless I explicitly remove the option of Distributing Covered Works > + under Later Versions, You may Distribute Covered Works under any Later > + Version. > + > +** 12. No Warranty ** > +** ** > +** My Work is provided "as-is", without warranty. You bear the risk ** > +** of using it. To the extent permitted by applicable law, each ** > +** Distributor of My Work excludes the implied warranties of title, ** > +** merchantability, fitness for a particular purpose and ** > +** non-infringement. ** > + > +** 13. Limitation of Liability ** > +** ** > +** To the extent permitted by applicable law, in no event will any ** > +** Distributor of My Work be liable to You for any damages ** > +** whatsoever, whether direct, indirect, special, incidental, or ** > +** consequential damages, whether arising under contract, tort ** > +** (including negligence), or otherwise, even where the Distributor ** > +** knew or should have known about the possibility of such damages. ** > + > +14. Severability > + > + The invalidity or unenforceability of any provision of this License > + does not affect the validity or enforceability of the remainder of > + this License. Such provision is to be reformed to the minimum extent > + necessary to make it valid and enforceable. > + > +15. Definitions > + > + "Copyleft-Next Project" means the project that maintains the source > + code repository at <https://github.com/copyleft-next/copyleft-next.git/> > + as of the release date of this License. > + > + "Corresponding Source" of a Covered Work in Object Code form means (i) > + the Source Code form of the Covered Work; (ii) all scripts, > + instructions and similar information that are reasonably necessary for > + a skilled developer to generate such Object Code from the Source Code > + provided under (i); and (iii) a list clearly identifying all Separate > + Works (other than those provided in compliance with (ii)) that were > + specifically used in building and (if applicable) installing the > + Covered Work (for example, a specified proprietary compiler including > + its version number). Corresponding Source must be machine-readable. > + > + "Covered Work" means My Work or a Derived Work. > + > + "Derived Work" means a work of authorship that copies from, modifies, > + adapts, is based on, is a derivative work of, transforms, translates or > + contains all or part of My Work, such that copyright permission is > + required. The following are not Derived Works: (i) Mere Aggregation; > + (ii) a mere reproduction of My Work; and (iii) if My Work fails to > + explicitly state an expectation otherwise, a work that merely makes > + reference to My Work. > + > + "Distribute" means to distribute, transfer or make a copy available to > + someone else, such that copyright permission is required. > + > + "Distributor" means Me and anyone else who Distributes a Covered Work. > + > + "FSF-Free" means classified as 'free' by the Free Software Foundation. > + > + "GPL" means a version of the GNU General Public License or the GNU > + Affero General Public License. > + > + "I"/"Me"/"My" refers to the individual or legal entity that places My > + Work under this License. "You"/"Your" refers to the individual or legal > + entity exercising rights in My Work under this License. A legal entity > + includes each entity that controls, is controlled by, or is under > + common control with such legal entity. "Control" means (a) the power to > + direct the actions of such legal entity, whether by contract or > + otherwise, or (b) ownership of more than fifty percent of the > + outstanding shares or beneficial ownership of such legal entity. > + > + "Licensed Patents" means all patent claims licensable royalty-free by > + Me, now or in the future, that are necessarily infringed by making, > + using, or selling My Work, and excludes claims that would be infringed > + only as a consequence of further modification of My Work. > + > + "Mere Aggregation" means an aggregation of a Covered Work with a > + Separate Work. > + > + "My Work" means the particular work of authorship I license to You > + under this License. > + > + "Object Code" means any form of a work that is not Source Code. > + > + "OSI-Approved" means approved as 'Open Source' by the Open Source > + Initiative. > + > + "Separate Work" means a work that is separate from and independent of a > + particular Covered Work and is not by its nature an extension or > + enhancement of the Covered Work, and/or a runtime library, standard > + library or similar component that is used to generate an Object Code > + form of a Covered Work. > + > + "Source Code" means the preferred form of a work for making > + modifications to it. > -- > 2.35.1 I reviewed the license placement and usage guide, but not the wording (content) of the license text file itself. FWIW, Reviewed-by: Tim Bird <tim.bird@xxxxxxxx> -- Tim