Suppose that I am developing a module A that should fulfill functions f1, f2, ..., fn.

It has methods A.do_f1(), A.do_f2(), ..., A.do_fn(), written in pure Python or using non-GPL modules that can be used in a proprietary software.

Suppose now that module B, under GPL, can fulfill functions fi and fj.

There are two cases:

  • Case 1 : A has no method for fulfilling fi and fj, and I write methods A.do_fi_using_B() and A.do_fj_using_B() which, if module B is installed, import B and call B.do_fi() and B.do_fj(), or return an error if B is not installed.

  • Case 2 : A has alternative methods A.do_fi() and A.do_fj(), and I write the same methods A.do_fi_using_B() and A.do_fj_using_B() as above in order to let the user choose between alternative implementations.

I don't want to use a GPL for module A. Are the two above cases equivalent in this respect?

I can't understand how to apply the GPL FAQ (#NFUseGPLPlugins) when it comes to optional Python modules. It says: "If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins.".

If I strictly apply what I read, if any GPL module can be imported and used by A, it is in the same Python kernel instance and shares data structures with A through its methods, so you just have to license A under a GPL-compatible licence?

Main question: Can I license module A under a non-free licence if it provides in its API optional functions that will embed the use of GPL module B?

  • 1
    Are the two modules completely independent of each other? I'm actually kind of confused as to what your main question is? – Zizouz212 Feb 3 '16 at 21:31
  • I edited in order to formulate the main question.A is to be seen as a higher level API. In the context of applications of linear algebra, A could be a CFD library, B could be a GPL library for efficient matrix computations, and A could still have its own implementation of matrix computations. – Guillaume Ansanay-Alex Feb 4 '16 at 12:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.