RE: Roaring Penguin's view

Patrik Stridvall <[email protected]> Thu, 13 Jun 2002 16:57:20 +0200
Newsgroups gmane.comp.emulators.wine.license
Message-ID <[email protected]>
> Am Don, 2002-06-13 um 10.51 schrieb Roger Fujii:
> 
> > > If I develop import/export filter using the API (or ABI),
> > > am I "deriving a product from" the GPL:ed work or am I
> > > "developing a product for" the GPL:ed work?
> > 
> > Well according to FSF, you would be "deriving from", as 
> they *claim* that
> > you cannot write a GPLed plugin for a propriatary program 
> (if it's not
> > fork/execed).
> >     http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
> > 
> > This is not to say I think this has any legal merit - just that FSF
> > does make this claim.
> 
> My personal interpretation of the GPL is that when an OS task has code
> from a GPL'd software in the executable section of its memory map, all
> executable code in that task's memory map that calls functions in the
> GPL'd section forms a derivative work and must thus be GPL'd.
> 
> This interpretation makes technically clear why dynamic linking and
> plugins lead to derivative works and IPC and socket 
> communication don't.

Ah, but in the COM/DCOM world this is a runtime configurable option.

> I know too little about COM to tell what my interpretation would mean
> for that.

Very simplified explaination, perhaps a little oversimplified.
In COM/DCOM you have something called interfaces. They are basicly
a set of functions (a jumptable). When you get an interface you
don't know or don't care WHERE the functions are implemented.

There are three possibillities.
1. The process itself loads the implementation. 
2. A second process loadsof the implementation.
   COM generates marshalling code in the first process 
   for IPC communication with the second process.
3. A process on second computer loads the implementation.
   COM generates marshalling code in the first process for
   socket communication with the process on the
   second computer.

Short note 1 and 2 is COM and 3 is DCOM.

In short:
You ask for the interface (the set of functions) and depending 
on runtime configuration on the computer it runs on different
things might happend. You don't know and often don't care
either.
 
> I don't know if RMS would consider this definition correct, nor if it
> would stand in court.

In the COM/DCOM world the definition have no meaning.

Dynamic linking, IPC communcation and RPC (read: socket)
communication is basicly the same thing. What is used is
determined by the local system operator not by the
application writer.