1
0
mirror of https://github.com/github/choosealicense.com synced 2024-12-22 12:50:24 +01:00

Merge branch 'gh-pages' into functional-descriptions

This commit is contained in:
Mike Linksvayer 2016-06-01 09:01:10 -07:00
commit d6f7e196ca
36 changed files with 151 additions and 36 deletions

View File

@ -39,7 +39,8 @@ Licenses sit in the `/_licenses` folder. Each license has YAML front matter desc
#### Required fields
* `title` - The SPDX-compliant, human-readable license name
* `title` - The license full name specified by http://spdx.org/licenses/
* `spdx-id` - Short identifier specified by http://spdx.org/licenses/
* `source` - The URL to the license source text
* `description` - A human-readable description of the license
* `how` - Instructions on how to implement the license
@ -50,10 +51,10 @@ Licenses sit in the `/_licenses` folder. Each license has YAML front matter desc
#### Optional fields
* `featured` - Whether the license should be featured on the main page (defaults to false)
* `nickname` - Customary short name if applicable (e.g, GPLv3)
* `note` - Additional information about the licenses
* `using` - A list of notable projects using the license in the form of `project_name: "url"`
* `redirect_from` - Relative path(s) to redirect to the license from, to prevent breaking old URLs
* `nickname` - A shorter, human-readable license name where the SPDX license name (`title` above) is long
### Auto-populated fields
@ -92,7 +93,7 @@ The license properties (rules) are stored as a bulleted list within the licenses
#### Limitations
* `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.
* `trademark-use` - This license explicitly states that it does NOT grant you trademark rights, even though licenses without such a statement probably do not grant you any implicit trademark rights.
* `no-liability` - Software is provided without warranty and the software author/license owner cannot be held liable for damages.
* `patent-use` - This license explicitly states that it does NOT grant you any rights in the patents of contributors.

View File

@ -2,9 +2,13 @@
# The available fields are:
- name: title
description: The SPDX-compliant, human-readable license name
description: The license full name specified by http://spdx.org/licenses/
required: true
- name: spdx-id
description: Short identifier specified by http://spdx.org/licenses/
required: required
- name: source
description: The URL to the license source text
required: true
@ -35,6 +39,10 @@
description: Whether the license should be featured on the main page (defaults to false)
required: false
- name: nickname
description: Customary short name if applicable (e.g, GPLv3)
required: false
- name: note
description: Additional information about the licenses
required: false
@ -46,7 +54,3 @@
- name: redirect_from
description: Relative path(s) to redirect to the license from, to prevent breaking old URLs
required: false
- name: nickname
description: A shorter, human-readable license name where the SPDX license name (`title` above) is long
required: false

View File

@ -33,7 +33,7 @@ permissions:
tag: patent-use
limitations:
- description: 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.
- description: This license explicitly states that it does NOT grant you trademark rights, even though licenses without such a statement probably do not grant you any implicit trademark rights.
label: Trademark Use
tag: trademark-use
- description: Software is provided without warranty and the software author/license owner cannot be held liable for damages.

View File

@ -1,5 +1,6 @@
---
title: Academic Free License v3.0
spdx-id: AFL-3.0
source: http://opensource.org/licenses/afl-3.0
description: The Academic Free License is a variant of the Open Software License that does not require that the source code of derivative works be disclosed. It contains explicit copyright and patent grants and reserves trademark rights in the author.

View File

@ -1,5 +1,6 @@
---
title: GNU Affero General Public License v3.0
spdx-id: AGPL-3.0
nickname: GNU AGPLv3
redirect_from: /licenses/agpl/
source: http://www.gnu.org/licenses/agpl-3.0.txt

View File

@ -1,5 +1,6 @@
---
title: Apache License 2.0
spdx-id: Apache-2.0
redirect_from: /licenses/apache/
source: http://www.apache.org/licenses/LICENSE-2.0.html
featured: true

View File

@ -1,5 +1,6 @@
---
title: Artistic License 2.0
spdx-id: Artistic-2.0
redirect_from: /licenses/artistic/
source: http://www.perlfoundation.org/attachment/legal/artistic-2_0.txt

View File

@ -1,6 +1,6 @@
---
title: BSD 2-clause "Simplified" License
nickname: BSD 2-Clause
spdx-id: BSD-2-Clause
redirect_from: /licenses/bsd/
source: http://opensource.org/licenses/BSD-2-Clause

View File

@ -1,5 +1,6 @@
---
title: BSD 3-clause Clear License
spdx-id: BSD-3-Clause-Clear
description: A variant of the <a href="/licenses/bsd-3-clause/">BSD 3-Clause License</a> that explicitly does not grant any patent rights.
@ -37,7 +38,7 @@ below) provided that the following conditions are met:
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of [project] nor the names of its contributors may be used
* Neither the name of the copyright holder nor the names of its contributors may be used
to endorse or promote products derived from this software without specific
prior written permission.

View File

@ -1,6 +1,6 @@
---
title: BSD 3-clause "New" or "Revised" License
nickname: BSD 3-Clause
spdx-id: BSD-3-Clause
source: http://opensource.org/licenses/BSD-3-Clause
description: A permissive license similar to the <a href="/licenses/bsd-2-clause/">BSD 2-Clause License</a>, but with a 3rd clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.
@ -35,7 +35,7 @@ modification, are permitted provided that the following conditions are met:
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of [project] nor the names of its
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

View File

@ -1,6 +1,6 @@
---
title: Creative Commons Attribution 4.0
nickname: CC-BY-4.0
spdx-id: CC-BY-4.0
source: https://creativecommons.org/licenses/by/4.0/legalcode.txt
description: Permits almost any use subject to providing credit and license notice. Frequently used for media assets and educational materials. The most common license for Open Access scientific publications. Not recommended for software.

View File

@ -1,6 +1,6 @@
---
title: Creative Commons Attribution Share Alike 4.0
nickname: CC-BY-SA-4.0
spdx-id: CC-BY-SA-4.0
source: https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
description: Similar to <a href='/licenses/cc-by-4.0/'>CC-BY-4.0</a> but requires derivatives be distributed under the same or a similar, <a href="https://creativecommons.org/compatiblelicenses/">compatible</a> license. Frequently used for media assets and educational materials. A previous version is the default license for Wikipedia and other Wikimedia projects. Not recommended for software.

View File

@ -1,6 +1,6 @@
---
title: Creative Commons Zero v1.0 Universal
nickname: CC0 1.0 Universal
spdx-id: CC0-1.0
redirect_from: /licenses/cc0/
source: http://creativecommons.org/publicdomain/zero/1.0/

View File

@ -1,5 +1,6 @@
---
title: Eclipse Public License 1.0
spdx-id: EPL-1.0
redirect_from: /licenses/eclipse/
source: https://www.eclipse.org/legal/epl-v10.html

View File

@ -1,6 +1,6 @@
---
title: European Union Public License 1.1
nickname: EUPL-1.1
spdx-id: EUPL-1.1
redirect_from: /licenses/eupl-v1.1/
source: https://joinup.ec.europa.eu/community/eupl/og_page/european-union-public-licence-eupl-v11

View File

@ -1,5 +1,6 @@
---
title: GNU General Public License v2.0
spdx-id: GPL-2.0
nickname: GNU GPLv2
redirect_from: /licenses/gpl-v2/
source: http://www.gnu.org/licenses/gpl-2.0.txt

View File

@ -1,5 +1,6 @@
---
title: GNU General Public License v3.0
spdx-id: GPL-3.0
nickname: GNU GPLv3
redirect_from: /licenses/gpl-v3/
source: http://www.gnu.org/licenses/gpl-3.0.txt

View File

@ -1,5 +1,6 @@
---
title: ISC License
spdx-id: ISC
source: http://opensource.org/licenses/isc-license
description: A permissive license lets people do anything with your code with proper attribution and without warranty. The ISC license is functionally equivalent to the <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> and <a href="/licenses/mit/">MIT</a> licenses, removing some language that is no longer necessary.

View File

@ -1,5 +1,6 @@
---
title: GNU Lesser General Public License v2.1
spdx-id: LGPL-2.1
nickname: GNU LGPLv2.1
redirect_from: /licenses/lgpl-v2.1/
source: http://www.gnu.org/licenses/lgpl-2.1.txt

View File

@ -1,5 +1,6 @@
---
title: GNU Lesser General Public License v3.0
spdx-id: LGPL-3.0
nickname: GNU LGPLv3
redirect_from: /licenses/lgpl-v3/
source: http://www.gnu.org/licenses/lgpl-3.0.txt

View File

@ -1,6 +1,6 @@
---
title: LaTeX Project Public License v1.3c
nickname: LPPL-1.3c
spdx-id: LPPL-1.3c
source: https://latex-project.org/lppl/lppl-1-3c.html
description: The LaTeX Project Public License (LPPL) is the primary license under which the LaTeX kernel and the base LaTeX packages are distributed.

View File

@ -1,5 +1,6 @@
---
title: MIT License
spdx-id: MIT
source: https://opensource.org/licenses/MIT
featured: true

View File

@ -1,5 +1,6 @@
---
title: Mozilla Public License 2.0
spdx-id: MPL-2.0
redirect_from: /licenses/mozilla/
source: https://www.mozilla.org/media/MPL/2.0/index.txt

View File

@ -1,5 +1,6 @@
---
title: Microsoft Public License
spdx-id: MS-PL
source: http://opensource.org/licenses/ms-pl

View File

@ -1,5 +1,6 @@
---
title: Microsoft Reciprocal License
spdx-id: MS-RL
source: http://opensource.org/licenses/ms-pl

View File

@ -1,5 +1,6 @@
---
title: SIL Open Font License 1.1
spdx-id: OFL-1.1
redirect_from: /licenses/ofl/
source: http://scripts.sil.org/OFL_web

View File

@ -1,5 +1,6 @@
---
title: Open Software License 3.0
spdx-id: OSL-3.0
source: http://opensource.org/licenses/OSL-3.0
description: OSL 3.0 is a copyleft license that does not require reciprocal licensing on linked works. It also provides an express grant of patent rights from contributors to users, with a termination clause triggered if a user files a patent infringement lawsuit.

View File

@ -1,5 +1,6 @@
---
title: The Unlicense
spdx-id: Unlicense
source: http://unlicense.org/UNLICENSE
description: A license with no conditions whatsoever which dedicates works to the public domain. Unlicensed works, modifications, and larger works may be distributed under different terms and without source code.

View File

@ -1,5 +1,6 @@
---
title: "Do What The F*ck You Want To Public License"
spdx-id: WTFPL
source: http://www.wtfpl.net/
description: The easiest licence out there. It gives the user permissions to do whatever they want with your code.

View File

@ -10,7 +10,9 @@ If you already know what you're doing and have a license you prefer to use, that
## Not comprehensive
This site is not a comprehensive directory of open source licenses. We think there are too many options, which adds to the confusion. On the homepage, we break it down into just three licenses. The vast majority of projects will likely be fine choosing from one of these three. Just in case you have specific needs not covered by those three, we also highlight a [few other licenses to consider](/licenses/).
This site is not a comprehensive directory of open source licenses. We think there are too many options, which adds to the confusion. On the [homepage](/), we break it down into just three licenses. The vast majority of projects will likely be fine choosing from one of these three. Just in case you have specific needs not covered by those three, we also highlight a [few other licenses to consider](/licenses/), and have a page about [licenses for non-software projects](/non-software/).
See our [appendix](/appendix) for a table of all of the licenses cataloged in the choosealicense.com repository and the links below for *even more licenses* that you **do not** need to learn about when choosing a license for your project.
### Additional resources
@ -18,6 +20,7 @@ This site is not a comprehensive directory of open source licenses. We think the
* Open Source Initiative's [list of licenses](https://opensource.org/licenses/) approved as conforming to the [Open Source Definition](https://opensource.org/osd)
* Free Software Foundation's [comments on various licenses](http://www.gnu.org/licenses/license-list.html)
* Linux Foundation's [SPDX License List](https://spdx.org/licenses/)
* [Comparison of free and open-source software licenses](https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses) on English Wikipedia
* [License differentiator](http://www.oss-watch.ac.uk/apps/licdiff/) ([source](https://github.com/ox-it/licdiff)) from [OSS Watch](http://www.oss-watch.ac.uk/)
* [Free/Libre/Open Source license selection wizard](http://home.ccil.org/~cowan/floss/) by John Cowan

85
appendix.md Normal file
View File

@ -0,0 +1,85 @@
---
layout: default
permalink: /appendix/
title: Appendix
class: license-types
---
All licenses described in the choosealicense.com [repository](https://github.com/github/choosealicense.com), in a table.
<table border style="font-size: xx-small">
{% assign types = "permissions|conditions|limitations" | split: "|" %}
<tr>
<th scope="col" style="text-align: center">License</th>
{% assign seen_tags = '' %}
{% for type in types %}
{% assign rules = site.data.rules[type] | sort: "label" %}
{% for rule_obj in rules %}
{% if seen_tags contains rule_obj.tag %}
{% continue %}
{% endif %}
{% capture seen_tags %}{{ seen_tags | append:rule_obj.tag }}{% endcapture %}
<th scope="col" style="text-align: center; width:7%"><a href="#{{ rule_obj.tag }}">{{ rule_obj.label }}</a></th>
{% endfor %}
{% endfor %}
</tr>
{% for license in site.licenses | sort: 'path' %}
<tr style="height: 3em"><th scope="row"><a href="{{ license.id }}">{{ license.title }}</a></th>
{% assign seen_tags = '' %}
{% for type in types %}
{% assign rules = site.data.rules[type] | sort: "label" %}
{% for rule_obj in rules %}
{% assign req = rule_obj.tag %}
{% if seen_tags contains req %}
{% continue %}
{% endif %}
{% capture seen_tags %}{{ seen_tags | append:req }}{% endcapture %}
{% assign seen_req = false %}
{% for t in types %}
{% if license[t] contains req %}
<td class="license-{{ t }}" style="text-align:center">
<span class="{{ req }}">
<span class="license-sprite {{ req }}"></span>
</span>
</td>
{% assign seen_req = true %}
{% endif %}
{% endfor %}
{% unless seen_req %}
<td></td>
{% endunless %}
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
</table>
## Legend
<p>Open source licenses grant to the public <b>permissions</b> (<span class="license-permissions"><span class="license-sprite"></span></span>) to do things with licensed works copyright or other "intellectual property" laws might otherwise disallow.</p>
<p>Most open source licenses' grants of permissions are subject to compliance with <b>conditions</b> (<span class="license-conditions"><span class="license-sprite"></span></span>).</p>
<p>Most open source licenses also have <b>limitations</b> (<span class="license-limitations"><span class="license-sprite"></span></span>) that usually disclaim warranty and liability and sometimes expressly exclude patent or trademark from licenses' grants.</p>
<dl>
{% assign seen_tags = '' %}
{% for type in types %}
{% assign rules = site.data.rules[type] | sort: "label" %}
{% for rule_obj in rules %}
{% assign req = rule_obj.tag %}
{% if seen_tags contains req %}
{% continue %}
{% endif %}
<dt id="{{ req }}">{{ rule_obj.label }}</dt>
{% capture seen_tags %}{{ seen_tags | append:req }}{% endcapture %}
{% for t in types %}
{% for r in site.data.rules[t] | sort: "label" %}
{% if r.tag == req %}
<dd class="license-{{t}}"><span class="license-sprite"></span> {{ r.description }}</dd>
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}
{% endfor %}
</dl>

View File

@ -38,11 +38,11 @@ class Choosealicense
# Dynamically add annotations as title attribute to rule list items
for ruletype, rules of window.annotations
for rule in rules
$(".license-rules ul.license-#{ruletype} li.#{rule["tag"]}").attr "title", rule["description"]
$(".license-#{ruletype} .#{rule["tag"]}").attr "title", rule["description"]
# Init tooltips on all rule list items
for ruletype, label of @ruletypes
$(".license-#{ruletype} li").qtip
$(".license-#{ruletype} li, .license-#{ruletype} .license-sprite").qtip
content:
text: false
title:

View File

@ -20,11 +20,13 @@ You don't have to do anything to not offer a license, though including a copyrig
Disallowing use of your code might not be what you intend by "no license." An [open-source license](/) allows reuse of your code while retaining copyright. If your goal is to completely opt-out of copyright restrictions, try a [public domain dedication](/licenses/#unlicense).
Even in the absence of a license file, you may grant some rights in cases where you publish your source code to a site that requires accepting terms of service. For example, if you publish your source code in a public repository on GitHub, you have accepted the [Terms of Service](https://help.github.com/articles/github-terms-of-service) by which you allow others to view and fork your repository.
Even in the absence of a license file, you may grant some rights in cases where you publish your source code to a site that requires accepting terms of service. For example, if you publish your source code in a public repository on GitHub, you have accepted the [Terms of Service](https://help.github.com/articles/github-terms-of-service), by which you allow others to view and fork your repository; but this alone does not allow for the kinds of collaboration that people usually seek on a public code host, such as experimentation, modification, and sharing as fostered by an open source license.
## For users
If you find software that doesn't have a license, that generally means you have no permission from the creators of the software to use, modify, or share the software. Your options:
If you find software that doesn't have a license, that generally means you have no permission from the creators of the software to use, modify, or share the software. Although a code host such as GitHub may allow you to download or fork the code, this does not imply that you are permitted to use, modify, or share the software for any purpose.
Your options:
**Ask the maintainers nicely to add a license.** Unless the software includes strong indications to the contrary, lack of a license is probably an oversight. If the software is hosted on a site like GitHub, open an issue requesting a license and include a link to this site, or if you're bold and it's fairly obvious what license is most appropriate, open a pull request to add a license.

View File

@ -3,7 +3,7 @@ require 'spec_helper'
describe 'license meta' do
licenses.each do |license|
# Manually load the raw license so we don't get the defaults
raw_fields = SafeYAML.load_file("_licenses/#{license['id']}.txt")
raw_fields = SafeYAML.load_file("_licenses/#{license['spdx-lcase']}.txt")
context "The #{license['title']} license" do
it 'should only contain supported meta fields' do

View File

@ -7,21 +7,26 @@ describe 'licenses' do
licenses.each do |license|
context "The #{license['title']} license" do
let(:id) { license['id'] }
let(:spdx_lcase) { license['spdx-lcase'] }
let(:spdx_id) { license['spdx-id'] }
it 'has an SPDX ID' do
expect(spdx_ids).to include(id)
expect(spdx_ids).to include(spdx_id)
end
it 'has an ID that is downcased SPDX ID' do
expect(spdx_id.casecmp(spdx_lcase).zero?)
end
it 'uses its SPDX name' do
spdx = find_spdx(id)
spdx = find_spdx(spdx_id)
expect(spdx).to_not be_nil
expect(spdx[1]['name'].gsub(/ only$/, '')).to eql(license['title'])
end
context 'industry approval' do
it 'should be approved by OSI or FSF or OD' do
expect(approved_licenses).to include(id), 'See https://git.io/vzCTV.'
expect(approved_licenses).to include(spdx_lcase), 'See https://git.io/vzCTV.'
end
end

View File

@ -34,16 +34,12 @@ end
def licenses
SpecHelper.licenses ||= begin
site.collections['licenses'].docs.map do |license|
id = File.basename(license.basename, '.txt')
license.to_liquid.merge('id' => id)
spdx_lcase = File.basename(license.basename, '.txt')
license.to_liquid.merge('spdx-lcase' => spdx_lcase)
end
end
end
def license_ids
licenses.map { |l| l['id'] }
end
def site
SpecHelper.site ||= begin
site = Jekyll::Site.new(config)
@ -75,11 +71,11 @@ def spdx_list
end
def spdx_ids
spdx_list.map { |name, _properties| name.downcase }
spdx_list.map { |name, _properties| name }
end
def find_spdx(license)
spdx_list.find { |name, _properties| name.casecmp(license).zero? }
spdx_list.find { |name, _properties| name == license }
end
def osi_approved_licenses