Lizenzen
Verwendete Programmbibliotheken mit Version, Lizenz und Quelle
Freie Bibliotheken in ATLAS
ATLAS ist nicht in jedem Teil neu geschrieben. Wie fast jede heutige Anwendung verwendet es frei verfügbare Programmbibliotheken — fertige Bausteine, die andere veröffentlicht und zur Nutzung freigegeben haben. Zu jedem Baustein gehört eine Lizenz: der Text, unter dem sein Urheber ihn herausgibt. Diese Seite nennt jedes Paket, das ATLAS als Produktionsabhängigkeit führt, mit Version, Lizenz und der Stelle, an der Quelltext und Lizenztext zu finden sind.
Die Aufstellung stammt aus der Paketverwaltung des Projekts. Sie nennt damit eher zu viel als zu wenig: darunter sind auch Pakete, von denen im fertigen Programm nichts übrig bleibt — reine Typbeschreibungen für die Entwicklung (@types/…) und Werkzeuge, die nur beim Bauen mitlaufen. Weggelassen ist nichts.
Zwei Fälle sind ausführlicher beschrieben, weil sie sich von den übrigen unterscheiden: die Bibliothek, die im Browser des Anwenders läuft, und die Bildverarbeitung, die den Server nie verlässt.
Im Browser: heic-to
Fotos von Apple-Geräten kommen im Format HEIC. Die meisten Geräte lesen dieses Format selbst — auf einem iPhone etwa bringt das Betriebssystem den Decoder mit. Wo das gelingt, wird heic-to gar nicht erst geholt.
Die Bibliothek ist der Rückfallweg für den anderen Fall: Kann der Browser HEIC nicht selbst lesen — das betrifft vor allem Chrome und Edge unter Windows —, wird heic-to nachgeladen und rechnet das Bild in ein gängiges Format um. Das geschieht auf dem Gerät, mit dem ATLAS geöffnet ist: Ihr Programmcode wird dann an den Browser ausgeliefert und läuft dort — er wird also weitergegeben. Dass das nur bei Bedarf geschieht, ändert daran nichts.
heic-to 1.5.2 steht unter der GNU Lesser General Public License, Version 3 oder später (LGPL-3.0-or-later).
- Quelltext: github.com/hoppergee/heic-to
- Lizenztext: gnu.org/licenses/lgpl-3.0.html
- Paket samt Lizenzdatei: npmjs.com/package/heic-to/v/1.5.2
Zur Angabe der Version: Die Paketdaten von heic-to nennen „LGPL-3.0“. Die dem Paket beiliegende Lizenzdatei nennt Version 3 „oder, nach Ihrer Wahl, jede spätere Version“. Diese Seite folgt der Lizenzdatei.
Auf dem Server: sharp und libvips
Next.js, der Programmrahmen von ATLAS, bringt die Bildbibliothek sharp mit; sharp nutzt darunter libvips. Beide arbeiten ausschließlich auf dem Server. Ihr Programmcode wird nicht an den Browser ausgeliefert.
sharp 0.35.3 steht unter Apache-2.0. Die zugehörigen Binärpakete @img/sharp-libvips-* 1.3.2 enthalten libvips und stehen unter LGPL-3.0-or-later; von ihnen wird je nach Betriebssystem des Servers genau eines installiert. ATLAS läuft auf Alpine Linux, dort ist es die musl-Variante.
Zwei weitere Pakete derselben Herkunft tragen ebenfalls einen LGPL-Anteil, weil sie libvips bereits enthalten: @img/sharp-win32-* 0.35.3 (Apache-2.0 AND LGPL-3.0-or-later) für Windows-Server und @img/sharp-wasm32 0.35.3 (Apache-2.0 AND LGPL-3.0-or-later AND MIT) als WebAssembly-Fassung für Systeme ohne passendes Binärpaket. Auf dem Server von ATLAS wird keines von beiden installiert; sie stehen hier, weil die Paketverwaltung sie im Baum führt.
- Quelltext sharp: github.com/lovell/sharp
- Quelltext libvips: github.com/libvips/libvips
- Lizenztext: gnu.org/licenses/lgpl-3.0.html
Vollständige Liste
Aufgeführt sind alle Pakete, die ATLAS als Produktionsabhängigkeit führt: 15 unmittelbar eingebundene und, samt deren eigenen Abhängigkeiten, insgesamt 105. Die Abschnitte darunter sind nach Lizenz geordnet; der Paketname führt jeweils auf Quelltext und Lizenzdatei.
Pakete, die es für mehrere Betriebssysteme gibt, stehen als eine Zeile mit Stern; die Namen der einzelnen Varianten stehen dahinter. Von ihnen wird je Server nur die passende Variante installiert. Die Stückzahl über jedem Abschnitt zählt die einzelnen Pakete, nicht die Zeilen — die Summe über alle Abschnitte ist 105.
Manche Abschnitte tragen mehrere Lizenzen in der Überschrift. AND heißt: die genannten Lizenzen gelten nebeneinander, jede für einen Teil des Pakets. OR heißt: wer das Paket verwendet, darf zwischen ihnen wählen.
Diese Aufstellung wird aus der Paketverwaltung des Projekts erzeugt (tools/lizenzliste.mts aus package-lock.json) und bei jedem Lauf der Prüfsuite gegen die tatsächlich eingebundenen Pakete abgeglichen.
MIT
50 Pakete
@emnapi/runtime1.11.3@img/colour1.1.0@next/env16.3.1@next/swc-*16.3.1 — 8 plattformabhängige Varianten: @next/swc-darwin-arm64, @next/swc-darwin-x64, @next/swc-linux-arm64-gnu, @next/swc-linux-arm64-musl, @next/swc-linux-x64-gnu, @next/swc-linux-x64-musl, @next/swc-win32-arm64-msvc, @next/swc-win32-x64-msvc@panva/hkdf1.2.1@serwist/build9.5.11@serwist/next9.5.11@serwist/utils9.5.11@serwist/webpack-plugin9.5.11@serwist/window9.5.11@types/geojson7946.0.16@types/leaflet1.9.21@types/trusted-types2.0.7balanced-match4.0.4brace-expansion5.0.9browserslist4.28.2client-only0.0.1clsx2.1.1common-tags1.8.2escalade3.2.0jose6.2.9kolorist1.8.0lodash.sortby4.7.0nanoid3.3.18next16.3.1node-releases2.0.46oauth4webapi3.8.7postcss8.5.23preact10.24.3preact-render-to-string6.5.11pretty-bytes6.1.1punycode2.3.1react19.2.4react-dom19.2.4scheduler0.27.0server-only0.0.1serwist9.5.11styled-jsx5.1.6tagged-tag1.0.0tr461.0.1update-browserslist-db1.2.3whatwg-url7.1.0zod4.4.1
Apache-2.0
19 Pakete
@img/sharp-*0.35.3 — 12 plattformabhängige Varianten: @img/sharp-darwin-arm64, @img/sharp-darwin-x64, @img/sharp-freebsd-wasm32, @img/sharp-linux-arm, @img/sharp-linux-arm64, @img/sharp-linux-ppc64, @img/sharp-linux-riscv64, @img/sharp-linux-s390x, @img/sharp-linux-x64, @img/sharp-linuxmusl-arm64, @img/sharp-linuxmusl-x64, @img/sharp-webcontainers-wasm32@swc/helpers0.5.23baseline-browser-mapping2.10.32detect-libc2.1.2dexie4.4.3dexie-react-hooks4.4.0drizzle-orm0.45.2sharp0.35.3
LGPL-3.0-or-later
11 Pakete
@img/sharp-libvips-*1.3.2 — 10 plattformabhängige Varianten: @img/sharp-libvips-darwin-arm64, @img/sharp-libvips-darwin-x64, @img/sharp-libvips-linux-arm, @img/sharp-libvips-linux-arm64, @img/sharp-libvips-linux-ppc64, @img/sharp-libvips-linux-riscv64, @img/sharp-libvips-linux-s390x, @img/sharp-libvips-linux-x64, @img/sharp-libvips-linuxmusl-arm64, @img/sharp-libvips-linuxmusl-x64heic-to1.5.2
ISC
7 Pakete
@auth/core0.41.3electron-to-chromium1.5.364idb8.0.3next-auth5.0.0-beta.32picocolors1.1.1semver7.7.4semver7.8.5
BlueOak-1.0.0
5 Pakete
glob13.0.6lru-cache11.5.1minimatch10.2.5minipass7.1.3path-scurry2.0.2
Apache-2.0 AND LGPL-3.0-or-later
3 Pakete
@img/sharp-win32-*0.35.3 — 3 plattformabhängige Varianten: @img/sharp-win32-arm64, @img/sharp-win32-ia32, @img/sharp-win32-x64
BSD-3-Clause
3 Pakete
bcryptjs3.0.3source-map0.8.0-beta.0source-map-js1.2.1
BSD-2-Clause
2 Pakete
leaflet1.9.4webidl-conversions4.0.2
(MIT OR CC0-1.0)
1 Paket
type-fest5.6.0
0BSD
1 Paket
tslib2.8.1
Apache-2.0 AND LGPL-3.0-or-later AND MIT
1 Paket
@img/sharp-wasm320.35.3
CC-BY-4.0
1 Paket
caniuse-lite1.0.30001793
Unlicense
1 Paket
postgres3.4.9