← Wies 5, 2016 | Back to the roots: Strato WordPress per ssh und bash →
Compliance bei Javascript-Bibliotheken
Um die Performanz zu verbessern, werden Javascriptbibliotheken meist verdichtet, indem alle Leerzeichen, Zeilenenden und Kommentare daraus entfernt werden. So komprimierte Bibliotheken enthalten dann in der Regel wenig bis gar keine Lizenzinformationen mehr. Bei Open-Source-Javascript ist das ein Problem. Denn dem stehen die Forderungen der Lizenzen gegenüber:
Javascript und die permissive MIT-Lizenz
Die MIT-Lizenz is eine ‚Template‘-Lizenz: sie muss mit den intendierten Urheberrechtsinformationen instantiiert werden. Dann fordert die Lizenz, dass beide Teile – der Lizenztext und die Copyrightline – zusammen mit der entsprechenden Software distribuiert werden: „The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.“
Also muss man, um MIT lizenzierte JS-Bibliotheken lizenzgerecht zu distribuieren, die instantiierte Lizenz zusammen mit der Software weitergeben.
Javascript und die Copyleftlizenz GPL
The GPL erlaubt es, den Sourcecode weiterzugeben, sofern man „[…] conspicuously and appropriately publishes on each copy an appropriate copyright notice and disclaimer of warranty […] and gives any other recipients of the Program a copy of this License along with the Program“. Außerdem fordert die GPL, dass der Code, der die GPL lizenzierte Bibliothek nutzt, auch unter der GPL lizenziert und weitergegeben wird (copyleft effect).
Javascriptbibliotheken werden immer als Sourcecode an den Browser ausgeliefert. Das allein reicht aber nicht! Der Lizenztext ist klar: Eben dieser Lizentext und das Copyrightstatement müssen zusammen mit der Software weitergegeben werden.
Was kann man gegen den Widerspruch tun?
Dass es hier einen Widerspruch zwischen Anspruch und gelebter Praxis gibt ist klar:
Einerseits gehört es zum Wesen von Javascript, dass es ‚verteilt‘ wird. Mit jedem Aufruf einer Seite, in der eine Javascriptbibliothek verlinkt ist, wird, wird eben diese Bibliothek vom Browser heruntergeladen. Damit ist der Open-Source-Compliance-Trigger schlechthin – die Softwaredistribution – ausgelöst.
Andererseits sind die mitzuliefernden Informationen aus Performancegründen aus den traditionellen Javasciptbibliotheken entfernt worden. Und mehr noch: gelegentlich sind sie nicht einmal in den nicht-komprimierten Versionen enthalten.
Dass die Open-Source-Lizenzen durchweg die Distribution ihrer selbst fordern – zusammen mit den Copyrightlines -, ist keine juristische Spielerei: Denn nur wer den Lizenztext hat, hat gewiss auch die Rechte, die er gemäß der Rechteinhaber bekommen soll – sofern ihm die Urheber diese in einem sauberen Akt der Lizenzierung gewähren.Der zweite Teil eines solchen sauberen Lizenzierungsstatements ist die Dokumentation derjenigen, die die Software lizenzieren. Und das geschieht in und mit der Copyrightline, Deshalb ist es sinnvoll, auch an den Nutzer der Software weiterzugeben.
Demnach bleibt dem gewissenhafter Nutzer nur, die ‚verschlankten‘ Bibliotheken selbst wieder ‚etwas aufzubohren‘ und den Lizenztext (und wo nötig: die Copyrightlines) nachträglich in die Javascriptbibliotheken einzufügen. Das ist legal, wenn man die noch enthaltenen ‚Compliancereste‘ bewahrt und wenn man genau das hinzufügt, was der Sinn externer Lizenzuschreibungen besagt. Es ist nicht legal, wenn die Bibliotheken einen unzureichenden ‚Kurzheader‘ enthalten, den zu verändern der Copyrightowner unter sagt hat.
fodina.de versucht diesen Weg der ‚Compliance(wieder)herstellung‘ zu gehen:
Paket | Lizenz | Kommentar |
---|---|---|
hoverIntent.js | MIT | Ausgeliefert, wie erhalten, weil der copyright owner explizit sagt: You may use hoverIntent under the terms of the MIT license. Basically that means you are free to use hoverIntent as long as this header is left intact. |
jquery.js | MIT | Lizenz und Copyrightline in der hier mitgelieferten Bibliothek enthalten |
jquery-validation.js | MIT | Lizenz und Copyrightline in der hier mitgelieferten Bibliothek enthalten. |
modernizr.js | MIT | Lizenz und Copyrightline in der hier mitgelieferten Bibliothek integriert |
superfish.js | MIT | Lizenzauswahl und Copyrightline in die hier mit gelieferte Bibliothek integriert. |
yaml css framwork: | CC BY 2.0 | Gefordert ist die Verlinkung zu YAML und zur Creative Commons Attribution 2.0 License |
Hi Karsten, I just reread your classic here. It is still the situation that view sites provide proper licensing information for the JS they are distributing. It is actually worse: All websites I looked at only consider, if they do something at all, the first tier of dependencies. The „iceberg under the waterline“ is wholly ignored.