[OT} How to un-GPL parts of a GPL'd module.

Michael Stenner mstenner at phy.duke.edu
Tue Oct 8 19:27:24 EDT 2002


On Wed, Oct 09, 2002 at 08:32:28AM +1000, Tim Churches wrote:
> Michael Stenner wrote:
> > You correctly note that you've been tainted since you looked at his
> > code.  That leaves you in a bit of a quandry, but you got yourself
> > into it.  Why did you look at his code in the first place?  You knew
> > it was GPL'd.  You knew you weren't willing to use the GPL!  What
> > LEGITIMATE benefit could you gain?
> 
> and Steve Holden wrote:
> 
> > The OP's real mistake, as has already been pointed out, was reading GPL'd
> > code when he doesn't agree with, or want to abide by, the GPL.
> 
> The GPL exerts Copyleft by modifying rights granted to authors
> by legislated Copyright. As pointed out by someone else,
> Copyright extends only to implementations, not to algorithms.
> Thus, merely studying GPLed code does not 'taint' your mind with
> the GPL, no more so than reading Marx makes you a communist.

> < much more (supporting arguments) snipped >

Rereading my statement (quoted above) I agree that it was a bit too
firm.  (I was annoyed because it seemed the OP was trying to do
something naughty.)  As poetic as the word "taint" is, it's
connotations are too strong for this situation.  I also agree that
there are indeed legitemate reasons to look at the code.

Basically, I have no major arguments with what you (Tim) said.  If you
read the GPL'd code of a program that does X, it is certainly not
IMPOSSIBLE to write a non-infringing program that also does X.  But
there is increased risk of infringing compared to the case where you
haven't read the code.

The problem is, it CAN get real murky if you've read the code, and had
a real live light-bulb realization as a direct result.  The OP
basically admitted having such a realization.

Sure, you can use algorithms (I'll take your word for it anyway, at
least for the purpose of this discussion) but you can't cut-n-paste.
You also can't just change a few variable names.  Somewhere in
between, there's a line that's hard to pin down.  Sure, everybody has
a 5-word description of where that line is, but most disagree, and
they STILL leave ambiguity in real-world situations.  This is all
completely avoided by not reading the original code.

This is all usually moot.  Most snippets that one person wants from
another are either small enough that they're not affected by the
license/copyright or large enough that when rewritten (after viewing)
they're quite different.

Here's my little "rule of thumb" type guideline (that I'm making up
right now) that I think we'll agree on (at least Tim and I): if you
read casually, or for understanding (as opposed to memorization) and
then a few days later write up your version, then you're probably
fine.  If you write your version with the "original" open in another
window or or refer to it frequently, that's not so safe.  

					-Michael
-- 
  Michael Stenner                       Office Phone: 919-660-2513
  Duke University, Dept. of Physics       mstenner at phy.duke.edu
  Box 90305, Durham N.C. 27708-0305




More information about the Python-list mailing list