Zum Inhalt

Weitergabe

Was weitergegeben werden darf, und unter welchen Bedingungen. Diese Datei liest, wer das Projekt veröffentlicht, wer es für einen anderen Ort übernimmt oder wer gefragt wird, unter welchem Recht der Bestand im Museum steht.

Eine technische Bestandsaufnahme, keine Rechtsberatung. Wo unten deutsches Recht vorkommt, ist es Orientierung; für eine verbindliche Auskunft gehört jemand mit Zulassung gefragt.

Kiekmap selbst

Apache-Lizenz 2.0, Copyright 2026 Kalle Erlhoff. Der Text steht in ../LICENSE, die Namensnennung in ../NOTICE. Beide gelten für Code, Dokumentation und die erfundenen Beispielbilder unter seed/ — eine Lizenz für alles, ohne Abgrenzungsfragen. Warum diese und nicht MIT: decisions.md, Punkt 62.

Der Lizenztext ist wörtlich der von apache.org und wird nicht angefasst. Der Platzhalter Copyright [yyyy] [name of copyright owner] in seinem Anhang ist die Vorlage für Dateiköpfe, kein Feld zum Ausfüllen — ein geänderter Text wird von den üblichen Erkennungswerkzeugen nicht mehr als Apache-2.0 erkannt.

Die Wege, auf denen etwas weggeht

Die Pflichten hängen nicht am Projekt, sondern daran, was jemand in die Hand bekommt:

Weg Was darin steckt Was mitgehen muss
Das Repo eigener Code, Doku, Beispielbilder LICENSE, NOTICE — liegen an der Wurzel
Die Container-Abbilder dazu 37 npm- und 26 Python-Pakete, Schriften, Symbole THIRD-PARTY.txt je Abbild, die Lizenzdateien unter basemaps/
Der Update-Stick dazu Kartendatei und Ortsindex zusätzlich der ODbL-Hinweis
Der Bildschirm im Museum die laufende Karte „© OpenStreetMap-Mitwirkende, ODbL" — steht unten rechts
Die Doku-Website die Dateien unter docs/, dazu MkDocs Material die Fußzeile nennt beide Lizenzen; sonst reist nichts mit

Die Abhängigkeiten, alle permissiv

Gemessen am 20. August 2026 an den installierten Paketen, nicht an den Manifestdateien.

Pakete Lizenzen
Python, ganzes venv 39 MIT, BSD-2, BSD-3, Apache-2.0, MIT-CMU (HPND), PSF-2.0
Python, davon im Backend-Abbild 26 dieselben
npm, ganzer Baum 128 99 × MIT, 16 × ISC, 6 × BSD-3, 3 × Apache-2.0, 2 × BSD-2, 1 × „MIT OR Apache-2.0", 1 × CC-BY-4.0
npm, davon im Frontend-Bundle 37 MIT, ISC, BSD-2/3, „MIT OR Apache-2.0"

Kein Copyleft. Die einzige Nicht-Software-Lizenz ist caniuse-lite (CC-BY-4.0) — eine Bauzeit-Datenbank von browserslist, die in keinem Artefakt landet. Nichts schränkt die Wahl der eigenen Lizenz ein, und nichts steht einer Veröffentlichung im Weg.

Die Namen und ihre Lizenztexte stehen in THIRD-PARTY.txt, erzeugt von ../tools/build_notices.py und eingecheckt wie eine Sperrdatei. Warum erzeugt und nicht gepflegt: Eine handgeschriebene Liste ist in drei Monaten falsch, und zwar in der Richtung, die niemand prüft. make notices schreibt sie, make check merkt, wenn sie veraltet ist.

Für das Backend kommt die Liste seit dem 25. August 2026 aus backend/requirements.lock, weil das Abbild genau daraus installiert. Vorher lief das Werkzeug die Abhängigkeiten von pyproject.toml aus selbst ab, mit einer handgeschriebenen Ergänzung für das, was uvicorn[standard] nachzieht — ein nachgebauter Auflöser, der still veraltet wäre. Ein Paket fehlte bereits: greenlet, das SQLAlchemy auf Linux mitbringt, stand in keiner Hinweisdatei, weil es auf dem Entwicklungs-Mac gar nicht installiert wird. Die Umgebungsmarker der Lockdatei werden jetzt gegen beide Zielplattformen ausgewertet, aarch64 und x86_64.

Drei npm-Pakete nennen ihre Lizenz nur in der package.json und legen keinen Text bei (@protomaps/basemaps, pmtiles, murmurhash-js). Sie bekommen die Standardfassung ihrer Kennung, mit einem Vermerk, dass der Text nicht aus dem Paket stammt. Ein Paket ganz ohne Angabe bricht den Lauf ab.

Die Karte: hier sitzen die eigentlichen Pflichten

Bestandteil Herkunft Lizenz
map.pmtiles build.protomaps.com, aus OpenStreetMap ODbL 1.0
places.json und die Tabelle places Overpass-API, aus OpenStreetMap ODbL 1.0
Schriften Noto über protomaps/basemaps-assets OFL 1.1
Symbole tangrams/icons über dasselbe Archiv MIT
Kartenstil @protomaps/basemaps BSD-3-Clause

tiles/build-tiles.sh legt die Lizenztexte neben die Dateien, für die sie gelten — unter frontend/public/basemaps/.

Die Tabelle places ist die Stelle, die man übersieht. Sie steht in kiekmap.db und damit in jeder Sicherung. Für den Museumsbetrieb folgenlos; wer die Datenbank an Dritte weitergibt, gibt ODbL-Material mit und muss es kenntlich machen. Derselbe Satz steht in usermanual.de.md.

Was nicht von der Lizenz erfasst ist

Der Fotobestand. Eine Softwarelizenz lizenziert das Programm, nicht die Daten, die es verarbeitet: Ein Foto in der Datenbank wird kein abgeleitetes Werk des Programms. Das gilt für die Apache-Lizenz wie für jede andere — auch die GPL zöge Daten nicht hinein. Die Fotos liegen unter data/ und sind nicht im Repo.

Die Rechte an ihnen liegen beim Museum und seinen Geberinnen und Gebern, je Foto einzeln, und das System ist dafür gebaut: credit ist der Bildnachweis, der neben dem Bild steht, provenance die interne Notiz zu Herkunft und Freigabe. Ein Bestand aus gemischten Rechtelagen ist der Normalfall, nicht die Ausnahme.

Ob das Museum seine Fotos irgendwann selbst unter eine Lizenz stellt, ist eine davon unabhängige Entscheidung.

Das Gemeindewappen. Urheberrechtlich gemeinfrei (§ 5 Abs. 1 UrhG), in der Führung aber als Hoheitszeichen beschränkt. Deshalb liegt im Repo ein gezeichneter Platzhalter und nicht das Wappen. Ausführlich in decisions.md, Punkt 21, und in adaption.de.md.

Basis-Abbilder und der Verbreitungsweg

python:3.12-slim und nginx:1.27-alpine bringen Debian- bzw. Alpine-Userland mit und darin GPL-lizenzierte Binärprogramme. Das berührt die Lizenz des eigenen Codes nicht — er läuft darauf, er ist nicht damit verbunden. Es begründet aber Pflichten für den, der ein fertiges Abbild weitergibt.

Deshalb: Dockerfiles veröffentlichen, keine gebauten Abbilder. Dann baut jeder Betreiber selbst, und die Pflichten bleiben, wo sie hingehören. Der Weg über images.tar in deploy/pi/update.sh bleibt für das eigene Gerät richtig; er gehört nur nicht in ein Release.

Wie das Projekt entstanden ist

Eine Person hat Kiekmap zusammen mit einem Sprachmodell gebaut; die Commits tragen es als Co-Authored-By. Das ist hier vermerkt, weil Verschweigen der schlechtere Umgang damit wäre.

Für die Rechtslage folgt daraus wenig und nichts Überraschendes: Rein maschinell Erzeugtes ist keine persönliche geistige Schöpfung (§ 2 Abs. 2 UrhG) und damit nicht geschützt; geschützt ist die Auswahl-, Anordnungs- und Bearbeitungsleistung. Die liegt in diesem Repo offen zutage — in decisions.md stehen die Entscheidungen mit ihren Begründungen, in archive/history.de.md die Fälle, in denen der erste Vorschlag verworfen wurde.

Praktisch heißt das nur eines: den Anspruch nicht übertreiben. Die Copyright-Zeile ist richtig; ein Satz, jede Zeile sei eigenes Werk, wäre es nicht. Wo einzelne Zeilen keine Schöpfungshöhe erreichen — was für Standardcode ohnehin gilt, mit oder ohne Modell —, hängt an ihnen keine Lizenz. Sie sind dann freier als der Rest, nicht ungültig.

Haftung

Abschnitt 7 und 8 der Lizenz schließen Gewährleistung und Haftung aus, so weit das geht. Weiter als das Recht erlaubt, geht keine Lizenz: § 276 Abs. 3 BGB lässt einen Erlass der Haftung für Vorsatz nicht zu, und § 309 Nr. 7 BGB begrenzt Freizeichnungen.

Was das Risiko klein hält, ist deshalb nicht die Klausel, sondern die Unentgeltlichkeit — wer verschenkt, haftet im Kern nur für Vorsatz und grobe Fahrlässigkeit. Daraus folgt eine einzige Verhaltensregel: keine Zusicherungen machen. Nicht versprechen, dass der Bestand sicher ist, dass die Sicherung funktioniert, dass das Gerät durchläuft. Was das Programm kann, steht im Änderungsprotokoll; was ungeprüft ist, steht in den Issues und in index.de.md.