Calling GPL code from a Python application

Tim Churches tchur at optushome.com.au
Wed Jan 4 11:53:32 CET 2006


Steven D'Aprano wrote:
> On Wed, 04 Jan 2006 14:57:58 +1100, Tim Churches wrote:
> 
> 
>>Steven D'Aprano <steve at REMOVETHIScyber.com.au> wrote:
>>
>>>In particular:
>>>
>>>http://www.gnu.org/licenses/gpl-faq.html
>>>
>>>[quote]
>>>
>>>Q: If a library is released under the GPL (not the LGPL), does that mean
>>>that any program which uses it has to be under the GPL? 
>>>
>>>A: Yes, because the program as it is actually run includes the library. 
>>>
>>>[end quote]
>>
>>Yes, but the rather fundamental problem with the FSF position above being
>>the following words as contained in the GPL itself:
>>
>>Section 0., Para 1 (assuming zero-based paragraph numbering...): 
>>
>>"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,..." 
>>
>>Sorry, but "Yes, because the program as it is actually run includes the
>>library." is incompatible with "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."
> 
> Tim,
> 
> Firstly, perhaps you could use a mail/news client that correctly limits
> lines to (say) 72 characters, that would make it a lot easier to read your
> comments.

Sorry, was using the Optus webmail client which does not do line
wrapping - please complain to them.

> Secondly, perhaps you should consider that dynamically linking to a work
> is creating a derivative work, which most certainly falls under the
> "modification" clause.

Well, Section 0 of the GPL defines "derivative work" thus:

"The 'Program', below, refers to any such program or work, and a 'work
based on the Program' means either the Program or any derivative work
under copyright law: that is to say, a work containing the Program or a
portion of it, either verbatim or with modifications and/or translated
into another language. (Hereinafter, translation is included without
limitation in the term 'modification'.)

That is about as clear as it gets: as far as teh GPL is concerned, a
"derivative work" conatins the original Program or part of it, either
verbatim or with modifications and/or translated into another language.

I am sorry, but dynamic linking at run-time does not, by any stretch of
the imagination, correspond to the definition of "derivative work" above.

> Thirdly, I don't think it is particularly helpful for people to go hunting
> through licences -- whether the GPL or a restrictive, commercial,
> closed-source we-own-your-first-born licence -- looking for loop-holes.
> Not only is it immoral and unethical, but it is also dangerous: it is easy
> to think you have found a loop-hole only to discover that the judge
> disagrees.

It can also be argued that it is unethical to attempt to discourage the
use of useful GPLed software in settings where it can, in fact, be
legally used. Indeed, it is wrong to assume that copyright holders of
GPLed software don't want their code to be used through dynamic run-time
linking from other non-GPLed programmes (which may themselves be open
sourced under GPL-incompatible licenses, such as teh Mozilla license).
The best approach is to ask the copyright holder what their wishes are,
and failing that, to adopt a literal interpretation of the GPL itself.

Tim C



More information about the Python-list mailing list