Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am currently working on a solution written in JavaScript. I plan to release two versions:

  • For free: the lite one with base options, which is plug and play (it just works when loaded in the page)
  • For a subscription fee: the full version that has more options and requires support

I am wondering which license(s) would work for me. Here are my thoughts so far, feel free to correct me:

  • MIT: I am concerned that somebody else might release new features on top of my solution, under a commercial license. It means that I wouldn't be able to add these same features to my own solution in the future.
  • GPL: doesn't seem to work in my case, if I release the lite version under GPL then it means that I also need to release the full version for free.
  • Dual licensing: I see that some frameworks or libraries offer dual licensing, but I am not sure how it works.
share|improve this question
3  
Not sure I agree with you assumptions about the GPL. You can release each version under any license you want (its your code). The license is what you grant other people and their rights/responsibilities in using your software. –  Loki Astari Dec 26 '11 at 21:19
    
Well, the full version is built on top of the lite one, and depends on it. –  Christophe Dec 26 '11 at 21:36
1  
If you own the copyright to the software then you are wrong about the GPL option - as you can release your code in any way you like. On the MIT option I am not sure what you are fearful of - that you won't be able to copy someone else's code and sell it as though it was yours? Basic copyright law prevents that regardless of the licence used. –  adrianmcmenamin Dec 26 '11 at 21:54
    
@adrianmcmenamin about MIT: I just want to be able to copy someone else's additions, acknowledging the copyright. I don't want the solution to evolve into multiple branches the users have to choose from. –  Christophe Dec 27 '11 at 3:23
    
I think you are going to struggle to find a licence that allows you exclusively to sell other people's copyrighted material and yet restrict their ability to modify and distribute the modified source. Granted such licenses, or close analogues to them have been used in the past but they have generally been flops in getting people to make contributions. What is your aim? Do you want contributions or do you just want to give away a low(er) quality version as a teaser for the one you are selling? If you want contributions and you are demanding copyright assignment, well, good luck with that... –  adrianmcmenamin Dec 27 '11 at 15:26
show 2 more comments

2 Answers

up vote 3 down vote accepted

You are perfectly free to license the software under GPL, and under a commercial license. The GPL's copyleft requirements do not apply to the copyright owner, only to people who need the GPL to be allowed to copy and modify the software.

That's how dual licensing works.

Of course, for details you'd need to ask a lawyer, but the Wikipedia page is a decent introduction: http://en.wikipedia.org/wiki/Dual_licensing

Edit:

To clarify my statement that "the GPL's copyleft requirements do not apply to the copyright owner": This is just basic copyright law. Under copyright law (and related law), the copyright owner has all rights. Releasing code under any license (such as the GPL) just grants some of these rights to others, along with any restrictions the copyright holder wants to attach.

The restrictions imposed by the GPL are only binding because without a license you would not be allowed to copy and modify the software at all - because of copyright law. This is the idea behind "copyleft". All this, of course, does not apply to the copyright holder.

Straight from the GPL FAQ from the FSF:

Q: I would like to release a program I wrote under the GNU GPL, but I would like to use the same code in non-free programs.

A: To release a non-free program is always ethically tainted, but legally there is no obstacle to your doing this. If you are the copyright holder for the code, you can release it under various different non-exclusive licenses at various times.

Source: http://www.gnu.org/licenses/gpl-faq.html#ReleaseUnderGPLAndNF

Edit 2:

One more clarification: The whole dual-licensing thingie only works as long as you are the copyright owner for all the code. As soon as you start accepting code from others, you will be bound by whatever license they choose for their contribution. I.e., if you accept GPL-licensed code into your codebase, any version that includes these contributions must be GPL-licensed as well.

The only way around this is for contributors to assign copyright to you - that's why many organizations require copyright assignment from contributors (e.g the FSF does this). Of course contributors might not want to assign copyright to you - in that case you'll have to convince them (e.g. by paying them), or leave their contributions out of you non-GPL version.

share|improve this answer
    
So this is the part I didn't know about: "The GPL's copyleft requirements do not apply to the copyright owner". Would you have a reference that explains it? –  Christophe Dec 27 '11 at 2:31
    
@Christophe: I edited my answer to include some more info; hope that helps. –  sleske Dec 27 '11 at 10:37
add comment

You are the copyright owner, so no matter which license you choose you won't be limited to what you can do with your own software. In that respect, the choice of MIT or GPL is mostly a religious one. You can use either GPL or MIT and still build a commercial product on top of it even if it has features that are identical to what someone else has added.

Be aware, however, if someone else modifies the code, you can't just steal it and incorporate that into your own commercial version. That's not what open source is all about. You can write your own implementation of some cool new feature but you can't steal the code of others.

For me, the choice of license is mostly ideological. The chance of someone actually taking your code, improving it, and somehow stealing your future profits are very, very small. I'm sure there must have been a case of that happening sometime, but it's probably quite rare. If you really are concerned about that you should talk to a lawyer, or reconsider making the code open source. If you don't think it's worth the expense, then probably your software isn't valuable enough for others to want to steal it and profit off of it.

For me, personally, I think you should choose MIT or BSD. Arguably that makes your software the most free because it doesn't restrict how others use the software. I think that is the most altruistic approach, and if you aren't providing your code out of a sense of altruism, why open source it at all? That's just my opinion though, and I respect those that choose GPL even if I don't agree with their choice.

share|improve this answer
    
Excellent points, thx for sharing. –  Christophe Dec 28 '11 at 6:25
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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