6

Continuing from Author has inserted copyright into code with gnu public license notice - implications?, can I add my author name to a new file (with original code) that I added to a project that comes with a GPL license - as in:

# GPL License and Copyright Notice ============================================
# This file is part of __PROJECTNAME__.
#
# __PROJECTNAME__ 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.
#
# __PROJECTNAME__ 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 __PROJECTNAME__; if not, write to the Free Software Foundation,
#  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
# __PROJECTNAME__ Copyright (C) 2005-2009 __ORIGINAL_AUTHOR__, 2010-2015 __TEAM__,
# 2016 __ME__    # <-- this ?

Should/could I (preferably) add a "this file" notice as in:

# __PROJECTNAME__ Copyright (C) 2005-2009 __ORIGINAL_AUTHOR__, 2010-2015 __TEAM__
# This file Copyright (C) 2016 __ME__

Note that as discussed here "The GPL is not a per-file copyleft license, but per the whole package" - so can I add a "This file Copyright (C) 2016 ME" clause ? Can I drop the:

# __PROJECTNAME__ Copyright (C) 2005-2009 __ORIGINAL_AUTHOR__, 2010-2015 __TEAM__

line from the new file ?

In short is it as simple as:

# GPL License and Copyright Notice ============================================
# This file is part of __PROJECTNAME__.
#
# __PROJECTNAME__ is free software: ...
#
# Copyright (C) 2016 __ME__

?

The file in question: https://github.com/wrye-bash/wrye-bash/commit/e58607e53229a869712b6729720d378081e7a513

Here is a relevant faq item from the GNU faq: http://www.gnu.org/licenses/gpl-faq.en.html#GPLModuleLicense

EDIT: I care cause this is original design solving a long standing problem and I want to be able to use my design in a possibly closed source application in the future. Not sure how this mixes with the GPL though.

Mr_and_Mrs_D
  • 113
  • 9

2 Answers2

7

There are two separate copyrights in play when you contribute to an open-source project. There's the copyright on your individual contribution, and then there's a copyright on the entire collective work of the piece of software.

Additionally, there's the general issue of whether a copyright notice is required to satisfy the terms of the law or the terms of the license. For both the law and the terms of the GPL license, a copyright notice is not required to preserve your rights: your rights are assigned automatically upon creation.

Because there is no legal or contractual obligation related to copyright notices (except so far as to not modify existing ones without permission), it's up to the project to decide how best to handle this situation. There are three main scenarios:

  • The software project requires contributors to assign copyright upon contribution. This is the stance the Free Software Foundation takes and it makes the whole notice thing super simple: you don't get to have your own copyright notice because you no longer have a copyright to the code.

  • The software project maintains a centralized copyright notice. In this case, the entity that holds the collective copyright on the entire piece of software generally gets a notice, and a link to some other file may or may not be maintained indicating the individual contributors. If it isn't maintained, remember that you still have copyright over your contributions: typically the changelog or SCM is enough to establish authorship over significant contributions to the code in that file.

  • The software project maintains per-file copyright notices, which is what you are leaning towards. In this case, the recommendation of the Software Freedom Law Center is to add a new line for each significant contributor to the file, indicating their contributions.

Since you're concerned about adding a new file, if you went with per-file copyright notices, it'd look something like this:

Project Name, Copyright 2012 Collective Copyright Holder. Licensed under the GPLv2 or later.
module.c, Copyright 2016 John Doe <john.doe@example.com>: Original implementation

Subsequent contributors would add a new line to this notice:

Project Name, Copyright 2012 Collective Copyright Holder. Licensed under the GPLv2 or later.
module.c, Copyright 2016 John Doe <john.doe@example.com>: Original implementation
module.c, Copyright 2017 Jane Smith <jane.smith@example.org>: Fixed foo

Again, since there is no legal or contractual requirement to have a copyright notice to assert copyright, whether or not you should maintain the collective copyright holder notice would be based on the preference of the project: if it's there or they want it there, you shouldn't remove it.

Evan
  • 1,245
  • 1
  • 9
  • 18
  • Very helpful thanks. The sole maintainer of the project is me, so I can take decisions. What I want to make sure is that I can use my design wherever I want, even if I decide to close source it. Given that this is a GPL project as whole can I do that ? So I do __not__ want to "to assign copyright upon contribution", I want to keep the copyright of my original design but still be able to mix the code with the project (see my last edit to the question) – Mr_and_Mrs_D May 18 '16 at 17:34
  • @Mr_and_Mrs_D since you're the sole contributor, you can license your code however you want, including licensing it via the GPL and a closed-source license at the same time. In the future, you could decide to stop licensing new versions via the GPL, effectively close-sourcing it. However, you can't retroactively revoke the GPL: the previously-released versions would still fall under the GPL, allowing others to fork from an older version and continue developing it as GPL-licensed code. – Evan May 18 '16 at 17:41
  • @Mr_and_Mrs_D if, however, you allow outside contributions, you would not be able to close-source those contributions since the GPL license would apply to those unless you got an agreement from the contributors to relicense their contributions under another license. The alternative would be to strip out those contributions or reimplement them in a clean room. That's the main benefit of the copyright assignment: it would make you the sole decider of relicensing questions since you would hold the copyright for 100% of the code, even with outside contributions. – Evan May 18 '16 at 17:42
  • Thanks - so how should I spell this ? Can I replace the `# 2016 __ME__ # <-- this ?` line in my first listing with `games.py , Copyright 2016 Utumno: original design, All rights reserved` and be done with it ? A linky on that would be great too. I am really not sure the GPL would allow that - note `So your module has to be available for use under the GPL.` in http://www.gnu.org/licenses/gpl-faq.en.html#GPLModuleLicense – Mr_and_Mrs_D May 18 '16 at 18:25
  • You are the sole contributor of your program and have the copyright. You can license that program under [multiple licenses](https://en.wikipedia.org/wiki/Multi-licensing). A license determines what other people, who are not the copyright holder, can do with your work. You are not bound by that license as the copyright holder. You can choose at any time to not license new versions of your software (the collective work) under the GPL and close source it. However, if you choose to continue licensing the collective work as GPL, your new code, as part of that collective work, is bound by the GPL. – Evan May 18 '16 at 18:53
  • In other words, you can decide v1.0.0 of your program is GPL (and any number of other licenses you want). If there are no other outside, encumbered contributions, you can then decide v2.0.0 will not be released under the GPL. People can still get v1.0.0 and use it under the terms of the GPL, but not v2.0.0. However, you cannot release v2.0.0 of your program under the GPL but say "this one file is not GPL". It's all or nothing. That's what that FAQ entry is saying. – Evan May 18 '16 at 18:56
  • So should I then spell the copyright notice in my first listing like `# __PROJECTNAME__ Copyright (C) 2005-2009 __ORIGINAL_AUTHOR__, 2010-2015 __TEAM__` then `games.py , Copyright 2016 Utumno: original design` then be able to use my design in a c++ library for instance ? – Mr_and_Mrs_D May 18 '16 at 18:57
  • I am not really interested in releasing this program under any other license (hey, it's not my code after all, I did not write 100k lines of python) but this particular module I would like to be able to then use as I see fit in some other project – Mr_and_Mrs_D May 18 '16 at 19:03
  • The copyright notice has no bearing on how you use your own, copyrighted code. You can use it however you want: if you want to use it in a GPL library and somewhere else, you can do that. As the sole project contributor, you can decide how you want to maintain copyright notices: they're purely informational and have [virtually no legal bearing or weight](http://www.copyright.gov/circs/circ03.pdf) (the one exception being that someone can't attempt to innocently claim they did not know the work was copyrighted). If you like that format, by all means use it. – Evan May 18 '16 at 19:04
  • Oh thanks - at last I can merge :) I was worried that by adding this file to a GPL project my module code would be forever GPL - so this is not true, right ? If so, this is closed. Feel free to add more links to your excellent answer – Mr_and_Mrs_D May 18 '16 at 19:09
5

License and copyright are two very different things.

GPL, in general, makes sure that any derivative works are still GPL.

If you add new code to code that is GPL, that will still be GPL, but you have the copyright to the new code, and can put that into a copyright notice in your files (and you should do that).

That will not do much for you, except that anyone who wishes to make a non GPL version of the code will have to get your acceptance for the license change if any part of your code is included.

Bent
  • 2,566
  • 1
  • 14
  • 18
  • Thanks - which is the right way to word it though ? – Mr_and_Mrs_D May 06 '16 at 20:23
  • 3
    If you are the only one who have done work on the file then: Copyright 2016 Mr_and_Mrs_D. Don't overthink it. If you are the only one who worked on a file then your copyright comes into force no matter what. Stating it in the file only makes it obvious to the world. But stating it is a good thing to do. – Bent May 06 '16 at 20:34
  • I don't think I can remove copyright notices from GPL files: http://stackoverflow.com/a/11815617/281545 (note `The GPL is not a per-file copyleft license, but per the whole package.`) – Mr_and_Mrs_D May 06 '16 at 20:51
  • 1
    Removing copyright notices? Didn't you ask about adding a copyright notice? And is the new file entirely of your own copyright or a derivative work of an existing work of which you created a new copy and modified it or which you translated into the new file and which you adopted / extended? – hakre May 11 '16 at 17:06
  • @hakre: yes I asked about adding - but `If you are the only one who have done work on the file then: Copyright 2016 Mr_and_Mrs_D` to me sounds like I can omit the `__PROJECTNAME__ Copyright (C)....` line which seems not allowed. Yes the file is my own code from scratch – Mr_and_Mrs_D May 12 '16 at 01:06
  • Which project is that? Should be public, so why not reference it. And can you provide an example of your file? – hakre May 12 '16 at 05:56
  • @hakre : Here you are, this is the commit I create the file - this copyright question is preventing me from merging: https://github.com/wrye-bash/wrye-bash/commit/6f486d153a877f7008e62f882dd7d241fcc0e327. Call me Utumno :) – Mr_and_Mrs_D May 12 '16 at 23:06
  • I'd say as that is a community project, better keep the original headers, also most likely a derivative work. Make the commit with your author credentials, so authorship is documented. Just have been looking quickly, but I likely would do it that way. – hakre May 13 '16 at 11:09
  • @hakre: thanks however this file contains an original design solving an eternal problem for mod managers - I would like to have my (nick) name on it - you may attempt an answer with some authoritative references ? – Mr_and_Mrs_D May 13 '16 at 13:28
  • 1
    @Mr_and_Mrs_D: I can not answer that authorative. The only person who could for yourself would be you, your own. As this is a bigger project, contact the maintainer / lead(s) and ask what is accepted. They probably have a CREDITS file or some meta-files for extensions or similar. As long this is your copyright, it's you who can write the copyright line. No fuzz. But there are others with the project as well, so ask there what is accepted and raise your concern. In the end this is most often less a legal issue, but more a social one. – hakre May 13 '16 at 15:46
  • @hakre: thanks - I am the lead and currently sole maintainer :) Since that's a new file I guess it's fine _adding_ my copyright on it. By authoritative answer I mean a link to some kind of docs that explicitly prohibit or allow the final wording in my question. – Mr_and_Mrs_D May 13 '16 at 19:00
  • IOW if I leave out `# __PROJECTNAME__ Copyright (C) 2005-...` is it inherited ? – Mr_and_Mrs_D May 13 '16 at 19:02
  • Ah, now I get it, you take an existing file but add it new to your project. You normally place the new copyright statement (that is yours) ***on top***, that is above all other copyright/license headers (the previous ones). After all your stuff you then leave a line like: This file incorporates third party code (or similar) and then you offer the original headers. Something along the lines. This is explained IIRC in some of the SFLC material. – hakre May 14 '16 at 18:13
  • @hakre: `you take an existing file but add it new to your project` not really I _create_ an original file and add it to the project - so still wondering (the license is managed per file) how I spell the copyright attributions - do I need to include the lines on the project copyright ? I added a bounty, I really need a final wording before merging this to dev. Thanks :) – Mr_and_Mrs_D May 16 '16 at 13:23
  • 1
    You can't get a final wording for that, because if it's your copyright you decide entirely your own. From what you write (original file, written entirely by yourself, no influence on the code from other works) this is entirely to you. As for the project, decide if you want to give copyright ownership to the project. Contact them what is common with them. If that is *your* project, ask yourself what you want. – hakre May 16 '16 at 14:45
  • @hakre: Thanks - I did find a relevant clause on adding new modules to GPL projects - http://www.gnu.org/licenses/gpl-faq.en.html#GPLModuleLicense. It looks like I must give copyright ownership to the project - but can I have a different license on this file - like an LGPL one ? What I am trying to achieve is to be able to use this file of mine even in closed source code without violating the project's copyright – Mr_and_Mrs_D May 16 '16 at 20:09
  • @Mr_and_Mrs_D: As long as the file is entirely your own no-one can stop you from licensing it differently in a different project. And you really seem to mix things up, that's not what that FAQ entry is about. – hakre May 17 '16 at 05:07
  • @hakre: isn't it ? I certainly don't get something then... – Mr_and_Mrs_D May 17 '16 at 08:46