]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
relicense LGPL-2.1 code as LGPL-2.1 or LGPL-3.0 22446/head
authorSage Weil <sage@redhat.com>
Wed, 6 Jun 2018 21:32:53 +0000 (16:32 -0500)
committerSage Weil <sage@redhat.com>
Mon, 22 Apr 2019 16:22:55 +0000 (11:22 -0500)
The primary motivation to relicense is a desire to integrate with projects
that are licensed under the Apache License version 2.0.  Although opinions
vary, there are some who argue the the LGPL-2.1 and Apache-2.0 licenses
are not fully compatible.  We would like to avoid the ambiguity and
potential for controversy.

Projects we would like to consume that are Apache-2.0 licensed include
Seastar, OpenSSL (which is in the process of relicensing to Apache-2.0),
and Swagger (swagger.io).  Note that some of these are dynamically linked
or consumed via a high-level language and may or may not require a change
to LGPL-3.0, but providing the option for LGPL-3.0 certainly avoids any
uncertainty.

A few other source files are already incorporated into Ceph that claim an
Apache-2.0 license:

    src/common/deleter.h
    src/common/sstring.h
    src/include/cpp-btree

The Ceph developers would further like to provide a license option that is
more modern than the current LGPL-2.1.  LGPL-3.0 includes updated,
clarified language around several issues and is widely considered
more modern, superior license.

Signed-off-by: Sage Weil <sage@redhat.com>
20 files changed:
COPYING
COPYING-LGPL3 [new file with mode: 0644]
CodingStyle
README.md
alpine/APKBUILD.in
ceph.spec.in
debian/copyright
doc/dev/developer_guide/index.rst
src/crush/crush.h
src/crush/mapper.h
src/include/ceph_fs.h
src/ocf/rbd.in
src/powerdns/pdns-backend-rgw.py
src/pybind/ceph_argparse.py
src/pybind/ceph_volume_client.py
src/test/common/histogram.cc
src/test/common/test_bit_vector.cc
src/test/common/test_bloom_filter.cc
src/test/common/test_iso_8601.cc
src/test/crush/crush.cc

diff --git a/COPYING b/COPYING
index 9f7976a278f4caab900c0a62428888e2ef6cc459..33645acdb975f75d060b09fb62c791201131dc46 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -5,7 +5,7 @@ Source: http://ceph.com/
 
 Files: *
 Copyright: (c) 2004-2010 by Sage Weil <sage@newdream.net>
-License: LGPL-2.1 (see COPYING-LGPL2.1)
+License: LGPL-2.1 or LGPL-3 (see COPYING-LGPL2.1 and COPYING-LGPL3)
 
 Files: cmake/modules/FindLTTngUST.cmake
 Copyright:
@@ -158,7 +158,7 @@ License:
 Packaging:
     Copyright (C) 2004-2009 by Sage Weil <sage@newdream.net>
     Copyright (C) 2010 Canonical, Ltd.
-    Licensed under LGPL-2.1
+    Licensed under LGPL-2.1 or LGPL-3.0
 
 Files: src/test/perf_local.cc
 Copyright:
diff --git a/COPYING-LGPL3 b/COPYING-LGPL3
new file mode 100644 (file)
index 0000000..0a04128
--- /dev/null
@@ -0,0 +1,165 @@
+                   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  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 that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU 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 as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
index b5e42fcf81d080b56375f740ba283536998d1304..d31189557a01287616c5e7b2c20eb0c623ffd219 100644 (file)
@@ -71,7 +71,7 @@ by section.
 * Comments > File Comments:
 
    Don't sweat it, unless the license varies from that of the project
-   (LGPL2.1) or the code origin isn't reflected by the git history.
+   (LGPL2.1 or LGPL3.0) or the code origin isn't reflected by the git history.
 
 * Formatting > Tabs:
   Indent width is two spaces.  When runs of 8 spaces can be compressed
index 49b6a6957b96be9424b2479e9c7b19c4e9b44f8c..2db7458450ea4ed6e5e404d62cd8047c8778f1cd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ Please see http://ceph.com/ for current info.
 
 ## Contributing Code
 
-Most of Ceph is licensed under the LGPL version 2.1.  Some
+Most of Ceph is dual licensed under the LGPL version 2.1 or 3.0.  Some
 miscellaneous code is under BSD-style license or is public domain.
 The documentation is licensed under Creative Commons
 Attribution Share Alike 3.0 (CC-BY-SA-3.0).  There are a handful of headers
index 96037883f557d13319649a25d98989825643cad4..12f0cb16581c7b76ecb35eefbf13328bd91309f3 100644 (file)
@@ -8,7 +8,7 @@ pkgusers="ceph"
 pkggroups="ceph"
 url="http://ceph.com"
 arch="x86_64"
-license="LGPL-2.1 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and \
+license="LGPL-2.1 and LGPL-3.0 and CC-BY-SA-1.0 and GPL-2.0 and BSL-1.0 and \
 GPL-2.0-with-autoconf-exception and BSD-3-Clause and MIT"
 depends="ceph-osd ceph-mds ceph-mgr    ceph-mon"
 # grep --quiet option required
index 02b6ff41d5a86262136d692344c5d11c2789b9f1..92b5b6f3f1f146d7dca35d452e1a50ba445b3361 100644 (file)
@@ -114,7 +114,7 @@ Epoch:              2
 %global _epoch_prefix %{?epoch:%{epoch}:}
 
 Summary:       User space components of the Ceph file system
-License:       LGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
+License:       LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIT
 %if 0%{?suse_version}
 Group:         System/Filesystems
 %endif
index 9a5677d497783747fdabdf3f6a67b0457a9c69c5..8375e4c4b84f51b43546de2c9abc492df88d5ba4 100644 (file)
@@ -5,7 +5,7 @@ Source: http://ceph.com/
 
 Files: *
 Copyright: (c) 2004-2010 by Sage Weil <sage@newdream.net>
-License: LGPL-2.1 (see COPYING-LGPL2.1)
+License: LGPL-2.1 or LGPL-3 (see COPYING-LGPL2.1 and COPYING-LGPL3)
 
 Files: cmake/modules/FindLTTngUST.cmake
 Copyright:
@@ -158,7 +158,7 @@ License:
 Packaging:
     Copyright (C) 2004-2009 by Sage Weil <sage@newdream.net>
     Copyright (C) 2010 Canonical, Ltd.
-    Licensed under LGPL-2.1
+    Licensed under LGPL-2.1 or LGPL-3.0
 
 Files: src/test/perf_local.cc
 Copyright:
index bc4e887a156872b090ecfcd66055ac952ace12b1..ee51ad3fc6b5e55b1a58bf5d07f0bc98c3c62fe7 100644 (file)
@@ -78,9 +78,9 @@ Licensing
 
 Ceph is free software.
 
-Unless stated otherwise, the Ceph source code is distributed under the terms of
-the LGPL2.1. For full details, see the file `COPYING`_ in the top-level
-directory of the source-code tree.
+Unless stated otherwise, the Ceph source code is distributed under the
+terms of the LGPL2.1 or LGPL3.0. For full details, see the file
+`COPYING`_ in the top-level directory of the source-code tree.
 
 .. _`COPYING`:
   https://github.com/ceph/ceph/blob/master/COPYING
index dd08aa7bf5cdfbfe70cb6277a3d443c0e3f2239e..83ef88a6b76db97f0c9c4d6a8e0ad63c390fa8f2 100644 (file)
@@ -17,7 +17,7 @@
  *
  *     http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf
  *
- * LGPL2.1
+ * LGPL-2.1 or LGPL-3.0
  */
 
 
index e76be7672124c7b065ff603f98c33f4adad6a964..2332d4b511f288bf727f2de9c190e636f4f1545c 100644 (file)
@@ -5,7 +5,7 @@
  * CRUSH functions for find rules and then mapping an input to an
  * output set.
  *
- * LGPL2.1
+ * LGPL-2.1 or LGPL-3.0
  */
 
 #include "crush.h"
index fd12b9f12541a16ce84b7f713a2e1ae473e164c0..e8258caa9c36159d234e9488f74d7edc9a0c0a69 100644 (file)
@@ -6,7 +6,7 @@
  * primarily intended to describe data structures that pass over the
  * wire or that are stored on disk.
  *
- * LGPL2.1
+ * LGPL-2.1 or LGPL-3.0
  */
 
 #ifndef CEPH_FS_H
index aab376440c24f92b9937721f335ba295d3ff0c6f..fa92660e15b6ee31f42686cbcaa06a769b046561 100644 (file)
@@ -3,7 +3,7 @@
 #   OCF resource agent for mapping and unmapping
 #   RADOS Block Devices (RBDs)
 #
-#   License:      GNU Lesser General Public License (LGPL) 2.1
+#   License:      GNU Lesser General Public License (LGPL) 2.1 or 3.0
 #   (c) 2012 Florian Haas, hastexo
 #
 
index 6cb42d8a0f41a4864981ba914e9529571e95b040..6be92bab21526de091b93e11a242d6522f38c6da 100755 (executable)
@@ -47,7 +47,7 @@ Should return something like:
 '''
 
 # Copyright: Wido den Hollander <wido@42on.com> 2014
-# License:   LGPL2.1
+# License:   LGPL-2.1 or LGPL-3.0
 
 from ConfigParser import SafeConfigParser, NoSectionError
 from flask import abort, Flask, request, Response
index aedbcb02e20c132852b0dfb32c1330bf907d02da..66ac68dcac7bf0664455bb56b4a66f527e4e4bf9 100644 (file)
@@ -7,7 +7,7 @@ daemon.
 
 Copyright (C) 2013 Inktank Storage, Inc.
 
-LGPL2.1.  See file COPYING.
+LGPL-2.1 or LGPL-3.0.  See file COPYING.
 """
 from __future__ import print_function
 import copy
index 8699858141d04a022603a96f3b464d8d731e649f..b313984fe691595dcd8541f8e114138b2d9309c0 100644 (file)
@@ -1,7 +1,7 @@
 """
 Copyright (C) 2015 Red Hat, Inc.
 
-LGPL2.1.  See file COPYING.
+LGPL-2.1 or LGPL-3.0.  See file COPYING.
 """
 
 from contextlib import contextmanager
index 765f4c97debf25cddb9d6a06acc8e4361defe8ed..fbecc672281fb0f1db1452a47e4b8d47a944684d 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (C) 2014 Inktank <info@inktank.com>
  *
- * LGPL2.1 (see COPYING-LGPL2.1) or later
+ * LGPL-2.1 (see COPYING-LGPL2.1) or later
  */
 
 #include <iostream>
index acf35c3c35d7a656654ca86ac04b946c8812b701..dda77b0a0734b09b92f2ea666cac68999d0d6704 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (C) 2014 Red Hat <contact@redhat.com>
  *
- * LGPL2.1 (see COPYING-LGPL2.1) or later
+ * LGPL-2.1 (see COPYING-LGPL2.1) or later
  */
 
 #include <gtest/gtest.h>
index f556b2776e06238b677ef08da0e9f964408a6eba..d360406e8ec235d4bbf7f45fec290c6d1aac2530 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (C) 2013 Inktank <info@inktank.com>
  *
- * LGPL2.1 (see COPYING-LGPL2.1) or later
+ * LGPL-2.1 (see COPYING-LGPL2.1) or later
  */
 
 #include <iostream>
index dbb3aa2a366e51a6d32aad98508a8902f1477f9d..e012c99c50362dfce6fac10eafad6084b21fb083 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (C) 2017 Red Hat <contact@redhat.com>
  *
- * LGPL2.1 (see COPYING-LGPL2.1) or later
+ * LGPL-2.1 (see COPYING-LGPL2.1) or later
  */
 
 #include <chrono>
index 42a389e5e8ade2651612d0e4b7ed0efad48b660d..41e197bb2026119c20247a1c68ebf39efdd8573d 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (C) 2013 Inktank <info@inktank.com>
  *
- * LGPL2.1 (see COPYING-LGPL2.1) or later
+ * LGPL-2.1 (see COPYING-LGPL2.1) or later
  */
 
 #include <iostream>