Open Source – Choosing the Right License for Your Project

licensingopen sourcePHP

I am trying to choose the right license for a project that I would like to release as open-source later this year but I am unsure as to what the most appropriate license would be. I was originally thinking of the GPLv2 license, but I don't think that it is what I am after.

I have been working on this project for over a year now (on and off) for my company. I figured that it would be great to give something back to the community and would like to release the project as open-source, but I want to retain full custody of the project. My company will be providing both free, commercial and community contributed content (perhaps with GitHub).

Here is basically what I am after:

  • Original source can be distributed and re-distributed (verbatim) both commercially and non-commercially as long as the original copyright information, website link and license is maintained.

  • License of original source cannot be changed.

  • Original source can be modified and distributed (commercially & non-commercially) for a specific application, but cannot be re-distributed without written consent from the original author (me). For example, a developer could change the source for their client, but they cannot redistribute that change. The developer may, however, choose to submit their modifications for integration into the original source.

  • Themes and extensions must be covered by an open-source license. It must be possible for any developer to modify, distribute and re-distribute all themes and extensions (commercially & non-commercially) should they choose to do so.

I am aware that it is unlikely that there is a license that will cover all of these points, but something along those lines would be fantastic. I have put a lot of hard work into this project and whilst I am happy to share it, I do not want to loose it to a big company who has loads of money to splash at it.

Best Answer

I would say the GPL (or AGPL) is probably the best license to cover most of those points. There's no existing license that covers all 4 entirely, and it's questionable whether you can actually enforce all those points, since they don't quite add up. For example, you want people to push modifications to you, but you still want the right to determine who can redistribute the work. This can only happen if you require that all committers hand over copyright of their modifications to you. This might dissuade some potential committers.

On you're third point, you are worried about other's redistributing, but you want people to submit their changes back. With the GPL, these are effectively the same thing - because distribution of modifications can be taken back into the main branch by you anyway. It is required that anyone distributing a modification does so in source form.

As for requiring that all extensions be redistributable, this conflicts with the idea of being used commercially (assuming you mean in proprietary software. It does not restrict commercial use though, provided the source is still distributed).

Related Topic