Open Source License Selection Paper by Paul Roberts

advertisement
Open Source License Selection
by
Paul Roberts
Hogan Lovells
202.637.8628
Paul.Roberts@hoganlovells.com
Page 1
Open Source License Selection
Abstract: This paper describes a ten step method for determining what type of open source
license to select depending on the needs of the Author or Contributor of an open source Program.
Additionally, many of the basic principles of open source licensing will be discussed, but an
understanding of patent law may be helpful to the reader. The appendix of the paper also
provides a detailed chart listing the properties and distinguishing characteristics of fourteen of
some of the more common open source licenses.
Author: Paul A. Roberts' practice focuses on litigation, licensing, and prosecution of computer
hardware and software patents, encryption, security, and telecommunication technology. As
both a retired patent examiner and an active member of the ABA Section of Intellectual Property,
Paul maintains an interest in all areas of computer law, and will be speaking on Open Source
Licensing in April, 2011 at the Annual Meeting in Arlington, VA.
Disclaimer: the contents of this paper are provided for informational purposes only. While the
information herein has been verified to extent possible, no guarantees about its accuracy are
intended or implied. Individuals requiring counsel involving open source licensing should obtain
specific legal advice from a qualified attorney.
Open Source Versus Proprietary Software
In a nutshell, proprietary software generally refers to software wherein the Author keeps the
source code a trade secret. Open source software typically refers to software where the Author
distributes the source code. Advocates for open source software suggest that the open source
model creates a better product, by encouraging the software community to build and error check
the software, resulting in more robust software. In contrast, advocates for proprietary software
suggest the economies of private development provide resources to develop a superior product.
Frequently, open source programs are distributed for free (or at least their source code is freely
distributed). Companies involved in the open source arena often make money through providing
customized versions of the software, providing support, or providing specialized packages for the
software product. Open source software distribution is often more about the freedom to modify
the source code, than it is about being free of charge. Freedom to modify, freedom to distribute,
not free of charge.
Page 2
Open Source Framework
In this paper, the Author is the person who
makes the Original Work or Program.
Arrows show the license flow.
A Contributor incorporates the Original
Work into an Improved Work. Some
open source licenses allow the Contributor
to add amalgamate multiple original
works together into a collective work,
others require the Contributor to own the
copyright to all works.
A User obtains the improved work or the
original work from a Distributor.
The license governing the Improved
Version will not necessarily be the same as the license governing the Original Work, because
Contributor can license his contributions under a different license unless the license to the
Original Work required otherwise.
License Models
The options Authors have in selecting an open source license form a spectrum starting from the
relatively permissive such as that of the Massachusetts Institute of Technology License (MIT)
and Berkeley Software Distribution (BSD) licenses allowing most uses of the software to the
relatively restrictive general public licenses (GPL) which go to lengths to prevent proprietary use
of the software. Newer licenses like the Mozilla Public License and the Common Development
and Distribution License provide more of a hybrid approach.
When a license is said to be more restrictive, the license restricts a Contributor’s ability to
convert the software for proprietary use. Typically the “more restrictive” licenses allow the
Contributor or User to have more freedom to modify and distribute the software so long as such
modification and distribution does not involve incorporating the software into proprietary
programs.
Page 3
Common License Options
Below you find 14 of the web’s most popular open source licenses. These fourteen represent a
small fraction of the two hundred or so available open source licenses to choose from, but about
90-95% of the world’s open source licensed software is licensed through one or more of these
licenses. Other popular licensees include Sleepycat (Berkeley Database License), Apple Public,
Academic Free License 3.0, and these licenses and many others may be analyzed through the
same following method.
In the proprietary license world, the proliferation of many different licenses is accepted, because
Users buying proprietary licenses do not expect to be able to able to incorporate the software,
distribute it, or otherwise use it beyond home or commercial user. When a user buys a copy of
PowerDVD or Nero Burning Rom for example, one expects in the accompanying end user
license that he or she can only use the software on one computer, cannot transfer the license,
cannot review the source code, cannot reverse engineer the object code, etc. Whereas the
licenses for VLC player and InfraRecorder are free open source equivalents of these above
software packages. Most users would agree PowerDVD and Nero Burning Rom have more
features and a cleaner more intuitive interface, but VLC Player and InfraRecorder are lighter
weight, have strong community support, and of course free. Some companies produce free
software to promote their brand as well such Ashampoo which makes the popular and free but
proprietary closed source Ashampoo Burning Studio Free software, while other companies
utilize an open source core, but charge for implementation or integration of the core, such as
Source Fire and the open source Snort Engine, or Red Hat’s Linux operating system.
From the user perspective the proliferation of open source may be good for the software
community, but the proliferation of various open source licenses may not. Open source software
thrives on the engagement of the community for development and improvement of the software,
and when Contributors have to wade through a myriad of complicated open source licenses,
some of which may be incompatible with packages the Contributor wishes to use, the
development of open source software may be slowed by the very instrument which creates its
existence –the open source license.
Nearly every significant variation of the terms of an open source license has already been
written, but Authors tend to produce new ones, rather than examine what is already in existence.
With the hundreds of open source licenses available, making a decision as to which license to
Page 4
choose becomes a formidable task, and user tend to pick a common one like the GPL or simply
write their own license. The key to choosing an appropriate license is understanding the
differences between them.
PERMISSIVE LICENSES
1.
2.
3.
4.
5.
Beer
BSD
MIT
Apache License V2
WC3
Permissive licenses are licenses that grant a contributor or user a relatively broad license to use
and modify the source code.
1. The Beer license is the grand daddy of permissive licenses. It basically works like this.
The author provides the rights to distribute, modify, and copy the source code and
executable code of a program to the user, and if the user likes the software and
encounters the author in a bar in the future, the user should buy the Author a beer.
Obviously, the enforceability of this license may be questionable, but it nicely illustrates
the creativity of licenses being prepared by our open source community.
2. The BSD/MIT licenses are largely similar and fairly interchangeable. You may suggest
these licenses when the Author wants to place the software in the open source
community with as little restriction as possible. The downside of course is others can
modify the software and make it proprietary which may defeat some of the benefits of
open source.
3. The MIT license may be a little clearer in spelling out the rights conveyed by the license
as compared to the BSD license.
4. The Apache License v2 is similar to the WC3 license, and adds a patent grant,
overrideable heredity (discussed below), and an attribution requirement.
5. WC3 License (World Wide Web Consortium) has some unique features including a
prohibition for charging for the software created using the open source code.. This is
unusual for open source software. The license also uses a tracked changes requirement
Page 5
HYBRID LICENSES
6. Eclipse
7. CPL
8. MPL 1.1
9. CDDL
10. Artistic License 2.0
11. APL
Hybrid Licenses generally feature heredity, strong patent grants with license revocation for
claims of infringement, a source code distribution requirement, and allow for merging of various
licenses.
6. Eclipse: One of the least restrictive licenses featuring heredity and source code
distribution requirements. It is based on the CPL. It requires New York Law to
apply.
7. CPL: Separate object and source code distribution requirements; the source code must
be distributed under this license, the object code under a different license but the
source code for the object code must be distributed under the license.
8. MPL 1.1: Compared to the CPL/Eclipse licenses the MPL features a very organized
structure, an attribution requirement (though nearly all licenses requirement
distribution of the original license and copyright notice), and a strong license
revocation clause. The MPL 1.1 makes many of the patent grant license terms very
explicit, for example a User has to disclose if it owns any reasonably necessary
patents for implementation of an API.
9. CDDL: Generally clean and easy to read compared to the MPL, but it has similar
coverage with a few minor differences.
10. Artistic License: Despite the name, this license was developed for distribution of
PERL. It has very unusual ways of accomplishing basically same thing as the CDDL.
For example, rather than forcing you to distribute the source code, you have to make
it available to the Author, and the Author can distribute it. The artistic license is
especially useful for licensing new software languages.
11. APL: is a customizable license that works as a template for other licenses. Some
variable clauses include the patent grant, attribution, and jurisdiction.
Page 6
RESTRICTIVE LICENSES
12. LGPL
13. PL2
14. GPL3
The General Public Licenses (GPL) represent the lion’s share of the open source licensing used
because of their strong copyleft provisions. They also are incompatible with other licenses, and
do not allow for a different license for the object code and source code (unlike the Hybrid
Licenses.)
Some of the variations between these licenses are software libraries licensed under the Lesser
General Public License (LGPL) can be incorporated into proprietary programs, whereas GPL2/3
code cannot. The LGPL includes all the language from the GPL (version 2 or 3), but adds a few
sections which modify certain GPL requirements. The GPL3 was recently published by GNU in
response to three major changes in the law since the release of GPL2. GPL3 adds patent grant, a
prohibition against using the licensed software with DRM media, and adds hardware lock
protection (Tivolization) to the GPL2.
Major License Features
About 40 of the most popular licenses were reviewed in preparing the below list. These ten
differences represent some of the more significant variations open source licenses can have.
1. Heredity
2. Strong, Weak, or no copyleft
3. Static, active, or no linking
4. Open source improvements
5. Patent grant
6. Merging
7. Distribution
8. Change tracking
9. Attribution
10. Hardware Locks
11. Miscellaneous (warranty disclaimer, choice of law, license revocation, etc)
The above 11 categories may provide an approach for figuring out which license one needs, one
can answer the questions and check the attached chart to determine the license having these
features.
1. Heredity: relates to a license’s requirement for any subsequent license on contributions to
be licensed under the same terms. Most licenses requiring Heredity (and many of the
other features just mentioned) grant the license conditioned upon the acceptance of all
terms, thereby preventing a contributor from removing restrictions from the license.
Often extra terms can be added, but not in all licenses such as the GPL.
Page 7
2. Copyleft: The ability of a contributor or distributor to add restrictions to a work. While
most open source software allows you to use and modify the code as you want, open
source software incorporating copyleft provisions prevent a contributor from making the
future software proprietary.
3. Linking: Linking is the difference between strong and weak copyleft. Programs which
are compiled and draw in other programs are called static linking. Most weak copyleft
licenses require the statically linked code to have the same terms as the contribution.
Active linking refers to drawing in programs at run time. Only the GPL3 and arguably
GPL2 require the active linking also to be compliant with the terms of the GPL License.
4. Open source improvements: This is a general distribution requirement that any
contributor works must also be open source.
5. Patent Grant: There are a number of different types/styles of patent grants that different
open source licenses require. Most of them are untested, and selection of any appropriate
one, largely depends on how specific the Author feels is necessary to protect himself and
his future users. Also most licenses include an automatic license withdrawal provisions
triggered by asserting the license.
6. Merging: Refers to whether this software can be merged with other software having a
different license. Most licenses allow merging
7. Distribution: What requirements does the license provide for distributing source or
executable versions of the software.
8. Change Tracking: Some licenses require the contributor specify what he changed in
relation to the original program
9. Attribution: Most licenses require the original copyright notices and licenses to be
included, but some also require attribution to all intervening contributors who added code
to the software
10. Hardware Locks: can you use hardware to lock the code (via a watermark or key) as to
prevent users from effectively modifying the code. This tactic was performed by TiVo,
which led to the development of GPL3
11. Miscellaneous: This just includes all the random differences licenses have from choice of
law, whether there is a warranty disclaimer, whether there is a license revocation clause,
etc.
If one thinks of a license type as the answer to the list of 11 questions, answering the eleven
questions will provide the type of license you should consider. For example, if one selects: yes
to heredity, prefers weak copyleft protection, didn’t want to place restrictions on linking wanted
a patent grant, to allow merging, want to force Contributors to make their source code available,
didn’t want to enforce change tracking, but did want attribution, didn’t want to enforce hardware
locks, and wanted a warranty disclaimer the Common Public License or Eclipse license would
fit. (The following is excerpted version of the chart from the appendix.)
Page 8
Category
Heredity
Eclipse
Yes
CPL
Yes for source code
Weak, Strong,
or no Copyleft
Static, active, or
no linking
Weak
Weak
No restriction
No restriction
Open source
improvement
Yes because of heredity
Yes
Patent Grant
Yes
Yes
Merging
Allowed
Allowed
Distribution
Source code must be made
available in a reasonable
manner
Source code must be made available in a reasonable
manner
Change
tracking
None
None
Attribution
None
None
Hardware
Locks
None
None
Miscellaneous
(warranty
disclaimed
unless
otherwise
noted)
Prospective license
termination if a user asserts
a claim of patent
infringement against the
Author or a Contributor.
New York Law Applies
Prospective license termination if a user asserts a claim
of patent infringement against the Author or a
Contributor.New York Law Applies
Link
Significant
Differences
Eclipse
One of the least restrictive
licenses featuring heredity
and source code distribution
requirements. It is based on
the CPL
CPL
Separate object and source code distribution
requirements; the source code must be distributed
under this license, the object code under a different
license but the source code for the object code must be
distributed under the license.
This is not to say the Eclipse license is the same as the Common Public License (the Eclipse
License actually is a successor-e.g. version 2.0) of the Common Public License. And while these
two licenses bear great similarity both should be reviewed, and the one having the more desired
word smithing selected. By way of example both the MPL and CDDL licenses feature heredity
and a patent grant, but the scope of the MPL heredity clause differs from the CDDL as does the
scope of the patent grant.
As shown in the following chart, the heredity clause of the CDDL is arguably broader (in least
broad enough to warrant the departure from the original MPL wording) than the heredity clause
of the MPL. Similarly, the scope of the patent grant is larger for the CDDL because the CDDL
includes a patent grant for code separated from the Original or Modified Work.
Page 9
Most of the licenses featured in the chart in the appendix have various revisions: BSD has three
versions, the Artistic License two versions, GPL three versions, etc. Each having different
wording for each category, and some having opposite answers for each category. In general, one
should select the most recent version of each license, as the custodian of the license (the
organization that wrote it) updated because it felt that the preexisting one was not clear enough
or did not adequately protect the software. A notable exception is the GPL license. Some
commenters believe that GPL3 is too strong of a copyleft license, and others (notable fans of
GNU) believe it strikes the right balance of ensuring that open source software stays open source
in all of its applications.
Page 10
Category
MPL 1.1
1.9 Modifications means any
addition to or deletion from the
substance or structure of either the
Original Code or any previous
Modification
A. Any addition to or deletion from
the contents of a file containing
Original Code or previous
Modifications.
B. Any new file that contains any
part of the Original Code or previous
Modifications.
Patent Grant 2.1 (b) to make, have made, use,
practice, sell, and offer for sale,
(Author)
and/or otherwise dispose of the
Original Code.
Scope of
Heredity
CDDL
Comments
1.9 A. Any file that results from an
addition to, deletion from or
modification of the contents of a file
containing Original Software or
previous Modifications.
B. Any new file that contains any part
of the Original Software or previous
Modifications.
The CDDL in nearly all
cases has a broader
heredity clause than the
MPL.
2.1 (b) to make, have made, use,
practice, sell, and offer for sale, and/or
otherwise dispose of the Original
Software.
Under CDDL if you
separate code from the
Original Code, the User
must grant patent rights
covering the separated
2.1 (d) no patent license is granted: 2.1 (d) no patent license is granted: (1) code. Not so with the
1) for code that You delete from the for code that You delete from the
MPL. Under the
Original Code; 2) separate from the Original Software; or (2) for
CDDL, to avoid the
Original Code; or 3) for
infringements caused by (i) the
paten grant, the User
infringements cause by i) the
modification of the Original Code or must use all the code, or
modification of the Original Code or (ii) the combination of the Original
none of it.
ii) the combination of the Original Software with other software or
Code with other software or devices. devices.
2.2(b) to make, use, sell, offer for sale, In 2.2(b), the CDDL
Patent Grant 2.2(b) to make, use, sell, offer for
have made, and/or otherwise dispose clarifies that a patent is
(Contributor) sale, have made, and/or otherwise
dispose of: 1) Modifications made by of: (1) Modifications made by that
granted for portions
that Contributor with its Contributor Contributor with its Contributor
whereas the MPL 1.1
Version and 2) the combination of Version; and (2) the combination of does not. While the
Modifications made by that
Modifications made by that
removal of the
Contributor with its Contributor
Contributor with its Contributor
separation term may
Version.
Version (or portions of such
seem insignificant,
(d) No patent license is granted: 1) combination)
because patent claims
for any code that Contributor has
(d) No patent license is granted: (1)
usually cover positive
deleted from the Contributor
for any code that Contributor has
recitation of elements,
Version; 2) separate from the
deleted from the Contributor Version; but since claims can
Contributor Version; 3) for
(2) for infringement caused by: i) third also negatively claim
infringement caused by: i) third party party modification of Contributor
elements the withdrawal
modification of Contributor Version Version, or (ii) the combination of
of the license grant from
or ii) the combination of
Modifications made by that
the MPL allows a
Modifications made by that
Contributor with other software
Contributor or Author
Contributor with other software or (except as part of the Contributor
to better forecast which
other devices; or 4) under Patent
Version) or other devices; or (3) under of its patents will be
Claims infringed by Covered Code in Patent Claims infringed by Covered licensed by User
the absence of Modifications made Code in the absence of Modifications activity.
by that Contributor.
made by that Contributor.
Page 11
Conclusion
Determining which open source license best fits a software package is a matter of deciding how
forceful the Author wishes to be in making sure that none of the software can be incorporated
into any proprietary programs. In many open source licenses, even the Author cannot stop the
distribution of the software, once it has been released. However, sometimes an Author’s
interests are best served with a Hybrid License which allows a company to distribute source code
and object code under different licenses, and sometimes very little protection is needed at all.
And while there is something to say for keeping open source software free from proprietary use,
the use of the GPL3 license will never be a one size fits all license for every open source
software manufacturer. By stepping through the various categories in the paper, one can arrive
at the precise level protection from incorporation into proprietary programs that the Author
needs.
Page 12
Exhibit
Chart of Open
Source Licenses
Page 13
Download