7

I want to make an open-source project and license it with GPLv3. I have some questions about text I would put in my README and about adding copyright notices. The text is adapted from here.

  1. Is the README text below compatible with the GPL?
  2. Does the "Licensed" in the README text below refer to just the source code or the full built package with dependencies?
  3. Is it possible to add permissively licensed (like MIT) code later on?
  4. Where and how do I attach the copyright notice (that MIT licenses would place on the top of the LICENSE file), if I don't want to add it to every file? Is it really necessary to add it to every file? What if I added code from another source; would the new copyright notice clash? Should I add the year? (See how the new Rust copyright notice doesn't have it, LF against it)
  5. Who to attribute? (Rust removing attribution and adding it back) What if the project doesn't have a name or it may change in the future? Can/should I add my own name? (e.g. "Copyright Axel Karjalainen and contributors")
  6. What protection does the DCO provide compared to and combined with the README text below?
## License

Licensed under the GNU General Public License, version 3 or (at your option)
any later version: ([LICENSE](LICENSE) or
<https://www.gnu.org/licenses/gpl-3.0.html>)

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the license above, shall be
licensed as above, without any additional terms or conditions.

Just a minor additional question: When contributing to the Linux kernel, should I add new copyright notices for files I modify or create?

2
  • 4
    This would be a much better bit for Stack Exchange if it were split up into multiple questions, despite Bart's heroic effort below. Commented May 27 at 14:40
  • @PhilipKendall Thank you; I realized it when I had submitted the question. Commented May 29 at 12:54

1 Answer 1

10
  1. Is the README text below compatible with the GPL?

Yes, that text is compatible with the GPL license. However, I would recommended to use the notice that the GPL license itself advises you to use:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

The advantage is that it also states that you are not providing any warranties on the software.

  1. Does the "Licensed" in the README text below refer to just the source code or the full built package with dependencies?

Creating a binary from source code does not create something new as far as copyright is concerned. It is a mechanical transformation and all the copyrights and licenses that apply to the source code apply equally to the binary.

The GPL license states that if any part of the project is subject to the GPL license, then the entire project needs to be distributed under the terms of the GPL license. That applies equally to the built package.

  1. Is it possible to add permissively licensed (like MIT) code later on?

As the GPL dictates a license for the "project as a whole", any code you add, either from a third party or written by yourself, must have a license that is compatible with the GPL.

Fortunately, most permissive licenses are compatible with the GPL. The MIT license definitely is.

If you want to add MIT-licensed code, for which you do not own the copyrights, one of the conditions imposed by the MIT license is that you keep the copyright and license notices intact. Doing so does not go against the GPL license.

It is a different question if someone can download your project (under the GPL license), strip everything except the part you got under the MIT license and then redistribute that again under the MIT license.

  1. Where and how do I attach the copyright notice (that MIT licenses would place on the top of the LICENSE file), if I don't want to add it to every file? Is it really necessary to add it to every file?

Copyright notices are not required to gain copyright protection on the code you write, but they are a very useful tool to indicate to others who owns the copyrights on the code. For that reason, I strongly advise to add them to every file (or at least every file that supports metadata or comments) along with a license indication. That greatly helps to clarify the legal status if a file ever gets sent around without the rest of the repository.

What if I added code from another source; would the new copyright notice clash?

If you add code written by someone else, you should not add a copyright notice of your own (unless you also made changes to that code) and you should keep any existing copyright notices and license notices intact.

Should I add the year? (See how the new Rust copyright notice doesn't have it, LF against it)

From a legal viewpoint, a valid copyright notice must include the year (of publication). On the other hand, the LF article you linked also makes a good argument for leaving the year off.

  1. Who to attribute? (Rust removing attribution and adding it back) What if the project doesn't have a name or it may change in the future? Can/should I add my own name? (e.g. "Copyright Axel Karjalainen and contributors")

If there is no organization behind the project that you assign the copyrights to, then you as a person own the copyrights of the code you write. That makes it entirely proper to write a copyright notice in your own name (e.g. "Copyright Axel Karjalainen").

As long as there are only a few contributors to the project, it is easily manageable if every contributor adds a copyright notice of their own. By the time this becomes unmanageable, your project will probably have an established name and you can start attributing to "the XXX project developers".

  1. What protection does the DCO provide compared to and combined with the README text below?

When making a contribution to GPL-licensed code, the GPL license itself already requires that the contribution is made under the GPL license.

A DCO, along with signed commits, gives you a level of legal protection against people claiming that you stole their code. With the DCO, a developer states in a legally significant way that they have the right to make the contribution. With the signed commit you have proof that it is really them making the commit.

6
  • With question 3 (and partially "code from another source"), I meant that could I keep MIT code as MIT code in the same codebase as GPL code (with the recommended notice). Assuming I don't have sole copyrights, would it violate the GPL? Commented May 29 at 12:52
  • "a valid copyright notice must include the year (of publication). On the other hand," So should I add it? Commented May 29 at 12:53
  • "[...] the GPL license itself already requires that the contribution is made under the GPL license." I now realized that this is enforced when the contributor uses the license to get the code. Maybe this could be in the answer? Commented May 29 at 12:53
  • @axka, I recommend adding the year to the copyright notice, but nobody will come after you if you don´t. Commented May 29 at 13:27
  • @axka, I am not sure I understand your last comment. How would someone make a contribution without first having obtained a copy of the project under the GPL license? Commented May 29 at 13:28

Your Answer

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.