29

The GPL3, for example, says:

  1. Conveying Verbatim Copies.
    You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

The licence goes on to say that distribution of binaries is allowed as long as they are distributed under the terms of sections 4 and 5, i.e., with a copy of the licence text.

In practice is this really necessary? On a FOSS-aficionado's computer they must have hundreds of copies of each licence, and even on a regular proprietary-filled Windows machine there are probably a dozen copies. And if I wanted to look at the licence of the GPL or MIT I wouldn't go digging for the copy that's included in the program, I'd find the text of the licence online.

This looks to me like it would be a technical violation of the licence, though it is exceedingly common. Debian packages do not include the common licences, and many npm packages don't either. So do we need to, and if we don't, would it impact the enforceability of the licence later on?

27

GPL licenses are legal documents, so you modify them or ignore their terms at your own risk!

GNU.org has an FAQ addressing this:

Why does the GPL require including a copy of the GPL with every copy of the program? (#WhyMustIInclude)

Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are.

It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.

The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.

This does mean that, a sufficiently paranoid user will avoid your software because it does not include the full license, and they don't trust that whatever you linked to, or that when you mention "GPL3" it's a different license.

MIT, BSD licenses are also quite clear on this matter; you must reproduce those licenses, otherwise you are not fully complying with the license.

Just a note, not all licenses require reproducing the full text. Some like the Creative Commons licenses are ok with including a link. See some examples here.

  • 2
    Nice, finding the rationale for this. – Mnementh Jun 24 '15 at 0:43
  • While I upvoted this, I'd still appreciate answers from people who don't think it's necessary. It doesn't account for the fact that you will almost certainly already have the licence text on your computer, while the comment about people not trusting links doesn't make sense: would they trust a licence file in a folder if it wasn't mentioned in the source code or binary itself? Also it's a bit silly, if there are computers there are going to be URLs. – curiousdannii Jun 24 '15 at 0:52
  • @curiousdannii It may seem silly and paranoid, but some people need to be. Those whose business is in trust, e.g. linux distro package managers, need to be paranoid because so many others trust them. If you only say that your software is "GPL" without including the full license text, and heaven forbid, you get hit by a bus, no one can clarify that on your behalf, and so your software can never make it into places like the Debian repo. Do you want to keep your software out of these places just because it was inconvenient to include a 35kb text file? – congusbongus Jun 25 '15 at 0:44
  • Regarding BSD and how it has different variants (one GPL-compatible, the other not, and another one I can't remember), it makes sense to include the license file to be clear which one it is – Cole Johnson Jun 25 '15 at 17:41
  • 1
    @curiousdannii I don't see your point with "why would they trust this and not that." If you include a license file and refer to the license name in each and every source file (which is also something you are supposed to do for the GPL), it is clear what you meant by that license. It doesn't matter if your GPL is the same as anyone else's, because you were clearly referring to the license you in fact distributed. With a link, the text I see at the link might be different than the text you see; with actual distribution of the text file, you distributed the literal content to me. – cpast Jul 8 '15 at 5:43
5

Yes. It is not fair to ask the user to search for the license terms and hoping he picked the right one, as he has to follow this license.

2

Some well known licenses (e.g. the GPLs) are included as part of the Debian base installation (in the base-files package), and are in the directory /usr/share/common-licenses/. Packages that are licensed under one of those licenses reference the corresponding license location path in the file /usr/share/doc/pkgname/copyright. I assume this satisfies the licensing requirements; Debian is pretty careful about such things. I don't know if every OS does the same thing, but if it did, it would satisfy the license requirements while still avoiding duplication.

Here is an example of the wording used (taken from /usr/share/doc/slrn/copyright):

On Debian systems the complete text of the GPL is in /usr/share/common-licenses/GPL-2

For completeness, here is a list of the license texts under /usr/share/common-licenses:

Apache-2.0 Artistic BSD GFDL GFDL-1.2 GFDL-1.3 GPL GPL-1 GPL-2 GPL-3 LGPL LGPL-2 LGPL-2.1 LGPL-3

I don't know why the list is restricted to these licenses; there are other well-known licenses, like the MIT license.

Of course, if you are distributing the source of a program that is licensed under one of these well-known licenses, then the license should be included in the source regardless, but it doesn't need to be included in the corresponding Debian binary package, at least.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.