I have a question about what it takes to trigger GPL restrictions in python code which conditionally uses a GPL library.
Here is the context of my question. matplotlib, which I develop, is a plotting module which is distributed under a PSF compatible license, and hence we avoid using GPLd code so as to not trigger the GPL requirements. matplotlib has rigid segregation between the front end (plotting commands, figure objects, etc) and backends (gtk, wx, ps, svg, etc). The backend is chosen dynamically at runtime -- eg the same python script could trigger the import gtk, wx, or ps, depending an some rc settings or command line opts. The question is: does shipping a backend which imports a module that links with GPL code make some or all of the library GPL. This question is complicated, in my mind at least, by several factors. Here are some sub-questions: * If a backend module somebackend does import somelib where somelib is a python wrapper of GPL code, is somebackend GPLd? * Assuming the answer to the above question is yes, is matplotlib GPLd if it distributes somebackend? I think this is a nuanced situation because matplotlib would work just fine w/o somemodule, and only uses somemodule's code if it is selected at runtime by the user. Ie, no other part of the code depends on it since it is one of many interchangeable backends. * To further complicate the question, the backend in question is qt, which is dual licensed, commercial and GPL. The qt backend code just needs to 'import qt', and neither the backend writer nor the matplotlib frontend knows whether the deployed qt on the system is commercial or GPLd. To date, the only GPL-like backend is GTK, which is LGPL. Since we're only linking and not using the src, we're protected from the GPL requirements. With QT, which has a pure (non L) GPL variant, the situation is less clear to me. Thoughts, links, etc, appreciated... JDH -- http://mail.python.org/mailman/listinfo/python-list