Open Source

Lizenzkonformes Javascript

Um die Über­tra­gung im Netz zu beschleu­ni­gen, wer­den die in eine Web­site ein­ge­bet­te­te Java­Script-Biblio­the­ken übli­cher­wei­se ‘mini­fied’, also kom­pri­miert: Leer­zei­chen, Zei­len­vor­schü­be und Kom­men­ta­re wer­den ent­fernt. Daher ent­hal­ten die Biblio­the­ken nur noch rudi­men­tä­re Lizenz­in­for­ma­tio­nen — jeden­falls nicht den Lizenz­text selbst. Aber alle FOSS-Lizen­zen ver­lan­gen von uns, dass wir eini­ge Com­pli­ance-Arte­fak­te mit dem Code zusam­men aus­lie­fern — ins­be­son­de­re den Lizenz­text. Das ist die Her­aus­for­de­rung bei der Ver­wen­dung von Java­Script — in bootS­core und anders­wo.

[ de | en ]

Lösung

  • Ver­wen­de die Java­Script-Biblio­thek Boot­strap so, wie sie von bootS­core bereit­ge­stellt wird
  • Ver­wen­de die Java­Script-Biblio­the­ken so, wie sie von Word­Press gelie­fert wer­den
  • Erstel­le eine Tabel­le mit den Infor­ma­tio­nen zur Java­Script-Kon­for­mi­tät
  • Erstel­le für jede von bootS­core oder Word­Press gelie­fer­te Java­Script-Biblio­thek eine ent­spre­chen­de Zei­le in der JS-Tabel­le.
  • Bin­de die­se Tabel­le in Dei­ne Open Source Com­pli­ance Page ein.
  • Mache die Open Source Com­pli­ance Page über den ‘Foo­ter’ Dei­ner Sei­ten zugäng­lich

Hintergrund

bootS­Core ent­hält eini­ge JS-Kom­po­nen­ten. Zum Bei­spiel sei­ne eige­nen ent­fal­te­ten Java­Script-Biblio­the­ken1 — impli­zit lizen­ziert unter der MIT, aber ohne expli­zi­tes Lizen­zie­rungs­state­ment — und die mini­fi­zier­te Boot­strap Java­Script-Biblio­thek2 — durch ein ent­spre­chen­des Lizen­zie­rungs­state­ment expli­zit unter der MIT-Lizenz gestellt. Aber kei­ne davon ent­hält den Lizenz­text selbst. Auch Word­Press bringt eini­ge eige­ne und eini­ge mini­mier­te Java­Script-Biblio­the­ken von Dritt­an­bie­tern mit3, wie z.B. die jQuery-Biblio­thek 4, die eben­falls unter der MIT lizen­ziert ist und ein ent­spre­chen­des Lizenz­state­ment ent­hält, aber nicht den Lizenz­text. Unab­hän­gig davon, von wem die Web­site-Besit­ze­rin die­se Biblio­the­ken erhal­ten hat — von bootS­core oder Word­Press -, ist sie es letzt­end­lich, die die Lizenz­an­for­de­run­gen erfül­len muss, da es ihr Sys­tem ist, das die Java­Script-Biblio­the­ken an ihre Leser wei­ter­gibt.

Aber wor­in besteht denn nun eigent­lich die Her­aus­for­de­rung?

JS Logo

Wie die Java­Script-Biblio­the­ken von Boot­strap und jQuery auch, sind die meis­ten JS-Biblio­the­ken MIT lizen­ziert. Die­se FOSS-Lizenz ver­langt, dass bei­des — die Copy­right-Zei­le und der Lizenz­text — zusam­men mit dem Open-Source-Pro­gramm ver­teilt wird: “The abo­ve copy­right noti­ce and this per­mis­si­on noti­ce shall be included in all copies or sub­stan­ti­al por­ti­ons of the Soft­ware.“5

Für (L|A)GPL-lizenzierte Java­Script-Biblio­the­ken gilt fast das­sel­be: Die­se Lizen­zen erlau­ben die Wei­ter­ga­be des Quell­codes, “[…] pro­vi­ded that one con­spi­cuous­ly and appro­pria­te­ly publishes on each copy an appro­pria­te copy­right noti­ce and dis­clai­mer of war­ran­ty […] and gives any other reci­pi­ents of the Pro­gram a copy of this Licen­se along with the Pro­gram”.6

Wir haben hier also einen Wider­spruch: Auf der einen Sei­te lädt ein Brow­ser nicht nur den Sei­ten­text (HTML) her­un­ter, son­dern auch die Java­Script-Biblio­thek. Die­ser Down­load ver­brei­tet den Code und löst damit die Not­wen­dig­keit aus, die Anfor­de­run­gen der Open-Source-Lizenz zu erfül­len. Auf der ande­ren Sei­te ent­hal­ten die kom­pri­mier­ten Biblio­the­ken — selbst wenn sie als Paket von den Autoren ange­bo­ten wer­den — in der Regel nicht mehr die not­wen­di­gen Lizenz­in­for­ma­tio­nen: Je klei­ner die Biblio­the­ken sind, des­to schnel­ler wird die Web­site auf den Rech­nern der Leser ange­zeigt.

Der Web­site-Betrei­be­rin bie­ten sich zwei Mög­lich­kei­ten, mit die­ser Her­aus­for­de­rung umzu­ge­hen: Ent­we­der sie heilt die impli­zit von Word­Press und bootS­core über­nom­me­nen Pake­te nach­träg­lich (und (halb)manuell). Oder sie ver­wen­det sie so, wie sie sie bekom­men hat. Es ist klar: Hei­len wür­de bedeu­ten, dass wir die­se Auf­ga­be jedes Mal wie­der­ho­len müss­ten, wenn wir Word­Press oder bootS­core aktua­li­sie­ren. Also wäre der ande­re Weg weni­ger auf­wen­dig und dar­um bes­ser — sofern es eine Opti­on gäbe, die Idee und die Anfor­de­run­gen frei­er Soft­ware­li­zen­zen dabei (doch) nicht zu ver­let­zen.

Die Lösung ist dies:

Wann immer die Ent­wick­ler der Java­Script-Biblio­the­ken beschlos­sen haben, ‘mini­fied’ Ver­sio­nen ihrer Arbeit zu wei­ter­zu­ge­ben, gehen sie davon aus, dass ihre JS-Biblio­thek auch in die­ser Ver­si­on ver­wen­det wird. Dar­aus lässt sich ablei­ten, dass die Copy­right-Owner die­se Art der Nut­zung impli­zit zulas­sen, auch wenn sie gegen die von den Ent­wick­lern gewähl­te Lizenz ver­stößt. Aber — als Ersatz für die Bün­de­lung des Lizenz­tex­tes, der Copy­right-Infor­ma­tio­nen usw. mit den Java­Script-Biblio­the­ken selbst — soll­ten wir unse­ren Benut­zern eine ande­re Mög­lich­keit anbie­ten, die­se Infor­ma­tio­nen zu erhal­ten. Außer­dem müs­sen wir dar­auf ach­ten, nur die mini­fi­zier­ten Java­Script-Biblio­the­ken in unse­re Site ein­zu­bin­den, die die Ent­wick­ler selbst zur Ver­fü­gung gestellt haben. Im Fal­le der Boot­strap-JS-Lib in bootS­core und der jQuery-JS-Lib etc. in Word­Press dür­fen wir davon aus­ge­hen, dass sie dies getan haben.

Wir haben so im Fal­le eines Rechts­streits um die Lizenz­er­fül­lung bei JS-Biblio­the­ken7 ein star­kes Argu­ment für die Lega­li­tät unse­res Vor­ge­hens. Und wir befin­den uns in sehr guter Gesell­schaft: Die Sekun­där­li­te­ra­tur dis­ku­tiert es in die­sem Sin­ne8 und sogar die FSF schlägt vor, so vor­zu­ge­hen.9 Und die hat nun wirk­lich nicht den Ruf, die Ein­hal­tung von Lizen­zen auf die leich­te Schul­ter zu neh­men.

Im Übri­gen: Män­ner sind mit­ge­meint.

  1. vgl. ./bootscore/js/theme.js[]
  2. vgl. ./bootscore/js/lib/bootstrap.bundle.min.js[]
  3. vgl. https://codex.wordpress.org/Javascript_Reference bzw. ./wp-includes/js[]
  4. vgl. wp-includes/js/jquery/[]
  5. cf. MIT Licen­se[]
  6. pars pro toto vgl. GPL‑2.0. Zusätz­lich ver­langt die (A)GPL, dass jeder Code, der die (A)GPL-lizenzierte Biblio­thek usw. ver­wen­det, eben­falls unter der (A)GPL lizen­ziert ist (Copy­left-Effekt). Aber dar­um geht es in die­sem Zusam­men­hang nicht.[]
  7. Ich habe noch nie von solch einem Dis­put gehört![]
  8. vgl. https://www.iusmentis.com/computerprograms/opensourcesoftware/license-notices-web-applications/[]
  9. vgl. https://www.gnu.org/licenses/javascript-labels.en.html und https://www.gnu.org/licenses/javascript-labels-rationale.html[]

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To top