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

Re: [GPL] No linking with proprietary programs: where?



Brian Kimball <bfk@footbag.org> writes:

> Where did you get "entire program"?  That's not in the GPL.  Isn't the
> question to be asked "is it a derivative work of a GPLed work?"  Maybe
> I'm too focused on the phrase "derivative work"; are there cases where
> the GPL can require that the source code for non-derivative works be
> released also?

"These requirements [those of distributing source, etc.] apply to the
modified work as a whole.  If identifiable sections of that work are
not derived from the Program, and can be reasonably considered
independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as
separate works.  But when you distribute the same sections as part of
a whole which is a work based on the Program, the distribution of the
whole must be on the terms of this License, whose permissions for
other licensees extend to the entire whole, and thus to each and every
part regardless of who wrote it."

Especially read again the sentence: "But when you distribute the same
sections as part of a whole which is a work based on the Program, the
distribution of the whole must be on the terms of this License."

In other words, if I write a GPL'd function find_outer_otter, and you
call it from your own function locate_inner_otter, in you program
frob-otters, then:

  1) locate_inner_otter might itself be derived from
     find_outer_otter.  If so, then locate_inner_otter must itself be
     GPL.

  2) If locate_inner_otter is not derived from find_outer_otter, but
     you distribute binaries for frob-otters, then you must still give
     the complete source code for both locate_inner_otter and
     find_outer_otter.  The reason is that the GPL lets you copy
     find_outer_otter only if you distribute the "the whole on the
     terms of this License."

  3) If you attempt to defeat (2) by distributing the two functions
     separately, or distributing only locate_inner_otter, and telling
     users how to combine them to produce frob-otters, and there is no
     way to make locate_inner_otter useful without doing so, then a
     court will find that you were attempting a subterfuge, and that
     what you were doing was the same thing as (2) for all practical
     purposes.

  4) The only way to get around (3) would be to make
     locate_inner_otter useful even to people who do not have
     find_inner_otter.  One way to do that would be to write an
     independent non-GPL'd implementation of find_inner_otter; another
     would be to make locate_inner_otter not depend on
     find_inner_otter anymore.

Thomas



Reply to: