GPL Licensing – Adding New Files and Modifying Copyright Information

attributioncopyrightgpllicensingopen source

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.

Best Answer

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.