| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 betrachtet — und so betrachtet sie jeder, der sie
übernimmt —, fand daran nichts.
Maßstab ist die REUSE-Spezifikation in der Fassung 3.3. Das Verzeichnis
„LICENSES“ nimmt die Wortlaute auf: die AGPL in der Fassung 3 oder später, die
Apache-Lizenz für den unverändert mitgelieferten Maven-Wrapper und
„LicenseRef-AmtlichesWerk.txt“. „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, und die Prüfung übergeht Verknüpfungen,
sodass für den Lizenztext selbst keine sachfremde Lizenzangabe zu erfinden war.
Die dritte Datei bezeichnet keine erteilte Lizenz, sondern hält die gesetzliche
Rechtslage des Prüfbestandes fest. Fünfundvierzig PDF-Dateien, fünf EPUB-Dateien
und die XML-Fassungen sind fremde Werke: Verkündungsblätter, Drucksachen,
Plenarprotokolle und Entwürfe des Bundes und der Länder. Sie sind nach § 5 Abs. 1
UrhG gemeinfrei, die ministeriellen Entwürfe und Synopsen nach § 5 Abs. 2, und
gleichwohl gebunden an Änderungsverbot und Quellenangabe nach §§ 62 und 63.
Ausdrücklich festgehalten ist, dass die technische Aufbereitung durch die
Rechtsportale kein eigenes Recht am Text begründet und dass der Bestand kein
„Corresponding Source“ im Sinne der AGPL ist — gebaut wird ohne ihn.
„REUSE.toml“ ordnet zu, was keinen Kommentar verträgt, und scheidet den
Prüfbestand nach Herkunft: Bund in Verkündung und Parlament, Bund in den
ministeriellen Entwürfen, gesetze-im-internet.de nebst der Aufbereitung durch die
juris GmbH, sodann neun Länder je einzeln. Die selbst abgeleiteten Textfassungen
tragen „AGPL-3.0-or-later AND LicenseRef-AmtlichesWerk“, denn der Wortlaut ist
amtlich, die Aufbereitung — Einrückung, Superskript-Satznummern,
Gliederungsüberschriften — eigene Arbeit. Maßgeblich für die Fundstelle der
einzelnen Datei bleibt die Datei „SOURCES“ des jeweiligen Verzeichnisses; die
Lizenzdatei nimmt sie in Bezug, wie es § 63 UrhG verlangt.
Die übrigen Dateien tragen ihre Angabe in sich, im jeweils üblichen
Kommentarstil, vor dem vorhandenen erläuternden Text und ohne diesen anzutasten.
„mini-gii.xml“ und „.mvn/maven.config“ bleiben bewusst unberührt und erhalten
stattdessen einen Eintrag: Ersteres liest der GiiXmlLoader, Letzteres Maven vor
jedem Bau. Ein Ausrollwerkzeug hinterließ mit „.wrangler“ ein Zwischenverzeichnis
im Arbeitsbaum; es ist fortan übergangen.
Die Java-Dateien und die Angleichung der Lizenzaussage folgen gesondert. An
diesem Stand bestehen dreihundertfünfundzwanzig Testfälle unverändert; am
Verhalten des Erzeugnisses ändert sich nichts.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Id08e26d8e15545b2d00dd3d4fa7ffca86cf14944
|
|
|
Das Webpaket ist seit der Umstellung auf Cloudflare Workers zugeschnitten — die
Vorkompression abgeschaltet, jede Datei gegen die Grenze von 25 MiB gehalten —,
doch der Weg dorthin stand nur im README als Prosa. Wer ausrollen wollte, setzte
JAVA_HOME von Hand, rief Maven mit dem richtigen Profil auf und musste sodann
wissen, womit statische Dateien zu Cloudflare gelangen und unter welchem Namen.
Ein Ausrollen, dessen Schritte nur erinnert werden, geht früher oder später
anders aus als das vorige.
„wrangler.toml“ nennt den Dienst „aendggner“ und weist auf „target/web“. Ein
eigener Worker-Code steht nicht darin und ist auch nicht nötig: Ausgeliefert
werden ausschließlich statische Dateien, die Verarbeitung läuft im Browser. Ein
Hinweis warnt vor der Namensgleichheit, die hier stiften könnte, was sie sonst
klärt — „target/web/worker.js“ ist ein Web Worker des Browsers und für
Cloudflare eine statische Datei unter vielen, kein Worker im Sinne der
Plattform.
„deploy/cloudflare.sh“ tut die beiden Schritte, die zusammengehören: Bauen mit
dem Profil „wasm“, was seinerseits „webpaket.sh“ mit Nachoptimierung,
Quelltextarchiv und Größenprüfung nach sich zieht, sodann Hochladen. Fehlt
JAVA_HOME, so greift der örtliche Pfad zur Oracle GraalVM, denn ohne sie gibt es
kein Web Image. Beide Schritte lassen sich einzeln anfordern („--nur-bauen“,
„--nur-hochladen“), wenn das eine schon geschehen ist und nur das andere
aussteht. Ein fehlendes „wrangler“ im Pfad fällt auf „npx“ zurück.
Nicht mitgeliefert ist eine „_headers“-Datei. Zwischenspeicherung und MIME-Typ
regelt Cloudflare für Assets von sich aus so, wie es die nginx-Fassung tut —
revalidiert wird bei jedem Abruf, das Modul kommt als „application/wasm“. Die
Sicherheitskopfzeilen samt Content-Security-Policy deckt das nicht ab; sie
nachzureichen bleibt offen und verlangte, dass „webpaket.sh“ die Datei ins
Auslieferungsverzeichnis trüge.
Berührt sind allein Dateien des Ausrollens; am Quelltext ändert sich nichts. Der
Bau selbst ist hier nicht gelaufen, wohl aber die Prüfung der Konfiguration:
„wrangler deploy --dry-run“ liest sie und das vorhandene Auslieferungsverzeichnis
anstandslos.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: I90df9f4cdd2c01f12941f979fc997756d2b4e012
|