fg.workshop: Opensource licenses

24
October 3, 2013 Open Source Licenses

description

http://fg-informatik.unibas.ch/wiki/index.php/Open_Source_Lizenzen

Transcript of fg.workshop: Opensource licenses

Page 1: fg.workshop: Opensource licenses

October 3, 2013

Open Source Licenses

Page 2: fg.workshop: Opensource licenses

Disclaimer

Page 3: fg.workshop: Opensource licenses

✤ 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?

Page 4: fg.workshop: Opensource licenses

Open Source Licenses

✤ permission to deal with the software under certain conditions!

✤ ... for everyone!

✤ giving different licenses to specific people is possible (dual licensing)

Page 5: fg.workshop: Opensource licenses

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:

Page 6: fg.workshop: Opensource licenses

Copyleft Licenses

Page 7: fg.workshop: Opensource licenses

GPL GNU General Public License

GPL tries to guarantee users the right touse, study, share and change software!

!

a.k.a. force it to remain open source!

!

Used by Free Software Foundation, GNU, and Linux

Page 8: fg.workshop: Opensource licenses

✤ 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

Page 9: fg.workshop: Opensource licenses

!

!

✤ 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

Page 10: fg.workshop: Opensource licenses

GPLv3

✤ explicit patent grant!

✤ prevents “TiVoization”!

✤ addresses DRM: GPL software can never be regarded as copy protection

Page 11: fg.workshop: Opensource licenses

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)

Page 12: fg.workshop: Opensource licenses

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

Page 13: fg.workshop: Opensource licenses

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

Page 14: fg.workshop: Opensource licenses

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

Page 15: fg.workshop: Opensource licenses

Permissive Licenses

Page 16: fg.workshop: Opensource licenses

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

Page 17: fg.workshop: Opensource licenses

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.

Page 18: fg.workshop: Opensource licenses

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

Page 19: fg.workshop: Opensource licenses

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

Page 20: fg.workshop: Opensource licenses

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

Page 21: fg.workshop: Opensource licenses

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

Page 22: fg.workshop: Opensource licenses

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

Page 23: fg.workshop: Opensource licenses

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

Page 24: fg.workshop: Opensource licenses

Thank you