aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-23 08:32:31 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-23 08:32:31 +0200
commitd10ce7c1fb2a1d60e4fcccbf93f2629e96ab63ff (patch)
tree9b5df8df867116292d591d646d1ea9afb58ee557
parent279fca69b86889387fc4c16512fef38bae04b7ce (diff)
Die Lizenzaussage lautet überall gleich und wird geprüft
Das Impressum sprach von der „Version 3“ ohne Nachfolgeklausel, der Fußzeilenverweis der Startseite von „AGPLv3“, die „pom.xml“ von gar nichts. Drei Stellen, drei Genauigkeitsgrade — und in der Auszeichnung, die soeben entstanden ist, steht „AGPL-3.0-or-later“. Eine Lizenz, die je nach Fundstelle anders lautet, ist keine gewählte, sondern eine offengelassene. Sie lautet fortan überall auf die Version 3 oder, nach Wahl des Empfängers, eine spätere Fassung: im Impressum ausgeschrieben, im Fußzeilenverweis kurz, in der „pom.xml“ als „licenses“-Block mit Verweis auf den Wortlaut im Quelltext. Das Handbuch erhält einen Abschnitt „Lizenz“, der die drei vorkommenden Lizenzen nennt, die Sonderstellung des Prüfbestandes erklärt und den Prüfbefehl angibt. Geprüft wird zweifach. Der Lauf von „spotless:check“ ist an die Phase „verify“ gebunden und hält den Bau an, sobald eine Quelldatei ohne Kopfzeile oder ohne die vereinbarte Formatierung hinzukommt — die Kopfzeilen sind damit nicht bloß gesetzt, sondern gehalten. Für alles Übrige gilt „uvx reuse lint“; ein Fortlaufwerk gibt es in diesem Repositorium nicht, weshalb der Befehl im Handbuch steht und nicht in einer Baueinstellung. Die Prüfung meldet Konformität mit der Fassung 3.3 der Spezifikation: einhundertvierundfünfzig von einhundertvierundfünfzig Dateien tragen Urheber- und Lizenzangabe, keine Lizenz bleibt ungenutzt, keine fehlt. Der Bau läuft samt der nunmehr scharfen Formatprüfung durch, dreihundertfünfundzwanzig Testfälle bestehen. Das ausgelieferte Quelltextarchiv ist von sich aus konform, denn „.gitattributes“ nimmt den Prüfbestand von ihm aus. „FASSUNGEN.txt“ führt die Fassung vom 23. August 2026. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Change-Id: Ief8a247b359ed34d8598fbc76f6d86a84575b094
-rw-r--r--FASSUNGEN.txt122
-rw-r--r--README.adoc42
-rw-r--r--pom.xml20
-rw-r--r--src/main/resources/eu/mulk/aendggner/web/impressum.html7
-rw-r--r--src/main/resources/eu/mulk/aendggner/web/index.html4
5 files changed, 192 insertions, 3 deletions
diff --git a/FASSUNGEN.txt b/FASSUNGEN.txt
index bf9cff3..0e4879d 100644
--- a/FASSUNGEN.txt
+++ b/FASSUNGEN.txt
@@ -21,6 +21,128 @@ Vorbemerkung zur Führung dieses Verzeichnisses
════════════════════════════════════════════════════════════════════════════════
+ Fassung vom 23. August 2026,
+ zuletzt geändert durch die am 23. August 2026 vorgenommenen Änderungen
+════════════════════════════════════════════════════════════════════════════════
+
+Das Erzeugnis steht seit seinem ersten Tage unter der GNU Affero General Public
+License; ausgesprochen war das indes nur an drei verstreuten Stellen — im
+Lizenzvolltext „COPYING“, in einem Satz des Impressums und in einer Bemerkung der
+Datei „.gitattributes“. Keine einzige Quelldatei nannte ihren Urheber oder ihre
+Lizenz. Wer eine Datei für sich betrachtete — und so betrachtet sie jeder, der
+sie übernimmt —, fand daran nichts.
+
+Erschwerend tritt die Eigenart dieses Erzeugnisses hinzu: Sein Prüfbestand
+besteht aus fünfundvierzig PDF-Dateien, fünf EPUB-Dateien und den XML-Fassungen
+fremder Werke, nämlich der Gesetzblätter, Drucksachen und Entwürfe des Bundes und
+der Länder. Deren Rechtsstellung — gemeinfrei nach § 5 UrhG, gleichwohl gebunden
+an Änderungsverbot und Quellenangabe nach §§ 62 und 63 UrhG — war bislang nur
+menschenlesbar in den „SOURCES“-Dateien niedergelegt. Sie ist nunmehr auch
+maschinenlesbar erfasst, und zwar nach Herkunft geschieden.
+
+Maßstab ist die REUSE-Spezifikation in der Fassung 3.3.
+
+
+Artikel 1
+Lizenzbezeichnung
+
+(1) Der eigene Quelltext steht fortan unter „AGPL-3.0-or-later“, also unter der
+ Version 3 der Lizenz oder, nach Wahl des Empfängers, einer späteren Fassung.
+ Bislang sprach das Impressum von der „Version 3“ ohne Nachfolgeklausel.
+
+(2) Die Angabe ist an allen Stellen dieselbe: im Impressum, im Fußzeilenverweis
+ der Startseite, in einem neu aufgenommenen „licenses“-Block der „pom.xml“ und
+ im Abschnitt „Lizenz“ des Handbuchs.
+
+
+Artikel 2
+Verzeichnis der Lizenztexte
+
+(1) Das Verzeichnis „LICENSES“ nimmt die Wortlaute auf: „AGPL-3.0-or-later.txt“,
+ „Apache-2.0.txt“ für den unverändert mitgelieferten Maven-Wrapper und
+ „LicenseRef-AmtlichesWerk.txt“.
+
+(2) „COPYING“ bleibt an seiner Stelle, tritt aber als symbolische Verknüpfung
+ auf. Der gewohnte Pfad trägt damit fort, ohne dass zwei Wortlaute
+ nebeneinander zu pflegen wären; die Prüfung übergeht Verknüpfungen, sodass
+ für den Lizenztext selbst keine sachfremde Lizenzangabe zu erfinden war.
+
+
+Artikel 3
+Amtliche Werke
+
+(1) „LICENSES/LicenseRef-AmtlichesWerk.txt“ bezeichnet keine erteilte Lizenz,
+ sondern hält die gesetzliche Rechtslage fest: die Gemeinfreiheit nach § 5
+ Abs. 1 UrhG für Verkündungsblätter, Drucksachen und Plenarprotokolle, nach
+ § 5 Abs. 2 UrhG für ministerielle Entwürfe und Synopsen, ferner das
+ fortbestehende Änderungsverbot und Gebot der Quellenangabe.
+
+(2) Ausdrücklich festgehalten ist, dass die technische Aufbereitung durch die
+ Rechtsportale kein eigenes Recht am Text begründet und dass der Prüfbestand
+ kein „Corresponding Source“ im Sinne der AGPL ist.
+
+(3) Maßgeblich für die Fundstelle der einzelnen Datei bleibt die Datei „SOURCES“
+ des jeweiligen Verzeichnisses; die Lizenzdatei nimmt sie in Bezug.
+
+
+Artikel 4
+Zuordnung im Einzelnen
+
+(1) Dateien mit Kommentarsyntax tragen ihre Angabe in sich: zwei Zeilen
+ „SPDX-FileCopyrightText“ und „SPDX-License-Identifier“ im jeweils üblichen
+ Stil, vor dem vorhandenen erläuternden Kommentar und ohne diesen anzutasten.
+ Bei „index.html“ und den übrigen Seiten steht sie hinter der Typangabe, bei
+ „webpaket.sh“ und „cloudflare.sh“ hinter der Aufrufzeile, bei den
+ AsciiDoc-Dateien innerhalb des Dokumentenkopfes.
+
+(2) Für Binärdateien, für JSON und für reinen Text ordnet „REUSE.toml“ zu. Der
+ Prüfbestand ist darin nach Herkunft geschieden: Bund (Verkündung und
+ Parlament), Bund (ministerielle Entwürfe), gesetze-im-internet.de nebst der
+ Aufbereitung durch die juris GmbH, sodann neun Länder je einzeln.
+
+(3) Die selbst abgeleiteten Textfassungen („*-alt.txt“) tragen „AGPL-3.0-or-later
+ AND LicenseRef-AmtlichesWerk“: Der Wortlaut ist amtlich, die Aufbereitung —
+ Einrückung, Superskript-Satznummern, Gliederungsüberschriften — eigene
+ Arbeit.
+
+(4) „mini-gii.xml“ und „.mvn/maven.config“ erhalten bewusst keine Kopfzeile,
+ sondern einen Eintrag in „REUSE.toml“: Ersteres liest der GiiXmlLoader,
+ Letzteres Maven vor jedem Bau, und beide sollen von der Auszeichnung
+ unberührt bleiben.
+
+
+Artikel 5
+Fortdauernde Prüfung
+
+(1) Spotless pflegt die Kopfzeilen der Java-Dateien („licenseHeader“). Der Lauf
+ von „spotless:check“ ist an die Phase „verify“ gebunden und hält den Bau an,
+ sobald eine Quelldatei ohne Kopfzeile oder ohne die vereinbarte Formatierung
+ hinzukommt.
+
+(2) Dabei hat sich ergeben, dass „src/wasm/java“ der Formatprüfung bislang
+ verborgen war: Das Verzeichnis tritt dem Quellbaum erst im Profil „wasm“ bei.
+ Die Quellverzeichnisse sind nunmehr ausdrücklich benannt; die beiden
+ Wasm-Klassen sind erstmals umformatiert worden.
+
+(3) Ein Ausrollwerkzeug hinterließ mit „.wrangler“ ein Zwischenverzeichnis im
+ Arbeitsbaum; es ist fortan übergangen.
+
+
+Artikel 6
+Nachweis
+
+(1) Die Prüfung meldet Konformität mit der Fassung 3.3 der Spezifikation:
+ einhundertvierundfünfzig von einhundertvierundfünfzig Dateien tragen Urheber-
+ und Lizenzangabe, keine Lizenz bleibt ungenutzt, keine fehlt.
+
+(2) Dreihundertfünfundzwanzig Testfälle bestehen unverändert; am Verhalten des
+ Erzeugnisses ändert sich nichts.
+
+(3) Das ausgelieferte Quelltextarchiv ist von sich aus konform, denn
+ „.gitattributes“ nimmt den Prüfbestand von ihm aus.
+
+
+════════════════════════════════════════════════════════════════════════════════
Fassung vom 22. August 2026,
zuletzt geändert durch die am 22. August 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
diff --git a/README.adoc b/README.adoc
index a5ae13e..36c3aef 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,5 +1,7 @@
= ÄndGgner -- Nichtamtliche Zentralstelle für die maschinelle Fortschreibung von Stammgesetzen anhand von Änderungsvorschriften des Bundes und der Länder
Matthias Andreas Benkard
+// SPDX-FileCopyrightText: 2020 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
+// SPDX-License-Identifier: AGPL-3.0-or-later
// Meta
:experimental:
:data-uri:
@@ -650,3 +652,43 @@ vollständige Änderungshefte auf die zugehörige Stammfassung anwenden und das
Ergebnis gegen die amtliche Nachfassung stellen. Die hierfür verwendeten
Beispieldaten nebst Herkunftsnachweis (`SOURCES`) liegen unter
`src/test/resources/sampledata/`.
+
+== Lizenz
+
+Der Quelltext steht unter der GNU Affero General Public License, Version 3 oder
+(nach Wahl) einer späteren Fassung — `AGPL-3.0-or-later`. Den Wortlaut trägt
+`LICENSES/AGPL-3.0-or-later.txt`; `COPYING` verweist als symbolische Verknüpfung
+darauf.
+
+Das Erzeugnis folgt der https://reuse.software/spec/[REUSE-Spezifikation]: Jede
+Datei ist einer Urheberschaft und einer SPDX-Lizenz zugeordnet, entweder durch
+eine Kopfzeile in der Datei selbst oder — bei Binärdateien und Dateien ohne
+Kommentarsyntax — durch einen Eintrag in `REUSE.toml`. Geprüft wird das mit:
+
+[source,shell script]
+----
+uvx reuse lint
+----
+
+Drei Lizenzen kommen vor:
+
+`AGPL-3.0-or-later`::
+ Der eigene Quelltext samt Weboberfläche, Bauwerk und Dokumentation.
+
+`Apache-2.0`::
+ Der unverändert mitgelieferte Maven-Wrapper (`mvnw`, `mvnw.cmd`,
+ `.mvn/wrapper/`).
+
+`LicenseRef-AmtlichesWerk`::
+ Der Beispielkorpus unter `src/test/resources/sampledata/`: Gesetzblätter,
+ Drucksachen, Plenarprotokolle und ministerielle Entwürfe des Bundes und der
+ Länder. Sie sind nach § 5 UrhG amtliche Werke und damit gemeinfrei; das
+ Änderungsverbot und das Gebot der Quellenangabe (§§ 62, 63 UrhG) bleiben
+ unberührt. Die Fundstellen weist die Datei `SOURCES` des jeweiligen
+ Verzeichnisses nach. Der Korpus ist kein „Corresponding Source“ im Sinne der
+ AGPL — gebaut wird ohne ihn —, und `.gitattributes` nimmt ihn deshalb vom
+ Quelltextarchiv aus.
+
+Die Kopfzeilen der Java-Dateien pflegt Spotless (`licenseHeader`); der an die
+Phase `verify` gebundene Lauf von `spotless:check` hält den Bau an, sobald eine
+Quelldatei ohne Kopfzeile hinzukommt.
diff --git a/pom.xml b/pom.xml
index fc6f398..d09c552 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,6 +12,15 @@
<artifactId>aendggner</artifactId>
<version>${revision}</version>
+ <licenses>
+ <license>
+ <name>AGPL-3.0-or-later</name>
+ <url>https://www.gnu.org/licenses/agpl-3.0.html</url>
+ <distribution>repo</distribution>
+ <comments>Wortlaut im Quelltext unter LICENSES/AGPL-3.0-or-later.txt (COPYING).</comments>
+ </license>
+ </licenses>
+
<properties>
<maven.compiler.parameters>true</maven.compiler.parameters>
<maven.compiler.release>21</maven.compiler.release>
@@ -216,6 +225,17 @@
</licenseHeader>
</java>
</configuration>
+ <executions>
+ <!-- Hält den Bau an, sobald eine Quelldatei ohne SPDX-Kopfzeile oder ohne
+ die vereinbarte Formatierung hinzukommt. -->
+ <execution>
+ <id>spotless-check</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
<plugin>
diff --git a/src/main/resources/eu/mulk/aendggner/web/impressum.html b/src/main/resources/eu/mulk/aendggner/web/impressum.html
index 3832d03..8003af0 100644
--- a/src/main/resources/eu/mulk/aendggner/web/impressum.html
+++ b/src/main/resources/eu/mulk/aendggner/web/impressum.html
@@ -1,4 +1,6 @@
<!doctype html>
+<!-- SPDX-FileCopyrightText: 2020 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
+ SPDX-License-Identifier: AGPL-3.0-or-later -->
<html lang="de">
<head>
<meta charset="utf-8">
@@ -45,8 +47,9 @@
</p>
<p>
Die zugrunde liegende Software steht unter der GNU Affero General Public License,
- Version 3 (Wortlaut in der Datei <code>COPYING</code> des Quelltextes), und wird
- ausdrücklich ohne jede Gewährleistung überlassen. Den
+ Version 3 oder (nach Ihrer Wahl) einer späteren Fassung (Wortlaut in der Datei
+ <code>COPYING</code> des Quelltextes), und wird ausdrücklich ohne jede
+ Gewährleistung überlassen. Den
<a href="aendggner-quelltext.tar.gz">Quelltext der betriebenen Fassung</a> gibt es zum
Herunterladen; fortlaufend auch über
<a href="https://gerrit.benkard.de/plugins/gitiles/aendggner">Gerrit</a>.
diff --git a/src/main/resources/eu/mulk/aendggner/web/index.html b/src/main/resources/eu/mulk/aendggner/web/index.html
index 56fd88b..8b85f52 100644
--- a/src/main/resources/eu/mulk/aendggner/web/index.html
+++ b/src/main/resources/eu/mulk/aendggner/web/index.html
@@ -1,4 +1,6 @@
<!doctype html>
+<!-- SPDX-FileCopyrightText: 2020 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
+ SPDX-License-Identifier: AGPL-3.0-or-later -->
<html lang="de">
<head>
<meta charset="utf-8">
@@ -133,7 +135,7 @@
<footer>
<a href="impressum.html">Impressum</a> ·
<a href="datenschutz.html">Datenschutz</a> ·
- <a href="aendggner-quelltext.tar.gz">Quelltext dieser Fassung (AGPLv3)</a>
+ <a href="aendggner-quelltext.tar.gz">Quelltext dieser Fassung (AGPLv3 oder später)</a>
<span class="nebenquelle">(<a href="https://gerrit.benkard.de/plugins/gitiles/aendggner">Git</a>)</span>
</footer>
</body>