Make module ready for source SBOM checking

This includes:
- turning VERIFY_SOURCE_SBOM ON
- adding rules to the licenseRule.json files
- correcting the licensing given via REUSE.toml files
- renaming license files not located in LICENSES folder.
Their name needs to be prefixed with `LICENSE.` to be ignored
by reuse and excluded from the source SBOM. The names are
updated in the corresponding qt_attribution.json

A lot of files are skipped during the license test,
but all are present in the source SBOM.
This is why corrections are needed before turning the
source SBOM check on.

[ChangeLog][Third-Party Code] Renamed certain license files outside of
LICENSES with `LICENSE.` prefix such that reuse will correctly ignore them.

Task-number: QTBUG-131434
Change-Id: I7dece901391b5ce77acf3c2eba28253d07348838
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit f507883c0a7801bf54ed647a98a649b7c0d02b81)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 0191fed2885d80cf381337a41519ee82712b1c81)
This commit is contained in:
Lucie Gérard
2025-03-13 16:04:05 +01:00
parent dfd7be2985
commit 16b59c7adb
7 changed files with 89 additions and 25 deletions
-22
View File
@@ -1,22 +0,0 @@
The Qt Company GPL Exception 1.0
Exception 1:
As a special exception you may create a larger work which contains the
output of this application and distribute that work under terms of your
choice, so long as the work is not otherwise derived from or based on
this application and so long as the work does not in itself generate
output that contains the output from this application in its original
or modified form.
Exception 2:
As a special exception, you have permission to combine this application
with Plugins licensed under the terms of your choice, to produce an
executable, and to copy and distribute the resulting executable under
the terms of your choice. However, the executable must be accompanied
by a prominent notice offering all users of the executable the entire
source code to this application, excluding the source code of the
independent modules, but including any changes you have made to this
application, under the terms of this license.
+56
View File
@@ -0,0 +1,56 @@
version = 1
[[annotations]]
path = ["src/plugins/**"]
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"
[[annotations]]
path = ["tests/**.svg*", "tests/**.png", "tests/**.jpg", "tests/**.txt",
"tests/auto/qicon_svg/icons/testtheme/index.theme",
"tests/global/global.cfg"]
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GPL-3.0-only"
[[annotations]]
path = ["**.pro", "**.qrc", "**CMakeLists.txt", ".cmake.conf", "**.yaml",
"**.cfg"]
precedence = "closest"
comment = "build system"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "BSD-3-Clause"
[[annotations]]
path = [".tag", "**/.gitattributes", "**.gitignore", "**/ci_config_linux.json"]
precedence = "closest"
comment = "not sure at all"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "BSD-3-Clause"
[[annotations]]
path = ["examples/**", "tests/manual/examples/**"]
comment = "this must be after the build system table because example and snippets take precedence over build system"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR BSD-3-Clause"
[[annotations]]
path = ["doc/src/images/**", "**/README*", "**.qdocconf"]
comment = "documentation"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
[[annotations]]
path = ["**.toml", "licenseRule.json"]
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
[[annotations]]
path = ["**/qt_attribution.json"]
precedence = "override"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
+3
View File
@@ -7,6 +7,9 @@ accept_configuration:
instructions:
Build:
- type: EnvironmentVariable
variableName: VERIFY_SOURCE_SBOM
variableValue: "ON"
- !include "{{qt/qtbase}}/coin_module_build_template_v2.yaml"
Test:
+8
View File
@@ -0,0 +1,8 @@
version = 1
[[annotations]]
path = ["*"]
precedence = "override"
comment = "Licensed as documentation."
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"
+21 -2
View File
@@ -10,7 +10,9 @@
"Files with other endings can also be build system files"
],
"file_pattern_ending" : ["CMakeLists.txt", ".cmake", ".pro", ".pri", ".prf",
"configure", "configure.bat", "cmake.in", "plist.in", "CMakeLists.txt.in"],
"configure", "configure.bat", "cmake.in", "plist.in", "CMakeLists.txt.in",
".cmake.conf", ".gitattributes", ".gitignore", ".tag", "ci_config_linux.json",
".yaml", ".qrc", ".cfg"],
"location" : {
"" : {
"comment" : "Default",
@@ -44,7 +46,8 @@
},
{
"comment" : "Files with the following endings are Documentation licensed.",
"file_pattern_ending" : [".qdoc", ".qdocinc" , ".qdocconf", ".txt", "README", "qt_attribution.json"],
"file_pattern_ending" : [".qdoc", ".qdocinc" , ".qdocconf", "README", "qt_attribution.json",
"REUSE.toml", "licenseRule.json", "README.txt"],
"location" :{
"" : {
"comment" : "",
@@ -64,6 +67,11 @@
"file type" : "module and plugin",
"spdx" : ["LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"]
},
"dist/" : {
"comment" : "Default",
"file type" : "documentation",
"spdx" : ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"]
},
"src/" : {
"comment" : "Default",
"file type" : "module and plugin",
@@ -78,6 +86,17 @@
"comment" : "Default",
"file type" : "examples and snippets",
"spdx" : ["LicenseRef-Qt-Commercial OR BSD-3-Clause"]
},
"doc/src/images/" : {
"comment" : "Default",
"file type" : "documentation",
"spdx" : ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"]
},
"src/svg/qsvghandler.cpp" : {
"comment" : "The license from REUSE.toml can't be seen when checking license headers",
"file type" : "3rd party mix",
"spdx" : ["LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only AND HPND-sell-variant",
"LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"]
}
}
}
+1 -1
View File
@@ -8,6 +8,6 @@
"Description": "Some code for arc handling is derived from code from the XSVG project.",
"License": "Historical Permission Notice and Disclaimer - sell variant",
"LicenseId": "HPND-sell-variant",
"LicenseFile": "XSVG_LICENSE.txt",
"LicenseFile": "LICENSE.XSVG.txt",
"Copyright": "Copyright 2002 USC/Information Sciences Institute"
}