The Problem of Compliance for Javascript Libraries

For improving the performance, usually javascript libraries are compressed by erasing all blanks, linefeeds and comments. Hence, they do not contain any license texts and only very brief license information. This is a problem in case of open source licensed javascript libraries. Because these licenses require something other :

Javascript and the permissive MIT-License

The MIT license is a ‘template’ license: it must be instantiated by the intended copyright information. The license then requires that both – the copyright line and the license text – is distributed together with the open source program: “The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.”

Hence, using the MIT components compliantly (only) requires to handover the respective licenses together with the respective javascript libraries.

Javascript and the Copyleft License GPL

The GPL allows to distribute the source code provided that one 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”. Additionally, the GPL requires that each code which uses the GPL licensed library etc. is also licensed under the GPL (copyleft effect)

Javascript libraries are ever distributed as sourcecode. But that’s not enough. The licensetext clearly says, that also the license itself and the information about the copyright owner must be distributed together with the source code.

How can we resolve this inconsistency?

It is clear, that there exists a contradiction between the claim of the licenses and the everyday practice:

On the one side, it is a feature of web javascript, that it is distributed: if the browser calls a page containing a link to a javascript library, the browser not only loads down the page text (html), but also the javascript library. By this download the necessity to fulfill the open source license requirements is triggered.

On the other side, usually the compressed library does no longer contain the required license information: the smaller the lib, the faster the download.

But it is useful, that nearly each open source license requires the distribution of itself – together with the copyright information. That’s not a legal gimmick! Only who has received the license can be sure, that he really has the rights the copyright owner want to grant –  if these copyright owner are known and named in the licensing statement. Therefore, it is meaningful to distribute also the copyright line.

Hence, the scrupulous user himself must expand the compressed libraries by adding the license text and the copyright lines into the javascript libraries before he let them load down from his server. That’s indeed legal – as long as he does not modify any still existing compliance information and as long as the copyright owner of the library has not forbidden by a sentence in the copyright header to modify this insufficient copyright header.

fodina.de tries to fulfill the open source requirements of the open source javascript libraries  used in fodina.de by ‘re-adding’ the missed information wherever possible:

hoverIntent.js MITdelivered, as received, because the copyright owner says: 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.jsMITLicense and copyrightline inside of the delivered library
jquery-validation.jsMITLicense and copyrightline inside of the delivered library
modernizr.jsMITlicense and copyrightline integrated into the delivered library
superfish.jsMITlicense selection and copyrightline integrated into the delivered library
yaml css framwork:CC BY 2.0requires a link to YAML and to the Creative Commons Attribution 2.0 License


Leave a Reply

Your email address will not be published. Required fields are marked *

− 1 = 1

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. (Details)

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.