I have my own GPLv2 licensed application. It uses GPLv2 library (it has many authors, including me). In addition, I link to my application another proprietary library (I am the only author) in which I store UI controls what I don't want share with others. Whole main functionality is stored in the application and in a GPLv2 library.

Is it compliant?

2 Answers 2


@airfishey's answer is correct but let me explain a bit more.

Fundamentally, a proprietary license cannot be compatible with GPL because the whole work would need to be redistributable under GPL, and for that the proprietary license should allow what the GPL allows (reading the source, making modifications, etc.).

Here is what the GPL's FAQ has to say about using a library under an incompatible license (emphasis mine):

What legal issues come up if I use GPL-incompatible libraries with GPL software? (#GPLIncompatibleLibs)

If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that. Below are two example license notices that you can use to do that; one for GPLv3, and the other for GPLv2. In either case, you should put this text in each file to which you are granting this permission.

Only the copyright holders for the program can legally release their software under these terms. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception. But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.

The second part of the answer is what will prevent you from doing what you want. Using libraries means including other's code in your program, thus you are not the sole copyright holder, and thus you cannot add such an exception.

Now let's remark that what you are trying to do is in fact to avoid the restrictions placed on you by the GPL license. Your program, even if it depends on GPL libraries couldn't be shared anymore because it would also use a proprietary library. You need to understand that the GPL license has been carefully crafted to prevent such strategies. As soon as your program includes a GPL component, unless this component already provides an exception, the whole program must be GPL as well, always!


This is not compliant with the GPLv2. If I'm reading this correctly, you are attempting to link both a GPLv2 library and a proprietary library into the same application. This makes the proprietary library GPLv2.

  • Yes. Well, so this means, if I'll buy great library what can improve GPLv2 project and is not sold with source codes...I simply can't use it? Nov 18, 2016 at 15:21
  • 1
    You will have to read the license of your proprietary library. You can most likely use the proprietary library with your GPLv2 library for personal use only. You just cannot distribute, share, etc the resulting binary that is linked with both the GPLv2 and proprietary license because this would be a violation of the GPLv2.
    – airfishey
    Nov 18, 2016 at 16:49

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.