[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: use of Python bindings to GPL library from within non-GPL Python toolkit

In message <20080917171429.GA1704@washoe.rutgers.edu>, Yaroslav Halchenko <yoh@debian.org> writes
Hi Guys,

I am sorry that I am following up on this dead thread I started long
ago [1], and which Francesco was kind to follow up to.

Now I've got another project to package and got the same issue, and I am
not clear if I have the right understanding of GPL-compatibility.

AFAIK it means that you can use GPL-compatible licensed project
within GPL-ed project, and not vise-versa! Am I correct?


And actually if I am reading it right, wikipedia says the same:
"Many of the most common free software licenses, such as the original
MIT/X license, the BSD license (in its current 3-clause form), and the
LGPL, are "GPL-compatible". That is, their code can be combined with a
program under the GPL without conflict (the new combination would have
the GPL applied to the whole)."

so -- combination has to be GPLed!

Sort of yes ...

If I am not right -- then Francesco is right and I can easily use GPLed
project (and don't even ask for LGPL) from anything which is

That's not impossible ... but if I understand you aright, then the GPL is intended to hinder/prevent that. The GPL does not allow you to mix GPL'd code in non-gpl'd projects.

The proper way to look at it is:

If you distribute someone else's code you have to abide by their licence that they put on it. If that licence allows you to relicence the code then you can, otherwise you can't.

Let's say you mix three code bases into one project, one is GPL, one is GPL-compatible, and one is your own code.

Your own code, you can do what you like with - apply ANY licence to it. The GPL code, you cannot relicence it, so you have to distribute it under the GPL only. The GPL-compatible code can also be distributed under the GPL.

But because you're distributing your code mixed with GPL code, the GPL demands that either you dual-licence your code as GPL, or you let the recipients of the code relicence. Otherwise you can't distribute the GPL code.

Your recipients now can treat the entire project as if was GPL (that's the point of "GPL-compatible"). They can strip out your code and use it under whatever other licence you put it. And they can strip out the GPL-compatible code and use it under the GPL-compatible licence.

The thing is, you CAN NOT (without the copyright holder's permission) relicence any third-party code. The GPL says you must pass on ALL the rights that the GPL grants to ALL the code to ALL the recipients. If you can't do that you can't distribute the GPL code. And if the 3rd-party licence didn't give you those rights to pass on, you can't mix that code with GPL code and pass it on because the two licences conflict - the GPL says you MUST pass on the rights, the 3rd-party licence says you CAN'T pass on the rights, and the only option left open to you is to NOT DISTRIBUTE.

Anthony W. Youngman - anthony@thewolery.demon.co.uk

Reply to: