Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What's legally sufficient to constitute a grant of an open source software license? #4

Closed
benbalter opened this issue Aug 18, 2014 · 8 comments

Comments

@benbalter
Copy link
Contributor

From the readme:

Why not just look at the "license" field of [insert package manager here]?

Because it's not legally binding. A license is a legal contract. You give up certain rights (e.g., the right to sue the author) in exchange for the right to use the software.

Most popular licenses today require that the license itself be distributed along side the software. Simply putting the letters "MIT" or "GPL" in a configuration file doesn't really meet that requirement.

Not to mention, it doesn't tell you much about your rights as a user. Is it GPLv2? GPLv2 or later? Those files are designed to be read by computers (who can't enter into contracts), not humans (who can). It's great metadata, but that's about it.

What about looking to see if the author said something in the readme?

You could make an argument that, when linked or sufficiently identified, the terms of the license are incorporated by reference, or at least that the author's intent is there. There's a handful of reasons why this isn't ideal. For one, if you're using the MIT or BSD (ISC) license, along with a few others, there's templematic language, like the copyright notice, which would go unfilled.

What about checking every single file for a copyright header?

Because that's silly in the context of how software is developed today. You wouldn't put a copyright notice on each page of a book. Besides, it's a lot of work, as there's no standardized, cross-platform way to describe a project's license within a comment.

Checking the actual text into version control is definitive, so that's what this project looks at.

The question

There's a continuum, with the full text of the license being checked into version control on one end, and a non-linked license abbreviation (e.g., "license: MIT") on the other. Which is sufficient to grant a license? Is there any precedence?

  1. Full text of the license in version control
  2. LICENSE file with the license name or abbreviation
  3. README which references the license name or abbreviation
  4. README which links to the full license text
@benbalter benbalter changed the title What's legally sufficient to constitute licensing? What's legally sufficient to constitute a grant of an open source software license? Aug 18, 2014
@benbalter
Copy link
Contributor Author

Another edge case to note, what if I just put "license": "GPL" in a project.json file?

@maxbrito
Copy link
Contributor

If I'd see such example data then I'd likely send an email (or open a bug request) asking the author to clarify which type of GPL is mentioned (version 1, 2, 3, and/or above?) because each version of the GPL comes with different requirements. For e.g., GPL version 3.0 is explicit about the need for end-developers to provide documentation teaching others to compile the code, while version 1.0 (and ~2.0) was very flexible on this point. Also, strict GPL v2 doesn't mix with GPL v3 by design so it would really help in the long term to know exactly which version the license field was the author referring to.

Could be useful if the SPDX license acronym list is used as common ground. For example, the more recent GPL license (version 3.0 with the "or above" clause) becomes "license": "GPL-3.0+".

The list of licenses (some 300 by now) can be found at http://spdx.org/licenses/

@maxbrito
Copy link
Contributor

Which is sufficient to grant a license?

From my perspective a tangible evidence that the code author assigns a given license to his code is sufficient. Unfortunately the patterns are not repetitive enough. Usually the person evaluating if a license is "granted" will provide a justification for each item.

Is there any precedence?

When analyzing a new library. The precedence for me is looking at the headers of the source code to extract the mix of licenses and copyrights applicable from both original and third-party code included.

The second step in precedence is looking at which license the author mentions on his website (or README) as applicable to his project as a whole (and how he understands the license to be enforced, this is often needed for GPL clarification).

The last step is looking at the LICENSE file to verify that what it mentions is accurate with what was found in the previous steps. There are per-times cases of mismatch because the author might be updating this information manually and miss some details when changing his code to a different license.

In summary, I tend to understand the LICENSE as what is shown to end-users when clicking on the "I accept" boxes but not really having much weight in terms of granting a license.

@hyandell
Copy link
Contributor

hyandell commented Nov 7, 2015

@nunobrito I'd buy that for most licenses. If I say the license is Apache, you should ask which version. The GPL family of licenses though specifically say that you can say 'GPL' and it means the user can choose their version.

@benbalter Your answer to not putting source headers on files is pretty weak :) Seems to be "It's silly (cf: unrelated example) & it's a lot of work". Rather than trying to argue that one, you could be pointing out that licensee's job is to identify the general licensing of the package as a whole, not every license that applies to each individual file (which will often vary across the software).

@maxbrito
Copy link
Contributor

maxbrito commented Nov 8, 2015

Hi @hyandell, can you provide a link to:

The GPL family of licenses though specifically say that you can say 'GPL' and it means the user can choose their version.

Mostly for my own reference when documenting licenses in the future. Thanks.

@hyandell
Copy link
Contributor

hyandell commented Nov 9, 2015

See the 2nd paragraph in section 14 of the GPL 3.0 (section 9 in GPL 2.0):

"Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. "

@maxbrito
Copy link
Contributor

maxbrito commented Nov 9, 2015

👍 Thanks Henri, this was right in front of my eyes and couldn't see it. Will start documenting it that way when applicable.

wking added a commit to wking/licensee that referenced this issue Feb 20, 2017
Some packaging systems allow you to make these distinctions.  For
example, Python supports "or later" Trove classifiers [1] and npm
allows SPDX license expression syntax v2.0 [2] (and SPDX expressions
support '+', e.g. 'GPL-2.0+' [3]).

The point of this paragraph is that such an entry is metadata which
may not be sufficiently binding [4], while including the full license
text is much more likely to be legally binding.  By removing the FUD
about "cannot distinguish between GPL-2.0 and GPL-2.0+", we can focus
on the point that actually matters.

[1]: https://pypi.python.org/pypi?%3Aaction=list_classifiers
     > License :: OSI Approved :: GNU General Public License v2 (GPLv2)
     > License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
[2]: https://docs.npmjs.com/files/package.json#license
     > If your package is licensed under multiple common licenses, use
     > an SPDX license expression syntax version 2.0 string...
[3]: https://spdx.org/sites/cpstandard/files/pages/files/spdx-2.0.pdf#page=82
     > An SPDX License List Short Form Identifier with a unary "+"
     > operator suffix to represent the current version of the license
     > or any later version.  For example: GPL-2.0+
[4]: licensee#4
     What's legally sufficient to constitute a grant of an open source
     software license?
@stale stale bot added the wontfix label Apr 6, 2017
@stale
Copy link

stale bot commented Apr 6, 2017

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot closed this as completed Apr 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants