<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://foundata.com/" xml:lang="de"><title>License auf foundata</title><id>https://foundata.com/de/tags/license/feed-atom.xml</id><link rel="self" type="application/atom+xml" hreflang="de" href="https://foundata.com/de/tags/license/feed-atom.xml" title="atom"/><link rel="alternate" type="text/html" hreflang="de" href="https://foundata.com/de/tags/license/" title="html"/><link rel="alternate" type="application/rss+xml" hreflang="de" href="https://foundata.com/de/tags/license/feed-rss.xml" title="rss"/><link rel="alternate" type="application/atom+xml" hreflang="en" href="https://foundata.com/en/tags/license/feed-atom.xml" title="atom, English"/><link rel="alternate" type="text/html" hreflang="en" href="https://foundata.com/en/tags/license/feed-atom.xml" title="html, English"/><link rel="alternate" type="application/rss+xml" hreflang="en" href="https://foundata.com/en/tags/license/feed-atom.xml" title="rss, English"/><updated>2025-06-18T10:10:00Z</updated><author><name>foundata GmbH</name><email>webmaster@foundata.com</email><uri>https://foundata.com/</uri></author><rights>© 2023-2026, foundata GmbH (https://foundata.com)</rights><icon>https://foundata.com/images/feed-icon.67ff83c698af1511552374e80cf5f6ff26d497ef21f04186cf058859d535ca75.svg</icon><logo>https://foundata.com/images/feed-logo.9138f24a120dabc7e3d34003662131cc9c7f2ff153ec39d2f6dea3a48c35b4bf.svg</logo><entry><title type="html">FSFE REUSE: Lizenz- und Quellenverwaltung für Software-Projekte. Eine Einführung für Open-Source-Entwickler, inklusive Tipps &amp; Tricks.</title><id>tag:foundata.com,2025-06-18:/de/blog/2025/fsfe-reuse-lizenzverwaltung-open-source-tipps-spdx-sbom/</id><published>2025-06-18T10:10:00Z</published><updated>2025-06-18T10:10:00Z</updated><link href="https://foundata.com/de/blog/2025/fsfe-reuse-lizenzverwaltung-open-source-tipps-spdx-sbom/?utm_source=feed-atom" rel="alternate" type="text/html"/><link href="https://foundata.com/en/blog/2025/fsfe-reuse-open-source-licensing-tips-tricks-spdx-sbom/?utm_source=feed-atom" rel="alternate" type="text/html" hreflang="en"/><link href="https://foundata.com/de/blog/2024/verwende-gpl-or-later/?utm_source=feed-atom" rel="related" type="text/html" title='Bitte verwende GPLv3 "or-later" statt "only"'/><link href="https://foundata.com/de/blog/2024/copyleft-open-source-lizenzen/?utm_source=feed-atom" rel="related" type="text/html" title="Nutze Copyleft-Lizenzen für Open Source oder Lebe mit den Konsequenzen"/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lslogins-lsmod/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: lslogins und lsmod"/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-lsof-lsblk/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: lsof und lsblk"/><link href="https://foundata.com/de/blog/2024/systemeinblicke-kommandozeile-dmidecode-lspci/?utm_source=feed-atom" rel="related" type="text/html" title="Systemeinblicke mit Kommandozeilentools: dmidecode und lspci"/><author><name>Andreas Haerter</name><uri>https://andreashaerter.com/</uri></author><summary type="html">Erfahre, wie die FSFE REUSE-Spezifikation dabei hilft, Lizenzen klar und präzise zu verwalten.</summary><content type="html" xml:base="https://foundata.com/"><![CDATA[<p><em>Hinweis: Dieser Artikel erschien vorab in <a href="https://fedoramagazine.org/beginners-guide-for-open-source-developers-for-software-licensing-with-fsfe-reuse/" target="_blank" rel="noreferrer noopener">in englischer Sprache im Fedora Magazin</a>.</em></p>
<p>Zwischen all den Aufgaben, mit denen Entwickler täglich zu tun haben, wird das Thema Software-Lizenzierung oft nur am Rande behandelt. Klar ist: Lizenzierung muss sein. Doch wenn es darum geht, die passende Lizenz auszuwählen, übernommenen Code korrekt zu kennzeichnen und alles konsistent zu halten, wird Lizenz-Management schnell zu einer bürokratischen Last.</p>
<p>Genau hier setzt das <a href="https://reuse.software/" target="_blank" rel="noreferrer noopener">REUSE-Projekt</a> an, welches von der <a href="https://fsfe.org/" target="_blank" rel="noreferrer noopener">Free Software Foundation Europe (FSFE)</a> betreut wird. Es versucht daheo nicht, die rechtliche Arbeit bei der Wahl einer Lizenz oder der Entschlüsselung von Verpflichtungen zu ersetzen. Stattdessen <strong>konzentriert sich REUSE auf die praktische Umsetzung von Lizenzierung</strong> – also darauf, <strong>wie sich Lizenzinformationen klar, eindeutig und verlässlich direkt im Code selbst kommunizieren lassen</strong>. Zahlreiche Projekte setzen bereits auf REUSE, darunter <a href="https://github.com/SAP/openui5/blob/master/REUSE.toml" target="_blank" rel="noreferrer noopener">SAP</a>, <a href="https://github.com/nextcloud/server/blob/cf1eed2769d928f4a7fe4543d51994331701f2d9/.reuse/dep5" target="_blank" rel="noreferrer noopener">Nextcloud</a> und viele Rollen und Collections aus der Ansible-Community.</p>
<p>Vor Kurzem bin ich selbst tief in das Thema Lizenzierung und Supply Chain eingetaucht. Ich musste herausfinden, wie sich REUSE auf <a href="https://github.com/foundata/" target="_blank" rel="noreferrer noopener">unsere Open-Source-Projekte</a> anwenden lässt und gleichzeitig anderen in unserem Team und bei Kunden erklären, wie es funktioniert. Das war eine spannende Doppelrolle: lernen und lehren zugleich. Daraus entstanden viele Erkenntnisse darüber, was an REUSE praktisch ist, wo es hakt, und wie es im Alltag hilft. Dieser Artikel möchte genau diese Erfahrungen weitergeben – als Ergänzung zu reinen Schnellstart-Anleitungen.</p>
<p>Wer Video lieber mag: Ich habe hierzu auch einen <a href="https://media.ccc.de/v/gpn23-268-fsfe-reuse-einfache-lizenz-und-quellenverwaltung-fr-software-projekte" target="_blank" rel="noreferrer noopener">REUSE-Vortrag auf der GPN23</a> gehalten (er enthält im wesentlichen den gleichen Inhalt wie der Text):</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
<iframe src="https://media.ccc.de/v/gpn23-268-fsfe-reuse-einfache-lizenz-und-quellenverwaltung-fr-software-projekte/oembed" frameborder="0" allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="Media CCC Video"></iframe>
</div>
<h2 id="warum-lizenzierung-sich-noch-immer-kaputt-anfühlt" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#warum-lizenzierung-sich-noch-immer-kaputt-anf%c3%bchlt" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="warum-lizenzierung-sich-noch-immer-kaputt-anfühlt">Warum Lizenzierung sich noch immer „kaputt“ anfühlt</a></h2><p>Wer schon einmal versucht hat, die Lizenzierung in einem Code-Repository mit Beiträgen aus verschiedensten Quellen nachzuvollziehen, oder Software zu paketieren und dabei auf widersprüchliche oder unklare Lizenzangaben gestoßen ist, kennt das Problem aus erster Hand. Es ist ein häufiger Schmerzpunkt.</p>
<p>Das Projekt beginnt. Eine <code>LICENSE</code>-Datei kommt ins Wurzelverzeichnis. Vielleicht ist es <a href="https://choosealicense.com/licenses/mit/" target="_blank" rel="noreferrer noopener">MIT</a>, vielleicht <a href="https://choosealicense.com/licenses/apache-2.0/" target="_blank" rel="noreferrer noopener">Apache 2.0</a>, vielleicht <a href="https://foundata.com/de/blog/2024/verwende-gpl-or-later/">GPLv3-or-later</a> lizensiert. Man denkt: Das reicht schon. Und tatsächlich erkennen Tools wie <a href="https://github.com/licensee/licensee" target="_blank" rel="noreferrer noopener">Licensee</a>, das auch GitHub verwendet, diese Datei und melden das Projekt als einheitlich lizenziert – basierend auf dem, was dort steht.</p>
<p>Aber das ist nur ein Teil des Ganzen.</p>
<p>Echte Projekte werden mit der Zeit chaotischer. Dateien stammen aus Pull Requests, Upstream-Forks, alten Backups oder fremden Repositories. Manchmal wird ein Skript von Stack Overflow eingefügt. Oder jemand kopiert die Ausgabe eines Codegenerators. Nach und nach wird das Repository zu einem Sammelsurium aus Dateien mit unklarer Herkunft. Die <code>LICENSE</code>-Datei im Root-Verzeichnis kann all das nicht mehr zuverlässig abdecken. Tools wie Licensee merken das nicht – und oft geht es dem Entwicklungsteam genauso.</p>
<p><strong>Fehlen klare Lizenzinformationen im Quellcode, wird es für andere schwierig, die Software weiterzuverwenden oder daran mitzuwirken.</strong> Leider können Tools zur <strong>automatischen Lizenz­erkennung keine rechtlich belastbare Sicherheit bieten</strong>. Sie arbeiten mit unscharfem Abgleich, Heuristiken und Annahmen wie: „ein Projekt, eine Lizenz“. Das reicht nicht, wenn es auf rechtliche Klarheit ankommt. Automatische Lizenzheuristiken sind kompliziert und werden niemals zuverlässige Ergebnisse für alle möglichen Anwendungsfälle liefern.</p>
<h2 id="fsfe-reuse-zur-rettung" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#fsfe-reuse-zur-rettung" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="fsfe-reuse-zur-rettung">FSFE REUSE zur Rettung</a></h2><p>Anstatt zu versuchen, Lizenzinformationen zu erraten oder herzuleiten, fordert REUSE Entwickler dazu auf, diese <strong>explizit</strong>, <strong>maschinenlesbar</strong> und <strong>überprüfbar</strong> bereitzustellen:</p>
<ol>
<li><strong><a href="https://reuse.software/spec-3.3/#license-files" target="_blank" rel="noreferrer noopener">Jede verwendete Lizenz muss als Textkopie im Verzeichnis <code>LICENSES/</code></a></strong><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> im Wurzelverzeichnis des Projekts abgelegt werden.</li>
<li><strong>Jede Datei im Projekt muss <a href="https://reuse.software/spec-3.3/#licensing-information" target="_blank" rel="noreferrer noopener">mit maschinenlesbaren Copyright- und Lizenzangaben versehen</a> sein.</strong></li>
</ol>
<p>Nochmals: Das ist wichtig. So lässt sich jede einzelne Datei im Repository sofort rechtlich einordnen – sei es durch ein Audit, beim Paketieren, durch Mitwirkende oder Compliance-Teams. Es braucht keine Vermutungen, keine Querverweise, kein „vielleicht ist das MIT, weil der Rest der Projekts ja auch MIT ist“. Alles ist <strong>klar</strong>, <strong>standardisiert</strong> und mit <a href="https://reuse.readthedocs.io/en/stable/man/reuse-lint.html" target="_blank" rel="noreferrer noopener"><code>reuse lint</code></a> auch <strong>automatisiert prüfbar</strong> – ideal für Projekte mit <a href="https://en.wikipedia.org/wiki/Continuous_integration" target="_blank" rel="noreferrer noopener">Continuous Integration</a>.</p>
<p>Nach dem REUSE-Standard können Lizenz- und Copyright-Informationen auf verschiedene Weise hinterlegt werden:</p>
<ul>
<li><strong><a href="https://reuse.software/spec-3.3/#comment-headers" target="_blank" rel="noreferrer noopener">Kommentarzeilen im Quellcode</a></strong> oder alternativ <strong><code>&lt;dateiname&gt;.license</code></strong> für Dateien, die keine Kommentare unterstützen.</li>
<li><strong><a href="https://reuse.software/spec-3.3/#reusetoml" target="_blank" rel="noreferrer noopener"><code>REUSE.toml</code></a></strong> – eine zentrale, maschinenlesbare Datei zur Beschreibung ganzer Dateien oder Verzeichnisse. Besonders hilfreich ist sie, um:
<ul>
<li>eine Standardlizenz für das gesamte Projekt festzulegen.</li>
<li>abweichende Lizenzen für Drittanbieter-Komponenten in Unterverzeichnissen zu definieren.</li>
</ul>
</li>
</ul>
<p>Die klar definierte <a href="https://reuse.software/spec/" target="_blank" rel="noreferrer noopener">REUSE-Spezifikation</a> wird dabei durch und ein schlankes <a href="https://github.com/fsfe/reuse-tool" target="_blank" rel="noreferrer noopener"><code>reuse</code>-Kommandozeilentool</a> unterstützt. Damit lässt sich der Standard mit weniger Aufwand einführen, auch wenn alles notfalls von Hand machbar ist. <a href="https://reuse.software/comparison/" target="_blank" rel="noreferrer noopener">REUSE fügt sich dabei gut ins bestehende Open-Source-Ökosystem ein</a>, unter anderem durch die Verwendung von <a href="https://spdx.dev/" target="_blank" rel="noreferrer noopener">Software Package Data Exchange (SPDX)</a> und <a href="https://github.com/david-a-wheeler/spdx-tutorial/blob/master/README.md#spdx-license-identifiers" target="_blank" rel="noreferrer noopener">SPDX-Lizenzkennungen</a>.</p>
<h2 id="verwendung" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#verwendung" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="verwendung">Verwendung</a></h2><p>Das <a href="https://reuse.software/tutorial/" target="_blank" rel="noreferrer noopener">offizielle REUSE-Tutorial</a> und der <a href="https://github.com/fsfe/reuse-tool#usage" target="_blank" rel="noreferrer noopener">Abschnitt zur Tool-Nutzung</a> sind wirklich gut gemacht – daher folgt hier nur ein kompakter Schnellstart:</p>
<ol>
<li>Die verwendeten Lizenzen ins Verzeichnis <code>LICENSES/</code> legen.</li>
<li>Einen Kommentar-Header in jede Datei einfügen, z. B.:
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">SPDX-License-Identifier: GPL-3.0-or-later
</span></span><span class="line"><span class="cl">SPDX-FileCopyrightText: $YEAR $NAME
</span></span></code></pre></div>Das Format ist dabei recht flexibel, solange die Zeilen mit <code>SPDX-License-Identifier:</code> und/oder <code>SPDX-FileCopyrightText:</code> beginnen. Es muss nicht an erster Stelle stehen und auch Leerzeilen sind möglich. Wichtig ist dennoch, dass es weit oben in einer Datei / in einem Header-Kommentar steht. Technisch ist es nicht notwendig, aber nur so kann ein Mensch diese wichtige Information direkt nach dem Öffnen einer Datei sehen.</li>
</ol>
<h3 id="kommentar-header" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#kommentar-header" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="kommentar-header">Kommentar-Header</a></h3><p><a href="https://github.com/fsfe/reuse-docs/issues/117#issuecomment-1306963966" target="_blank" rel="noreferrer noopener">REUSE</a> und viele Organisationen wie etwa <a href="https://www.gnu.org/licenses/gpl-howto.html.en#why-license-notices" target="_blank" rel="noreferrer noopener">GNU</a> empfehlen, Lizenz-Header direkt in den Quellcode zu schreiben. Das hilft, Missverständnisse und Fehler zu vermeiden. Auch wenn eine zentrale <code>REUSE.toml</code>-Datei vorhanden ist, kommt es vor, dass einzelne Dateien in andere Projekte kopiert oder geforkt werden – und dort fehlt dann womöglich der Kontext oder die Lizenzdokumentation.</p>
<p>Ohne einen Lizenzhinweisdirekt in der Datei kann beim Weiterverwenden daher schnell die rechtliche Zuordnung verloren gehen. Ein klarer Kommentar schützt davor, selbst in Projekten ohne perfektes Lizenzmanagement.</p>
<p>Beispiel für einen einfachen Lizenz-Header:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl"># SPDX-FileCopyrightText: Andreas Haerter, ACME Corp (https://example.com)
</span></span><span class="line"><span class="cl"># SPDX-License-Identifier: CC-BY-SA-4.0
</span></span></code></pre></div><p>Beispiel mit <a href="https://reuse.software/faq/#multi-licensing" target="_blank" rel="noreferrer noopener">Dual-Lizenzierung</a>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">/*
</span></span><span class="line"><span class="cl">  SPDX-FileCopyrightText: Jane Doe &lt;j.doe@example.com&gt;
</span></span><span class="line"><span class="cl">  SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
</span></span><span class="line"><span class="cl">*/
</span></span></code></pre></div><h3 id="reusetoml" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#reusetoml" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="reusetoml"><code>REUSE.toml</code></a></h3><p>Man könnte auch versucht sein, auf das Einfügen von Kommentar-Headern in jeder einzelnen Datei zu verzichten und stattdessen nur eine zentrale <code>REUSE.toml</code> zu verwenden – das ist legitim und <strong>bleibt REUSE-konform</strong>. Besonders bei vielen Dateien oder bei Drittanbieter-Code kann das deutlich praktischer sein, da man diese eventuell nicht verändern und stets als Kopie der originalen Quelle im Projekt haben will.</p>
<p>Mit einer <code>REUSE.toml</code> lassen sich auch <a href="https://reuse.software/faq/#bulk-license" target="_blank" rel="noreferrer noopener">ganze Verzeichnisse in einem Schritt lizenzieren</a>. Das Format der Datei ist <a href="https://reuse.software/spec-3.3/#reusetoml" target="_blank" rel="noreferrer noopener">klar definiert</a>, aber ein einfaches Beispiel zeigt am besten, wie es funktioniert:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">version</span> <span class="p">=</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-PackageName</span> <span class="p">=</span> <span class="s2">&#34;Foo bar project&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-PackageDownloadLocation</span> <span class="p">=</span> <span class="s2">&#34;https://git.example.com/foobar&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-PackageSupplier</span> <span class="p">=</span> <span class="s2">&#34;ACME Inc. (https://example.com)&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">annotations</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl"><span class="nx">path</span> <span class="p">=</span> <span class="s2">&#34;**&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">precedence</span> <span class="p">=</span> <span class="s2">&#34;closest&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileCopyrightText</span> <span class="p">=</span> <span class="s2">&#34;ACME Inc.&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-License-Identifier</span> <span class="p">=</span> <span class="s2">&#34;LGPL-2.1-or-later&#34;</span>
</span></span></code></pre></div><p>Damit wird das gesamte Projekt unter die angegebene Lizenz gestellt. Ausnahmen oder spezielle Regeln für bestimmte Dateien können natürlich ebenfalls über einzelne annotations ergänzt werden.</p>
<h3 id="überprüfung" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#%c3%bcberpr%c3%bcfung" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="überprüfung">Überprüfung</a></h3><p>Sobald alle Lizenzinformationen ergänzt wurden, lässt sich das Projekt ganz einfach mit <a href="https://reuse.readthedocs.io/en/stable/man/reuse-lint.html" target="_blank" rel="noreferrer noopener"><code>reuse lint</code></a> überprüfen:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">$ reuse lint
</span></span><span class="line"><span class="cl"><span class="o">[</span>...<span class="o">]</span>
</span></span><span class="line"><span class="cl">Congratulations! Your project is compliant with version 3.4 of the REUSE Specification :-<span class="o">)</span>
</span></span></code></pre></div><p>So bekommt man schnell Feedback, ob alles korrekt eingebunden wurde, ideal für automatisierte Tests oder <a href="https://en.wikipedia.org/wiki/Continuous_integration" target="_blank" rel="noreferrer noopener">Continuous Integration</a>-Workflows.</p>
<h2 id="demo" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#demo" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="demo">Demo</a></h2><p>Die FSFE erstellte einen kleinen Screencast<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, der dem <a href="https://reuse.software/tutorial" target="_blank" rel="noreferrer noopener">Tutorial</a> folgt und das <a href="https://github.com/fsfe/reuse-example/" target="_blank" rel="noreferrer noopener">REUSE-Beispiel-Repository</a> konform macht:</p>
<figure><img class="mx-auto my-0 rounded-xs" alt="REUSE-Tutorial: Screencast" src="./reuse-tool.gif" loading="lazy"></figure><h2 id="tipps-und-tricks" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#tipps-und-tricks" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="tipps-und-tricks">Tipps und Tricks</a></h2><h3 id="benötigtes-vokabular-beim-lernen-oder-lehren" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#ben%c3%b6tigtes-vokabular-beim-lernen-oder-lehren" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="benötigtes-vokabular-beim-lernen-oder-lehren">Benötigtes Vokabular beim Lernen oder Lehren</a></h3><p>Wer sich mit Lizenzierung und REUSE beschäftigt, egal ob beim Einstieg oder beim Erklären, stößt schnell auf Begriffe, die hilfreich (oder sogar notwendig) für das Verständnis sind:</p>
<ul>
<li><strong><a href="https://spdx.dev/" target="_blank" rel="noreferrer noopener">Software Package Data Exchange (SPDX)</a> und <a href="https://github.com/david-a-wheeler/spdx-tutorial/blob/master/README.md#spdx-license-identifiers" target="_blank" rel="noreferrer noopener">SPDX-Lizenz-Identifikatoren</a>:</strong> Ein Standard zur einheitlichen Bezeichnung von Lizenzen mit kurzen, konsistenten Kürzeln (wie <code>MIT</code> oder <code>GPL-3.0-only</code>). Das vereinfacht die automatische Auswertung und Dokumentation von Lizenzinformationen.</li>
<li><strong><a href="https://about.gitlab.com/blog/2022/10/25/the-ultimate-guide-to-sboms/#what-is-an-sbom%3F" target="_blank" rel="noreferrer noopener">Software Bill of Materials (SBOM)</a>:</strong> Eine strukturierte Auflistung aller Software-Komponenten und deren Lizenzen in einem Projekt. Hilft bei Transparenz, Sicherheit und rechtlicher Nachvollziehbarkeit.</li>
<li><strong><a href="https://en.wikipedia.org/wiki/Copyleft" target="_blank" rel="noreferrer noopener">Copyleft</a> (Lizenztyp):</strong> Ein Ansatz, der sicherstellt, dass abgeleitete Werke unter derselben Lizenz weitergegeben werden müssen. So bleiben Nutzungsfreiheiten erhalten. Ein bekanntes Beispiel ist die GPL.</li>
<li><strong>Permissive (Lizenztyp):</strong> Eine eher freizügige Lizenz, die eine Wiederverwendung des Codes mit nur wenigen Bedingungen erlaubt – auch in proprietären Projekten. Typische Beispiele sind MIT, BSD und Apache 2.0.</li>
<li><strong>TOML:</strong> Ein <a href="https://toml.io/en/v1.0.0" target="_blank" rel="noreferrer noopener">Dateiformat für Konfigurationen</a>. Die Datei <code>REUSE.toml</code> verwendet dieses Format, um Lizenzinformationen anhand von Pfadmustern zu beschreiben.</li>
<li><strong>DEP5:</strong> Eine ältere, maschinenlesbare <a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/" target="_blank" rel="noreferrer noopener">Debian-Formatvorlage</a> zur Lizenzdokumentation. <a href="https://reuse.software/faq/#dep5-history" target="_blank" rel="noreferrer noopener">Früher genutzt, bevor <code>REUSE.toml</code> eingeführt wurde</a>. DEP5 wird noch unterstützt, gilt aber als veraltet – wichtig zu wissen, falls man auf ältere Tutorials oder Tools trifft.</li>
</ul>
<h3 id="mein-persönliches-killer-feature-zusätzliche-kommentare-in-reusetoml" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#mein-pers%c3%b6nliches-killer-feature-zus%c3%a4tzliche-kommentare-in-reusetoml" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="mein-persönliches-killer-feature-zusätzliche-kommentare-in-reusetoml">Mein persönliches Killer-Feature: Zusätzliche Kommentare in <code>REUSE.toml</code></a></h3><p>Es mag nach einer Kleinigkeit klingen, aber für mich war es immer umständlich, die ursprünglichen Download-URLs und andere typische Informationen zu Drittanbieter-Dateien im Blick zu behalten (etwa „dieses kleine Icon, das ich mir da kopiert habe“). Aus meiner Sicht ist die <code>REUSE.toml</code>-Datei der ideale Ort, um solche Zusatzinformationen mit Hilfe von <code>SPDX-FileComment</code> abzulegen. So bleibt das Repository übersichtlich, und auch die Endbenutzer-Dokumentation wird nicht mit für den End-User unnötige Detauls überladen.</p>
<p>Gibt es einmal ein Beispiel dafür, wird das Pflegen solcher Quellvermerke und Hinweise meiner Erfahrung nach schnell zur guten Praxis – selbst in Teams, die ansonsten wenig formale Prozesse haben:</p>
<p><strong>Beispiel 1: <a href="https://github.com/foundata/chocolatey-usewindow.extension/blob/78f22260526a319e83e62456922bb482564f1e41/REUSE.toml#L22-L34" target="_blank" rel="noreferrer noopener"><code>REUSE.toml</code> mit Abschnitten, die die ursprünglichen Download-URLs tracken oder Notizen hinzufügen</a></strong></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[...]</span>
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">annotations</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl"><span class="nx">path</span> <span class="p">=</span> <span class="s2">&#34;assets/images/window.svg&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">precedence</span> <span class="p">=</span> <span class="s2">&#34;closest&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileCopyrightText</span> <span class="p">=</span> <span class="s2">&#34;2022 Refactoring UI Inc.&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-License-Identifier</span> <span class="p">=</span> <span class="s2">&#34;MIT&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileComment</span> <span class="p">=</span> <span class="s2">&#34;https://github.com/tailwindlabs/heroicons/blob/master/optimized/24/outline/window.svg&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">annotations</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl"><span class="nx">path</span> <span class="p">=</span> <span class="p">[</span><span class="s2">&#34;extensions/Find-WindowHandle.ps1&#34;</span><span class="p">,</span> <span class="s2">&#34;extensions/Helper.ps1&#34;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nx">precedence</span> <span class="p">=</span> <span class="s2">&#34;closest&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileCopyrightText</span> <span class="p">=</span> <span class="s2">&#34;2018 Grégoire Geis (https://github.com/71/Focus-Window/)&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-License-Identifier</span> <span class="p">=</span> <span class="s2">&#34;MIT&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileComment</span> <span class="p">=</span> <span class="s2">&#34;Slightly adapted for this project by foundata GmbH (https://foundata.com)&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">[...]</span>
</span></span></code></pre></div><p><strong>Beispiel 2:</strong> Die <a href="https://github.com/SAP/openui5/blob/7ff18ab1ded47570228b5fc6c3da1ad135d6bc3e/REUSE.toml#L539-L561" target="_blank" rel="noreferrer noopener">REUSE.toml von SAP/openui5</a>, die Dateimuster und Kommentare verwendet, um einzelne Komponenten und Dateien zu tracken, die von anderen Projekten kopiert wurden:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[...]</span>
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">annotations</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl"><span class="nx">path</span> <span class="p">=</span> <span class="s2">&#34;src/sap.ui.integration/test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/CfWorkerJsonSchemaValidator.js&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">precedence</span> <span class="p">=</span> <span class="s2">&#34;aggregate&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileCopyrightText</span> <span class="p">=</span> <span class="s2">&#34;2020 Jeremy Danyow&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-License-Identifier</span> <span class="p">=</span> <span class="s2">&#34;MIT&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileComment</span> <span class="p">=</span> <span class="s2">&#34;these files belong to: @cfworker/json-schema&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c"># Library: sap.ui.webc.common:</span>
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">annotations</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl"><span class="nx">path</span> <span class="p">=</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/**&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theming/**&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/**&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/**&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/**&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="s2">&#34;src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-business-suite/**&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nx">precedence</span> <span class="p">=</span> <span class="s2">&#34;aggregate&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileCopyrightText</span> <span class="p">=</span> <span class="s2">&#34;SAP&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-License-Identifier</span> <span class="p">=</span> <span class="s2">&#34;Apache-2.0&#34;</span>
</span></span><span class="line"><span class="cl"><span class="nx">SPDX-FileComment</span> <span class="p">=</span> <span class="s2">&#34;these files belong to: UI5 Web Components&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">[...]</span>
</span></span></code></pre></div><h3 id="readme-abschnitts-template-über-lizenzierung-und-copyright-für-menschen" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#readme-abschnitts-template-%c3%bcber-lizenzierung-und-copyright-f%c3%bcr-menschen" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="readme-abschnitts-template-über-lizenzierung-und-copyright-für-menschen"><code>README</code>-Abschnitts-Template über Lizenzierung und Copyright für Menschen</a></h3><p>Aus meiner Sicht ist es hilfreich, einen generischen, leicht anpassbaren Textbaustein für die <code>README.md</code> oder eine vergleichbare zentrale Datei zu haben. Also dem Ort, den Menschen in der Regel leicht finden und verstehen können. Ich habe dafür eine Textvorlage vorbereitet und im Einsatz, die die bereits vorhandenen REUSE-Informationen in einem Repository nutzt und auf dieser verweist. So bleibt der Abschnitt im Wesentlichen wartungsfrei und ist trotzdem nützlich:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">## Licensing, copyright
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">&lt;!--REUSE-IgnoreStart--&gt;
</span></span><span class="line"><span class="cl">Copyright (c) YYYY, ACME Inc.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">This project is licensed under the GNU General Public License v3.0 or later (SPDX-License-Identifier: `GPL-3.0-or-later`), see [`LICENSES/GPL-3.0-or-later.txt`](LICENSES/GPL-3.0-or-later.txt) for the full text.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">The [`REUSE.toml`](REUSE.toml) file provides detailed licensing and copyright information in a human- and machine-readable format. This includes parts that may be subject to different licensing or usage terms, such as third-party components. The repository conforms to the [REUSE specification](https://reuse.software/spec/). You can use [`reuse spdx`](https://reuse.readthedocs.io/en/latest/readme.html#cli) to create a [SPDX software bill of materials (SBOM)](https://en.wikipedia.org/wiki/Software_Package_Data_Exchange).
</span></span><span class="line"><span class="cl">&lt;!--REUSE-IgnoreEnd--&gt;
</span></span></code></pre></div><p><code>YYYY</code> sollte durch das Jahr der ersten Veröffentlichung oder des <a href="https://reuse.readthedocs.io/en/latest/scripts.html#starting-point-of-the-codebase" target="_blank" rel="noreferrer noopener">Code-Beitrags</a> ersetzt werden. Auch Lizenzname, Dateinamen und Links lassen sich je nach Projektbedarf anpassen. Die eingefügten HTML-Kommentare verhindern dabei REUSE-Linting-Fehler – etwa dann, wenn mehrere Lizenzen im Text genannt werden.</p>
<p>Die Formulierung verweist bereits auf die zentrale Lizenzdatei (<code>REUSE.toml</code>) und macht deutlich, dass einzelne Teile des Projekts unter anderen Lizenzbedingungen stehen können als der Hauptteil. Falls das nicht ausreicht, lässt sich der Satz zur Hauptlizenz natürlich gezielt anpassen – um die grundlegenden Lizenzierungsregeln hervorzuheben, ohne jedes Detail an mehreren Stellen pflegen zu müssen. Beispiele (nach Bedarf anpassen):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">The project is dual-licensed under the
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">* GNU General Public License v3.0 or later (SPDX-License-Identifier: `GPL-3.0-or-later`), see [`LICENSES/GPL-3.0-or-later.txt`](./LICENSES/GPL-3.0-or-later.txt) for the full text.
</span></span><span class="line"><span class="cl">* Apache License 2.0 (SPDX-License-Identifier: `Apache-2.0`), see [`LICENSES/Apache-2.0.txt`](./LICENSES/Apache-2.0.txt) for the full text.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">[... das übliche Template folgt ...]
</span></span></code></pre></div><h3 id="lizenzerkennung-auf-github-oder-gitlab" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#lizenzerkennung-auf-github-oder-gitlab" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="lizenzerkennung-auf-github-oder-gitlab">Lizenzerkennung auf Github oder Gitlab</a></h3><p>Beim Einsatz von REUSE fällt auf, dass Plattformen wie GitHub und GitLab nicht mehr in der Lage sind, die Lizenz eines Projekts automatisch korrekt zu erkennen.</p>
<p>Auch wenn automatische Lizenzdetektion (wie weiter oben beschrieben) grundsätzlich fehleranfällig und konzeptionell problematisch ist, bleibt nachvollziehbar, warum man trotzdem ein maschinenlesbares Ergebnis möchte. Schließlich wird bei Suchen oder in Projektübersichten oft nach Lizenzen gefiltert und fehlerhafte oder fehlende Metadaten können hier zu Nachteilen in der Auffinbarkeit führen, vor allem wenn suchende Benutzer wenig Erfahrung mit Lizenzierung haben.</p>
<p>Wenn solche automatischen Erkennungsmechanismen daher dennoch bedient werden sollen, kann man einfach die „freiheitsfreundlichste“ Lizenz (bzw. die Hauptlizenz des Projekts) <em>zusätzlich</em> in einer <code>LICENSE</code>- oder <code>COPYING</code>-Datei im Wurzelverzeichnis ablegen. Also <strong>ausschließlich zur Nutzung via Suchindizes und GitHub</strong>, unabhängig von der eigentlichen REUSE-Struktur:</p>
<ol>
<li><a href="https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository#detecting-a-license" target="_blank" rel="noreferrer noopener">GitHub verwendet Licensee</a>, um die Projektlizenz zu erkennen. <a href="https://github.com/licensee/licensee/issues/490" target="_blank" rel="noreferrer noopener">Licensee unterstützt die REUSE-Spezifikation jedoch nicht</a>.</li>
<li>Ein möglicher Workaround besteht darin, eine zusätzliche <code>LICENSE</code>- oder <code>COPYING</code>-Datei im Projekt-Root zu platzieren. Das ist laut <a href="https://reuse.software/faq/#tradition" target="_blank" rel="noreferrer noopener">REUSE-FAQ</a> auch vollkommen zulässig. Diese Dateien werden vom <a href="https://github.com/fsfe/reuse-tool/blob/0e111c423ccf927f73a9ae7b39d3f88268b015b9/src/reuse/__init__.py#L66-L77" target="_blank" rel="noreferrer noopener"><code>reuse</code>-Tool explizit ignoriert</a> und benötigen daher weder Kommentar-Header noch <code>.license</code>-Begleitdateien.</li>
<li>Wer eine Duplizierung des Lizenztextes vermeiden möchte, sollte beachten: <code>reuse lint</code> folgt Symlinks, ein symbolischer Link von <code>LICENSES/&lt;lizenz&gt;.txt</code> zur Root-Datei funktioniert also. Umgekehrt bringt ein deutlich sinnigerer Link von <code>LICENSE</code> auf <code>LICENSES/&lt;lizenz&gt;.txt</code> nichts, da <a href="https://github.com/licensee/licensee/pull/42" target="_blank" rel="noreferrer noopener">Licensee leider auch keine Symlinks unterstützt</a>. Daher empfehle ich eine echte <em>Kopie</em> der Lizenzdatei im Wurzelverzeichnis als aktuell zuverlässigsten Weg, um GitHubs Probleme bei der Lizenzanzeige zu umgehen.</li>
</ol>
<p>Aus meiner Sicht sollte dieser Workaround <em>nur</em> dann verwendet werden, wenn das gesamte Projekt unter einer einzigen Lizenz steht. Das vermeidet Missverständnisse und Konflikte – und in allen anderen Fällen lohnt es sich, GitHubs Einschränkungen einfach zu ignorieren.</p>
<h3 id="jahreszahlen-und--angaben-in-copyright-texten" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#jahreszahlen-und--angaben-in-copyright-texten" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="jahreszahlen-und--angaben-in-copyright-texten">Jahreszahlen und -angaben in Copyright-Texten</a></h3><p>Das ist zwar kein zentrales REUSE-Thema, aber mir ist aufgefallen, dass Jahreszahlen in Copyright-Angaben sehr oft Diskussionsthema werden, wenn REUSE in einem Projekt eingeführt wird. <a href="https://en.wikipedia.org/wiki/IANAL" target="_blank" rel="noreferrer noopener">IANAL</a>, aber rechtlich gesehen ist es in der Regel nicht <em>erforderlich</em>, das Copyright-Jahr regelmäßig zu aktualisieren oder überhaupt anzugehen (<a href="https://www.copyright.gov/circs/circ03.pdf" target="_blank" rel="noreferrer noopener">auch nicht aus US-Sicht</a>). Entscheidend ist eher die leichte Nachvollziehbarkeit des Jahrs der ersten Veröffentlichung oder des ersten Code-Beitrags.</p>
<p>Trotzdem ist es gängige Praxis, die Jahresangabe zu aktualisieren. Ich finde dies auch persönlich sinnvoll, da es gegenüber Dritten signalisiert, dass das Projekt aktiv gepflegt wird und auch die Kontaktdaten wahrscheinlich noch aktuell sind. Ich empfehle zur Aktualisierung die folgende pragmatische Vorgehensweise, die sich auch für andere Projekte gut eignet:</p>
<ul>
<li>Die Jahresangabe zwar stets aktuell halten, aber <strong>nur an zentraler Stelle</strong> wie in der <code>README.md</code>. So bleibt der Aufwand überschaubar.</li>
<li>Mehrere Jahre einfach durch Kommas getrennt auflisten oder bei aufeinanderfolgenden Jahren eine Zeitspanne angeben (<code>JahrX–JahrY</code>).</li>
<li>Beispiel:
<ul>
<li>Die erste Veröffentlichung und Copyright-Erklärung war <code>Copyright (c) 2013</code>.</li>
<li>Es gab Veröffentlichungen oder Updates in mehreren, aber nicht allen Jahren danach:
<ul>
<li>2023 → <code>Copyright (c) 2013, 2015, 2018-2021, 2023</code>.</li>
<li>2015 → <code>Copyright (c) 2013, 2015</code>.</li>
<li>2018 → <code>Copyright (c) 2013, 2015, 2018</code>.</li>
<li>2019 → <code>Copyright (c) 2013, 2015, 2018, 2019</code>.</li>
<li>2020 → <code>Copyright (c) 2013, 2015, 2018-2020</code>.</li>
<li>2021 → <code>Copyright (c) 2013, 2015, 2018-2021</code>.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="fazit" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#fazit" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="fazit">Fazit</a></h2><p>Lizenzklarheit ist eine grundlegende Voraussetzung für nachhaltige Zusammenarbeit im Open-Source-Bereich. Die REUSE-Spezifikation ersetzt dabei weder rechtliche Rahmenbedingungen noch die Entscheidung für eine bestimmte Lizenz. Sie sorgt aber dafür, dass das oft chaotische Lizenzmanagement <strong>vorhersehbar</strong>, <strong>klar</strong> und <strong>automatisierbar</strong> wird.</p>
<p>Gerade bei bestehenden Codebases kann sich die Einführung von REUSE zunächst nach zusätzlichem Aufwand anfühlen. Doch sobald alles eingerichtet ist, zahlt sich dieser Schritt aus: Das Projekt wird leichter verständlich, einfacher wartbar, besser paketierbar und tatsächlich besser &hellip; <strong>wiederverwendbar</strong> (REUSE it  🙂). REUSE hilft dabei, die rechtliche Struktur eines Projekts so zu beschreiben, dass Menschen und Maschinen gleichermaßen damit arbeiten können. Und genau das ist enorm viel wert.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Die Nutzung des <code>LICENSES/</code>-Verzeichnisses wird auch von den <a href="https://github.com/coreinfrastructure/best-practices-badge/blob/main/docs/criteria.md#license_location" target="_blank" rel="noreferrer noopener">CII Best Practices</a> empfohlen und ist z. B. im <a href="https://github.com/torvalds/linux/tree/master/LICENSES" target="_blank" rel="noreferrer noopener">Linux-Kernel</a> umgesetzt.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Quelle: <a href="https://download.fsfe.org/videos/reuse/screencasts/reuse-tool.gif" target="_blank" rel="noreferrer noopener">https://download.fsfe.org/videos/reuse/screencasts/reuse-tool.gif</a>, Copyright © 2001-2025 <a href="https://fsfe.org/" target="_blank" rel="noreferrer noopener">Free Software Foundation Europe</a>, Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content><category scheme="taxonomy:tags" term="open-source" label="open-source"/><category scheme="taxonomy:tags" term="license" label="license"/><category scheme="taxonomy:tags" term="toolbox" label="toolbox"/><category scheme="taxonomy:tags" term="fsfe" label="fsfe"/><category scheme="taxonomy:tags" term="reuse" label="reuse"/><category scheme="taxonomy:tags" term="compliance" label="compliance"/><category scheme="taxonomy:tags" term="spdx" label="spdx"/></entry><entry><title type="html">Bitte verwende GPLv3 “or-later” statt “only”</title><id>tag:foundata.com,2024-05-23:/de/blog/2024/verwende-gpl-or-later/</id><published>2024-05-23T00:25:00Z</published><updated>2024-05-23T00:25:00Z</updated><link href="https://foundata.com/de/blog/2024/verwende-gpl-or-later/?utm_source=feed-atom" rel="alternate" type="text/html"/><link href="https://foundata.com/en/blog/2024/use-gpl-or-later/?utm_source=feed-atom" rel="alternate" type="text/html" hreflang="en"/><link href="https://foundata.com/de/blog/2024/copyleft-open-source-lizenzen/?utm_source=feed-atom" rel="related" type="text/html" title="Nutze Copyleft-Lizenzen für Open Source oder Lebe mit den Konsequenzen"/><link href="https://foundata.com/de/blog/2024/aten-cv211-kvm-linux/?utm_source=feed-atom" rel="related" type="text/html" title="ATEN CV211 (all-in-one KVM-Adapter) unter Fedora Linux nutzen"/><author><name>Andreas Haerter</name><uri>https://andreashaerter.com/</uri></author><summary type="html">Ein Artikel über die Vorteile der "or later"-Klausel der GNU General Public License (GPL).</summary><content type="html" xml:base="https://foundata.com/"><![CDATA[<p><a href="https://foundata.com/de/blog/2024/copyleft-open-source-lizenzen/">Es ist sinnvoll, Copyleft-Lizenzen zu bevorzugen</a>. Die bekannteste Copyleft-Lizenz ist sicherlich die GNU General Public License (GPL), deren zur Zeit neuste Version 3 im Jahr 2007 veröffentlichte wurde. Wenn man die GPLv3 verwenden, muss man sich entscheiden, ob die &ldquo;<a href="https://spdx.org/licenses/GPL-3.0-or-later.html" target="_blank" rel="noreferrer noopener">GPL v3.0 or later</a>&rdquo;- oder die &ldquo;<a href="https://spdx.org/licenses/GPL-3.0-only.html" target="_blank" rel="noreferrer noopener">GPL v3.0 only</a>&quot;-Lizenzierung zum Einsatz kommt. Dies liegt an der <a href="https://www.gnu.org/licenses/gpl-3.0-standalone.html#section14" target="_blank" rel="noreferrer noopener">Klausel 14 &ldquo;Revised Versions of this License&rdquo; of the GPLv3</a>.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>Diese Klausel behandelt, wie zukünftige Versionen der Lizenz gehandhabt werden und besagt, dass die <a href="https://www.fsf.org/" target="_blank" rel="noreferrer noopener">Free Software Foundation (FSF)</a> neue Versionen der GPL veröffentlichen kann, <strong>die im Geiste der aktuellen Version ähnlich sein werden</strong>, aber Änderungen zur Bewältigung neuer rechtlicher und technologischer Fragen enthalten können. Dies <strong>stellt auch den Schutz freier Software vor möglichen Fehltritten der Free Software Foundation (FSF) <em>selbst</em> sicher</strong> da beispielsweise niemand eine gültige GPLv4 ohne <a href="https://de.wikipedia.org/wiki/Copyleft" target="_blank" rel="noreferrer noopener">Copyleft</a> erklären könnte. Es wird immer wieder argumentiert, dass die GPLv3 grundlegend anders ist als die GPLv2. Aber am Besten liest man sie einfach selbst, um festzustellen, dass die Vorwürfe unbegründet sind &ndash; sie ist im Geiste <em>tatsächlich</em> ähnlich. Wir für unseren Teil <a href="https://github.com/foundata/guidelines/blob/master/licensing-how-to-choose-a-license.md#licenses-to-choose-from" target="_blank" rel="noreferrer noopener">empfehlen</a> daher für unsere eigenen Projekte, die &ldquo;or later&rdquo;-Variante zu wählen.</p>
<h2 id="aus-fehlern-in-der-vergangenheit-lernen" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#aus-fehlern-in-der-vergangenheit-lernen" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="aus-fehlern-in-der-vergangenheit-lernen">Aus Fehlern in der Vergangenheit lernen</a></h2><p>Die Verwendung von GPL-2.0-only hat in der Vergangenheit erhebliche Kompatibilitätsprobleme mit anderen Lizenzen geschaffen, die die Integration und Verteilung kombinierter Werke behinderten. Beispielsweise ist Software, die unter GPL-2.0-only lizenziert ist, nicht mit der <a href="https://choosealicense.com/licenses/apache-2.0/" target="_blank" rel="noreferrer noopener"><code>Apache-2.0</code></a>-Lizenz kompatibel, was die Kombination von zahlreichen Code-Basen bis heute verhindert. Und einige Projekte mussten <a href="https://wiki.mercurial-scm.org/Relicensing" target="_blank" rel="noreferrer noopener">viel Zeit und Arbeit investieren, um die Lizenzierung zu ändern</a>, um eine bessere Lizenzkompatibilität zu erreichen und Integrationsbarrieren zu reduzieren. Diese Probleme können zu Fragmentierung und geringerer Flexibilität im Open-Source-Ökosystem führen.</p>
<p>Die GPLv2 hat gezeigt, dass diese Anpassungsfähigkeit notwendig sein kann, da das Festhalten an GPL-2.0-only keinen wesentlichen Nutzen brachte aber zu Kompatibilitätsproblemen führte. Daher ergibt es Sinn, wann immer möglich die &ldquo;or later&rdquo; Option zu wählen. Dieser Ansatz bewahrt nicht nur den Geist der Lizenz, sondern bietet auch eine Absicherung gegen potenzielle zukünftige Herausforderungen, ähnlich einem gut vorbereiteten Notfallplan.</p>
<h2 id="schlussfolgerung" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#schlussfolgerung" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="schlussfolgerung">Schlussfolgerung</a></h2><p>Die &ldquo;or later&rdquo;-Klausel der <code>GPL-3.0-or-later</code>-Lizenzierung ist wichtig, da sie die Weiterentwicklung der Lizenz ermöglicht, um mit sich ändernden Umständen Schritt halten zu können und fortlaufenden Schutz und Freiheit für Softwarebenutzer und -entwickler zu gewährleisten. Diese Klausel ist wie ein Sicherheitsnetz, das erlaubt, sich an zukünftige Änderungen in der rechtlichen und technologischen Landschaft anzupassen und eine Zusammenarbeit verschiedenster Parteien auch in Zukunft zu ermöglichen.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Dies gilt auch für <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html#section9" target="_blank" rel="noreferrer noopener">Klausel 9 der GPLv2</a>.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content><category scheme="taxonomy:tags" term="open-source" label="open-source"/><category scheme="taxonomy:tags" term="license" label="license"/><category scheme="taxonomy:tags" term="copyleft" label="copyleft"/><category scheme="taxonomy:tags" term="gpl" label="gpl"/></entry><entry><title type="html">Nutze Copyleft-Lizenzen für Open Source oder Lebe mit den Konsequenzen</title><id>tag:foundata.com,2024-05-16:/de/blog/2024/copyleft-open-source-lizenzen/</id><published>2024-05-16T15:26:00Z</published><updated>2024-05-16T15:26:00Z</updated><link href="https://foundata.com/de/blog/2024/copyleft-open-source-lizenzen/?utm_source=feed-atom" rel="alternate" type="text/html"/><link href="https://foundata.com/en/blog/2024/copyleft-open-source-licenses/?utm_source=feed-atom" rel="alternate" type="text/html" hreflang="en"/><author><name>Andreas Haerter</name><uri>https://andreashaerter.com/</uri></author><summary type="html">Ein Artikel über die Vorteile von Copyleft-Lizenzen und die Folgen, wenn man sich gegen ihre Verwendung für Open Source-Projekte entscheidet.</summary><content type="html" xml:base="https://foundata.com/"><![CDATA[<p>Eine gute Open-Source-Lizenz ermöglicht die Wiederverwendung von Quellcode, während das Urheberrecht gewahrt bleibt. Man sollte dabei jedoch auch <strong>über das sogenannte <a href="https://de.wikipedia.org/wiki/Copyleft" target="_blank" rel="noreferrer noopener">Copyleft</a> nachdenken</strong>, wenn man ein Open-Source-Projekt oder -Unternehmen startet.</p>
<p>Lizenzen wie die <a href="https://choosealicense.com/licenses/gpl-3.0/" target="_blank" rel="noreferrer noopener">General Public License (GPL)</a> sind in der Regel besser für das Open-Source-Ökosystem, als freizügigere Lizenzen wie <a href="https://choosealicense.com/licenses/apache-2.0/" target="_blank" rel="noreferrer noopener">Apache 2</a> oder <a href="https://choosealicense.com/licenses/mit/" target="_blank" rel="noreferrer noopener">MIT</a>. Eine Copyleft-Lizenz verlangt in der Regel, dass alle Änderungen oder abgeleitete Werke wieder geteilt werden, wodurch der Kreislauf von Nehmen und Geben gefördert wird. Verbesserungen kommen so der gesamten Gemeinschaft zugute, anstatt über die Lizenz eine <em>Ausnutzung</em> von Open-Source-Code ohne Gegenleistung zu ermöglichen (looking at you, <a href="https://de.wikipedia.org/wiki/Amazon_Web_Services" target="_blank" rel="noreferrer noopener">Amazon Web Services</a>).</p>
<h2 id="hyperwachstum--community" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#hyperwachstum--community" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="hyperwachstum--community">Hyperwachstum &lt; Community</a></h2><p>Lizenzen wie die <a href="https://choosealicense.com/licenses/agpl-3.0/" target="_blank" rel="noreferrer noopener">GNU Affero General Public License (AGPL)</a> halten manche Unternehmen davon ab, ein Open-Source-Projekt zu nutzen, da sie den Quellcode ihrer eigenen Änderungen daran nicht veröffentlichen wollen. Leider verbieten oftmals sogar Unternehmensrichtlinien die Nutzung von Copyleft-Projekten, selbst wenn niemand plant, etwas an der Software zu ändern. Besonders &ldquo;enterprizy&rdquo; Rechtsabteilungen großer Organisationen bevorzugen daher oftmals Software mit Lizenzen wie <a href="https://choosealicense.com/licenses/mit/" target="_blank" rel="noreferrer noopener">MIT</a>, um es sich einfach zu machen und vermeintliche Risiken zu vermeiden.</p>
<p>Im Hinblick auf <a href="https://arstechnica.com/information-technology/2019/10/is-the-software-world-taking-too-much-from-the-open-source-community/" target="_blank" rel="noreferrer noopener">Lizenzänderungen</a> entsteht der Eindruck, dass <strong>viele Start-ups Open Source nicht wegen der damit verbundenen Freiheit nutzen, sondern diese lediglich als Argument für die Akzeptanz in eben diesen genannten Unternehmensökosystemen</strong>. Sie vermeiden also, Lizenzen wie die (A)GPLv3 zu wählen, um die Unternehmensakzeptanz zu erhöhen. Währenddessen generieren sie zu wenige Einnahmen und bekommen auch keine Beiträge und Entwicklungen von Nutzern zurück. Auch nicht von denjenigen, die es sich definitiv leisten könnten, etwas beizutragen. Dies geht solang gut, wie das Projekt durch Risikokapital weiterfinanziert wird. Nachdem man über diesen Weg eine breite Verbreitung gefunden hat, beschwert man sich.</p>
<p>Während die Open-Source-Beiträge von Unternehmen wie <a href="https://de.wikipedia.org/wiki/HashiCorp" target="_blank" rel="noreferrer noopener">HashiCorp</a> beeindruckend sind, ist die Gesamtsituation komplex. Es gibt einen Grund, warum Linux unter der GPL immer noch existiert, stetig wächst und viele dennoch Geld damit verdienen, während die Unternehmen hinter weit verbreiteten Open-Source-Projekten oft <a href="https://www.tradingview.com/symbols/NASDAQ-HCP/financials-income-statement/net-income/" target="_blank" rel="noreferrer noopener">finanziell scheitern und riesige Geldmengen verbrennen</a>. Es lohnt sich gegebenenfalls für Einzelpersonen und Eigentümer für den Fall des <a href="https://www.theregister.com/2024/05/10/opinion_column_ibm_hashicorp/" target="_blank" rel="noreferrer noopener">Aufkaufs</a>, aber es schadet Nutzern und Ökosystemen, die sich auf etwas verlassen haben.</p>
<h2 id="dein-saas-wird-nicht-mit-aws-oder-einem-internen-it-team-konkurrieren-können" class="scroll-mt-20 md:scroll-mt-24 wrap-break-word group/heading "><a href="#dein-saas-wird-nicht-mit-aws-oder-einem-internen-it-team-konkurrieren-k%c3%b6nnen" class="group-hover/heading:after:content-['#'] group-hover/heading:after:ml-1.5 group-hover/heading:after:text-content-400" id="dein-saas-wird-nicht-mit-aws-oder-einem-internen-it-team-konkurrieren-können">Dein SaaS wird nicht mit AWS oder einem internen IT-Team konkurrieren können</a></h2><p>Man sollte nicht überrascht sein, wenn <strong>Lizenzen wie MIT große Unternehmen und Nutzer anziehen, denen das Projekt oder die Gemeinschaft dahinter egal sind</strong>. Das macht es später natürlich schwierig, eine faire Zusammenarbeit (einschließlich finanzieller Ressourcen) mit eben diesen zu finden. Setzt man stattdessen auf eine echte Copyleft-Lizenz und nimmt in Kauf, dass nicht jede Großorganisation damit umgehen kann, fällt der Fokus auf organisches Wachstum mit Menschen leichter, denen das Projekt am Herzen liegt.</p>
<p>Alternativ muss man auf die Konsequenz vorbereitet sein, dass Amazon oder andere Hyperscaler eine große Anzahl von Kunden anziehen, die das Projekt nutzen, ohne etwas zurückzugeben. Letztendlich halten diese sich einfach an die Regeln und signalisieren beispielsweise mit der MIT-Lizenz, dass dies &ldquo;schon in Ordnung&rdquo; ist.</p>
<p><strong>Wenn man diesen Weg dennoch beschreiten will, sollte man von Anfang an andere Einkommensquellen als reine Software-as-a-Service-Angebote etablieren.</strong> Man muss dabei realistisch sein: Mit dem eigenen SaaS-Produkt wird man gegen ein SaaS von Amazon oder anderen Hyperscalern – oder sogar mit dem gut ausgebildeten internen Betriebsteam einer Organisation – niemals dauerhaft konkurrieren können. Dienstleistungen, die Nutzer beim Betrieb im eigenen Haus unterstützen oder bezahlte Weiterentwicklung auch mit Open Source ermöglichen (z.B. Priorisierung von Features gegen Bezahlung), sind die bessere Wahl.</p>
]]></content><category scheme="taxonomy:tags" term="open-source" label="open-source"/><category scheme="taxonomy:tags" term="license" label="license"/><category scheme="taxonomy:tags" term="copyleft" label="copyleft"/></entry></feed>