Free software licenses permit or guarantee access to the human-readable source code used to make the software. This ensures the software can be modified.
See also | :sharing:api
If you own a device, you should have full control of it. A computer is controlled by the software that runs it, therefore you should have full control of the software. To truly control software, it must be modifiable.
If you install software, you should not be unfairly bound to it or the company who supplied it. To avoid this, it must be modifiable by you (or someone else of your choosing).
As with any free license, sharing software is easier with a free software license. While copying software does not neccessarily require access to the source code, modification is not feasible without it.
Modification may be required if copying the software in order to run it on a different device.
Access to source code permits more programmers to inspect the code. This improves (but does not guarantee) flaw detection and therefore :safety
TODO: FSF link, OSI link?, talks
Choosing a license (end-user)
A software license applies to you as an end-user when you use software on a computer that you own. You are looking for software that allows you to copy and modify it freely. This allows you to install it on a new computer, ask a programming company to fix a bug for you, or modify it yourself.
All free software licenses give you these permissions. Programmers may charge you for their time, but they can't stop you from reusing their changes, or asking someone else next time. And if you learn to program, you could modify it yourself!
Choosing a license (new work)
If you are a programmer making a new piece of software, your choice affects everyone who wants to copy, modify or link to your new software. You may require that anyone using your software must:
Always share code
When copying the software, the source code must always be provided. Other software that links to this software (including over a network) must also provide source code. This is the strongest protection of user freedom. Pick AGPL3+
Share only local code
When copying the software, the source code must always be provided. Other software that links to this software must also provide source code, unless linking over a network, in which case it can be withheld. Pick GPL3+
Share only library code
When copying the software, the source code must always be provided. Other software that links to this software may withhold source code. Pick LPGL3+
Share or restrict code
When copying or linking to the software, any source code may be withheld. Pick Apache 2.0
Choosing a license (modifying programs)
A software license applies to you as a programmer when you modify or link to the software. The simplest approach is to continue using the original license.
TODO: finish this: note on copyleft
- https://www.gnu.org/licenses/license-recommendations.html Recommendation from FSF.
- http://three.org/openart/license_chooser/ Interactive chooser. Examine licenses by term, or tick your preferences and see which license matches.
- https://tldrlegal.com Provides plain English translations of free software licenses, proprietary licenses and proprietary EULAs
- "FLOW" versus "RENT" http://osi.xwiki.com/bin/Projects/About+FLOW+and+RENT+Relationships
- TLDR terms of service https://tosdr.org software license https://tldrlegal.com
- Say yes or no unambiguosly (ref)
- "Copyfree" is a strict subset of permissive software licenses (TODO: link)
- "Open source" is a marketing term for free software in the workplace
- It is sometimes misused to mean "look but don't share" and therefore not recommended (TODO: link)
- Other reasons: http://zedshaw.com/archive/why-i-algpl/