[libcamera-devel] [PATCH/RFC 00/11] Improve license information

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Feb 13 17:57:23 CET 2020


Hi Laurent,

On 13/02/2020 16:54, Laurent Pinchart wrote:
> Hi Kieran,
> 
> On Thu, Feb 13, 2020 at 04:52:53PM +0000, Kieran Bingham wrote:
>> On 13/02/2020 16:44, Laurent Pinchart wrote:
>>> On Thu, Feb 13, 2020 at 04:41:38PM +0000, Kieran Bingham wrote:
>>>> On 13/02/2020 15:36, Laurent Pinchart wrote:
>>>>> Hello,
>>>>>
>>>>> The REUSE specification [1] defines a standardized method for declaring
>>>>> copyright and licensing information, based on SPDX. It comes with a
>>>>> compliance tool that can check for compliance and produce reports, as
>>>>> well as licensing information to generate packages.
>>>>>
>>>>> libcamera already uses SPDX tags to specify license information, but we
>>>>> haven't been using them very consistently, as shown by the "reuse lint"
>>>>> tool. This series is an initial step towards REUSE compliance, and fixes
>>>>> a few real issues.
>>>>>
>>>>> I've marked the patches as RFC as it's not clear to me how far we need
>>>>> to go. Adding an SPDX header to include/linux/README, for instance,
>>>>> seems overkill to me. I'm also not sure what license to pick for
>>>>> meson.build files. Comments are more than welcome.
>>>>
>>>> Meson.build files are part of the build system required to build the
>>>> library, so I agree on LGPL.
>>>>
>>>> I think that would include the ebuild files, or anything we create to
>>>> actually generate libcamera.
>>>
>>> But they are also used to build the documentation, under CC-BY-SA-4.0,
>>> the cam and qcam application, under GPL-2.0-or-later, the Android
>>> metadata library, under Apache-2.0, ...
>>
>> Indeed, but it's only libcamera.so that other projects will link
>> against, and I don't "think" having LGPL has any effect on the build of
>> the documentation, or cam/qcam.
>>
>> As the Android metadata library is just 'used' by libcamera.so, I don't
>> think it has much effect there?
>>
>> Who knows. ... IANAL :-)
> 
> That's my point really :-) I'm not either.
> 
>> Do we need to hire a lawyer to tell us the right answer? Or perhaps ask
>> FSF or such an organisation?
> 
> I think it would make sense to ask how to license build system files. If
> you look at buildroot, for instance, all build system files are GPL,
> regardless of the license of the software they compile.

That's a bit different, that's the licence of *buildroot* ?

The thing to look at is the licence of the build files for an equivalent
LGPL library, not an arbitrary external build system which is capable of
building that library.

--
Kieran


> 
> I briefly searched for information on this topic, but couldn't find
> anything conclusive.>
>>>>> [1] https://reuse.software/spec/
>>>>>
>>>>> Laurent Pinchart (11):
>>>>>   licenses: Rename license files according to REUSE
>>>>>   licenses: Add missing licenses
>>>>>   licenses: Remove unused LGPL-2.1
>>>>>   licenses: Replace deprecated GPL-2.0 with GPL-2.0-only
>>>>>   licenses: Move developer's certificate of origin to Documentation/
>>>>>   licenses: Add SPDX headers to RST documentation
>>>>>   licenses: Add SPDX headers to Doxygen configuration
>>>>>   licenses: Add SPDX headers to the website builder and theme
>>>>>   licenses: Add SPDX headers to all meson files
>>>>>   licenses: Add SPDX headers to the git commit hook scripts
>>>>>   licenses: Add SPDX headers to Gentoo ebuild
>>>>>
>>>>>  .clang-format                                 |   2 +-
>>>>>  .gitignore                                    |   2 +
>>>>>  Documentation/Doxyfile.in                     |   1 +
>>>>>  Documentation/api-html/index.rst              |   2 +
>>>>>  Documentation/coding-style.rst                |   2 +
>>>>>  Documentation/conf.py                         |   1 +
>>>>>  Documentation/contributing.rst                |   2 +
>>>>>  .../developer-certificate-of-origin.txt       |   0
>>>>>  Documentation/docs.rst                        |   2 +
>>>>>  Documentation/index.rst                       |   2 +
>>>>>  Documentation/meson.build                     |   2 +
>>>>>  Documentation/theme/footer.html               |   3 +
>>>>>  Documentation/theme/layout.html               |   3 +
>>>>>  Documentation/theme/search.html               |   3 +
>>>>>  Documentation/theme/static/css/theme.css      |   2 +
>>>>>  Documentation/theme/theme.conf                |   2 +
>>>>>  .../apache-2.0.txt => LICENSES/Apache-2.0.txt |   0
>>>>>  LICENSES/BSD-3-Clause.txt                     |  26 +
>>>>>  .../CC-BY-SA-4.0.txt                          |   0
>>>>>  LICENSES/GPL-2.0+.txt                         |   1 +
>>>>>  .../GPL-2.0-only.txt                          |   0
>>>>>  LICENSES/GPL-2.0-or-later.txt                 | 319 +++++++++++
>>>>>  LICENSES/GPL-2.0.txt                          |   1 +
>>>>>  LICENSES/LGPL-2.1-or-later.txt                | 468 ++++++++++++++++
>>>>>  LICENSES/Linux-syscall-note.txt               |   5 +
>>>>>  LICENSES/MIT.txt                              |  19 +
>>>>>  README.rst                                    |   2 +
>>>>>  include/android/meson.build                   |   2 +
>>>>>  include/ipa/meson.build                       |   2 +
>>>>>  include/libcamera/meson.build                 |   2 +
>>>>>  include/meson.build                           |   2 +
>>>>>  licenses/gnu-lgpl-2.1.txt                     | 502 ------------------
>>>>>  meson.build                                   |   2 +
>>>>>  meson_options.txt                             |   2 +
>>>>>  .../libcamera/libcamera-9999.ebuild           |   2 +-
>>>>>  src/android/meson.build                       |   2 +
>>>>>  src/cam/meson.build                           |   2 +
>>>>>  src/ipa/libipa/meson.build                    |   2 +
>>>>>  src/ipa/meson.build                           |   2 +
>>>>>  src/ipa/rkisp1/meson.build                    |   2 +
>>>>>  src/libcamera/include/meson.build             |   2 +
>>>>>  src/libcamera/meson.build                     |   2 +
>>>>>  src/libcamera/pipeline/ipu3/meson.build       |   2 +
>>>>>  src/libcamera/pipeline/meson.build            |   2 +
>>>>>  src/libcamera/pipeline/rkisp1/meson.build     |   2 +
>>>>>  src/libcamera/proxy/meson.build               |   2 +
>>>>>  src/libcamera/proxy/worker/meson.build        |   2 +
>>>>>  src/meson.build                               |   2 +
>>>>>  src/qcam/meson.build                          |   2 +
>>>>>  src/v4l2/meson.build                          |   2 +
>>>>>  test/camera/meson.build                       |   2 +
>>>>>  test/controls/meson.build                     |   2 +
>>>>>  test/ipa/meson.build                          |   2 +
>>>>>  test/ipc/meson.build                          |   2 +
>>>>>  test/libtest/meson.build                      |   2 +
>>>>>  test/log/meson.build                          |   2 +
>>>>>  test/media_device/meson.build                 |   2 +
>>>>>  test/meson.build                              |   2 +
>>>>>  test/pipeline/ipu3/meson.build                |   2 +
>>>>>  test/pipeline/meson.build                     |   2 +
>>>>>  test/pipeline/rkisp1/meson.build              |   2 +
>>>>>  test/process/meson.build                      |   2 +
>>>>>  test/serialization/meson.build                |   2 +
>>>>>  test/stream/meson.build                       |   2 +
>>>>>  test/v4l2_subdevice/meson.build               |   2 +
>>>>>  test/v4l2_videodevice/meson.build             |   2 +
>>>>>  utils/hooks/post-commit                       |   2 +
>>>>>  utils/hooks/pre-commit                        |   2 +
>>>>>  utils/ipu3/meson.build                        |   2 +
>>>>>  utils/meson.build                             |   2 +
>>>>>  70 files changed, 954 insertions(+), 504 deletions(-)
>>>>>  rename {licenses => Documentation}/developer-certificate-of-origin.txt (100%)
>>>>>  rename licenses/apache-2.0.txt => LICENSES/Apache-2.0.txt (100%)
>>>>>  create mode 100644 LICENSES/BSD-3-Clause.txt
>>>>>  rename licenses/cc-by-sa-v4.0.txt => LICENSES/CC-BY-SA-4.0.txt (100%)
>>>>>  create mode 120000 LICENSES/GPL-2.0+.txt
>>>>>  rename licenses/gnu-gpl-2.0.txt => LICENSES/GPL-2.0-only.txt (100%)
>>>>>  create mode 100644 LICENSES/GPL-2.0-or-later.txt
>>>>>  create mode 120000 LICENSES/GPL-2.0.txt
>>>>>  create mode 100644 LICENSES/LGPL-2.1-or-later.txt
>>>>>  create mode 100644 LICENSES/Linux-syscall-note.txt
>>>>>  create mode 100644 LICENSES/MIT.txt
>>>>>  delete mode 100644 licenses/gnu-lgpl-2.1.txt
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list