8

I’m working on a "for fun" project in my spare time. I may end up making it Open Source and this makes me wonder what I need to think about if someone cares enough to contribute to it.

  • Do I need to have some sort of legal mumbo jumbo about “if you give me yer code, it accepts the same license as the project, bla bla bla” (what is the norm here?)
  • Is there a way to check contributed code to make sure it is not plagiarized or would that liability fall on the contributer?
  • Are there any other gotchas, standard/common practices I should follow, recommendations, things I need to think about?
2
  • Not sure about the legal side but I would think integration and acceptance wouldn't be all that different than a commercial product. Code reviews, testing, validation etc.
    – Rig
    Jun 12, 2012 at 16:21
  • Here's how to simplify your issues: get yourself a free code repository from sourceforge, assembla, github, google code, or wherever. The "free" accounts are for open source only so potential contributors will know that your project is open source and so any code contributed will similarly be open source and this is the most common way I know of to do an open source project(taking care of parts 1 and 3 of your question). There is no way to determine where code came from (to answer part 2). Jun 12, 2012 at 16:58

1 Answer 1

2

I am not a lawyer and this is not legal advice.

Do I need to have some sort of legal mumbo jumbo about “if you give me yer code, it accepts the same license as the project, bla bla bla” (what is the norm here?)

I've contributed to a dozen open source projects, and have only once been asked about such things. In that specific case, I slapped on an LGPL license which was not acceptable and had to be replaced by GPL + a linking exception.

I think it seems fair to assume that, if someone sends you code for inclusion in your open source project, they intend for it to be licensed under the same terms. If you want to be sure, then put a copyright notice on every file listing all the contributors; new contributors are likely to imitate that when they write new files.

Or just ask them: "hey, you forgot to put a legal notice in file x, is

# Copyright © 2012 J. Random Contributor
# See the file COPYING for details

ok?"

Also, if you use the GPL, then

[anyone distributing a modified version] must license the entire work, as a whole, under this License to anyone who comes into possession of a copy

so that seems pretty much covered.

Is there a way to check contributed code to make sure it is not plagiarized or would that liability fall on the contributer?

You can make a good faith effort for large contributions. There used to be Google Code Search for open source, but that's down now. You can still search for code on GitHub and other popular places to share code. As for software for which you can't see the source code, it's hard to tell when something has been plagiarized. A contributor not understanding "their own" code may be a sign, in which case you probably shouldn't accept it anyway.

If the contributor did violate somebody else's copyright, though, you may be obliged to take action to remove the code in future versions and keep your users from using versions containing the stolen code.

Are there any other gotchas, standard/common practices I should follow, recommendations, things I need to think about?

Read whatever license you use, and make sure you understand it. You don't need to become a lawyer, but be aware of things like license compatibility that may hamper your program's usefulness, esp. when it's designed to operate in conjunction with other software. Decide whether or not you want copyleft to apply.

If you actually want people to contribute, make it easy. I personally like GitHub a lot since it makes forking and contributing extremely easy.

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.