From e343cbdfa52f5ff9b754e863830b08416e321ffd Mon Sep 17 00:00:00 2001 From: Sebastian Englbrecht Date: Thu, 21 May 2026 19:48:41 +0200 Subject: Add REUSE/SPDX compliance headers to all files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 scripty@kde.org, Weblate) are excluded from author lists. If more than 5 authors are found only a generic KDE Contributors was used. --- REUSE.toml | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 REUSE.toml (limited to 'REUSE.toml') 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 ", "2025 Jack Hill "] +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 ", "2026 Areeb Faisal "] +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" -- cgit v1.3.1