I want to use a GPL v2 licensed library(esper) for commercially distributed non-GPL softwares but I need to make sure non-GPL software not violate GPL license.
Can I use this library indirectly using a wrapper service(can be a windows service, web service, rest api etc.) ? This wrapper service will provide a generic interface to utialize this library and will be licensed with GPL. Any commercial software can communicate with this service using its plugins.
Lets explain through the figure below.
alternative image link : https://ibb.co/nRjxr7
- E is GPL licensed library that is I want to use. It is not modified in any way.
- C is my GPL licensed service that using E and running independently of A/B . Any client software can use it.
- A and B are my commercial web apps that will use C over adaptors. A and B can work without C. So there is not strong dependency for C. A, B and C are not running in the same process. They can work even on different machines.
- Adaptor A/B will call C over tcp/http.
- C service will provide generic operation interfaces. Adaptors will use the data contracts that provided by C. So, Adaptors needs to know what data models are supported on C operations
Is this scenario appropriate? Is there any proper way to achive my problem ?
How should I distrubute Adaptor A/B ? Are they need to be GPL licensed ( A/B distrubuted with an .exe file to installation without containing adaptors)
Lastly, what is the way of I distributing C and mentioning in my commercial applications to tell users to install it and integrate with other applications. (I can specify with a description that explains how to utilize C service for the A/B users. Also I can make C program source and installation file available on my server for download.)