I'm beginning work on a project which I may wish to commercialize in the future. For now, though, it's just a prototype which I would like to release it with a GPL license.

My concern is: if I am to receive contributions (code patches, artwork, etc) toward the prototype open source project, I don't want to be faced with the task of trying to determine which parts of the project I can and cannot use in the future commercial version.

To this end, my preference would be to license my prototype version with the GPL, and require that any contributions made to the project are either in the public domain or licensed according to some attribution license such as the BSD license. (In the event of a future commercial product, I don't mind giving blanket attribution to anyone who contributed to the prototype version).

Is this a realistic thing to do? Are there examples of other projects doing similar things? How has this been met by potential contributors and/or users of the projects?

  • 3
    Why do you think people will be happy with freely contributing to an "open source" project you later close and monetise?
    – jonrsharpe
    May 28, 2015 at 19:19
  • @jonrsharpe: 1) The existing version will remain forever free and open source. Any monetization will happen later in a re-write, which may or may not contain portions of the open-source version. 2) My primary goal isn't necessarily to encourage contributions, but rather to allow them without getting myself into legal hot water in the future.
    – Flimzy
    May 28, 2015 at 19:21
  • @jonrsharpe: Further, what I propose shouldn't be any different, from the perspective of contributors, than simply using a BSD or other attribution license for everything from the beginning. And a similar practice of requiring copyright transfer doesn't seem to hurt the FSF too much.
    – Flimzy
    May 28, 2015 at 19:29
  • Fair enough, so long as you've considered it. I think the FSF is in a slightly different position, though!
    – jonrsharpe
    May 28, 2015 at 19:41

1 Answer 1


The principle behind this strategy is perfectly sound: GPL-licensed projects include BSD-licensed components all the time.

Imagine each contributor published his or her contributions on a personal repository, with a BSD license, without involving your project at all. Now imagine that you discovered the code later. You can take that code and include it in your project. BSD-licensed code can always be included in a GPL-licensed project, because the BSD license is GPL compatible (which means that the requirements of the BSD license are a subset of the GPL's requirements). The work as a whole will still be GPL-licensed, and the specific component will still be BSD-licensed.

You simply need to skip the step where the contributor publishes the contribution independently. Instead, they give it to you directly, explicitly licensed under the BSD license. You then take that BSD-licensed code and include it in your GPL-licensed project, just as you could do with any other BSD-licensed code you found elsewhere.

It would be a good idea to require contributors to sign a contributor license agreement (CLA) that makes this very clear. Getting the wording exact might be tricky (so you should probably hire a lawyer who can draft a document for you), but the principle of including BSD-licensed code in a GPL project is perfectly sound and commonplace.

Your Answer

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

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