Licenses: Difference between revisions

Created page with " See [https://choosealicense.com/ https://choosealicense.com/] for help choosing a license for your project.<br> They have a high-level comparison between licenses at [https:/..."
 
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 2: Line 2:
See [https://choosealicense.com/ https://choosealicense.com/] for help choosing a license for your project.<br>
See [https://choosealicense.com/ https://choosealicense.com/] for help choosing a license for your project.<br>
They have a high-level comparison between licenses at [https://choosealicense.com/licenses/ https://choosealicense.com/licenses/].<br>
They have a high-level comparison between licenses at [https://choosealicense.com/licenses/ https://choosealicense.com/licenses/].<br>
In general, you should use one of the MIT, Apache, or BSD licenses. 
Larger projects, such as tensorflow, tend to go Apache since it has some patent clauses.
If you choose a variant of GPL, it heavily decreases the likelihood of others, especially companies, using your code since GPL forces derivatives of the work to be opensource.
This is typically known as a ''copyleft'' license.
If you are writing closed-source software, only use other software which are MIT, Apache, or BSD licensed.
Do not use or link to any AGPL software such as MongoDB, especially if you want your startup to get bought out.
Interacting with GPL programs such as MariaDB through an interface layer is fine though.   
Licensing your own software as AGPL will prevent it from ever being bought out or used at many tech companies. 
This is because tech companies, in particular Google, have an AGPL ban<ref name="googleagpl">Google AGPL Policy: https://opensource.google/docs/using/agpl-policy/</ref>.


==MIT License==
==MIT License==
Line 25: Line 38:


==BSD Licenses==
==BSD Licenses==
See [[Wikipedia: BSD licenses]
See [[Wikipedia: BSD licenses]]


The BSD Licenses are the 0, 2, 3, and 4 clause licenses. Each licenses contains some of the following clauses (in order).
The BSD Licenses are the 0, 2, 3, and 4 clause licenses. Each licenses contains some of the following clauses (in order).
Line 49: Line 62:
==General Public License (GPL)==
==General Public License (GPL)==


This is referred to as a copy-left license.<br>
This is referred to as a ''copy-left'' license.<br>
All derivatives and extensions of this program must use the same license.<br>
All derivatives and extensions of this program must use the same license.


===GPLv2===
===GPLv2===
 
Basically any derivatives of the program must be open-source to whoever can obtain the binaries. 
E.g. if you sell a device running your custom linux kernel, you must open-source your custom linux kernel.


===GPLv3===
===GPLv3===
Line 66: Line 80:
Same as GPL but you can dynamically link to it from proprietary software.<br>
Same as GPL but you can dynamically link to it from proprietary software.<br>
However, you must provide source for the version of the library you are using.
However, you must provide source for the version of the library you are using.
===AGPL===
[https://www.gnu.org/licenses/agpl-3.0.en.html APL 3.0]
The GNU Affero General Public License is basically GPL but where interaction over the network counts as distribution. 
So if people can interact with your AGPL program over the internet, then you must open-source it.
==Creative Commons Licenses==


==Resources==
==Resources==
* [https://opensource.stackexchange.com/questions/217/what-are-the-essential-differences-between-the-bsd-and-mit-licences BSD vs MIT License stackexchange]
* [https://opensource.stackexchange.com/questions/217/what-are-the-essential-differences-between-the-bsd-and-mit-licences BSD vs MIT License stackexchange]
==References==