[libcamera-devel] libcamera: Summarize licensing terms in COPYING.rst

Message ID 20200612144318.31661-1-laurent.pinchart@ideasonboard.com
State Accepted
Commit 39fa976b4669450968f62b5865a8d1a045340fc7
Headers show
Series
  • [libcamera-devel] libcamera: Summarize licensing terms in COPYING.rst
Related show

Commit Message

Laurent Pinchart June 12, 2020, 2:43 p.m. UTC
Storing detailed licensing information in SPDX headers and in the DEP5
file gives precise information to handle license compliance, but lacks a
high-level overview. Summmarize the licensing terms in a COPYING.rst
file to facilitate understanding of the libcamera project licenses, and
to clarify that closed-source third-party IPA modules are permitted.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 COPYING.rst | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 COPYING.rst

Comments

Kieran Bingham June 12, 2020, 3:03 p.m. UTC | #1
Hi Laurent,

On 12/06/2020 15:43, Laurent Pinchart wrote:
> Storing detailed licensing information in SPDX headers and in the DEP5
> file gives precise information to handle license compliance, but lacks a
> high-level overview. Summmarize the licensing terms in a COPYING.rst
> file to facilitate understanding of the libcamera project licenses, and
> to clarify that closed-source third-party IPA modules are permitted.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  COPYING.rst | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 71 insertions(+)
>  create mode 100644 COPYING.rst
> 
> diff --git a/COPYING.rst b/COPYING.rst
> new file mode 100644
> index 000000000000..479a5536c5fe
> --- /dev/null
> +++ b/COPYING.rst
> @@ -0,0 +1,71 @@
> +.. SPDX-License-Identifier: CC-BY-SA-4.0
> +
> +==========
> + Licenses
> +==========
> +
> +TL;DR summary: The libcamera core is covered by the LGPL-2.1-or-later license.
> +IPA modules included in libcamera are covered by a free software license.
> +Third-parties may develop IPA modules outside of libcamera and distribute them
> +under a closed-source license, provided they do not include source code from
> +the libcamera project.
> +
> +The libcamera project contains multiple libraries, applications and utilities.
> +Licenses are expressed through SPDX tags in text-based files that support
> +comments, and through the .reuse/dep5 file otherwise. A copy of all licenses is
> +stored in the LICENSES directory.
> +
> +The following text summarizes the licenses covering the different components of
> +the project to offer a quick overview for developers. The SPDX and DEP5
> +information are however authoritative and shall prevail in case of
> +inconsistencies with the text below.
> +
> +The libcamera core source code, located under the include/libcamera/ and
> +src/libcamera/ directories, is fully covered by the LGPL-2.1-or-later license,
> +which thus covers distribution of the libcamera.so binary. Other files located
> +in those directories, most notably the meson build files, and various related
> +build scripts, may be covered by different licenses. None of their source code
> +is incorporated in the in the libcamera.so binary, they thus don't affect the
> +distribution terms of the binary.
> +
> +The IPA modules, located in src/ipa/, are covered by free software licenses
> +chosen by the module authors. The LGPL-2.1-or-later license is recommended.
> +Those modules are compiled as separate binaries and dynamically loaded by the
> +libcamera core at runtime.
> +
> +The IPA module API is defined in headers located in include/libcamera/ipa/ and
> +covered by the LGPL-2.1-or-later license. Using the data types (including
> +classes, structures and enumerations) and macros defined in the IPA module and
> +libcamera core API headers in IPA modules doesn't extend the LGPL license to
> +the IPA modules. Third-party closed-source IPA modules are thus permitted,
> +provided they comply with the licensing requirements of any software they
> +include or link to.
> +
> +The libcamera Android camera HAL component is located in src/android/. The
> +libcamera-specific source code is covered by the LGPL-2.1-or-later license. The
> +component additionally contains header files and source code, located
> +respectively in include/android/ and src/android/metadata/, copied verbatim
> +from Android and covered by the Apache-2.0 license.
> +
> +The libcamera GStreamer and V4L2 adaptation source code, located respectively
> +in src/gstreamer/ and src/v4l2/, is fully covered by the LGPL-2.1-or-later
> +license. Those components are compiled to separate binaries and do not
> +influence the license of the libcamera core.
> +
> +The cam and qcam sample applications, as well as the unit tests, located
> +respectively in src/cam/, src/qcam/ and test/, are covered by the
> +GPL-2.0-or-later license. qcam additionally includes an icon set covered by the
> +MIT license. Those applications are compiled to separate binaries and do not
> +influence the license of the libcamera core.
> +
> +Additional utilities are located in the utils/ directory and are covered by
> +various licenses. They are not part of the libcamera core and do not influence
> +its license.
> +
> +Finally, copies of various Linux kernel headers are included in include/linux/
> +to avoid depending on particular versions of those headers being installed in
> +the system. The Linux kernel headers are covered by their respective license,
> +including the Linux kernel license syscall exception. Using a copy of those
> +headers doesn't affect libcamera licensing terms in any way compared to using
> +the same headers installed in the system from kernel headers packages provided
> +by Linux distributions.
> 

Sounds good to me. Probably something we should incorporate into the
website somewhere, but that's not essential right now I don't think.


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Niklas Söderlund June 15, 2020, 4:02 p.m. UTC | #2
Hi Laurent,

Thanks for your work.

On 2020-06-12 17:43:18 +0300, Laurent Pinchart wrote:
> Storing detailed licensing information in SPDX headers and in the DEP5
> file gives precise information to handle license compliance, but lacks a
> high-level overview. Summmarize the licensing terms in a COPYING.rst
> file to facilitate understanding of the libcamera project licenses, and
> to clarify that closed-source third-party IPA modules are permitted.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Acked-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

> ---
>  COPYING.rst | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 71 insertions(+)
>  create mode 100644 COPYING.rst
> 
> diff --git a/COPYING.rst b/COPYING.rst
> new file mode 100644
> index 000000000000..479a5536c5fe
> --- /dev/null
> +++ b/COPYING.rst
> @@ -0,0 +1,71 @@
> +.. SPDX-License-Identifier: CC-BY-SA-4.0
> +
> +==========
> + Licenses
> +==========
> +
> +TL;DR summary: The libcamera core is covered by the LGPL-2.1-or-later license.
> +IPA modules included in libcamera are covered by a free software license.
> +Third-parties may develop IPA modules outside of libcamera and distribute them
> +under a closed-source license, provided they do not include source code from
> +the libcamera project.
> +
> +The libcamera project contains multiple libraries, applications and utilities.
> +Licenses are expressed through SPDX tags in text-based files that support
> +comments, and through the .reuse/dep5 file otherwise. A copy of all licenses is
> +stored in the LICENSES directory.
> +
> +The following text summarizes the licenses covering the different components of
> +the project to offer a quick overview for developers. The SPDX and DEP5
> +information are however authoritative and shall prevail in case of
> +inconsistencies with the text below.
> +
> +The libcamera core source code, located under the include/libcamera/ and
> +src/libcamera/ directories, is fully covered by the LGPL-2.1-or-later license,
> +which thus covers distribution of the libcamera.so binary. Other files located
> +in those directories, most notably the meson build files, and various related
> +build scripts, may be covered by different licenses. None of their source code
> +is incorporated in the in the libcamera.so binary, they thus don't affect the
> +distribution terms of the binary.
> +
> +The IPA modules, located in src/ipa/, are covered by free software licenses
> +chosen by the module authors. The LGPL-2.1-or-later license is recommended.
> +Those modules are compiled as separate binaries and dynamically loaded by the
> +libcamera core at runtime.
> +
> +The IPA module API is defined in headers located in include/libcamera/ipa/ and
> +covered by the LGPL-2.1-or-later license. Using the data types (including
> +classes, structures and enumerations) and macros defined in the IPA module and
> +libcamera core API headers in IPA modules doesn't extend the LGPL license to
> +the IPA modules. Third-party closed-source IPA modules are thus permitted,
> +provided they comply with the licensing requirements of any software they
> +include or link to.
> +
> +The libcamera Android camera HAL component is located in src/android/. The
> +libcamera-specific source code is covered by the LGPL-2.1-or-later license. The
> +component additionally contains header files and source code, located
> +respectively in include/android/ and src/android/metadata/, copied verbatim
> +from Android and covered by the Apache-2.0 license.
> +
> +The libcamera GStreamer and V4L2 adaptation source code, located respectively
> +in src/gstreamer/ and src/v4l2/, is fully covered by the LGPL-2.1-or-later
> +license. Those components are compiled to separate binaries and do not
> +influence the license of the libcamera core.
> +
> +The cam and qcam sample applications, as well as the unit tests, located
> +respectively in src/cam/, src/qcam/ and test/, are covered by the
> +GPL-2.0-or-later license. qcam additionally includes an icon set covered by the
> +MIT license. Those applications are compiled to separate binaries and do not
> +influence the license of the libcamera core.
> +
> +Additional utilities are located in the utils/ directory and are covered by
> +various licenses. They are not part of the libcamera core and do not influence
> +its license.
> +
> +Finally, copies of various Linux kernel headers are included in include/linux/
> +to avoid depending on particular versions of those headers being installed in
> +the system. The Linux kernel headers are covered by their respective license,
> +including the Linux kernel license syscall exception. Using a copy of those
> +headers doesn't affect libcamera licensing terms in any way compared to using
> +the same headers installed in the system from kernel headers packages provided
> +by Linux distributions.
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Tomasz Figa June 26, 2020, 9:11 a.m. UTC | #3
On Fri, Jun 12, 2020 at 4:43 PM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Storing detailed licensing information in SPDX headers and in the DEP5
> file gives precise information to handle license compliance, but lacks a
> high-level overview. Summmarize the licensing terms in a COPYING.rst
> file to facilitate understanding of the libcamera project licenses, and
> to clarify that closed-source third-party IPA modules are permitted.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  COPYING.rst | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 71 insertions(+)
>  create mode 100644 COPYING.rst
>
> diff --git a/COPYING.rst b/COPYING.rst
> new file mode 100644
> index 000000000000..479a5536c5fe
> --- /dev/null
> +++ b/COPYING.rst
> @@ -0,0 +1,71 @@
> +.. SPDX-License-Identifier: CC-BY-SA-4.0
> +
> +==========
> + Licenses
> +==========
> +
> +TL;DR summary: The libcamera core is covered by the LGPL-2.1-or-later license.
> +IPA modules included in libcamera are covered by a free software license.
> +Third-parties may develop IPA modules outside of libcamera and distribute them
> +under a closed-source license, provided they do not include source code from
> +the libcamera project.
> +
> +The libcamera project contains multiple libraries, applications and utilities.
> +Licenses are expressed through SPDX tags in text-based files that support
> +comments, and through the .reuse/dep5 file otherwise. A copy of all licenses is
> +stored in the LICENSES directory.
> +
> +The following text summarizes the licenses covering the different components of
> +the project to offer a quick overview for developers. The SPDX and DEP5
> +information are however authoritative and shall prevail in case of
> +inconsistencies with the text below.
> +
> +The libcamera core source code, located under the include/libcamera/ and
> +src/libcamera/ directories, is fully covered by the LGPL-2.1-or-later license,
> +which thus covers distribution of the libcamera.so binary. Other files located
> +in those directories, most notably the meson build files, and various related
> +build scripts, may be covered by different licenses. None of their source code
> +is incorporated in the in the libcamera.so binary, they thus don't affect the
> +distribution terms of the binary.
> +
> +The IPA modules, located in src/ipa/, are covered by free software licenses
> +chosen by the module authors. The LGPL-2.1-or-later license is recommended.
> +Those modules are compiled as separate binaries and dynamically loaded by the
> +libcamera core at runtime.
> +
> +The IPA module API is defined in headers located in include/libcamera/ipa/ and
> +covered by the LGPL-2.1-or-later license. Using the data types (including
> +classes, structures and enumerations) and macros defined in the IPA module and
> +libcamera core API headers in IPA modules doesn't extend the LGPL license to
> +the IPA modules. Third-party closed-source IPA modules are thus permitted,
> +provided they comply with the licensing requirements of any software they
> +include or link to.
> +
> +The libcamera Android camera HAL component is located in src/android/. The
> +libcamera-specific source code is covered by the LGPL-2.1-or-later license. The
> +component additionally contains header files and source code, located
> +respectively in include/android/ and src/android/metadata/, copied verbatim
> +from Android and covered by the Apache-2.0 license.
> +
> +The libcamera GStreamer and V4L2 adaptation source code, located respectively
> +in src/gstreamer/ and src/v4l2/, is fully covered by the LGPL-2.1-or-later
> +license. Those components are compiled to separate binaries and do not
> +influence the license of the libcamera core.
> +
> +The cam and qcam sample applications, as well as the unit tests, located
> +respectively in src/cam/, src/qcam/ and test/, are covered by the
> +GPL-2.0-or-later license. qcam additionally includes an icon set covered by the
> +MIT license. Those applications are compiled to separate binaries and do not
> +influence the license of the libcamera core.
> +
> +Additional utilities are located in the utils/ directory and are covered by
> +various licenses. They are not part of the libcamera core and do not influence
> +its license.
> +
> +Finally, copies of various Linux kernel headers are included in include/linux/
> +to avoid depending on particular versions of those headers being installed in
> +the system. The Linux kernel headers are covered by their respective license,
> +including the Linux kernel license syscall exception. Using a copy of those
> +headers doesn't affect libcamera licensing terms in any way compared to using
> +the same headers installed in the system from kernel headers packages provided
> +by Linux distributions.

Thanks, this should make it a bit more clear for now.

Reviewed-by: Tomasz Figa <tfiga@chromium.org>

Best regards,
Tomasz

Patch

diff --git a/COPYING.rst b/COPYING.rst
new file mode 100644
index 000000000000..479a5536c5fe
--- /dev/null
+++ b/COPYING.rst
@@ -0,0 +1,71 @@ 
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+==========
+ Licenses
+==========
+
+TL;DR summary: The libcamera core is covered by the LGPL-2.1-or-later license.
+IPA modules included in libcamera are covered by a free software license.
+Third-parties may develop IPA modules outside of libcamera and distribute them
+under a closed-source license, provided they do not include source code from
+the libcamera project.
+
+The libcamera project contains multiple libraries, applications and utilities.
+Licenses are expressed through SPDX tags in text-based files that support
+comments, and through the .reuse/dep5 file otherwise. A copy of all licenses is
+stored in the LICENSES directory.
+
+The following text summarizes the licenses covering the different components of
+the project to offer a quick overview for developers. The SPDX and DEP5
+information are however authoritative and shall prevail in case of
+inconsistencies with the text below.
+
+The libcamera core source code, located under the include/libcamera/ and
+src/libcamera/ directories, is fully covered by the LGPL-2.1-or-later license,
+which thus covers distribution of the libcamera.so binary. Other files located
+in those directories, most notably the meson build files, and various related
+build scripts, may be covered by different licenses. None of their source code
+is incorporated in the in the libcamera.so binary, they thus don't affect the
+distribution terms of the binary.
+
+The IPA modules, located in src/ipa/, are covered by free software licenses
+chosen by the module authors. The LGPL-2.1-or-later license is recommended.
+Those modules are compiled as separate binaries and dynamically loaded by the
+libcamera core at runtime.
+
+The IPA module API is defined in headers located in include/libcamera/ipa/ and
+covered by the LGPL-2.1-or-later license. Using the data types (including
+classes, structures and enumerations) and macros defined in the IPA module and
+libcamera core API headers in IPA modules doesn't extend the LGPL license to
+the IPA modules. Third-party closed-source IPA modules are thus permitted,
+provided they comply with the licensing requirements of any software they
+include or link to.
+
+The libcamera Android camera HAL component is located in src/android/. The
+libcamera-specific source code is covered by the LGPL-2.1-or-later license. The
+component additionally contains header files and source code, located
+respectively in include/android/ and src/android/metadata/, copied verbatim
+from Android and covered by the Apache-2.0 license.
+
+The libcamera GStreamer and V4L2 adaptation source code, located respectively
+in src/gstreamer/ and src/v4l2/, is fully covered by the LGPL-2.1-or-later
+license. Those components are compiled to separate binaries and do not
+influence the license of the libcamera core.
+
+The cam and qcam sample applications, as well as the unit tests, located
+respectively in src/cam/, src/qcam/ and test/, are covered by the
+GPL-2.0-or-later license. qcam additionally includes an icon set covered by the
+MIT license. Those applications are compiled to separate binaries and do not
+influence the license of the libcamera core.
+
+Additional utilities are located in the utils/ directory and are covered by
+various licenses. They are not part of the libcamera core and do not influence
+its license.
+
+Finally, copies of various Linux kernel headers are included in include/linux/
+to avoid depending on particular versions of those headers being installed in
+the system. The Linux kernel headers are covered by their respective license,
+including the Linux kernel license syscall exception. Using a copy of those
+headers doesn't affect libcamera licensing terms in any way compared to using
+the same headers installed in the system from kernel headers packages provided
+by Linux distributions.