Software Licenses - Team-B-Capstone/Team-B-Capstone-2015 GitHub Wiki
Software Licenses
Apache
- A license that allows you much freedom with the software, including an explicit right to a patent. “State changes” means that you have to include a notice in each file you modified.
- Can: Use Commercially, Modify, Distribute, Sublicense, Use Privately, Use Patent Claims, Place Warranty
- Cannot: Hold Liable, Use Trademark
- Must: Include Copyright, Include License, State Changes, Include Notice
BSD
- 2 variants, 3-clause and 2-clause.
- Both are very permissive, allowing any use and modification of our code without any restrictions.
- 3-clause requires the permission of the copyright holder if someone wants to endorse or advertise a derived product using the copyright holder's name.
- 2-clause eliminates that requirement entirely
- Has the standard disclaimer about no warranty
- Would impose no restrictions on us or our workflow
- Would impose no restrictions on our sponsor, outside of them using our names to advertise something else they make using our code, if we use the 3-clause version. 2-clause eliminates that restriction.
- We would still "own" the code, in that we are the copyright holders.
- This doesn't really matter as anyone can use and modify the code anyway they see fit.
- If I didn't list a restriction, anything else goes, including monetizing our work. So, it is about as free as you can get.
MIT
- Very permissive free software license.
- Anyone may freely use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software.
- The software can be integrated into a proprietary product without affecting its proprietary nature. In other words it can be redistributed under a more restrictive license.
- There are no restrictions on monetizing of the software, it may be copied or redistributed by anyone, even if they charge for it.
- It is GPL-compatible, so the software could be used in a GPL licensed product.
- Similar to the Simplified BSD license or ISC license, but states more explicitly the rights of the end user.
- The software license would not restrict the team or the client from using, modifying, or distributing the software for any reason.
- The only real requirement of the license is that the copyright notice is included in all substantial portions of the product.
- The copyright holder owns the code, but the nonrestrictive nature of the license means it does not really matter.
- The term “MIT license” is ambiguous as several versions exist, notably the “X11 license” and the “Expat License”, the Expat License being the more common.
GPL
-
Nonpermissive licence!
-
Requires publishing source code and terms of the license. Except: Private or internal use, where no copy is distributed or sold, may be modified without publishing source code. But: Using gpl code as part of ones own code would require publishing the entire code base if distributed or sold.
-
Software may be copied by anyone, even if they charge to redistribute.
-
Software may be run by anyone for all purposes, including using it as a tool to generate proprietary software.
-
Copyleft: The license grants the right to use, modify, re-distribute both copies and derivatives only by adhering to the terms of the gal, so any produced derivative can not be ‘owned more exclusively than the original product under the license. To use the code in my own public or commercial product, I must provide everyone with the same rights to my product that the gpl provided for the product I used.
-
Ambiguity about what constitutes a derivative Merely linking to a gpl library for example, could be construed as creating a derivative work under the gpl with all that that implies.
-
Long and short of it, we or the client would have a very hard time trying to monetize anything we produce, and the client may very likely have issues about licensing that attaches to their other products if they try to use this commercially.
Except If
We sell an exception to the client... We could in theory license our product with GPL, but if we hold the license, then we can 'sell' an exception to the terms to the client that allows them to use the code in a proprietary system.
Lesser GNU Public License (LGPL)
- Developed by the Free Software Foundation
- Created as a compromise between the GPL and BSD/MIT style licenses
- All the provisions and restrictions of the GPL with one principal exception: the license explicitly allows static linking from non-free software.
- Would allow us to write a library that a company could still use in proprietary code bases. A client wouldn't be restricted from using it as part of a larger closed-source project.
- However, this client wouldn't be allowed to continue development of our code under a proprietary license without violating the LGPL.
- The Free Software Foundation encourages developers to license code under the regular GPL and only to use the LGPL as a "matter of strategy".
Common Development and Distribution License
- CDDL is a Copyleft license.
- Based off of the Mozilla Public License version 1.1
- You can use, modify, sublicense and use it as part of a larger work but you must make the source code available. Modifications must follow the original license, and should be mentioned.
- Any software distributed must also be available in Source code form. Must also include a copy of the license with every copy of the source code.
- Able to sublicense. You are able to distribute the executable form of a software under the terms of a license of your choice as long as you follow the terms of the original license. You must also make clear that if you redistribute under a different license that it is offered by only you, and not the Initial Developer or Contributor.
- Incompatible with GNU General Public License (GPL)
- You can charge a fee if you offer warranty, support or liability. The Initial developer and contributors are not liable.
- This shouldn't restrict us or the customer from working on and using the code, as long as we make the source code available when distributing it. It shouldn't matter who owns the code because anyone is able to use and modify it.
Mozilla Public License 2.0
- Second iteration of Mozilla's licence, designed to be more compatible, legal, easier to use and understand than earlier versions.
- Used for all Mozilla products
- Less restrictive than GNU (A)GPL and more restrictive than BSD and MIT licencing.
- Allows the code to be re-used, modified and marketed for profit.
- Is compatible with Apache and GPL licenses, has been used in tandem with these and other licenses by Mozilla. This is one of its main functionalities: allowing integration with GPL while selling and editing open-source code.
- Reused code must be noted and accessible. Any modifications to existing code must also be published.
- Derivative code can be released under any licence and included in proprietary software