Skype Protocol Plugin

View: New views
5 Messages — Rating Filter:   Alert me  

Skype Protocol Plugin

by Mark Doliner :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Sorry, this email is going to be long, but I'm hoping that helps keep
the responses succinct. :-)

Eion Robb has written a Skype API protocol plugin for libpurple (the
library that powers Pidgin and Finch) [1].  It's been brought up on
this mailing list a few times in the past, but I don't feel like we
came to a strong consensus on whether we believe this protocol plugin
is in violation of our GPL license, and I think it's important that we
do so.  Here's my best summary of the potential problems:

1. Does the plugin link with Skype?  If so it would be in violation of
libpurple's license because Skype is not licensed with a
GPL-compatible license.  There are two parts to this issue:

a) Does the plugin link to Skype in the traditional sense?  The
Makefile does not build against or include any Skype libraries and
from what I can tell no Skype code is loaded into the process at build
time or at run time.  The plugin uses different mechanisms to
communicate with Skype depending on the platform: wm_copydata messages
on Windows, D-Bus or X11 on Linux, and some sort of asynchronous
delegate functions on OS-X?  It's not clear to me if the use of any of
these constitute "linking."

b) Is the communication between the plugin and Skype intimate enough
to be considered one program?  The GPL FAQ includes this statement:
"If the two programs are combined so that they become effectively two
parts of one program, then you can't treat them as two separate
programs. So the GPL has to cover the whole thing" (also see [2]).  My
understanding is that the Skype API is a fairly high level protocol.
It includes commands like:
   CHAT CREATE YourSkypeName
   CHATMESSAGE #MySkypeName/$YourSkypeName;012345679012345 "Hello, world!"
   SEARCH FRIENDS
These commands are pretty generic.  It wouldn't be hard for someone to
replace Skype with another program that spoke the same protocol.  In
other words, the plugin could easily be decoupled from Skype, which
means the two pieces should not be considered one program.

2. Skype places a bunch of restrictions on the use of the Skype API
(like accepting Skype's EULA) [3].  It is obviously not acceptable to
place these restrictions on libpurple because they are not compatible
with the GPL.  But the plugin doesn't use any source code from Skype.
Does the use of the Skype API actually impose those restrictions on
the software?  It seems like those restrictions would be placed on the
user of the software.  But this is not clear to me.

Eion also has this to add:
<Eion>
* I reversed-engineered the Skype.Framework library that used to be
the only way to communicate with Skype, so that I didn't break the GPL
by linking with a closed-source Framework
* I do not use the Skype API website for my reference material as
there have been issues regarding documentation and the GPL when it
came to the Oscar protocol (as a rough example), and instead painfully
watch communication between Skype and other clients (Miranda/Trillian)
to see how they work as well as examining the source code of other
clients (mainly Miranda and Skype4Py/Skype4Java).
* I am in the process of building a server so that Skype does not need
to be required to be running on the client machine to use the Skype
API.  This should help settle the critics of the prpl.  An XMPP
transport plugin would help me make a Skype XMPP server as an
alternative, making the protocol further accessible by the open-source
community.
* I asked the Free Software Foundation on their point of view on the
topic, since they're the only free lawyer I know and since they wrote
the GPL.  Their reply is here [4] and seems to agree with both [Mark]
and I that the Skype prpl does not technically violate the GPL

The way I see it is that it is no different to someone working out how
any other protocol works; watching data between client and server (in
this case the server being the running Skype program), sending test
messages to server etc."
</Eion>

Whew, lot of information there.  I'm not sure what role, if any, IM
Freedom, Inc[5] should play.  We could certainly try asking for an
opinion from our lawyers, but they are just volunteers and I hate to
ask them to do unneeded work.

Here's what I think we're going to decide, if you agree feel free to
just +1 and we can keep this discussion short:
* Strictly speaking the plugin is legally OK (although only a court
could have the final say).
* The plugin violates the "spirit" of our license, because it's
basically a way for people to utilize proprietary code from our
software.

Also, I'll be out of town starting like, now, through May 5th or 6th.
I'll have limited access to email, but other than that I'll be more
usless than usual.  rekkanoryo is our other Summer of Code admin, so
please talk to him if we need to make any changes or anything.

-Mark

[1] http://eion.robbmob.com/
[2] http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
[3] http://www.skype.com/intl/en/legal/terms/api/
[4] http://eion.robbmob.com/FSF%20Email.txt
[5] http://imfreedom.org/

_______________________________________________
Devel mailing list
Devel@...
http://pidgin.im/cgi-bin/mailman/listinfo/devel

Re: Skype Protocol Plugin

by Richard Laager :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

I *thought* we all agreed long ago that regardless of whether this is
legally a GPL violation or not, we weren't going to encourage the use of
this plugin because it violates the spirit of the GPL. On the
philosophical side, you're still playing with and depending on non-free
code. As a practical consequence, this plugin makes it less likely that
someone will write an entirely free (GPLed) Skype protocol plugin.

To establish an example of something that I think *would* be legally
infringing, I don't believe the GPL wouldn't allow someone to take the
Skype API, the Skype protocol plugin and libpurple and ship them
together saying, "It's libpurple, now with Skype support." To me, that
would be a derivative work of libpurple and thus more than mere
aggregation.

Richard


_______________________________________________
Devel mailing list
Devel@...
http://pidgin.im/cgi-bin/mailman/listinfo/devel

signature.asc (204 bytes) Download Attachment

Re: Skype Protocol Plugin

by Luke Schierer-5 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Apr 28, 2009, at 18:38 EDT, Richard Laager wrote:

> I *thought* we all agreed long ago that regardless of whether this is
> legally a GPL violation or not, we weren't going to encourage the  
> use of
> this plugin because it violates the spirit of the GPL. On the
> philosophical side, you're still playing with and depending on non-
> free
> code. As a practical consequence, this plugin makes it less likely  
> that
> someone will write an entirely free (GPLed) Skype protocol plugin.
>
> To establish an example of something that I think *would* be legally
> infringing, I don't believe the GPL wouldn't allow someone to take the
> Skype API, the Skype protocol plugin and libpurple and ship them
> together saying, "It's libpurple, now with Skype support." To me, that
> would be a derivative work of libpurple and thus more than mere
> aggregation.
>
> Richard

Richard has adequately and accurately summarized my understanding of  
past consensus.

Luke

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkn3luYACgkQUsDanPbyGdk5+ACfWoSb3KznzaaCa/v56haHl+4x
rm8AoIiC9xuSljg3iWVfvl7wj/hxMciS
=4ZS2
-----END PGP SIGNATURE-----

_______________________________________________
Devel mailing list
Devel@...
http://pidgin.im/cgi-bin/mailman/listinfo/devel

Re: Skype Protocol Plugin

by Ethan Blanton-3 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Mark Doliner spake unto us the following wisdom:
> Here's what I think we're going to decide, if you agree feel free to
> just +1 and we can keep this discussion short:
> * Strictly speaking the plugin is legally OK (although only a court
> could have the final say).
> * The plugin violates the "spirit" of our license, because it's
> basically a way for people to utilize proprietary code from our
> software.

I would say, rather:

* There is an argument which is not entirely without merit that the
  plugin is legally OK (although only a court could have the final
  say).  Because it is entirely useless without the closed-source
  Skype binary, I'm not sure I agree.
* Regardless of this, the plugin violates the spirit of our license,
  because it's basically a way for people to use code bearing an
  odious license from our software.

For me, it's not about the closed nature of the software, it's about
the particularly horrible Skype license.

Your language may be closer to consensus, I don't know.

Ethan

--
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


_______________________________________________
Devel mailing list
Devel@...
http://pidgin.im/cgi-bin/mailman/listinfo/devel

signature.asc (196 bytes) Download Attachment

Re: Skype Protocol Plugin

by "Marco Trevisan (Treviño)" :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Mark Doliner wrote:

> Eion Robb has written a Skype API protocol plugin for libpurple (the
> library that powers Pidgin and Finch) [1].  It's been brought up on
> this mailing list a few times in the past, but I don't feel like we
> came to a strong consensus on whether we believe this protocol plugin
> is in violation of our GPL license, and I think it's important that we
> do so.  Here's my best summary of the potential problems:
>
> 1. Does the plugin link with Skype?  If so it would be in violation of
> libpurple's license because Skype is not licensed with a
> GPL-compatible license.  There are two parts to this issue:
>
> a) Does the plugin link to Skype in the traditional sense?  The
> Makefile does not build against or include any Skype libraries and
> from what I can tell no Skype code is loaded into the process at build
> time or at run time.  The plugin uses different mechanisms to
> communicate with Skype depending on the platform: wm_copydata messages
> on Windows, D-Bus or X11 on Linux, and some sort of asynchronous
> delegate functions on OS-X?  It's not clear to me if the use of any of
> these constitute "linking."
> [SNIP]
>
> 2. Skype places a bunch of restrictions on the use of the Skype API
> (like accepting Skype's EULA) [3].  It is obviously not acceptable to
> place these restrictions on libpurple because they are not compatible
> with the GPL.  But the plugin doesn't use any source code from Skype.
> Does the use of the Skype API actually impose those restrictions on
> the software?  It seems like those restrictions would be placed on the
> user of the software.  But this is not clear to me.
>
> [SNIP]
>
> Here's what I think we're going to decide, if you agree feel free to
> just +1 and we can keep this discussion short:
> * Strictly speaking the plugin is legally OK (although only a court
> could have the final say).
> * The plugin violates the "spirit" of our license, because it's
> basically a way for people to utilize proprietary code from our
> software.

Sorry, but I don't agree with this.
Also if I don't like Skype, I don't think at all that this kind of
plugin is in any form "linking" with a proprietary code.
Yes, it allows to use proprietary code from your software but exactly
like the most part of other protocol plugins are actually doing.

I mean, for example, the skype plugin under linux is "talking" with the
Skype client by using public D-Bus APIs, then that client will be a
gateway for the skype network.
But... The {yahoo,msn,aim,...} plugin is doing the same thing: it
"talks" with a server (using public[?] protocol specifications over
another network protocol) that is mostly running proprietary software.

So the only difference imho, is where the proprietary code is running.
The fact that is in the same host of the purple plugin, doesn't imply
that they're acting differently IMHO.

If you look at this plugin in this way, you should block any other
plugin that allows to use closed bits around.

--
Treviño's World - Life and Linux
http://www.3v1n0.net/

_______________________________________________
Devel mailing list
Devel@...
http://pidgin.im/cgi-bin/mailman/listinfo/devel