43 lines
5.4 KiB
Markdown
43 lines
5.4 KiB
Markdown
# License
|
|
|
|
A license is a legal text by which we grant others some rights that we hold over certain work. For our thing a license is what enables us to legally implement [free (as in freedom) software](free_software.md): we attach a license to our program that says that we grant to everyone the basic freedom rights to our software with optional conditions (which must not be in conflict with free software definition, e.g. we may require [attribution](attribution.md) or [copyleft](copyleft.md)). We call these licenses *free licenses* ([open source](open_source.md) licenses work the same way). Of course, there also exist [non-free](proprietary.md) licenses called [EULAs](eula.md), but we stay away from these.
|
|
|
|
Some most notable free licenses for software include (FSF: FSF approved, OSI: OSI approved, LRS: approved by us, short: is the license short?):
|
|
|
|
| license | type | FSF | OSI | LRS |short|
|
|
| ----------------------- | ----------------------- | --- | --- | --- | --- |
|
|
| [Apache 2](apache.md) | permissive, conditions |**+**|**+**| - | - |
|
|
| [AGPL](agpl.md) | network copyleft |**+**|**+**| - | - |
|
|
| [BSD (0,1,2,3)](bsdl.md)| permissive |**+**|**+**| - |**+**|
|
|
| [BOML](boml.md) | permissive | - | - | - |**+**|
|
|
| [CC0](cc0.md) | [PD](public_domain.md) waiver, 0 conditions |**+**| - |**+**| - |
|
|
| [GPLv2, GPLv3](gpl.md) | copyleft (strong) |**+**|**+**| - | - |
|
|
| [LGPL](lgpl.md) | copyleft (weak) |**+**|**+**| - | - |
|
|
| [MIT](mitl.md) | permissive, credit |**+**|**+**|**+**|**+**|
|
|
| [MIT-0](mitl.md) | permissive, 0 conditions| - |**+**|**+**|**+**|
|
|
|[Unlicense](unlicense.md)| PD waiver, 0 conditions |**+**|**+**|**+**|**+**|
|
|
| [WTFPL](wtfpl.md) | permissive, fun |**+**| - | - |**+**|
|
|
| [zlib](zlib.md) | permissive |**+**|**+**| - |**+**|
|
|
| [0BSD](bsdl.md) | permissive, 0 conditions| - |**+**|**+**|**+**|
|
|
|
|
Some most notable free licenses for general artworks include:
|
|
|
|
TODO
|
|
|
|
## How To
|
|
|
|
If you're a noob or even an advanced noob and want to make sure you license correctly, consider the following advice:
|
|
|
|
- **Actually use a license or waiver**. Code without a license/waiver is proprietary. Statement like "do whatever you want" or "public domain" is legally absolutely insufficient and is worth nothing.
|
|
- **If you're collaborating with other people, put on a license ASAP.** Any change in legal conditions require an agreement of all authors so if you're developing code with dozen of people and then decide to add a license to it, you have to contact everyone and get a permission, and of course that can get difficult with more developers.
|
|
- **DO NOT fucking write "all rights reserved" if you're using a free license** since that literally means you're NOT reserving all the rights.
|
|
- Know that normally **you cannot take back your permissive license**, i.e. if you actually release something under permissive terms under a correct non-revokable waiver/license, you cannot introduce stricter conditions later on. What you CAN do is relax and drop conditions (e.g. [copyleft](copyleft.md)) of a license later on. I.e. you can make something strict less strict but not vice versa.
|
|
- **DO NOT use your own license**. Use an existing one. Firstly you're not a lawyer and secondly even if you are, your license will be non-standard, untested in practice, possibly buggy, untrusted and missing from the usual accepted license lists.
|
|
- **DO NOT modify existing licenses** (except for some special license modifiers, you should have experience to use these). You may add some conditions to the license if the license allows it and you should do it clearly, but do NOT change the text of the original license unless you change its name.
|
|
- **Put the license text into `LICENSE` or `COPYING` file in the root of your repository**. You can also put it as a comment in the header of your source code file and mention the license in `README`. Doing all of these is best. Be as clear and explicit as possible.
|
|
- **Read the license or at least its summary before you use it** so that you know what you can demand without violating it. If you use CC0 and then demand attribution, it's clear you don't know what you're doing and your work is seen as legally unsafe.
|
|
- **Be as clear as possible**, it's better to be extra clear and show your intent of using your license. Include a sentence such as "I release this code under XYZ (link)." Mention license version number and URL to its text.
|
|
- **Be extra clear and explicit about what your license covers, especially with non-software files**. E.g. when developing a game which has asset files such as 3D models, say if your license also applies to these files.
|
|
- **Have a list of authors and a reasonable evidence of their license acceptance.** This is in case an actual investigation takes place in legal case: authors need to be known (commit history, contributors.txt, ...) and it needs to be clear they knew a license was present and they agreed to it (e.g. the `LICENSE` file must have been present at the time of their contribution).
|
|
- **Think from the user's POV and consider worst case legal scenario**. Ask yourself: if I'm someone else and use this project commercially and for something controversial, am I well protected by the license? The answer has to be yes.
|
|
- **Include additional waivers if your license doesn't e.g. waive patents** (for example with [CC0](cco.md)). |