License groups
We are programmers, not lawyers. Our evaluation if a particular license is a free software license is only a guideline for Gentoo developers and users. It is not a legal statement. There is also no guarantee that a particular LICENSE variable in an ebuild reflects reality. So don‘t rely on it, but check the license that is included with the package itself.
License groups enable the system's package manager to allow or disallow the installation of certain categories of software based on license compatibility. License groups are generally divided into categories by license compatibility with legal standards. Organizations that advocate software freedom also maintain lists of software that meets certain key criteria.
For example, The Free Software Foundation maintains their own FSF-approved list[1] consisting of GPL-compatible[2], GPL-incompatible[3], and nonfree[4] licenses.
Existing license groups
Defined in profiles/license_groups (history: CVS, Git).
Free software
- GPL-COMPATIBLE
- GPL-compatible free software licenses approved by the Free Software Foundation [1].
- FSF-APPROVED
- This includes all licenses from @GPL-COMPATIBLE, and GPL-incompatible free software licenses that are approved by the FSF [2].
- OSI-APPROVED-FREE
- Open-source licenses approved by the Open Source Initiative [3]. (FSF-APPROVED and OSI-APPROVED-FREE may have elements in common.)
- MISC-FREE
- Misc licenses that are probably free software, i.e. follow the free software definition but are not approved by either FSF or OSI. Preferably on the long term these should be cleared up and moved to other sets. Licenses in this list should not appear directly or indirectly in FSF-APPROVED or OSI-APPROVED-FREE.
Free documents
- FSF-APPROVED-OTHER
- FSF-approved licenses for “free documentation” [4] and “works of practical use besides software and documentation” (including fonts) [5].
- MISC-FREE-DOCS
- Misc licenses for free documents and other works (including fonts) that follow the definition at https://freedomdefined.org/ but are not listed in @FSF-APPROVED-OTHER.
Metasets
- FREE-SOFTWARE
- Metaset for all free software: @FSF-APPROVED @OSI-APPROVED-FREE @MISC-FREE
- FREE-DOCUMENTS
- Metaset for all free documents: @FSF-APPROVED-OTHER @MISC-FREE-DOCS
- FREE
- Collection of all licenses with the freedom to use, share, modify and share modifications. This is a metaset including @FREE-SOFTWARE and @FREE-DOCUMENTS.
Others
- BINARY-REDISTRIBUTABLE
- As proposed [6]. Excerpt of the rules for this license group:
- MUST permit redistribution in binary form.
- MUST NOT require explicit approval (no items from @EULA).
- MUST NOT restrict the cost of redistribution.
- MAY require explicit inclusion of the license with the distribution.
- IF (and only if) there is an explicit inclusion requirement,
USE=bindist
MUST cause a copy of the license to be installed in a file location compliant with the license.
- This group includes all licenses from @FREE.
- OSI-APPROVED-NONFREE
- Licenses approved by the Open Source Initiative that the FSF lists as nonfree.
- OSI-APPROVED
- Metaset for all licenses approved by the Open Source Initiative: @OSI-APPROVED-FREE @OSI-APPROVED-NONFREE
- EULA
- License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit acceptance by the user.
- Nonfree
- Miscellaneous nonfree licenses that don’t belong to any license group.
When is a license a free software license?
A free software license must grant the ”four freedoms“ to the program’s users, as described in the free software definition:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Some tests to check whether a license is a free software license have been created by Debian (taken from their DFSG FAQ):
- The “Desert Island” test. Imagine a castaway on a desert island with a solar-powered computer. This would make it impossible to fulfill any requirement to make changes publicly available or to send patches to some particular place. This holds even if such requirements are only upon request, as the castaway might be able to receive messages but be unable to send them. To be free, software must be modifiable by this unfortunate castaway, who must also be able to legally share modifications with friends on the island.
- The “Dissident” test. Consider a dissident in a totalitarian state who wishes to share a modified bit of software with fellow dissidents, but does not wish to reveal the identity of the modifier, or directly reveal the modifications themselves, or even possession of the program, to the government. Any requirement for sending source modifications to anyone other than the recipient of the modified binary – in fact any forced distribution at all, beyond giving source to those who receive a copy of the binary – would put the dissident in danger. For Debian to consider software free it must not require any such ”excess“ distribution.
- The “Tentacles of Evil” test. Imagine that the author is hired by a large evil corporation and, now in their thrall, attempts to do the worst to the users of the program: to make their lives miserable, to make them stop using the program, to expose them to legal liability, to make the program non-free, to discover their secrets, etc. The same can happen to a corporation bought out by a larger corporation bent on destroying free software in order to maintain its monopoly and extend its evil empire. The license cannot allow even the author to take away the required freedoms!
See also
- GLEP 23
- /etc/portage/license_groups — a file containing groups of licenses that may be specified in the ACCEPT_LICENSE variable.