The document discusses open source licenses, including their purpose and different categories. Copyleft licenses like the GPL require that derivative works be distributed under the same license terms, aiming to keep software open source. Permissive licenses like the MIT and BSD licenses impose fewer restrictions, allowing free use of the software for any purpose without requiring distribution of modifications under the same license. The document provides details on various specific open source licenses, their terms, and recommendations for choosing a license.
3. ✤ licenses deal with copyright (not patents)!
✤ the creator of “a work” automatically has copyright!
✤ without his permission, no one can!
✤ make a copy of that work!
✤ sell it!
✤ ...!
✤ licenses give such permissions to other people
What exactly do licenses do?
4. Open Source Licenses
✤ permission to deal with the software under certain conditions!
✤ ... for everyone!
✤ giving different licenses to specific people is possible (dual licensing)
5. Copyleft
software and “derivative
works” must always be
distributed under the same
conditions
generally allows redistribution
under other conditions
(e.g. commercial)
Permissive
GPL + variants MIT, BSD, Apache
Two Categories:
7. GPL GNU General Public License
GPL tries to guarantee users the right to
use, study, share and change software!
!
a.k.a. force it to remain open source!
!
Used by Free Software Foundation, GNU, and Linux
8. ✤ GPL software can basically be used for anything!
✤ No warranty of any kind!
✤ internally or privately used modifications are ok!
✤ if (modified) GPL software is distributed,
it always has to be GPL licensed (i.e. open source)!
✤ this applies to anything that uses GPL code
(even dynamically linked libraries)!
✤ => viral effect
GPL GNU General Public License
9. !
!
✤ The copyright owner can chose to distribute his own GPL code
in a different license!
✤ ...as long as everyone that ever submitted some code agrees!
✤ “Liberty or death” clause
GPL GNU General Public License
10. GPLv3
✤ explicit patent grant!
✤ prevents “TiVoization”!
✤ addresses DRM:
GPL software can never be regarded as copy protection
11. GPL compatibility
✤ “can I integrate code licensed under X into GPL”!
✤ GPL requires that no additional restrictions can be placed!
✤ GPLv2 and v3 are not compatible (without specific clause)
12. LGPL Lesser General Public License
✤ same as GPL, but with linking exception!
✤ used by glibc!
✤ it must be possible to replace the LGPL software
=> reverse engineering can not be prohibited
(for debugging purposes)!
✤ problem for C++ libraries:
inline functions and templates copy code before compilation
13. AGPL Affero General Public License
✤ stronger than GPL!
✤ fixes the “application service provider loophole”!
✤ offering network services also requires source disclosure!
✤ e.g. Web CMS systems
14. Eclipse Public License (EPL)
✤ used by eclipse and equinox!
✤ Weaker than GPL!
✤ EPL does not require “separate modules of software”
to be EPL licensed!
✤ Alterations to original EPL software must be open source
16. MIT License
✤ used by ruby on rails, jQuery, ...!
✤ do what you want, but!
✤ ...include my copyright notice and these conditions!
✤ ...don’t sue me (warranty disclaimer)!
✤ that’s it!
✤ does not even apply to derivative works
17. Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
18. BSD License
✤ 2-clause: essentially the same as MIT-License
(mentions binary and source form separately)!
✤ 3-clause: you can not use the name of the
original author to endorse derived products!
✤ 4-clause: historical, contains berkeley university specific clauses
19. Apache License
✤ used by apache projects (SVN, ant, Hadoop, ...), Android, OpenOffice!
✤ relatively long (more conditions and exact formulations)!
✤ e.g. explicitly states that “contributions” become part of the software
and thus fall under the Apache License!
✤ “derivative works” does not include linking!
✤ patent grant!
✤ if some one sues the project because of patents,
he loses all rights granted by the Apache license
20. Apache License (duties)
✤ license and copyright must be included (+ the NOTICE file)!
✤ modifications must be prominently stated!
✤ you may add license terms on redistribution!
✤ no trademark using
21. license choosing for dummies
✤ GPL:
project should always remain open source!
✤ LGPL (EPL) / AGPL:
linking should be allowed / I want to prohibit network services!
✤ MIT / BSD:
(almost) everything should be allowed;
license as simple as possible!
✤ Apache:
permissive, but more explicit regulations;
patent grant should be included
22. Applying a License
✤ put a copy of the license into [projectroot]/LICENSE!
✤ some licenses recommend inserting a short notice
at the top of each source file
23. Further reading
✤ O’Reilly Openbook:
Understanding Open Source and Free Software Licensing!
✤ www.tldrlegal.com
(sometimes too) short summaries of licenses;
has a “license chooser”!
✤ choosealicense.com
similar; started by github