Ratgeber · 05

SPDX-Kennungen und Dateiköpfe

So schreiben Sie die Köpfe SPDX-License-Identifier und SPDX-FileCopyrightText, veraltete Kennungen (GPL-2.0 → GPL-2.0-only), das license-Feld in Paketmetadaten und die REUSE-Spezifikation.

Zuletzt geprüft: 2026-09-23

Was ist SPDX?

SPDX (Software Package Data Exchange) ist ein Projekt unter dem Dach der Linux Foundation und ein Standard, um Komponenten und Lizenzinformationen von Software maschinenlesbar darzustellen. 2021 wurde er als ISO/IEC 5962:2021 internationaler Standard. Am weitesten verbreitet sind die Kurzkennungen der SPDX-Lizenzliste: die Vereinbarung, statt uneinheitlicher Namen wie „MIT License“, „The MIT license“ oder „MIT-Lizenz“ einfach MIT zu schreiben.

Zwei Zeilen im Dateikopf

Stehen die folgenden zwei Zeilen als Kommentar am Anfang einer Quelldatei, erkennen Menschen und Werkzeuge sofort Rechteinhaber und Lizenz der Datei.

// SPDX-FileCopyrightText: 2026 Jane Doe <jane@example.com>
// SPDX-License-Identifier: MIT

Der Generator-Tab „Dateikopf“ erzeugt diese zwei Zeilen in sieben Kommentarstilen.

Vorsicht bei veralteten Kennungen

Seit Version 3.0 der SPDX-Lizenzliste (Dezember 2017) muss die Versionsklausel von GNU-Lizenzen in der Kennung erkennbar sein.

Veraltete KennungAktuelle Kennung
GPL-2.0GPL-2.0-only
GPL-2.0+GPL-2.0-or-later
GPL-3.0GPL-3.0-only
LGPL-2.1LGPL-2.1-only
AGPL-3.0AGPL-3.0-only

Schreibt man nur GPL-3.0, ist nicht erkennbar, ob „only“ oder „or later“ gemeint ist. Den Unterschied erklärt only vs. or-later.

Paketmetadaten

Die meisten Paketmanager akzeptieren SPDX-Kennungen oder -Ausdrücke.

ÖkosystemDateiBeispiel
npmpackage.json"license": "MIT" · proprietär: "UNLICENSED"
RustCargo.tomllicense = "MIT OR Apache-2.0"
Pythonpyproject.tomllicense = "Apache-2.0" (PEP 639)
Mavenpom.xmlName und URL innerhalb von <licenses>

UNLICENSED in npm bedeutet etwas völlig anderes als „Unlicense“: Es kennzeichnet ein proprietäres Paket, dessen Nutzung nicht erlaubt ist. Wegen der ähnlichen Schreibweise kommt es oft zu Verwechslungen.

REUSE: das ganze Repository maschinenlesbar

Die REUSE-Spezifikation der Free Software Foundation Europe (FSFE) legt fest, wie SPDX-Köpfe einheitlich im gesamten Repository angewendet werden.

  1. Alle Lizenztexte liegen im Ordner LICENSES/ unter dem Namen SPDX-Kennung.txt (z. B. LICENSES/MIT.txt).
  2. Jede Datei erhält SPDX-FileCopyrightText und SPDX-License-Identifier.
  3. Für Dateien ohne Kommentarmöglichkeit (Bilder, JSON usw.) werden die Angaben in einer Begleitdatei Dateiname.license oder in REUSE.toml im Stammverzeichnis gemacht.
  4. Mit dem Werkzeug reuse lint prüfen Sie, ob Dateien fehlen.

Praxistipps

Dieser Artikel enthält allgemeine Informationen und ist keine Rechtsberatung. Besprechen Sie wichtige Entscheidungen mit Fachleuten.

Quellen