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

Re: "rescuing" code from the GPL



On Saturday 10 November 2007 08:48:22 Shriramana Sharma wrote:
> My question is whether anyone among X, Y and Z in any of the below two
> situations is guilty of copyright infringement as a result of not
> following license conditions?
>
> SITUATION #1:
>
> 1. X creates 01-noqt-nothirdvar.cpp and distributes it under the BSDL
> only.

Okay...

> 2. Y modifies this program to use Qt (under the GPL), creating
> 02-qt-nothirdvar.cpp, and distributes it under both the BSDL and GPL.

Well, they could distribute the source code under the BSD, as the source 
code isn't a derivative work of Qt just by using it. But they could not 
legally distribute a compiled binary that included copyrightable parts of 
GPL-only Qt. You could distribute binaries under the GPL.

> 3. Z modifies this program to use a third variable for swapping,
> creating 03-qt-thirdvar.cpp, and distributes it under both the BSDL and
> GPL.

Again, they could distribute source under BSD, but not compiled binaries 
linked with GPL-only Qt. You could distribute binaries only under the GPL, 
because you have to respect Qt's license.

> 4. X imports the change from Z, namely using a third variable only, into
> his codebase, creating 04-noqt-thirdvar.cpp, and distributes it under
> the BSDL only.

Sure, now the code doesn't use any GPL code, so you could distribute source 
or binaries under the BSD.

> SITUATION #2:
>
> 1. X creates 01-noqt-nothirdvar.cpp and distributes it under the BSDL
> only.

Okay ... 

> 2. Y modifies this program to use Qt (under the GPL) and to use a third
> variable for swapping, creating 03-qt-thirdvar.cpp, and distributes it
> under both the BSDL and GPL.

Same as above -- you could distribute the source under the BSD, but not 
binaries. You could distribute binaries only under the GPL, because you 
have to respect Qt's license.

> 3. X imports one change from Y, namely using a third variable only, into
> his codebase, creating 04-noqt-thirdvar.cpp, and distributes it under
> the BSDL only.

Again, now there is no GPL code, so you could distribute source or binaries 
under the BSD.

There seems very straightforward and obvious. Is there something different 
that you were expecting? For one thing, this has nothing to do 
with "rescuing" code from the GPL -- the only reason you could remove 
references to Qt and get back a BSD work is because all of the intermediate 
steps included dual-licensed code. 

Here is a more likely scenerio, and maybe this is what you really want to 
know:

1. X creates 01-noqt-nothirdvar.cpp and distributes it under the BSD only.

2. Y modifies this program to use Qt (under the GPL) and to use a third 
variable for swapping, creating 03-qt-thirdvar.cpp, and distributes it 
under the GPL, only.

3. X wants to import one change from Y, namely using a third variable only, 
into his codebase, creating 04-noqt-thirdvar.cpp, and distribute it under 
the BSD, but he *can't*[1], because that change is licensed under the GPL 
only, by Y. So he either calls Y and asks if he can use that part of the 
change under the BSD, or he rewrites the function himself so that there is 
no GPL code involved.

So basically, no, you can't "free" something from the GPL (or any license, 
really), unless you:

  1) Get the author to re/dual-license their code, or
  2) Rewrite all of the "offending" code.

Footnotes:

[1] Glossing over how this example trivial change is not copyrightable 
anyway. I'm assuming as you probably are that this whole thing is an 
analogy for much more major changes.

-- 
Wesley J. Landaker <wjl@icecavern.net> <xmpp:wjl@icecavern.net>
OpenPGP FP: 4135 2A3B 4726 ACC5 9094  0097 F0A9 8A4C 4CD6 E3D2

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: