diff options
| author | Sebastian Englbrecht <[email protected]> | 2026-05-21 19:48:41 +0200 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2026-05-28 08:59:51 +0000 |
| commit | e343cbdfa52f5ff9b754e863830b08416e321ffd (patch) | |
| tree | b651452775f0b72b3b999528abaf90b101067871 /REUSE.toml | |
| parent | 680ccee08cfac2b53bb7bf7d35b780889efa4b51 (diff) | |
Add REUSE/SPDX compliance headers to all files
Dolphin was missing copyright and license information on ~750 files,
which would cause the KDE CI job `gitlab-templates/reuse-lint.yml` to fail.
This commit makes the project fully compliant with REUSE Specification 3.3.
REUSE.toml is used for file categories that cannot carry inline comments
or are managed externally:
- po/**: covered with precedence=aggregate so the bulk declaration
combines with individual translators' existing inline headers
- **/*.kcfg, **/*.kcfgc: KConfigXT schema files, no comment syntax
- doc/*.png: documentation screenshots
- src/icons/*.png: application icons (LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL)
- src/**/*.{qrc,rc,desktop,xml,json,knsrc,upd,in}: resource and
metadata files without usable comment syntax
- .gitignore, .git-blame-ignore-revs: infrastructure, CC0-1.0
- logo.png: application artwork (LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL)
Inline SPDX headers are added to all source files that support comments
(C++, QML, CMake, shell scripts, Python). A small number of remaining
binary or single-purpose files retain individual .license sidecars.
License inference heuristic (applied per file, in order):
1. Existing inline SPDX-License-Identifier — reused as-is
2. Most common license among sibling files in the same directory
that already carry SPDX info, excluding infrastructure filenames
(.gitignore etc.) and requiring at least two qualifying neighbors
to prevent a single CC0 CI config from pulling source files along
3. Default: GPL-2.0-or-later
Copyright years and authors are sourced from `git log --follow` per
file. Automation accounts (l10n daemon [email protected], Weblate) are
excluded from author lists. If more than 5 authors are found only a
generic KDE Contributors was used.
Diffstat (limited to 'REUSE.toml')
| -rw-r--r-- | REUSE.toml | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 000000000..28658ff26 --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,84 @@ +version = 1 + +# Translation files — managed by KDE's l10n infrastructure. +# Individual translators are credited in the file headers where known. +# REUSE.toml provides a blanket declaration so no per-file .license sidecars are needed. +[[annotations]] +path = "po/**" +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Translators" +SPDX-License-Identifier = "GPL-2.0-or-later" + +# Application logo (artwork) — same license as other KDE app icons. +[[annotations]] +path = "logo.png" +precedence = "aggregate" +SPDX-FileCopyrightText = ["2020 Ilya Bizyaev <[email protected]>", "2025 Jack Hill <[email protected]>"] +SPDX-License-Identifier = "LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL" + +# KConfigXT schema and compiler-hint files — generated XML/ini, no comment syntax. +[[annotations]] +path = ["**/*.kcfg", "**/*.kcfgc"] +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "GPL-2.0-or-later" + +# Documentation screenshots — binary files, no comment syntax. +[[annotations]] +path = "doc/*.png" +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "GPL-2.0-or-later" + +# Application icons — binary files, no comment syntax. +[[annotations]] +path = "src/icons/*.png" +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL" + +# CMake template files — do not carry inline SPDX headers as they are used to +# generate source files (.h.cmake → .h, .cpp.in → .cpp) and # comments break +# the C preprocessor. +[[annotations]] +path = ["**/*.h.cmake", "**/*.cpp.in"] +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "GPL-2.0-or-later" + +# Source resource, UI definition, metadata, and configuration files — formats +# without usable inline comment syntax (.qrc, .rc, .ui, .xml, .desktop, .knsrc, +# .upd, .in, .json). +[[annotations]] +path = ["src/**/*.qrc", "src/**/*.rc", "src/**/*.desktop", "src/**/*.xml", "src/**/*.knsrc", "src/**/*.upd", "src/**/*.in", "src/**/*.json"] +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "GPL-2.0-or-later" + +# Project documentation — procedural/non-creative, public domain. +[[annotations]] +path = "README.md" +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "CC0-1.0" + +# Test documentation — MIT licensed per original authors. +[[annotations]] +path = "appiumtests/Readme.md" +precedence = "aggregate" +SPDX-FileCopyrightText = ["2024 Méven Car <[email protected]>", "2026 Areeb Faisal <[email protected]>"] +SPDX-License-Identifier = "MIT" + +# Developer-infrastructure and build configuration files without usable comment syntax. +# These contain no creative expression and are dedicated to the public domain. +[[annotations]] +path = [".gitignore", ".git-blame-ignore-revs", "*.json", ".flatpak-*", "*.cmake.in", "*.service.in"] +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "CC0-1.0" + +# Documentation — docbook format, no inline comment syntax. +[[annotations]] +path = "doc/*.docbook" +precedence = "aggregate" +SPDX-FileCopyrightText = "KDE Contributors" +SPDX-License-Identifier = "GPL-2.0-or-later" |
