elb at pidgin.im
Tue Aug 24 17:03:27 EDT 2010
Enrico Weigelt spake unto us the following wisdom:
> * Ethan Blanton <elb at pidgin.im> wrote:
> > *Remote* APIs are a grey area;
> Really ?
Yes, really. Envision an implementation of ld.so which calls
functions across a Unix socket by marshalling the function calls and
arguments as-is. (There's obviously a lot of work involved here, and
as stated, it's practical only if the two halves of the call share an
address space.) Clearly this is a direct usage of the Purple API, and
one cannot claim to be independent of libpurple simply because
libpurple is used via IPC.
Imagine, on the other hand, an XMPP service which provides access to
libpurple protocols via XMPP. (Something like the Spectrum
[spectrum.im] transport.) It's pretty clear that a user of this
service is *not* a direct user of libpurple, and the transport could
swap libpurple out without affecting the user in any great way.
These are both remote APIs, but one is a derivative work and the other
is not. There are many gradations in between; something from a
CORBA-like service or Sun RPC server, to the D-Bus methods and signals
mechanism, to a web CGI service. At some level of remote abstraction,
the work goes from being a libpurple "derivative work", to being a
work of its own which *may or may not* use libpurple via a remote API.
I hope you now understand this better.
The laws that forbid the carrying of arms are laws [that have no remedy
for evils]. They disarm only those who are neither inclined nor
determined to commit crimes.
-- Cesare Beccaria, "On Crimes and Punishments", 1764
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 482 bytes
Desc: Digital signature
More information about the Devel