• Luis Chamberlain's avatar
    LICENSES: Add the copyleft-next-0.3.1 license · ad9f64cd
    Luis Chamberlain authored
    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 9308f2f9 ("test_sysctl: add
    dedicated proc sysctl test driver") merged in July 2017. Shortly after
    that I also added test_kmod through commit d9c6a72d ("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@kernel.org/
    [2] https://lore.kernel.org/lkml/CA+55aFyhxcvD+q7tp+-yrSFDKfR0mOHgyEAe=f_94aKLsOu0Og@mail.gmail.com/
    [3] https://lore.kernel.org/lkml/20170516232702.GL17314@wotan.suse.de/
    [4] https://lkml.kernel.org/r/1495234558.7848.122.camel@linux.intel.com
    [5] https://lists.fedorahosted.org/archives/list/copyleft-next@lists.fedorahosted.org/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@suse.com>
    Cc: Kuno Woudt <kuno@frob.nl>
    Cc: Richard Fontana <fontana@sharpeleven.org>
    Cc: copyleft-next@lists.fedorahosted.org
    Cc: Ciaran Farrell <Ciaran.Farrell@suse.com>
    Cc: Christopher De Nicolo <Christopher.DeNicolo@suse.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Thorsten Leemhuis <linux@leemhuis.info>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
    Reviewed-by: default avatarTim Bird <tim.bird@sony.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ad9f64cd
copyleft-next-0.3.1 11.2 KB