Ratgeber · 04

Dual Licensing (Mehrfachlizenzierung)

Die zwei Arten des Dual Licensing (mehrere Lizenzen für denselben Code), die Bedeutung der SPDX-Ausdrücke OR, AND und WITH, warum ein CLA nötig ist und worauf man achten sollte.

Zuletzt geprüft: 2026-09-23

Warum ein Code mehrere Lizenzen erhält

Ein Rechteinhaber kann denselben Code gleichzeitig unter mehreren Bedingungen lizenzieren. Empfänger wählen eine davon und halten deren Bedingungen ein. Dafür gibt es im Wesentlichen zwei Gründe.

  1. Breitere Kompatibilität — damit der Code in unterschiedliche Ökosysteme passt.
  2. Geschäftsmodell — um den Code als Open Source zu veröffentlichen und zugleich separate kommerzielle Lizenzen zu verkaufen.

Typ 1: zwei freizügige Lizenzen zusammen — MIT OR Apache-2.0

So machen es die Sprache Rust und die meisten Rust-Crates. Nutzer wählen, was ihnen besser passt: MIT oder Apache-2.0.

Man bekommt also beide Vorteile – deshalb ist das Modell bei Bibliotheksautoren beliebt. Üblicherweise liegen im Repository zwei Dateien: LICENSE-MIT und LICENSE-APACHE.

Typ 2: Copyleft + kommerziell — „GPL oder bezahlen“

Der Code wird unter GPL oder AGPL veröffentlicht, und Unternehmen, die keine Offenlegungspflicht übernehmen wollen, wird per separatem Vertrag eine kommerzielle Lizenz verkauft. Bekannte Beispiele sind MySQL (GPL + kommerzielle Lizenz von Oracle) und Qt (LGPL-3.0/GPL + kommerziell).

Das Modell funktioniert nur, wenn der Rechteinhaber die Rechte am gesamten Code besitzt. Code, den externe Beitragende nur unter der GPL beigesteuert haben, darf der Rechteinhaber nicht unter einer kommerziellen Lizenz verkaufen.

CLA und DCO

Schreibweise mit SPDX-Ausdrücken

Das Verhältnis mehrerer Lizenzen wird mit SPDX-Lizenzausdrücken angegeben.

AusdruckBedeutungBeispiel
A OR BEine der beiden wählen und befolgen (Wahl-Dual)MIT OR Apache-2.0
A AND BBeide befolgen (verschiedene Teile gemischt)MIT AND BSD-3-Clause
A WITH AusnahmeEiner Lizenz eine Ausnahmeklausel hinzufügenGPL-2.0-only WITH Linux-syscall-note
KlammernReihenfolge der Verknüpfung festlegen(MIT OR Apache-2.0) AND Unicode-3.0

Wer OR und AND verwechselt, drückt das Gegenteil aus. Dürfen Nutzer wählen, heißt es OR; müssen alle eingehalten werden, heißt es AND.

Worauf man achten sollte

Beispiel

Für ein Dual Licensing im Rust-Stil laden Sie im Generator die MIT- und die Apache-2.0-Datei herunter, speichern sie als LICENSE-MIT und LICENSE-APACHE und tragen in die Metadaten license = "MIT OR Apache-2.0" ein. In jeden Dateikopf schreiben Sie SPDX-License-Identifier: MIT OR Apache-2.0.

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

Quellen