aboutsummaryrefslogtreecommitdiff
path: root/deploy/cloudflare.sh
Commit message (Collapse)AuthorAgeFilesLines
* Jede Datei nennt fortan ihren Urheber und ihre LizenzMatthias Andreas Benkard2 days1-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Ein Befehl trägt die Fassung zum AuslieferungsortMatthias Andreas Benkard3 days1-0/+41
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