Send As SMS

Friday, February 18, 2005

A Way Around the GPL?

Torger Kielland, a student at the University of Oslo who is writing a thesis on copyright law and the implications involving the Free Software Movement, emailed me with a possible way to circumvent the GPL. He states:

I make a modification to a GPL'ed program and construct it as a "dif" - a
file which only states the differences between the original code and the modified code and distributes this, the dif does not contain any of the original code, and would in my opinion not qualify as a "derivative work" of the original Program. Hence it should not be necessary to distribute it under the terms of the GPL.

However, this raises two questions:

1. If I distribute the dif TOGETHER with the original program (for instance in a .zip-file stored on a website or a CD-ROM), would this qualify as a distribution "as part of a whole which is a work based on the Program", according to GPL § 2 para. 2?

2. Even though the "dif" itself does not qualify as a derivative work, it enables the licensee to create a derivative work if he has access to the original program. Does this make me as a distributor liable for contributory infringement?

In my opinion the answer will be no in both accounts, but I'm looking for
inputs.


Thoughts?

8 Comments:

At 9:56 PM, gumout said...

Assuming `arguendo` that the GPL is enforcable,

1. If I distribute the dif TOGETHER ...? No.

2. Even though the "dif" itself...? No.

Providing a "dif" is an act in furtherance of *modifying* the original GPL'd work. Everyone is permitted to modify a GPL'd work hence there can be no "contributory" involvement.

An act in furtherance of *distribution* of a modified GPL work might be considered "contributory" in nature.

 
At 5:02 AM, Anonymous said...

The dif (sic) will reference data structures, subroutines or other features of the work. It will therefore be an identifiable derivative (think of a work of fan fiction). The GPL will apply.

If the diff doesn't refer to the work in any way, it is not a derivative in any useful sense and the GPL will not apply.

You could distribute diffs of callbacks with a given signature for end users to link with the code, but then the GPL's non-proprietary-linking clause would cut in.

So I don't think this circumvents the GPL.

 
At 11:33 AM, terekhov said...

> In my opinion the answer
> will be no in both accounts,

Yup.

> but I'm looking for inputs.

Read this thread:

http://www.google.de/groups?threadm=31b9c6ec.0407281052.7c0a3bc0%40posting.google.com

regards,
alexander.

 
At 12:20 PM, terekhov said...

> The dif (sic) will
> reference data
> structures, subroutines
> or other features of the
> work.

References are protected element only in the GNU Republic.

regards,
alexander.

 
At 12:35 PM, terekhov said...

> threadm=
> 31b9c6ec.0407281052.
> 7c0a3bc0%40posting.
> google.com

Parent thread can be found here:

http://www.google.de/groups?threadm=9462edc9.0407212224.762b9298%40posting.google.com

regards,
alexander.

 
At 9:47 AM, Torger Kielland said...

In my opinion the answer depends upon whether the only GPL covers derivative works, or if it also covers separate and independent works when they are distributed “as part of a whole which is a work based on the Program”, cf. GPL Sect. 2 para. 2.

According to Norwegian law a so called "dif" is not a derivative work of the program it patches, because it does not contain any part of the of this progrgam. Merely "referencing" another work does not make it a derivative of another.

However, in my opinion the GPL does not only cover derivative works of the program licensed under GPL, but also makes a contractual obligation to license separate works when they are distributed “as part of a whole which is a work based on the Program” and to release the source code to such works.
(Although, whether or not specific performance can be given as a remedy for breach of such an obligation is a different matter)

It could then be argued that a patch which is distributed together with the program which it is intended to patch is a work which is “distribute[d] (…) as part of a whole which is a work based on the Program”, and hence covered by the copyleft provision in the GPL.

Such a position has been argued in German law (For those interrested, see Metzger, Axel and Jaeger, Till, Open Source Software, Rechtliche Rahmenbedingungen der Freien Software, München, 2002 p. 47 and Spindler, Gerald (ed.), Rechtsfragen bei open source, Köln, 2004 p. 119.)

 
At 1:09 PM, Anonymous said...

These fine points tend to differ significantly between countries, even between european countries.

 
At 3:56 PM, Craig said...

For #2, it would be allowed to not GPL your diff. If by referencing some of the GPLd code you are not violating the GPL, or if you do not reference the GPLd code, then anything someone applies the patch to is doing so in private and does not require your code to be GPLd. HOWEVER if you or they release the entire thing, binary or source (if it is a third party then they must of course make sure they do not violate your license first), then your code will become part of a GPLd program in public and therefore need to be under the GPL. So your diffs do not have to be GPL but anything they are publicly applied to must be GPL. Your only way of completely stopping that is by having a license on your diffs saying the patched code or binaries cannot be publicly made available which then stops the need of any modified code to be GPLd which would include your patch.

Thats what I got from reading the GPL - hope it helps. I would love to hear a comment on my idea.

 

Post a Comment

<< Home