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?


3 Answers 3


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, 2015 at 0:43
  • 2
    @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? Jun 25, 2015 at 0:44
  • 2
    @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, 2015 at 5:43
  • 1
    As for "if there are computers there will be URLs:" That's an unsupportable assumption; even less supportable is the idea that HTTP clients will be readily accessible, or that your link will still work and hasn't changed its contents since then.
    – cpast
    Jul 8, 2015 at 5:43
  • 1
    Note that modifying the GPL would actually be copyright infringement -- the GPL itself is copyrighted, and your license to reproduce it does not include a license to modify it.
    – Daniel
    Nov 16, 2016 at 20:45

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.


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.

  • 2
    This might turn somewhat on the meaning of "you". If "you" are distributing the program, then "you" must provide the license. Since Debian is distributing the packaged copy, Debian must provide the license; it's reasonable for them to do this by installing it somewhere on the filesystem and pointing to it. But if you (who are not Debian) supply software to someone on a Debian machine (in some form other than a Debian package), you probably can't just point them to Debian's standard copy. Aug 17, 2023 at 23:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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