2

Say I'm developing a piece of Open Source software (BSD-Like permissive license) and I write the initial release entirely on my own. After the initial release however I would like numerous other developers to contribute. How do I deal with the Copyright of this project? Obviously I completely own the first version, but how do I handle the Copyrights of these contributors?

I've seen projects where at the top of a source file there will be a Copyright notice acknowledging the one who originally wrote that source file and maybe a partner, with many contributors I don't see this as maintainable though, anyone could patch minor or major parts of that file, how would you handle this?

I've also seen projects that at the top of their source files say something along the lines of:

Copyright (C) The ExampleProject Developers, see CONTRIBUTORS

In the CONTRIBUTORS file in the root directory there is a list of contributors to the project, I see this as more manageable as the first, but I'm not quite sure if this is suitable.

Another similar system I've seen is that at the top of the source files it will say

See LICENSE for details

then in the LICENSE file they have a big long list of contributor Copyrights, then the actual license following it.

I have also seen projects where the original author maintains copyright over the entire project, how does that happen?

What do you suggest the best way to do things now is? I don't want people to have second thoughts about contributing to the project because I'm handling ownership and credit all wrong, how do larger projects (that don't ask for Copyrights to be signed over) handle things like this?

Thanks for any information, I'm having trouble figuring out how I should release my project.

APott
  • 231
  • 2
  • 9
  • 3
    `I have also seen projects where the original author maintains copyright over the entire project, how does that happen?` -- You require the contributors to assign the copyright of their contributions to you. That's how the Mono Project works. – Robert Harvey Dec 05 '14 at 01:27
  • @RobertHarvey Oh I see... Interesting. I wouldn't want to do that though, especially when just starting it might seem questionable. Thanks for the info. – APott Dec 05 '14 at 01:29
  • 2
    You either do it when just starting or you don't do it all. Tracking down every single contributor after the fact and retroactively asking them to assign their copyright is a *huge* PITA … and what if one of them refuses? Note: you only need copyright assignment if you want to change the license. E.g. MySQL requires assignment because they also sell MySQL under a proprietary license. The FSF requires assignment so they can relicense under a newer version of the GPL if one comes out, and also so that they can sue over infringement of code you wrote. – Jörg W Mittag Dec 05 '14 at 02:53
  • 1
    You don't technically need full copyright assignment for that, you could also have your contributors sign an agreement allowing you to change the license and sue on their behalf without them having to give up their copyright. Note also that in many Author's Rights systems (such as my native Germany), an Author *cannot* give up his Author's Rights. Under an Author's Rights system, the creative work is considered an extension of the Author's person with an unbreakable bond between the two. An Author can only give up certain usage rights, but not his Author's Rights. – Jörg W Mittag Dec 05 '14 at 02:56
  • @JörgWMittag Good points. But even if I wanted to get copyright (or the permissions you listed) signed over how would I go about doing that? Would I need a lawyer or how would that work? – APott Dec 05 '14 at 02:57
  • (That's also why in an Author's Rights system, only people can be Authors, companies can't.) – Jörg W Mittag Dec 05 '14 at 02:57
  • 5
    I think you can find ready-made Contributor License Agreements on some of the popular Free Software Law sites, such as EFF, FSF, OSI, ifross, or SFLC. [Project Harmony](http://harmonyagreements.org/) is a project driven by Canonical for standardizing CLAs. http://ContributorAgreements.Org/ is another such project founded a Creative Commons alumna. https://CLAHub.Com/ is a project providing an integrated workflow for CLAs on GitHub, automating the process of signing CLAs and making sure that only pull requests from developers having signed the CLA end up in your repo. – Jörg W Mittag Dec 05 '14 at 03:25
  • see also: [Updating copyright headers each new year just because Jan 1st has passed?](http://programmers.stackexchange.com/questions/198485/updating-copyright-headers-each-new-year-just-because-jan-1st-has-passed) – gnat Dec 05 '14 at 09:26

1 Answers1

4

So let's take a look at first clause in the BSD 2-clause license template.

Copyright (c) , All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

And the phrase to focus on is this:

Redistribution and use in source and binary forms, with or without modification, are permitted

That part is important because the Copyright Owner is using the BSD license to allow a licensee to do whatever they want with the code that is owned by the Copyright Owner. In effect, it grants unrestricted use1 to the licensee.

In other words, the BSD license means the Copyright owner is effectively giving away their code for the world to use as it pleases.

1 Unrestricted in the sense that conditions imposed by the license are trivial to comply with and don't impact code usage.


So what does that mean for your project?

how do I handle the Copyrights of these contributors?

You don't necessarily need to. The BSD license means they're giving away their code too. If you're really worried about it though, you could have them assign copyright ownership to the project.

In the CONTRIBUTORS file in the root directory there is a list of contributors to the project, I see this as more manageable as the first, but I'm not quite sure if this is suitable.

The older BSD 3-clause license effectively required this. It was a neat idea at first, and then everyone realized what a pain it was to maintain when you have lots of contributors. That's why the 2-clause version is preferred to the 3-clause version of the BSD license.

I have also seen projects where the original author maintains copyright over the entire project, how does that happen?

You have all contributors assign copyright ownership to the project prior to accepting their changes into the codebase.

Note that since you're releasing this under a BSD license, there's nothing to stop potential contributors from forking your project in order to bypass assigning copyright ownership.


Your last set of questions is harder to answer because it's a fairly broad question.

What do you suggest the best way to do things now is? I don't want people to have second thoughts about contributing to the project because I'm handling ownership and credit all wrong, how do larger projects (that don't ask for Copyrights to be signed over) handle things like this?

If you release under the BSD license, then I don't think you need to worry about assigning Copyright. All future recipients of the code can use the code as they see fit, which also includes re-releasing the project under different license terms. Notably, GPL'd projects can assimilate BSD licensed projects without any legal problems.

You may also be worried about a bitter contributor attempting to take your project down at a later point in time via a DMCA request. Again, given that you're releasing under the BSD license, which has minimal restrictions within it, you're not likely to have a problem here. You and your project can likely brush off DMCA claims by pointing out that the contributor freely released their contributions.

Since you're using a BSD license to release under, I think you may be over-analyzing this aspect of your project. Don't worry about formal copyright ownership assignment unless you have a compelling reason to do so.

  • Fantastic answer! Thanks a ton. I didn't really think about what the license says, very good points. So I can almost ignore it and I would be fine? – APott Dec 05 '14 at 21:21
  • @APott - yes, I think you can ignore concerns about copyright ownership because you're using a BSD license. If you were using a different license, it would potentially be a different story. –  Dec 05 '14 at 21:38