The last meaningful change to this tag was c4c48d49
(Change nonstatic
to library usage, 2013-07-10), but I'm not sure where that discussion
happened. In any case, that commit changed some "must" wording to
"may" wording, which seems like it should move the label from required
to permitted. However, a library-usage permission would also apply to
many other licenses (e.g. folks are free to link MIT-licensed work
from a proprietary program), and adding library-usage to almost all
the licenses seems like the wrong way to make this distinction [1].
The limitations that the LGPL and OSL place on disclose-source scoping
are already covered in the disclose-source description, so the
library-usage label doesn't seem to be adding anything meaningful.
The OSL gets at this distinction by tightly scoping derivative works
[2], and the LGPL talks about combined works as a special subset of
derivative works [3,4]. The MPL makes a similar distinction between
"Covered Software" and "Larger Work" [5], and the EPL makes a similar
distinction between "derivative works" and "the Program" [6]. Whether
the location of those distinctions, or the requirements placed on
combined works can be neatly summarized in a boolean label remains to
be seen, but we're pretty sure that library-usage is not that label
[7].
Subsequent commits may replace the caveat in the disclose-source
description with wording in the license description themselves or by
adding a new label that summarizes the issue. Until then, the
disclose-source description more clearly covers the information that
library-usage was intended to convey, so this commit removes the
less-clear label to avoid redundancy.
[1]: https://github.com/github/choosealicense.com/pull/343#issuecomment-179532710
[2]: http://rosenlaw.com/OSL3.0-explained.htm#_Toc187293087
[3]: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
[4]: https://www.gnu.org/licenses/lgpl.html
[5]: https://www.mozilla.org/en-US/MPL/2.0/
[6]: http://www.eclipse.org/legal/epl-v10.html
[7]: https://github.com/github/choosealicense.com/pull/343#issuecomment-179557468
5.7 KiB
Choosealicense.com
Like a Choose Your Own Adventure site, but only much less interesting.
Intro
A lot of repositories on GitHub.com don't have a license. GitHub provides a license chooser, but if you don't know anything about licenses, how are you supposed to make an informed decision?
ChooseALicense.com is designed to help people make an informed decision about licenses by demystifying license choices through non-judgmental guidance.
Immediate Goals
- Non-judgmental. Our goal is to help you find a license that meets your goals.
- Well designed, but that goes without saying.
- The homepage should have just enough to help 99% of folks make a decision.
- For the 1%, the site will contain a list of licenses common to specific communities and situations.
- Not comprehensive. Seems like an odd goal, but there are a bajillion licenses out there. We're going to have to filter that down to a small list of those that matter.
Run It On Your Machine
git clone https://github.com/github/choosealicense.com.git
cd choosealicense.com
script/bootstrap
script/server
Open http://localhost:4000
in your favorite browser.
Adding a license
For information on adding a license, see the CONTRIBUTING file.
License metadata
Licenses sit in the /_licenses
folder. Each license has YAML front matter describing the license's properties. The body of the file contains the text of the license in plain text. The available metadata fields are:
Required fields
title
- The SPDX-compliant, human-readable license namesource
- The URL to the license source textdescription
- A human-readable description of the licensehow
- Instructions on how to implement the licenserequired
- Bulleted list of required rulespermitted
- Bulleted list of permitted rulesforbidden
- Bulleted list of forbidden rules
Optional fields
note
- Additional information about the licensesusing
- A list of notable projects using the license in the form ofproject_name: "url"
hidden
- Whether the license is hidden from the license list (defaults to true)redirect_from
- Relative path(s) to redirect to the license from, to prevent breaking old URLsfeatured
- Whether the license should be featured on the main page (defaults to false)nickname
- A shorter, human-readable license name where the SPDX license name (title
above) is longvariant
- Whether the license is a variant of a family of licenses (defaults to false)family
- If part of a license family, the name of the license family (e.g.,GPL
)tab-slug
- If part of a license family, a license slug containing onlya-z
,0-9
, and_
characters, used for internal links on the licenses page
Auto-populated fields
The licenses on choosealicense.com are regularly imported to GitHub.com to be used as the list of licenses available when creating a repository. When we create a repository, we will replace certain strings in the license with variables from the repository. These can be used to create accurate copyright notices. The available variables are:
Fields
fullname
- The full name or username of the repository ownerlogin
- The repository owner's usernameemail
- The repository owner's primary email addressproject
- The repository namedescription
- The description of the repositoryyear
- The current year
License properties
The license properties (rules) are stored as a bulleted list within the licenses YAML front matter. Each rule has a name e.g., include-copyright
, a human-readable label, e.g., Copyright inclusion
, and a description Include the original copyright with the code
. To add a new rule, simply add it to _data/rules.yml
and reference it in the appropriate license.
Rules
Required
include-copyright
- Include a copy of the license and copyright notice with the code.document-changes
- Indicate significant changes made to the code.disclose-source
- Source code must be made available when distributing the software. In the case of LGPL and OSL 3.0, the source for the library (and not the entire program) must be made available.network-use-disclose
- Users who interact with the software via network are given the right to receive a copy of the corresponding source code.rename
- You must change the name of the software if you modify it.
Permitted
commercial-use
- This software and derivatives may be used for commercial purposes.modifications
- This software may be modified.distribution
- You may distribute this software.private-use
- You may use and modify the software without distributing it.patent-use
- This license provides an express grant of patent rights from the contributor to the recipient.
Forbidden
trademark-use
- While this may be implicitly true of all licenses, this license explicitly states that it does NOT grant you any rights in the trademarks or other marks of contributors.no-liability
- Software is provided without warranty and the software author/license owner cannot be held liable for damages.modifications
- This software may not be modified.distribution
- You may not distribute this software.
License
The content of this project itself is licensed under the Creative Commons Attribution 3.0 license, and the underlying source code used to format and display that content is licensed under the MIT license.