Update shit

master
Miloslav Ciz 3 years ago
parent 38fe71a294
commit 1ef8d958aa

@ -4,6 +4,16 @@ Copyleft (also share-alike) is a concept of sharing something on the condition t
Copyleft has been by its mechanisms likened to a virus because once it is applied to certain software, it "infects" it and will force its conditions on any descendants of that software, i.e. it will spread itself (in this case the word virus does not bear a negative connotation, at least to some, they see it as a good virus).
For free/open-source software the alternative to copyleft is so called **permissive** licensing which (same as with copyleft) grants all the necessary freedom rights, but does NOT require modified versions to grant these rights. This allows free software being forked and developed into [proprietary](proprietary.md) software and is what copyleft proponents criticize.
For free/open-source software the alternative to copyleft is so called **permissive** licensing which (same as with copyleft) grants all the necessary freedom rights, but does NOT require modified versions to grant these rights as well. This allows free software being forked and developed into [proprietary](proprietary.md) software and is what copyleft proponents criticize.
In the [FOSS](foss.md) world there is a huge battle between the copyleft camp and permissive camp ([LRS](lrs.md) advocates permissive licenses with a preference for 100% [public domain](public_domain.md)).
In the [FOSS](foss.md) world there is a huge battle between the copyleft camp and permissive camp ([LRS](lrs.md) advocates permissive licenses with a preference for 100% [public domain](public_domain.md)).
## Issues With Copyleft
In the great debate of copyleft vs permissive free-licenses we, as technological anarchists, stand on the permissive side. Here are some reasons for why we reject copyleft:
- **Copyleft can force harmful conditions as long as they don't violate software freedom.** For example just as there may be an obligation of crediting the author, there may as well be an obligation to keep included some text that promotes some unethical political ideology and so **everyone who wants to execute the basic freedoms has to promote this politics with which he may not necessarily agree**.
- By adopting copyleft one is **embracing and supporting the copyright laws** ("marrying the lawyers") because copyleft relies on and uses copyright laws. Copyleft chooses to play along with the capitalist bullshit [intellectual property](intellectual_property.md) game and threatens to use force and bullying in order to enforce *correct* usage of information.
- In a way it is **[bloat](bloat.md)**. Copyleft introduces **legal complexity**, [friction](friction.md) and takes programmers' [head space](head_space.md), especially when copyleft is probably mostly ineffective as **detecting its violation and actual legal enforcement is difficult, expensive and without a guaranteed positive outcome** ([FSF](fsf.md) encourages programmers to hand over their copyright to them so they can defend their programs which just confirms existence and relevance of this issue). Sure, corporations can probably "abuse" permissive (non-copyleft) software easier, but we argue that this is a problem whose roots lie in the broken basic principles of our society ([capitalism](capitalism.md)) and so the issue should be addressed by improving our socioeconomic system rather than by bullshit legal techniques that just imperfectly cure the symptoms.
- **The scope of copyleft is highly debatable** (which is why we have different kind of copyleft such as *strong*, *weak*, *network* etc.). I.e. it can't be objectively said what exactly should classify as violation of copyleft AND increasing copyleft scope leads to copylefted software being practically unusable. Consider this **example**: [Linux](linux.md) is copylefted which means we can't create a proprietary version of Linux, nevertheless we can create a proprietary operating system of which Linux is part (e.g. [Android](android.md) in which its proprietary app store makes it de-facto owned by [Google](google.md)), and so Linux is effectively used as a part of proprietary software -- the copyleft is bypassed. One might try to increase the copyleft scope here by saying *"everything Linux ever touches has to be free software"* which would however render Linux unusable on practically any computer as most computers contain at least some small proprietary software and hardware. The restriction would be too great.
- In practice, **copyleft licenses have to be complex and ugly** because they have to strictly describe the copyleft scope and include lots of legal [boilerplate](boilerplate.md) in order to make them well defendable in court -- and as we know, complexity comes with bugs, vulnerabilities and other burden. Indeed, we see this in practice: the only practically used copyleft licenses are the various versions of GPL of which all are ugly and have historically shown many faults (which is again evident from e.g. looking at GPL v1 vs v2 vs v3). Permissive licenses on the other hand are simple, clear and well understandable.

@ -1,6 +1,6 @@
# 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 are not 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.
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?):
@ -10,7 +10,7 @@ Some most notable free licenses for software include (FSF: FSF approved, OSI: OS
| [AGPL](agpl.md) | network copyleft |**+**|**+**| - | - |
| [BSD (0,1,2,3)](bsdl.md)| permissive |**+**|**+**| - |**+**|
| [BOML](boml.md) | permissive | - | - | - |**+**|
| [CC0](cc0.md) | PD waiver, 0 conditions |**+**| - |**+**| - |
| [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 |**+**|**+**|**+**|**+**|
@ -33,10 +33,11 @@ If you're a noob or even an advanced noob and want to make sure you license corr
- **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**. 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.
- **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-source-code files**. E.g. when developing a game which has asset files such as 3D models, say if your license also applies to these files.
- **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.
- **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)).
Loading…
Cancel
Save