-
User Story
-
Resolution: Fixed
-
P2: Important
-
None
-
None
-
d93174896 (6.5), 8f4ec7436 (dev), 7ea471ec9 (dev), 9a63f8bda (6.5), 8e91f6f29 (dev), 9c3287c96 (6.5), dd46f3ca2 (dev), 4c0d8106c (6.5), eecfb1954 (dev), f47780204 (6.5), a09d8e0ae (dev), 6affbbde9 (6.7), 66b2b20f8 (tqtc/lts-6.5-opensource)
Let's replace our current license disclaimer in files by an SPDX-License-Identifier.
Advantages
- More concise (less visual clutter at the beginning of the file)
- easy to parse by third-party tools
- easy to validate
See e.g. the Linux kernel that switched to SPDX-License-Identifier: https://lwn.net/Articles/739183/ . Also KDE has done so.
A template for setting up using SPDX-License-Identifier is available at https://reuse.software/spec/ . I'm not yet sure whether we can (and should) follow the framework 100% (there's e.g. a requirement to mark the license of every file, which is a bit annoying say for image files, and 3rd party code). But we should only deviate from the suggestions where necessary.
SPDX License Mapping
QT_BEGIN_LICENSE | SPDX Identifier |
---|---|
QT_BEGIN_LICENSE:BSD | LicenseRef-Qt-Commercial OR BSD-3-Clause |
QT_BEGIN_LICENSE:COMM | LicenseRef-Qt-Commercial |
QT_BEGIN_LICENSE:FDL | LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only |
QT_BEGIN_LICENSE:GPL | LicenseRef-Qt-Commercial OR GPL-3.0-only |
QT_BEGIN_LICENSE:GPL-EXCEPT | LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 |
QT_BEGIN_LICENSE:LGPL | LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
QT_BEGIN_LICENSE:LGPL-NOGPL2 | LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-3.0-only |
QT_BEGIN_LICENSE:LGPL-ONLY | LGPL-2.1-only |
QT_BEGIN_LICENSE:LGPL3 | LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only |
QT_BEGIN_LICENSE:LGPL3-COMM | LicenseRef-Qt-Commercial OR LGPL-3.0-only |
QT_BEGIN_LICENSE:MIT | MIT |
License files
Current license files (LICENSE.*) are removed from the main directory of each repository. Instead, licenses named after SPDX identifier:
- LICENSES/LicenseRef-Qt-Commercial.txt
- LICENSES/BSD-3-Clause.txt
- ...
Qt-Commercial would be a meta-license, like it is currently:
Licensees holding valid commercial Qt licenses may use this file in
accordance with the commercial license agreement provided with the
Software or, alternatively, in accordance with the terms contained in
a written agreement between you and The Qt Company. For licensing terms
and conditions see https://www.qt.io/terms-conditions. For further
information use the contact form at https://www.qt.io/contact-us.
Action Points
- Update qtqa license scanner so that it does not bark on missing QT_BEGIN_LICENSE: headers. Instead, consider adapting https://git.fsfe.org/reuse/tool .
- Mass-change all files, repository by repository (ignoring 3rd party code for now)
- relates to
-
QTBUG-103519 Invalid code generated from UI files when building linguist tool
-
- Closed
-
-
QTBUG-108364 Use SPDX license identifiers in provisioning scripts
-
- Closed
-
-
QTBUG-88621 Add license headers to CMake build system files
-
- Closed
-
- resulted in
-
QTBUG-103582 Update dependencies on 'dev' in qt/qtactiveqt fails
-
- Closed
-
-
QTQAINFRA-5013 Revise API change review scripts to cope with SPDX copyright headers
-
- Closed
-
-
QTBUG-120262 Use SPDX-License-Ref in 3rdparty directories
-
- Closed
-
-
QTBUG-104126 Let qtattributionsscanner get licenses from LICENSES directory
-
- Closed
-
For Gerrit Dashboard: QTBUG-67283 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
406501,2 | tst_licenses.pl: Run REUSE linter on repos that have been ported | dev | qt/qtqa | Status: DEFERRED | 0 | 0 |
407606,8 | Teach tst_licenses.pl to check SPDX licenses | dev | qt/qtqa | Status: MERGED | +2 | 0 |
408440,2 | Teach tst_licenses.pl to check SPDX licenses | master | qt/qtqa | Status: MERGED | +2 | 0 |
409276,22 | Use SPDX license identifiers | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
413032,3 | Use SPDX license identifiers | tqtc/dev | pyside/tqtc-pyside-setup | Status: ABANDONED | +2 | 0 |
415528,2 | Use SPDX license identifiers | dev | qt/qtcharts | Status: MERGED | +2 | 0 |
415536,2 | Use SPDX license identifiers | dev | qt/qtimageformats | Status: MERGED | +2 | 0 |
415537,4 | Use SPDX license identifiers | dev | qt/qt3d | Status: MERGED | +2 | 0 |
415543,3 | Use SPDX license identifiers | dev | qt/qtsensors | Status: MERGED | -1 | 0 |
415545,5 | Use SPDX license identifiers | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
415547,3 | Use SPDX license identifiers | dev | qt/qtsvg | Status: MERGED | +2 | 0 |
415572,3 | Use SPDX license identifiers | 6.4 | qt/qtwebsockets | Status: MERGED | +2 | 0 |
415617,2 | Use SPDX license identifiers | 6.4 | qt/qtconnectivity | Status: MERGED | +2 | 0 |
415626,2 | Use SPDX license identifiers | 6.4 | qt/qtserialbus | Status: MERGED | +2 | 0 |
415721,4 | Use SPDX license identifiers | 6.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
415790,3 | Use SPDX license identifiers | 6.4 | qt/qtsvg | Status: MERGED | +2 | 0 |
415839,2 | Use SPDX license identifiers | 6.4 | qt/qtimageformats | Status: MERGED | +2 | 0 |
415875,2 | Use SPDX license identifiers | dev | qt/qtdatavis3d | Status: MERGED | +2 | 0 |
415879,3 | Use SPDX license identifiers | dev | qt/qtvirtualkeyboard | Status: MERGED | +2 | 0 |
415910,2 | Use SPDX license identifiers | 6.4 | qt/qtsensors | Status: MERGED | +2 | 0 |
415912,2 | Use SPDX license identifiers | 6.4 | qt/qtdatavis3d | Status: MERGED | +2 | 0 |
415927,2 | Use SPDX license identifiers | dev | qt/qtscxml | Status: MERGED | +2 | 0 |
416162,2 | Use SPDX license identifiers | dev | qt/qtremoteobjects | Status: MERGED | +2 | 0 |
416172,2 | Use SPDX license identifiers | dev | qt/qtlottie | Status: MERGED | +2 | 0 |
416180,2 | Use SPDX license identifiers | dev | qt/qtquicktimeline | Status: MERGED | +2 | 0 |
416181,3 | Qt Designer: Fix empty widget box | dev | qt/qttools | Status: MERGED | +2 | 0 |
416201,2 | Use SPDX license identifiers | dev | qt/qtshadertools | Status: MERGED | +2 | 0 |
416203,2 | Use SPDX license identifiers | dev | qt/qtcoap | Status: MERGED | +2 | 0 |
416223,2 | Use SPDX license identifiers | 6.4 | qt/qtremoteobjects | Status: MERGED | +2 | 0 |
416230,2 | Use SPDX license identifiers | 6.4 | qt/qtlottie | Status: MERGED | +2 | 0 |
416233,2 | Use SPDX license identifiers | 6.4 | qt/qtvirtualkeyboard | Status: MERGED | +2 | 0 |
416259,2 | Qt Designer: Fix empty widget box | 6.4 | qt/qttools | Status: MERGED | +2 | 0 |
416261,2 | Use SPDX license identifiers | 6.4 | qt/qtscxml | Status: MERGED | +2 | 0 |
416327,2 | Use SPDX license identifiers | 6.4 | qt/qtshadertools | Status: MERGED | +2 | 0 |
416329,2 | Use SPDX license identifiers | 6.4 | qt/qtcoap | Status: MERGED | +2 | 0 |
416330,2 | Use SPDX license identifiers | 6.4 | qt/qtquicktimeline | Status: MERGED | +2 | 0 |
416394,2 | Use SPDX license identifiers | dev | qt/qtapplicationmanager | Status: MERGED | +2 | 0 |
416400,4 | Use SPDX license identifiers | dev | qt/qtinterfaceframework | Status: MERGED | +2 | 0 |
416450,2 | Use SPDX license identifiers | dev | qt/qtmqtt | Status: MERGED | +2 | 0 |
416455,2 | Use SPDX license identifiers | dev | qt/qtopcua | Status: MERGED | +2 | 0 |
416461,2 | Use SPDX license identifiers | dev | qt/qtpositioning | Status: MERGED | +2 | 0 |
416464,2 | Use SPDX license identifiers | dev | qt/qtwebengine | Status: MERGED | +2 | 0 |
416465,2 | Use SPDX license identifiers | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
416467,2 | Use SPDX license identifiers | dev | qt/qtnetworkauth | Status: MERGED | +2 | 0 |
416538,2 | Use SPDX license identifiers | 6.4 | qt/qtapplicationmanager | Status: MERGED | +2 | 0 |
416564,2 | Use SPDX license identifiers | 6.4 | qt/qtinterfaceframework | Status: MERGED | +2 | 0 |
416759,2 | Use SPDX license identifiers | 6.4 | qt/qtnetworkauth | Status: MERGED | +2 | 0 |
416760,2 | Use SPDX license identifiers | 6.4 | qt/qtmqtt | Status: MERGED | +2 | 0 |
416761,2 | Use SPDX license identifiers | 6.4 | qt/qtopcua | Status: MERGED | +2 | 0 |
416764,2 | Use SPDX license identifiers | 6.4 | qt/qtcharts | Status: MERGED | +2 | 0 |
416765,2 | Use SPDX license identifiers | 6.4 | qt/qtpositioning | Status: MERGED | +2 | 0 |
416772,2 | Use SPDX license identifiers | 6.4 | qt/qtquick3d | Status: MERGED | +2 | 0 |
418001,2 | Use SPDX license identifiers | dev | qt/qtspeech | Status: MERGED | +2 | 0 |
418012,2 | Use SPDX license identifiers | dev | qt/qt5compat | Status: MERGED | +2 | 0 |
418028,2 | Use SPDX license identifiers | 6.4 | qt/qt3d | Status: MERGED | +2 | 0 |
418044,2 | Use SPDX license identifiers | dev | qt/qtquick3dphysics | Status: MERGED | +2 | 0 |
418057,2 | Use SPDX license identifiers | dev | qt/qthttpserver | Status: MERGED | +2 | 0 |
418137,2 | Use SPDX license identifiers | dev | qt/qtquick3dphysics | Status: ABANDONED | 0 | 0 |
418185,2 | Use SPDX license identifiers | 6.4 | qt/qtspeech | Status: MERGED | +2 | 0 |
418186,2 | Use SPDX license identifiers | 6.4 | qt/qtquick3dphysics | Status: MERGED | +2 | 0 |
418187,2 | Use SPDX license identifiers | 6.4 | qt/qthttpserver | Status: MERGED | +2 | 0 |
418247,2 | Use SPDX license identifiers | 6.4 | qt/qtwebengine | Status: MERGED | +2 | 0 |
418309,2 | Use SPDX license identifiers | 6.4 | qt/qt5compat | Status: MERGED | +2 | 0 |
418559,2 | Use SPDX license identifiers | 6.4 | qt/qtmultimedia | Status: MERGED | +2 | 0 |
418849,2 | Use SPDX license identifiers | dev | qt/qtlanguageserver | Status: MERGED | +2 | 0 |
419225,2 | Use SPDX license identifiers | 6.4 | qt/qtlanguageserver | Status: MERGED | +2 | 0 |
419448,5 | Use SPDX license identifiers | dev | qt/qtwebengine | Status: MERGED | +2 | 0 |
421047,2 | Use SPDX license identifiers | 6.4 | qt/qtwebengine | Status: MERGED | +2 | 0 |
427489,7 | Use SPDX license identifiers | master | qt-creator/qt-creator | Status: MERGED | +2 | 0 |
435519,2 | Fix example licenses | tqtc/dev | pyside/tqtc-pyside-setup | Status: MERGED | +2 | 0 |
437429,3 | Use SPDX license identifiers | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
437606,3 | Use SPDX license identifiers | dev | qt/qt3d | Status: MERGED | +2 | 0 |
437611,2 | Use SPDX license identifiers | dev | qt/qtqa | Status: MERGED | +2 | 0 |
437645,4 | Use SPDX license identifiers | dev | qt/qttools | Status: MERGED | +2 | 0 |
437647,6 | Use SPDX license identifiers | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
437649,3 | Use SPDX license identifiers | dev | qt/qtbase | Status: MERGED | +2 | 0 |
457035,4 | Use SPDX license identifiers | dev | qt/qtlocation | Status: MERGED | +2 | 0 |
458153,2 | Use SPDX license identifiers | 6.5 | qt/qtlocation | Status: MERGED | +2 | 0 |
477632,11 | Use SPDX license identifiers | dev | qt/qt5 | Status: MERGED | +2 | 0 |
478898,2 | Qt Designer: Fix the generate_ui script to work with SPDX licenses | dev | qt/qttools | Status: MERGED | +2 | 0 |
479034,2 | Qt Designer: Fix the generate_ui script to work with SPDX licenses | 6.5 | qt/qttools | Status: MERGED | +2 | 0 |
479323,2 | Use SPDX license identifiers | dev | qt/qtgrpc | Status: MERGED | +2 | 0 |
479326,3 | Use SPDX license identifiers | dev | qt/qtvirtualkeyboard | Status: MERGED | +2 | 0 |
479347,1 | Use SPDX license identifiers | 6.5 | qt/qtgrpc | Status: ABANDONED | 0 | 0 |
479362,3 | Use SPDX license identifiers | dev | qt/qtsvg | Status: MERGED | +2 | 0 |
479363,2 | Use SPDX license identifiers | dev | qt/qtlocation | Status: MERGED | +2 | 0 |
479741,2 | Use SPDX license identifiers | 6.5 | qt/qtlocation | Status: MERGED | +2 | 0 |
480172,2 | Use SPDX license identifiers | 6.5 | qt/qtvirtualkeyboard | Status: MERGED | +2 | 0 |
480782,2 | Use SPDX license identifiers | 6.5 | qt/qtsvg | Status: MERGED | +2 | 0 |
484448,6 | Use SPDX license identifiers | 6.6 | qt/qt5 | Status: MERGED | +2 | 0 |
484449,6 | Use SPDX license identifiers | 6.5 | qt/qt5 | Status: MERGED | +2 | 0 |
502161,3 | Update license header to SPDX format | dev | qt/qt5 | Status: MERGED | +2 | 0 |
524610,2 | Update license header to SPDX format | 6.7 | qt/qt5 | Status: MERGED | +2 | 0 |
524795,2 | Update license header to SPDX format | 6.6 | qt/qt5 | Status: MERGED | +2 | 0 |
524892,2 | Update license header to SPDX format | tqtc/lts-6.5 | qt/tqtc-qt5 | Status: MERGED | +2 | 0 |
524990,3 | Remove 'old' LICENSE files | dev | qt/qt5 | Status: MERGED | +2 | 0 |
526111,2 | Remove 'old' LICENSE files | 6.7 | qt/qt5 | Status: MERGED | +2 | 0 |
539290,2 | Remove 'old' LICENSE files | tqtc/lts-6.5 | qt/tqtc-qt5 | Status: MERGED | +2 | 0 |
566959,7 | Use SPDX license identifiers | dev | qt/tqtc-qmlcompilerplus | Status: MERGED | +2 | +1 |
576200,3 | Use SPDX license identifiers | dev | qt/qtdeviceutilities | Status: MERGED | +2 | +1 |
576892,2 | Use SPDX license identifiers | 6.8 | qt/qtdeviceutilities | Status: MERGED | +2 | 0 |
576893,2 | Use SPDX license identifiers | 6.8 | qt/tqtc-qmlcompilerplus | Status: MERGED | +2 | 0 |
583708,4 | Use SPDX license identifiers | tqtc/lts-6.5 | qt/tqtc-qmlcompilerplus | Status: MERGED | +2 | +1 |