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.
1
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.
2
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”).
6
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!