What is Copyleft?

Dave J Woolley david.woolley at bts.co.uk
Fri Feb 23 11:33:10 UTC 2001

> From:	Ryan S. Dancey [SMTP:ryand at frpg.com]
> Is the argument that a run-time link to external code creates a derivative
> work (in the sense that the copyright statutes define a derivative work)
> of
	I don't think so.  It think the argument is about taking
	GPLed code that doesn't link with the library and deriving a
	work that does link with the library.  Whilst it is arguable
	as to whether the FSF's current interpretation of their licence
	is consistent with what the licence actually says, a copyright
	owner does have the power to license code with a restriction that
	derived works may not be dynamically linked with certain
	categories of shared library.

> the Program and the external code?  Under this theory, you couldn't use
> GPL'd code with RPC or HTML or SMPT or any other inter-process
> communication
> system unless the whole system was GPL'd!
	I don't believe there is any problem in using it even with
	shared libraries providing that the shared library is being
	substituted for a licence compatible one.  The problem is in
	a derived work specifically intended to be used with a proprietory 
	library, including the thorny cases of various devices intended to
	artificially create the first situation.  You can also do what you
	like for internal use.

	To be more concrete, if you develop a library that implements an 
	algorithm for predicting future prices in the widgets market but
	decide that, to save development costs, you should use a GPLed user
	interface library, if you could dynamically link without
	you could create a GPLed user interface that was only useable with
	your program to achieve something that you would not be allowed to
	do if you statically linked.  You would therefore have produced a 
	complete work in which the GPLed part was only useable as part of
	the proprietory whole.

> If I understand the internals of the situation correctly (which I may
> not),
> a program that binds to a DLL at runtime does so through the mediation of
> the OS.  Data is packaged, handed to the OS, the OS moves it from the
	In general no.  In general a few addresses in the code are
	fixed up by the loader.  A small amount of code may get added
	in some implementations, but that code is normally self contained.

--------------------------- DISCLAIMER ---------------------------------
Any views expressed in this message are those of the individual sender,
except where the sender specifically states them to be the views of BTS.

More information about the License-discuss mailing list