diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2023-01-12 14:37:34 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2023-03-28 08:34:18 +0000 |
commit | 47239b41002c5a4c54e3ef2e19417f8de5ac0536 (patch) | |
tree | 037ef5bc0fc901c4ccb47c1a088dac4a77f84d2c | |
parent | a9dce52d89dcf52dd35be0afd2a61d9cd267f03b (diff) |
QUIP 18: License specification in Qt's modules
This QUIP specifies the licenses that are used in different parts of a
typical Qt module repository. Note that repositories may deviate from
this guideline. Check with the authors and copyright holders of the
repository in question.
Task-number: QTBUG-104704
Change-Id: I1487cd3a16be4a6dc4e36252a17ce894c09676a2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r-- | quip-0018-license-specification.rst | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/quip-0018-license-specification.rst b/quip-0018-license-specification.rst new file mode 100644 index 0000000..e482f3d --- /dev/null +++ b/quip-0018-license-specification.rst @@ -0,0 +1,167 @@ +QUIP: 18 +Title: License specification in Qt's modules +Author: Lucie Gerard, + Jörg Bornemann +Status: Active +Type: Informational +Created: 2022-09-26 +Post-History: https://lists.qt-project.org/pipermail/development/2023-February/043648.html + +Overview +======== + +This QUIP specifies the licenses that are used in different parts of a +typical Qt module repository and also provides helpful guidance about +how to express which license source code is under. + +License header format +===================== + +The license header follows the SPDX standard [0]_. + +There is at least one copyright line and exactly one license +expression line:: + + Copyright (C) 2023 The Qt Company Ltd. + SPDX-License-Identifier: <spdx-license-expression> + +A copyright line for code written by a contributor outside the Qt +Company can include that contributor's name (or a legal entity they +represent) in the Copyright header. + +The copyright line should include the year the file was created, or - +in the case of additional copyright lines - the year the additional +copyright notice was added. Updating the copyright year when changes +are made to the file is possible. + +The copyright line may be prefixed with `SPDX-FileCopyrightText:`. + +The `<spdx-license-expression>` must be a valid expression, according +to the SPDX standard as defined in [1]_. + +The license identifiers used in a license expression are either from +the list of known licenses [2]_ or prefixed with `LicenseRef-`. + +The license files are placed into a `LICENSES` directory below the Qt +module repository's root. The license files are named after the SPDX +license identifier followed by ``.txt`` [3]_. + +Classification of files +======================= + +There are various kinds of files in a Qt module repository that should +include license headers. Here, we classify these files in order to +identify which files should be under which licenses. + +Files that do not support inline comments do not have to contain +licensing information. If licensing information for such files is +still desirable, it should be placed into an adjacent ``.license`` +text file. For example, ``blob.bin`` may be accompanied by +``blob.bin.license`` in the same directory. + +Licensing information may be omitted for files with trivial content. + +The documentation landing page of a Qt module contains a "Licenses and +Attributions" section that defines the licenses under which the module +and plugin implementation is available. See the list of Qt modules +[6]_. + +Module and plugin implementation +-------------------------------- + +Files that belong to the implementation of Qt modules and plugins. The +usual locations for module source code are the subdirectories ``src/`` +and ``plugins/``. + +There are two licensing models for module and plugin implementations: +GPL-only and one that is additionally licensed under LPGL. + +The license expression permitting the LPGL is +``LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR +GPL-3.0-only``. + +The GPL-only license expression is ``LicenseRef-Qt-Commercial OR +GPL-3.0-only``. + +Examples +-------- + +Files that belong to the implementation of Qt examples. The usual +locations for examples is the ``examples/`` subdirectory. + +The license expression for examples is ``LicenseRef-Qt-Commercial OR +BSD-3-Clause``. + +Tests +----- + +Files that belong to the implementation of Qt tests. The usual +location is the ``tests/`` subdirectory. + +The license expression for tests is ``LicenseRef-Qt-Commercial OR +GPL-3.0-only``. + +Tools +----- + +Files that belong to the implementation of Qt tools that are for use +by Qt users. The usual location is the ``src/tools/`` subdirectory. + +The license expression for tools is ``LicenseRef-Qt-Commercial OR +GPL-3.0-only WITH Qt-GPL-exception-1.0``. + +Documentation +------------- + +All ``.qdoc``, ``.qdocinc`` and ``.qdocconf`` files that are needed to +generate the documentation. + +The license expression for documentation is ``LicenseRef-Qt-Commercial +OR GFDL-1.3-no-invariants-only``. + +Documentation snippets +---------------------- + +Any source code that appears in the documentation. The usual locations are +``doc/snippets/`` directories throughout the Qt module repository's directory +tree. + +The license expression for documentation snippets is +``LicenseRef-Qt-Commercial OR BSD-3-Clause``. + +Build System Files +------------------ + +All files that contribute to Qt's build system. That includes the following file +name patterns: + +- ``CMakeLists.txt`` +- ``*.cmake`` +- ``*.pro`` +- ``*.pri`` +- ``*.prf`` + +The license expression for build system files is ``BSD-3-Clause``. + +Related Work +============ + +The "Software License Agreement between The KDE Free Qt Foundation and +The Qt Company Oy" [4]_ poses restrictions for the licenses of the Qt +Free Edition modules. + +To a certain extent, Qt follows REUSE [5]_. REUSE is a guideline on +how to specify the licenses in a project. We don't aim for full +compliance at this point, due to small/binary files and 3rd party +content. + +References +========== + +.. [0] https://spdx.github.io/spdx-spec/v2.3/ +.. [1] https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/ +.. [2] https://spdx.org/licenses/ +.. [3] https://reuse.software/tutorial/#step-1 +.. [4] https://kde.org/community/whatiskde/Software_License_Agreement_2015_Text.pdf +.. [5] https://reuse.software/spec/ +.. [6] https://doc.qt.io/qt-6/qtmodules.html |