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 read several related questions about the use of GPLv3 in a commercial app but they don't say anything about a freemium app. I would like to use a GPLv3 library in two apps, a free one (with limited features) and a paid one.

Basically, the free app will allow to use the library without limitations, and the paid one will include it as well as other unrelated features.

I will release the free app under GPLv3 but do I need to release the paid one under the same license?

I don't want to release the whole source code of my paid app (for obvious reasons), as the other features don't use the library in any way. It would just be more convenient for users who bought the full version to have all features in a single app instead of putting the library in a separate one.

share|improve this question

3 Answers 3

up vote 9 down vote accepted

If you own the copyright to all the source code, you can offer it under two different licenses. This is called dual licensing, and is fairly common.

Edit:

If you're talking about a 3rd party library written by someone else and licensed under the GPLv3, you can't use that in a work that you're distributing and licensing in a way that's not compatible with the GPLv3.

share|improve this answer
    
Don't forget LGPL which may apply to libraries –  Paul Aug 22 '12 at 14:27
2  
@Paul - that would change the matter completely, as you could use the LGPLv3 3rd party library in a proprietary app, as long as you also give the end user the ability to replace the library with a newer version. –  Scott Whitlock Aug 22 '12 at 14:39

From here:

If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially?

You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.

These requirements are the condition for including the GPL-covered code you received in a program of your own.

and also:

A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all.

Combining these two statements might lead to the following conclusion:

When you sell your app, you're obliged to give all the code to any of your users who asks for it. It's bound by GPLv3 too. They would then be free to alter it as they see fit and redistribute at their leisure (or rather "as described in the GPL").

share|improve this answer
    
There's a difference between incorporating someone else's GPL'd code in your application vs. writing a wholly new application from scratch. In the first case you are correct that you couldn't dual-license in the way the OP is asking, but in the second case, you can release your work under as many different licenses as you wish. The end user would choose which license they want to use. If they choose GPL then they have to abide by those terms, not you as the author. If they choose a different license, then different terms apply. –  Scott Whitlock Aug 22 '12 at 2:49
    
@ScottWhitlock : dual-licensing would exclude the use of a 3rd party GPLv3 library, as per OPs question. –  spender Aug 22 '12 at 3:17
    
I see, it's a bit ambiguous, but I think LadaRaider means that he/she is the one writing the GPLv3 library that's used in two different apps. LadaRaider owns the copyright to the library; it's not 3rd party. –  Scott Whitlock Aug 22 '12 at 11:56
    
Well it's complicated, as I'm not the only copyright holder. But it seems I have no other choice so I will try to dual license it. –  Dalmas Aug 22 '12 at 12:16
    
Ah. Ok. @ScottWhitlock's POV makes more sense to me now... –  spender Aug 22 '12 at 12:20

Please look into the Apache license. It allows you to distribute closed-source code with Apache-licensed open-source code.

As someone else pointed out, you can distribute a work under two licenses, one a traditional copyright, and another under GPL (for years, MySQL has successfully made this their business model), but the whole work must be open-source in order to distribute it under the GPL. That's the point of the GPL and the reason that the Apache license came into being.

If you wanted to freely distribute all the source code for your application, while at the same time preventing others from distributing closed-source code with your code, then GPL would be perfect. There is no way to distribute a single creative work that is part GPL and part closed-source.

Kudos for using an existing license and asking this question instead of making up your own license!

share|improve this answer

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.