┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/REUSE.toml
diff options
context:
space:
mode:
authorSebastian Englbrecht <[email protected]>2026-05-21 19:48:41 +0200
committerMéven Car <[email protected]>2026-05-28 08:59:51 +0000
commite343cbdfa52f5ff9b754e863830b08416e321ffd (patch)
treeb651452775f0b72b3b999528abaf90b101067871 /REUSE.toml
parent680ccee08cfac2b53bb7bf7d35b780889efa4b51 (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.toml84
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"