Michel Sanner <sanner@scripps.edu> wrote:
> One of the greatest feature of Python in my opinion is the way the 
> interpreter can be used to integrate a wide variety of
> software packages by dynamically linking them.  This approach has been 
> extremely successful for us so far but now I run
> into a license nightmare.
> 
> Some the libraries we wrapped using SWIG are under GPL but the 
> applications we are distributing are not (mainly because
> we are asked by funding agencies to keep track of users and hence ask 
> people to download the source from our site).

There was a long discussion of this issue on this list in Feb 2005 - do a search on Google Groups for that. The gist of my contribution to that discussion was that Section 0., Para 1 (assuming zero-based 
paragraph numbering...) of the GPL unequivocably says: 

"Activities other than copying, distribution and modification are not 
covered by this License; they are outside its scope. The act of running 
the Program is not restricted,..." 

Therefore if what you want to do does not involve copying, distribution or modification of GPLed code, then you are on safe ground and need not feel bad about not respecting the wishes of the licensors of the GPLed code in question. Our approach to thsi issue has been to instruct end users to obtain third party GPLed code from its original source, and to install both it and our non-GPLed code (it is Mozilla licensed) on their system. In that way what we are doing cannot possibly be construed as "copying, distributing or modifying" that third-party GPLed code. Rather, our code just calls it at run-time on the end user's system. Nevertheless, it is always good practice to ask their permission anyway. But if they refuse, ask them about the above clause in the GPL.

If using SWIG or other wrapping mechanisms, do be careful that you are not statically linking using header files or other GPLed API definition files as part of the wrapping process, and then distributin the linked object files. Some GPLed projects (eg the R statistical environment) license their API header files under a different license (the LGPL) in order to allow non-GPLed code to use the header files.

Of course, the GPL propogation provisions only apply if you (or anyone else) is distributing GPLed code to thrid parties. Thus, if your non-GPLed SWIG source code needs to use GPLed header files, there is nothing to stop you distributing your code to an end user, and then instructing the end user to download the GPLed coded needed by your non-GPLed code, and to then compile everything, all within teh confines of their system. Provided that the end results of this compilation are not then distributed to anyone else, then the GPL is not violated, not in letter nor in spirit.

It-pays-to-actually-read-the-GPL-before-you-distribute-your-code-under-it-ly yours,

Tim C

