License conflict / question

Feb 9, 2010 at 1:17 PM
Edited Feb 9, 2010 at 1:26 PM

Aaron - great work!

I noticed that the GTalk interface uses a reference to agsXMPP - I assume thats this : ?

Im no expert on licenses, I just try to read and interpret it to cover myself, but it looks to me like this is a problem because you license under BSD (very nice, thankyou) and agsXMPP is under GPL (not so free and friendly).

Is this the case and are there any other components that are like this and where is your master license.txt or whatever file?

A quick search turned up this which might be a more license friendly alternative (I am not associated with that project nor have I tried it or dug into the details).

Thanks in advance.


Feb 9, 2010 at 10:09 PM

Hi Simon,

This project doesn't make any modifications to the agsXMPP library (or any of the other 3rd party libraries it uses with the occassional exception of an IronRuby bug fix). My understanding is that it's acceptable to use GPL libraries in binary form without having to assume the GPL license on the code doing the using. If the sipsorcery project was to modify the source and distribute a work derived on those modifications then the sipsorcery project would have to assume all the GPL terms and conditions, it doesn't do that.

As part of the terms of using agsXMPP ithis project is obligated to inform you of its license, see here, and location of the source code, see here

There's at least another 10 open source projects used by sipsorcery, you can check the dll's in the stable directory under the sipsorcery source code tree. The license and source for each of those libraries can be found on its web site. If you can't find one let me know.



Feb 16, 2010 at 1:30 PM

As far as I understand it you are correct if the library was LGPL, but not for GPL, in this case derivative works (including dynamicaly linked) must also be released under GPL.  Like I said though I'm no expert, I would be happy to be wrong.

I also think that you should provide a list in the documentation and/or source code to identify the sources.  I made a start on the list for you, uploaded to the issue tracker - only found 5 so far and the only problem one is this xmpp library.

Feb 17, 2010 at 1:32 AM

Trying to work out whether something is a derivative work of a GPL'ed library borders on a philosophical debate. Exactly those sort of debates abound The license itself doesn't specifically say anything about dynamic or static linking and I'd still argue sipsorcery is not a derivative work of agXMPP.

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another

In this case the sipsorcery software does not "contain" the agXMPP program or any portion of it. At runtime if a sipsorcery user calls the GTalk dialplan application the .Net CLR will go off and load the agXMPP assembly and then pass the data between the sipsorcery assembly and the agXMPP assembly. The sipsorcery software "makes use" of the agXMPP library rather than "containing" it, it also makes use of the Windows OS, the .Net framework etc. etc.

As far as sipsorcery licensing goes my goal is to have to spend the least amount of time possible worrying about it both for me and anybody brave enough to try and use the software. Ultimately if there was a problem with a library like agXMPP and I got a cease and desist letter or email from AG-Software I'd simply stop using the library and in fact if you're that worried about it you could comment out the GTalk method in DialPlanScriptHelper.cs and remove any need to reference the library. I've only observed one sipsorcery user even utilise the GTalk method regularly so it's not even a widely used feature.



Feb 17, 2010 at 12:36 PM

Agree - and I dont want to enter that debate either.

I am one of the brave,  I will start a new thread with a suggested 'solution'.

Feb 17, 2010 at 11:41 PM

As a coincidence I was looking for something else on stackoverflow and came across this Looks like Miguel (the head honcho on the Mono project) will be incorporating XMPP into Mono at some stage. Since Mono is using the MIT license for it's runtime libraries that would allow sipsorcery to swap out agXMPP to remove any potential GPL issues. That then only leaves the MySQL ADO.Net driver which could be easily be generified and removed from the distribution and replaced with instructions instead.

As mentioned already the GPL license on "consumed" libraries is not a bit issue on the project at the moment but since it got raised it's nice to know there are ways around it if it ever was to become an issue.