Open source licensing notices in Web applications

Author:Arnoud Engelfriet
Position:Associate, ICTRecht Legal Services
Pages:81-90
Open source licensing notices in Web applications 81
Open source licensing notices in Web applications
Arnoud Engelfriet
a
(a) Associate, ICTRecht Legal Services.
DOI: 10.5033/ifosslr.v3i1.47
Abstract
More and more applications are moving to the Web. Often, such
applications present a combination of client- and server-side code.
Almost all FOSS licenses require an explicit notice in the code regarding
the license applicability and sometimes even the entire license text.
However, for Web applications this approach can add significant
performance penalties. In this article I discuss the theory and practice
of various approaches towards this issue.
Keywords
Law; information technology; Free and Open Source Software; Web
applications
Linking to open source licenses
Open source software is freely available for anyone, including source code. The license grants
everyone permission to adapt or improve the source code, for example to fix errors, to make a more
efficient implementation or to add completely new functionality. The software may also be copied
and distributed freely, even in modified form.
However, open source software is not public domain. The software is protected by copyright and one
must accept the license terms before the software may be modified and distributed. With open source
licenses it is not required to explicitly sign an agreement with the author. Typically the author merely
adds a license statement in the source code to put recipients on notice.
Including complete license texts in source code is of course sufficient, but for Javascript applications
often impractical. For intentional source code distributions, e.g. a downloadable zipfile with the full
code and documentation it may be acceptable to add a license text, but if the Javascript code is
downloaded as part of a Web page, the overhead may be significant.
The question then arises, is it sufficient to merely refer to a license that is published elsewhere, e.g. by
linking to the license text on opensource.org?
International Free and Open Source Software Law Review Vol. 3, Issue 1
82 Open source licensing notices in Web applications
Consequences of insufficient license notice
When considering if a license notice is sufficient, one must also consider the consequences of an
insufficient notice. The only consequence I can think of is that the recipient of the file cannot claim
any usage right under the license in question. As a result, that recipient cannot use or distribute the
file. Without a license, basic copyright applies and copyright forbids the reuse or redistribution of
software without adequate permission.
A difficult situation may arise if the license notice is accompanied by a text such as This program is
free software; you can redistribute it and/or modify it under the terms of the GPL.
Such a text is by itself a permission (a mini-license) to freely redistribute and/or modify the code.
The terms of the GPL could be declared inapplicable if the reference is insufficient. As a result, a
recipient would have unlimited permission to redistribute or modify, without any obligation under the
GPL.
Literature review
The legal literature is surprisingly silent on this issue. Van Lindberg, Intellectual property and open
source, OReilly 2008 (p. 150) recommends to simply use a reference and store the license text itself
somewhere in the source distribution. Other standard works, such as Rosen, Open source licensing,
Prentice Hall 2004 and St. Laurent, Understanding Open Source and Free Software Licensing,
OReilly 2004 do not discuss whether one can merely refer to a license text outside the files one
distributes.
One relevant article is Richard M. Stallman, The JavaScript Trap, GNU.org July 31, 2010
http://www.gnu.org/philosophy/javascript-trap.html. This article acknowledges that the GNU GPL is
long enough that including it in a page with a JavaScript program can be inconvenient and proposes
a convention that uses the markers  and  to mark the beginning and end of
license references.
The convention suggests to use a text like this:
The JavaScript code in this page is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License (GNU GPL) as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any later version.
The code is distributed WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
GPL for more details.
This convention appears to be used in some larger Javascript-based projects (such as Plone) but is not
universally adopted.
International Free and Open Source Software Law Review Vol. 3, Issue 1
Open source licensing notices in Web applications 83
Applicability as stated in open source license
Open source licenses themselves often contain statements about how they can be declared applicable
to certain software. These statements may allow or instead block the use of external references.
The GNU General Public License
The most popular open source license is the GNU General Public License or GPL. Version 2 of this
license states:
This License applies to any program or other work which contains a notice placed by the
copyright holder saying it may be distributed under the terms of this General Public
License.
The recommended format for this notice (as given below the official text on GNU.org) contains the
line
This program is free software; you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version. ... You should have
received a copy of the GNU General Public License along with this program; if not, write
to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-
1307 USA.
Version of the GPL has no explicit statement about how to recognize whether a work is licensed
under GPLv3. There is only this sentence:
The Program refers to any copyrightable work licensed under this License.
At the bottom an example is given, which has the same text as for GPLv2. We may thus assume that
the intent is the same for GPLv2 and v3. The GPL in other words does not provide any obstacles
against merely referring to the GPL text at an external location.
GNU Lesser General Public License
The GNU Lesser General Public License has a very similar clause in version 2.1:
This License Agreement applies to any software library or other program which contains
a notice placed by the copyright holder or other authorized party saying it may be
distributed under the terms of this Lesser General Public License (also called "this
License")
Therefore the LGPL, like the GPL, does not provide any obstacles against merely referring to the
GPL text at an external location.
The Mozilla Public License 1.1
International Free and Open Source Software Law Review Vol. 3, Issue 1
84 Open source licensing notices in Web applications
The MPL uses an explicit source code notice in an Exhibit to the license text. This notice contains
the following text:
The contents of this file are subject to the Mozilla Public License Version 1.1 (the
"License"); you may not use this file except in compliance with the License. You may
obtain a copy of the License at http://www.mozilla.org/MPL/
With this text it is clear that a mere reference to the license text can suffice.
The BSD license
The BSD license is a bit more problematic. The license does not define which software is covered by
it. The only reference is article 1 of the license:
Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
This makes it clear that the license text must be in the file to which the license applies. Furthermore,
the BSD license is typically offered as a template so that linking to that text results in an incomplete
license. This reinforces the interpretation that one must copy the license text (and substitute ones
details as copyright holder) before the BSD license can apply.
Arguably one can interpret the word retain as do not remove without an obligation to actually
include the notice and the conditions in any source file. Under this interpretation it could be sufficient
to refer to the BSD license elsewhere on the World-Wide Web. One would still need to make a copy
of the BSD license template and substitute ones details.
The MIT license
The MIT license is a very brief and liberal open source license. The license text states that the license
applies to
any person obtaining a copy of this software and associated documentation files
but also requires that
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
This requirement makes it hard to comply without actually including the verbatim text of the license
in the Javascript file. We could follow the same approach as with the BSD license and interpret shall
be included as must not be removed but the use of the active verb shall makes this a harder
interpretation.
Apache license
International Free and Open Source Software Law Review Vol. 3, Issue 1
Open source licensing notices in Web applications 85
The Apache license 2.0 declares that a work is licensed under this license as follows:
Work ... made available under the License, as indicated by a copyright notice that is
included in or attached to the work
and provides an example
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Like the Mozilla Public License, it is clear that a mere reference to the license text can suffice.
Use of license references in practice
Another aspect to consider is how open source licensed are declared applicable in practice. To this
end I investigate several popular Javascript libraries that are available under open source licenses. For
each library I reproduce the copyright notices from the source files below.
All the libraries I examined merely included a reference to the applicable open source license in the
source files. Some did include the complete license text in a separate file in a source distribution,
others merely referred to a webpage in all cases. None however included the license text in the
Javascript source files themselves.
DHTMLX
DHTMLX (http://dhtmlx.com/) is a JavaScript GUI widget library for building dynamic web
applications with desktop-like user experience and Ajax data loading. DHTMLX source files provide
this notice:


  ! 
∀#
 #!  !
   ∃

jQuery
jQuery (http://jquery.com/) is a fast and concise JavaScript Library that simplifies HTML document
traversing, event handling, animating, and Ajax interactions for rapid web development.
jQuery source files provide this notice:
%
&∋()∗+),−.
&/

International Free and Open Source Software Law Review Vol. 3, Issue 1
86 Open source licensing notices in Web applications
.0,01( 2
  3∀#4 . 
&/ 

3 ∗55&
55&
.0,01&6 
2 317∗1 ∀# 

∗6+,8..88−9.0,0:0;00

Plone
Plone (http://plone.org/) is a Content Management System built on top of the open source application
server Zope and the accompanying Content Management Framework. Plone source files provide this
notice (in line with the convention discussed earlier):
∃!    
!()∗
 



!!> +
 !
 !∀?≅∀ #+ 
++6
∗!6  >) .! 

+ +
!1+Α3Β≅
Χ?ΑΧ22Χ?>)  !
∆2Χ?Χ733
63?∆∗∗6Β2Χ#Χ23≅Χ2#≅2#Β∗∆∗∀?≅∀ 
#+ !


))!∀?≅∀ 
#+  
>! 16∗!
6  13 1;,
6 Ε ∗16!617 1Χ0.,,0:,80,
≅∗Χ

∃ +)   !
()∗ 


Dojo Toolkit
Dojo Toolkit (http://www.dojotoolkit.org/) is an open source modular JavaScript library (or more
specifically JavaScript toolkit) designed to ease the rapid development of cross-platform,
JavaScript/Ajax-based applications and web sites.
Dojo source files provide this notice:
International Free and Open Source Software Law Review Vol. 3, Issue 1
Open source licensing notices in Web applications 87


2)
Χ)+)Χ6 ΦΓ.,Β2
!7∗ 
&Ε !

YUI Library
The YUI Library (http://developer.yahoo.com/yui/) is a set of utilities and controls, written with
JavaScript and CSS, for building richly interactive web applications using techniques such as DOM
scripting, DHTML and AJAX.
YUI source files provide this notice:


  7∗ 
) 
) 8.0
+.ΗΙΗ

Mootools
Mootools (http://mootools.net/) is a compact, modular, Object-Oriented JavaScript framework
designed for the intermediate to advanced JavaScript developer.
Mootools source files provide this notice:
 3: 

Date.js
Date.js (http://www.datejs.com/) is an open-source JavaScript Date Library. Date.js source files
provide this notice:

4 ,0Χ:,
7,8:?):.00Ι

   3 ∗
  & 
Α+&
&

Ext.JS
Ext.JS (http://www.sencha.com/products/js/) is a cross-browser JavaScript library for building rich
internet applications. Both commercial and Open Source licenses are available.
International Free and Open Source Software Law Review Vol. 3, Issue 1
88 Open source licensing notices in Web applications
Ext.JS source files provide this notice:
%
∆(∗+880

  ∃&
& 

Conclusion
There is a very real desire to not include full open source license texts in Javascript files when those
are downloaded by browsers. For distributions of Javascript projects in original form (with source
code, documentation etcetera) this issue is less apparent, as the overhead of a single license file is
small.
Virtually all projects that use open source and Javascript in practice simply refer to the license text as
hosted on their own website. I found no project that actually copied an open source license text in a
Javascript file.
Most open source licenses do not provide obstacles against this practice. As long as the license is
identified and available by URL, one may consider this as adequate notice. I therefore conclude that
authors of Javascript files can license by including a reference to the license and a URL where the
license text can be found.
Based on the current practices I found above, I hereby recommend two forms of notice, a short form
and a long form. The notice (in either form) should be included at the top of the source file in
question;
Short form:
ΒΑ?∆2?Χ∆  ?Χ∆3∆?∗∆∆2∆
∗  
Long form:
∃



!  ?Χ∆3∆?∗∆∆2∆
Χ! +! 
 

∃ 
International Free and Open Source Software Law Review Vol. 3, Issue 1
Open source licensing notices in Web applications 89
About the author
Arnoud Engelfriet is associate at ICTRecht Legal Services in Amsterdam, the Netherlands. With his
software engineering background he specializes in Internet law and software licensing issues. Before
joining ICTRecht he worked for almost nine years at Royal Philips Electronics, where he created and
deployed the firms open source policy. Arnoud has published extensively about open source. Among
others he published the first legal analysis under Dutch law of GPL version 3.
International Free and Open Source Software Law Review Vol. 3, Issue 1
90 Open source licensing notices in Web applications
International Free and Open Source Software Law Review Vol. 3, Issue 1
Licence and Attribution
This paper was published in the International Free and Open Source Software Law
Review, Volume 3, Issue 1 (September 2011). It originally appeared online at
http://www.ifosslr.org.
This article should be cited as follows:
Engelfriet, Arnoud (2011) 'Open source licensing notices in Web applications',
International Free and Open Source Software Law Review, 3(1), pp 81 90
DOI: 10.5033/ifosslr.v3i1.47
Copyright © 2011 Engelfriet, Arnoud.
This article is licensed under a Creative Commons UK (England and Wales) 2.0 licence,
no derivative works, attribution, CC-BY-ND available at
http://creativecommons.org/licenses/by-nd/2.0/uk/
As a special exception, the author expressly permits faithful translations of the entire
document into any language, provided that the resulting translation (which may include
an attribution to the translator) is shared alike. This paragraph is part of the paper, and
must be included when copying or translating the paper.