From patchwork Fri Jun 12 14:43:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 4036 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B4ABD60C4E for ; Fri, 12 Jun 2020 16:43:42 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="m9osdfEq"; dkim-atps=neutral Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5418624F for ; Fri, 12 Jun 2020 16:43:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1591973022; bh=zR8vu66VSFXo2yw24XPCLf3Ux1IHlOdhbeAzL98F2mw=; h=From:To:Subject:Date:From; b=m9osdfEqy7IBNvi3brBw8H4gIPiLuPIQmJqr2VJWUAixg+iVNTmasHH881LBzZY1V 8cLRVVqf/RzW0AgimpI+KlziLurLaiWgnRD8TcZ+JaGkgPCEdgtWqgNKHtk+MulqVk 1gG30zTrhhKhssCiXVCMxpjvbYL+Omu/qgInnpx4= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Fri, 12 Jun 2020 17:43:18 +0300 Message-Id: <20200612144318.31661-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH] libcamera: Summarize licensing terms in COPYING.rst X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2020 14:43:42 -0000 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 Reviewed-by: Kieran Bingham Acked-by: Niklas Söderlund Reviewed-by: Tomasz Figa --- 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.