[sword-devel] Sword license

Chris Little sword-devel@crosswire.org
Fri, 17 Jan 2003 13:09:52 -0700 (MST)

On Fri, 17 Jan 2003, Joe Walker wrote:

> My understanding is that all the GPL obliges you to do is release the 
> code under GPL. It does not stop you releasing it under the GPL AND 
> another MIT/BSD style license (so long as there is no ad. clause conflict)
> Many projects like Mozilla and MySQL (IIRC) are released under 2 licences.

If you make use of another's work (e.g. linking a library) that is covered 
by the GPL, then you must release that code under the GPL and only under 
the GPL.  If you select a piece of work licensed under multiple licenses, 
you need to choose one and abide by it.  So, it is not acceptable to write 
a Sword front-end that links to the Sword library and license it under any 
license other than the GPL.  Front-ends are derivatives of Sword and 
therefore must abide by its license.  (This is that viral thing everyone 
keeps talking about....  See section 6 of the GPL.)

> I don't understand how there can be a problem for GPL code to link *TO* 
> non-GPL code. The GPL uses the word "derived" and not "linked" and the 
> standard copyright definition of "derived works" is a very one way process.
> So I don't understand people that claim you can't have a GPL Java 
> program because it has to link to non-GPL code. It sounds like Squeak 
> might be the same.

GPL code cannot be linked to and cannot itself link to non-GPL code with 
the exception of system libraries.  From section 3 of the GPL:

"The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source code
means all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the executable. However, as a special exception, the
source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major components
(compiler, kernel, and so on) of the operating system on which the
executable runs, unless that component itself accompanies the executable."