┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
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
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.
-rw-r--r--.flatpak-vlc-ignore-time-for-cache.patch.license3
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--CMakeLists.txt4
-rw-r--r--REUSE.toml84
-rw-r--r--cmake/DbusInterfaceMacros.cmake7
-rw-r--r--doc/CMakeLists.txt7
-rw-r--r--doc/index.docbook.license3
-rw-r--r--src/CMakeLists.txt4
-rwxr-xr-xsrc/Messages.sh9
-rw-r--r--src/itemactions/CMakeLists.txt4
-rw-r--r--src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt4
-rwxr-xr-xsrc/settings/contextmenu/servicemenuinstaller/Messages.sh6
-rw-r--r--src/settings/dolphin_update_splitviewsettings.cpp4
-rw-r--r--src/tests/CMakeLists.txt4
14 files changed, 147 insertions, 0 deletions
diff --git a/.flatpak-vlc-ignore-time-for-cache.patch.license b/.flatpak-vlc-ignore-time-for-cache.patch.license
new file mode 100644
index 000000000..a8d36b5aa
--- /dev/null
+++ b/.flatpak-vlc-ignore-time-for-cache.patch.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2025 Albert Astals Cid <[email protected]>
+
+SPDX-License-Identifier: CC0-1.0
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 86e90ac1b..a490d9488 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2020-2026 KDE Contributors
+#
+# SPDX-License-Identifier: CC0-1.0
+
include:
- project: sysadmin/ci-utilities
file:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d895088d3..b3e3eb053 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2006-2026 KDE Contributors
+#
+# SPDX-License-Identifier: CC0-1.0
+
cmake_minimum_required(VERSION 3.16)
# KDE Application Version, managed by release script
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"
diff --git a/cmake/DbusInterfaceMacros.cmake b/cmake/DbusInterfaceMacros.cmake
index e2e324602..64c934798 100644
--- a/cmake/DbusInterfaceMacros.cmake
+++ b/cmake/DbusInterfaceMacros.cmake
@@ -1,3 +1,10 @@
+# SPDX-FileCopyrightText: 2015 Ashish Bansal <[email protected]>
+# SPDX-FileCopyrightText: 2015 David Faure <[email protected]>
+# SPDX-FileCopyrightText: 2019 Elvis Angelaccio <[email protected]>
+# SPDX-FileCopyrightText: 2022 Laurent Montel <[email protected]>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
macro (generate_and_install_dbus_interface main_project_target header_file output_xml_file)
qt_generate_dbus_interface(
${header_file}
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 7527bbfa9..bef151595 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1,3 +1,10 @@
+# SPDX-FileCopyrightText: 2014 Christophe Giboudeaux <[email protected]>
+# SPDX-FileCopyrightText: 2015 Albert Astals Cid <[email protected]>
+# SPDX-FileCopyrightText: 2015 Montel Laurent <[email protected]>
+# SPDX-FileCopyrightText: 2021 Alex Richardson <[email protected]>
+# SPDX-FileCopyrightText: 2023 Dāvis Mosāns <[email protected]>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
if (KF6DocTools_FOUND)
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR dolphin)
diff --git a/doc/index.docbook.license b/doc/index.docbook.license
new file mode 100644
index 000000000..5d28a77d5
--- /dev/null
+++ b/doc/index.docbook.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2014-2024 KDE Contributors
+
+SPDX-License-Identifier: GPL-2.0-or-later
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a8769454b..1a195747a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2006-2026 KDE Contributors
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
include(ECMAddAppIcon)
set(ADMIN_WORKER_PACKAGE_NAME "kio-admin")
diff --git a/src/Messages.sh b/src/Messages.sh
index ec4333e7c..90fc08d4d 100755
--- a/src/Messages.sh
+++ b/src/Messages.sh
@@ -1,4 +1,13 @@
#! /usr/bin/env bash
+
+# SPDX-FileCopyrightText: 2006, 2010 Laurent Montel <[email protected]>
+# SPDX-FileCopyrightText: 2007 Albert Astals Cid <[email protected]>
+# SPDX-FileCopyrightText: 2007 Stephan Kulow <[email protected]>
+# SPDX-FileCopyrightText: 2007, 2008 Chusslove Illich <[email protected]>
+# SPDX-FileCopyrightText: 2019 Pino Toscano <[email protected]>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
$EXTRACTRC `find . -name \*.ui -o -name \*.rc -o -name \*.kcfg` >> rc.cpp
$XGETTEXT `find . -name \*.cpp \! -path '*/servicemenuinstaller/*'` -o $podir/dolphin.pot
rm -f rc.cpp
diff --git a/src/itemactions/CMakeLists.txt b/src/itemactions/CMakeLists.txt
index cd196eb36..8edcb28a8 100644
--- a/src/itemactions/CMakeLists.txt
+++ b/src/itemactions/CMakeLists.txt
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2025 Kostiantin Korchuhanov <[email protected]>
+# SPDX-FileCopyrightText: 2025 Méven Car <[email protected]>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
# movetonewfolderitemaction plugin
diff --git a/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt b/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt
index 606f2c5d0..5cfb0088c 100644
--- a/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt
+++ b/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2019-2023 KDE Contributors
+#
+# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+
remove_definitions(-DTRANSLATION_DOMAIN=\"dolphin\")
add_definitions(-DTRANSLATION_DOMAIN=\"dolphin_servicemenuinstaller\")
diff --git a/src/settings/contextmenu/servicemenuinstaller/Messages.sh b/src/settings/contextmenu/servicemenuinstaller/Messages.sh
index 5012eead6..326a8aa2d 100755
--- a/src/settings/contextmenu/servicemenuinstaller/Messages.sh
+++ b/src/settings/contextmenu/servicemenuinstaller/Messages.sh
@@ -1,2 +1,8 @@
#! /usr/bin/env bash
+
+# SPDX-FileCopyrightText: 2019 Alexander Potashev <[email protected]>
+# SPDX-FileCopyrightText: 2020 Duong Do Minh Chau <[email protected]>
+#
+# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+
$XGETTEXT `find . -name \*.cpp` -o $podir/dolphin_servicemenuinstaller.pot
diff --git a/src/settings/dolphin_update_splitviewsettings.cpp b/src/settings/dolphin_update_splitviewsettings.cpp
index 5ba905442..f208d3d2f 100644
--- a/src/settings/dolphin_update_splitviewsettings.cpp
+++ b/src/settings/dolphin_update_splitviewsettings.cpp
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 Rafał Lichwała <[email protected]>
+//
+// SPDX-License-Identifier: GPL-2.0-or-later
+
#include <KConfigGroup>
#include <KSharedConfig>
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index a694ec8fb..930a6f433 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2007-2025 KDE Contributors
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
find_package(Qt6Test CONFIG REQUIRED)