11

I believe that GNU GPLv3 does not require attribution, but can be supplemented to do so, as stated in the additional terms (7. b) of the terms and conditions.

However, it also states, under the additional terms that additional terms can be removed from any part of a copy.

Meaning, the requirement of attribution can be added, but also removed by any derivative works, meaning that attribution cannot be enforced by GNU GPL.

Am I correct in my understanding of GPLv3? I'm especially curious because there are posts1 as well as upvoted comments2 on the network, and statements on blog posts3 that seem to confirm my beliefs, as well as posts4 and upvoted comments5 that seem to imply differently.


1 - Is requiring attribution GPL-compatible?

2 - Is requiring attribution GPL-compatible?

3 - How Do You Give Proper GPL Attribution?

4 - Why do almost all open source licenses require attribution?

5 - Best open source license for those wanting attribution? [closed]

  • Why do you think it doesn't require attribution? You must with every distribution of the object code (compiled code) either give them the whole source code or tell them where to get it, and that source code will have all the copyright notices of everyone involved. – curiousdannii Oct 8 '16 at 11:27
  • @curiousdannii because it seems like GPL content can be modified, with the exception of the license itself. And the copyright included in the license is made out to the Free Software Foundation. After the end of terms and conditions there is some mention of how to add copyright notices to your source code, but it is not stated to be mandatory anywhere. – Amani Kilumanga Oct 8 '16 at 11:41
  • Read sections 4 and 5 more closely. Section 4 says that source code distributions should have copyright notices, section 5 says that you have to clearly note who has modified the code. I guess if someone published some code under the GPL but didn't add any copyright notices, and you didn't modify it, then you might not have to give attribution, but that would be extremely rare. – curiousdannii Oct 8 '16 at 11:45
  • @curiousdannii I don't see it. Section 4 mentions an appropriate copyright notice in unmodified copies, which looks to me like it could be interpreted as the aforementioned FSF copyright notice. Nonetheless, I'm specifically interested in modified copies. Section 5 does not mention copyright notices. – Amani Kilumanga Oct 8 '16 at 12:04
  • 1
    @curiousdannii I don't see any mention of having to note who previously modified the code. – Amani Kilumanga Oct 8 '16 at 12:05
14
+100

TL;DR

I believe that GNU GPLv3 does not require attribution, [...] Am I correct in my understanding of GPLv3?

No, the GPL-3.0 always requires attribution composed at the minimum of a copyright statement, a notice and the GPL license text. Attribution examples are provided at the bottom of the license text.

But what is attribution?

I consider that attribution is the essence of free and open source licensing.

Let's assume my code contains third-party code.

At heart attribution is about communicating to my users the licensing terms of this third-party code I redistribute. Therefore all bona fide FLOSS licenses require some type of attribution, if anything to communicate the licensing terms to the recipients of the code. Attribution is also about giving due credit to the authors of the third-party code that I leverage (which may or may not be required by a license): this is the right thing to do and the thing I would appreciate users of my code to do when my code is reused.

Attribution can take several forms and some licenses are very prescriptive about attribution requirements stating which forms it should take, where and when it should be provided or displayed, whether it is required or optional, or applies to source code and/or binary code redistribution, should be present in the documentation, in the UI, etc.

In its minimal form it requires at least to communicate the original license terms as a notice and in many cases the whole text of the license. To be correct and complete, I should also:

  • specify who this attribution is for: the simplest form would be a copyright statement.
  • specify which code this attribution applies to.

Without a proper copyright statement, an attribution would be moot and meaningless as the recipient would not know who I attributed.

Without a proper statement of which code the attribution is for, an attribution would have not much substance as the attributed code would be undetermined.

With these basics set, what are the attribution requirements of the GPL-3.0 license?

The GPL-3.0 license is rather clear and explicit on that topic. I added to the text excerpts some emphasis and cross links to make things clearer.

The definitions section explains what are the "Appropriate Legal Notices".

Later, this definition is reused in section 5 and 7.

[...] An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

Section 4 explains what attribution means when I redistribute unmodified copies of the source code:

[...] 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.

So when I redistribute an unmodified copy of a GPL-3.0-licensed program I would need to "attribute" with:

  • a conspicuous copyright statement and notice, with examples
  • keep existing notices
  • a copy of the GPL license text

I consider this to be the absolute minimal attribution of the GPL. Any other type of redistribution has additional requirements.

Let's look at these:

Under section 5, when I redistribute modified source code, I have these additional attribution requirements:

It starts with this, clearly establishing that these are extras requirements on top of section 4:

You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

And then goes on to explain what these new requirements are:

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

[...]

d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

So when I redistribute a modified source copy of a GPL-3.0-licensed program I would need to additionally "attribute" with:

  • a tracking of the changes I made, with prominent modification dated notices
  • if needed, I shall update (or create) notices to state that this code is under the GPL. If program(s) is missing a copyright of the original author, I should add a copyright statement. If program(s) is missing a GPL notice, I should add a GPL notice: for this I can use the provided examples.
  • if there is some user interface, I need to update the code to display a notice following section 0 and I can use the provided examples.

Under section 6, when I redistribute binaries (aka. non-source), I have these additional attribution requirements:

It starts with this, clearly establishing that these are extras requirements on top of section 4 and 5:

You may convey a covered work in object code form under the terms of sections 4 and 5, [...]

Now:

  1. If I provide the source code with the binaries then I have no new requirements.

  2. If I do not provide the source code with the binaries I have a few extra requirements:

b) [...] accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source [...], or (2) access to copy the Corresponding Source from a network server at no charge.

c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. [...]

d) Convey the object code by offering access from a designated place [...]

etc.

So in this case, my new attribution requirement boils down to provide or explain how to get the source code: the license covers several possible approaches and constraints. My preferred way and the simplest is to provide the source with the binaries.

There are other requirements under Section 6 for "user" products and re-installation doc. These are not strictly part of attribution so I will not discuss these here.

The other sections of the license (including Section7) are not relevant per se for attribution as they are for special cases and "Additional permissions" cannot weaken the attribution requirements that came before in the license text.

Finally, at the end and past the "terms and conditions", the license provides guidelines and an example on How to Apply These Terms to Your New Programs: this clarifies what a source code and displayed notice should look like if something was not clear to me before.

Therefore, the GPL 3.0 always requires "attribution".

But I may not be convinced yet:

What happens if you want to use (modify) a GPL work that misses a copyright notice? (am I correct to think this is a possible scenario?)

It's still not clear to me what an "appropriate copyright notice" as mentioned in section 0 is. I mean, if the source I receive has 2016 (c) Philippe Ombredanne, does that mean if I modify the source, I need to keep that verbatim? What part of the license exactly is it that disallows me from just replacing it with 2016 (c) Amani Kilumanga

As I stated above, in addition to the attribution requirements for unmodified source code, if I modified source code I have these additional requirements per section 5:

  • per 5-a) I need to notify of my changes with a date

  • per 5-b) I shall update (or create) notices to state that this code is under the GPL. If program(s) is missing a copyright of the original author, I should add a copyright statement. If program(s) is missing a GPL notice, I should add a GPL notice. For this I can use the provided examples. For my changes I can also add my own copyright statement. I shall not/never remove anyone else copyright or notice.

  • per 5-d) if there is some user interface, I need to update the code to display a notice following section 0 and I can use the provided examples for this.

So if I modify source that had Copyright (c) 2016 Amani Kilumanga I shall not remove that copyright statement. I can add my copyright statement Copyright (c) 2016 Philippe Ombredanne and I must state that I modified the source when and how.

For instance I could add this change notice: 2016-10-01: Update the interactive streamline nosql to supply strategic users.

If the source code was missing a proper GPL notice, I shall add it and I would use the provided example as a template.

So in all cases, the modified source code would start with something more or less like this:

Copyright (c) 2016 Amani Kilumanga
Modifications Copyright (c) 2016 Philippe Ombredanne
2016-10-01: Update the interactive streamline nosql to supply strategic users

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 <http://www.gnu.org/licenses/>.

And a command line program notice could end up looking like this:

Copyright (c) 2016 Amani Kilumanga
Modifications Copyright (c) 2016 Philippe Ombredanne
This program comes with ABSOLUTELY NO WARRANTY; for details type 'banana foo'.
This is free software, and you are welcome to redistribute it
under certain conditions; type 'banana bar' for details.
  • 1
    What happens if you want to use (modify) a GPL work that misses a copyright notice? (am I correct to think this is a possible scenario?) It's still not clear to me what an "appropriate copyright notice" as mentioned in section 0 is. I mean, if the source I receive has 2016 (c) Philippe Ombredanne, does that mean if I modify the source, I need to keep that verbatim? What part of the license exactly is it that disallows me from just replacing it with 2016 (c) Amani Kilumanga. Sorry if I'm dragging this on with too many questions, it's like you can see a meaning in the license that I don't. – Amani Kilumanga Oct 9 '16 at 13:14
  • 1
    I mean, it's perfectly reasonable to me, I just don't see it in the license. – Amani Kilumanga Oct 9 '16 at 13:22
  • @AmaniKilumanga See my update towards the end of my answer – Philippe Ombredanne Oct 9 '16 at 17:08
2

Of course it does, in every way of conveying.

Section 4, conveying unmodified sources:

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.

Section 5, conveying modified sources:

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

...

d) If the work has interactive user interfaces, each must display Appropriate Legal Notices

Noting that, from the definitions in section 0:

An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License.

And that provision must definitely be applied to the executable, because no source code can have Interactive User Interfaces. Section 6 "Conveying Non-Source Forms" simply requires source code disclosure, in which case one of the previous applies.

  • 1
    Maybe it wasn't clear from the question, but I am not asking about attribution to the Free Software Foundation. I am talking about attribution to authors. And authors are not required to put their names in the software (they only seem to be recommended to do so). – Amani Kilumanga Oct 9 '16 at 3:01
  • @AmaniKilumanga It was clear in your question, and that is what my answer discusses. Every quote from the GPL in my answer talks about attribution to the authors. If the authors don't put their name on the program, there is no requirement to keep that notice intact because there is none. I made a mistake in saying section 7; I meant section 6, which I have edited. – EMBLEM Oct 9 '16 at 3:06
  • 1
    OK, but I don't see the requirement to give attribution to authors. Section 5-a says it must carry notices that you modified it (not attribution to the previous authors), section 5-b says that it must carry notices stating that it is released under GPLv3 (not attribution to previous authors; only the Free Software Foundation). Where is the quote that says you have to give attribution to previous authors? – Amani Kilumanga Oct 9 '16 at 3:10
  • 1
    @AmaniKilumanga That is in "Appropriate Legal Notices", where you must "conspicuously and appropriately publish on each copy an appropriate copyright notice", which would include the previous authors' copyright notice. That is inherited in section 5b and 6 sentence 1. – EMBLEM Oct 9 '16 at 3:13
  • Why would that include the previous authors' copyright notices? It says an appropriate copyright notice. What's to stop this copyright notice from being 2016 (c) Free Software Foundation? – Amani Kilumanga Oct 9 '16 at 3:16

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.