I want to write a few modules for ERP system, which is licensed under GNU GPLv3, and I want to sell them. However I don't want my users to be able to redistribute the code without my permissions. Considering the fact that I won't touch the code of the ERP system, but I would use it's API, could I do this? I've read a few similar questions here. However I wasn't able to understand am I allowed to do it. Here is a quote from this question:

Case 1: If you

use a library X that comes under GPLv3 or AGPLv3, use it as a library (that is, keeping it as a separate entity without copying source code from the library into your own source code), and do not modify it,

you do not have to make available anything.

But I can't understand am I using the ERP as a library or not

  • 5
    The answer you cited (“If you use a library … as a library … you do not have to make available anything”) may have a lot of upvotes, but it is a very unusual understanding of the GPL, and contradicts both the spirit and the common interpretation of that license…. If in doubt, ask the developers of the ERP system whether would consider your plugin to be subject to the GPL.
    – amon
    Dec 19, 2016 at 17:26
  • 3
    The question you linked has a rather controversial answer. The whole point of the GPL and its variations is to make source available to those who want it, so if your intention is to withhold such access, using a GPL'd library or program with your (withheld) code is probably a non-starter. Dec 19, 2016 at 17:32
  • The answer you cited is a claim that the authors of the GPL (lawyers) are wrong about what the implications and requirements of the GPL are. Dec 20, 2016 at 3:47

1 Answer 1


You cannot link your module into GPL program if it shares any data structures. Most likely it does. Look for the system with more permissive license like Apache or LGPL.

Your quote is NOT CORRECT for GPL.

  • 1
    While what you say is true, the case described sounds like a plugin situation, where it's more like the GPL software linking to the commercial software than the other way around. This is much more of a gray area, and AFAICT you're unlikely to get a straight answer from anyone. Possibly the best approach is to ask the developers of the software the plugin is for; if they've written a plugin interface it may well be that they intended to allow it to be used for commercial purposes anyway. Dec 19, 2016 at 18:01
  • 1
    Nope, the answer states, not permitted by this license. Not a gray area. If they wanted to allow proprietary plugins that do not touch the code of the system, should have used LGPL or GPL with linking exception.
    – h22
    Dec 19, 2016 at 19:26
  • @PeriataBreatta: not a gray area at face value, the GPL FAQ even covers this: gnu.org/licenses/gpl-faq.en.html#GPLAndPlugins Dec 20, 2016 at 3:44
  • @h22 - the question is very much one of whether a plugin is actually a derivative work of the original software. In many cases, because the plugin API is often quite generic, it could very well be argued that it isn't. For example, software written to run under an operating system with a GPL kernel could be considered to be in the same situation, but because the kernel interfaces are usually pretty generic (e.g. following the specifications of POSIX or similar) it doesn't actually cause an issue, even if the developer of the kernel wanted to enforce it. Dec 22, 2016 at 13:22
  • @whatsisname - the GPL FAQ clearly acknowledges the grayness of the area, and phrases its answer in terms of things that it depends upon, what they "believe" (i,e,, reading between the lines, it's a matter of law what is considered a derivative work and the boundaries here haven't been tested in court, so they could be wrong), and finishes by describing a "borderline case", so yes, it clearly is a "gray area" and the FSF clearly agrees with me that it is. Dec 22, 2016 at 14:27

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.