News:

We really need your input in this questionnaire

Main Menu

Licensing

Started by tizzo, September 08, 2010, 12:44:33 AM

Previous topic - Next topic

tizzo

Hi.  I have a quick question for the developers about licensing.  I noticed that NetXMS is under GPL v2.0.  (Just a tip, there should be a place to find this out on the homepage without having to download the source code).

I was wondering whether you have, or would, consider releasing any portion of NetXMS under LGPL.

To clarify, LGPL is the Lesser GPL, and in a nutshell it says that you can build your own custom code (a derivative work) against a library released under the LGPL license without having to release your custom code as GPL.

I am interested in recommending your software to a customer.  NetXMS meets most, but not all, of my customer's requirements and I would be tasked to write some custom software, probably linking against your API, to fill in the missing functionality.  But I'm quite certain that my customer would not consent to releasing the code I develop for them as open source.  LGPL was intended to address just this sort of situation.

Anyway, there are a wide range of attitudes on whether FOSS should be able to be used to build commercial software or not, and I was wondering whether the lack of mention of LGPL was inadvertent or intentional.  Thanks.

Tony

Victor Kirhenshtein

Hi!

You are right, most of the libraries must have LGPL license instead of GPL. One of the main ideas behind NetXMS is to make it a good platform for building customized solutions, so GPL license in each file is mostly because of copy-and-paste then intentional limitations. I'll do review of licensing and change license files appropriately, but anyway you can be sure that you can use all APIs under LGPL license.

Best regards,
Victor

tizzo

Thanks very much, that's the answer I was hoping to get.  Do you have any plans to put anything to that effect in writing?  My employer takes license compliance very seriously, so if the only license put forth in writing is GPL, and my proposed use will violate that license, they'll never let me do it, even with your assurance above.  Thanks.

Tony

Victor Kirhenshtein

I could change it in upcoming 1.0.5 version, which I plan to release this or next week, depending on resolving few serious issues (mostly issue 305).

Best regards,
Victor

tizzo

Great!  Thank you very much!


Victor Kirhenshtein

Version 1.0.5 just released, where I have changed licensing for most libraries to LGPL. Current licensing scheme is as follows:

NetXMS components:

libnetxms       LGPL
libnxcl         LGPL
libnxdb         LGPL
libnxlp         LGPL
libnxmap        LGPL
libnxmb         GPL
libnxsl         LGPL
libnxsnmp       LGPL
libnxsrv        LGPL
nxagentd        GPL
nxalarm         GPL
nxav            GPL
nxcon           GPL
nxcptest        GPL
nxevent         GPL
nxflowd         GPL
nxhttpd         GPL
nxlexer         GPL
nxlptest        GPL
nxmibc          GPL
nxnotify        GPL
nxpush          GPL
nxscript        GPL
nxsms           GPL
nxsnmpget       GPL
nxsnmpset       GPL
nxsnmpwalk      GPL
nxuilib         GPL

all subagents   GPL
all DB drivers  GPL
all SMS drivers GPL


Third party components bundled with NetXMS:

freetype        BSD-like
libexpat        BSD-like
libgd           BSD-like
libipfix        LGPL
libjpeg         BSD-like
libpng          BSD-like
scilexer        BSD-like
sqlite          BSD-like
zlib            BSD-like

Best regards,
Victor


tizzo

Quote from: Victor Kirhenshtein on October 05, 2010, 01:39:37 PM
Version 1.0.5 just released, where I have changed licensing for most libraries to LGPL. Current licensing scheme is as follows:

Thanks Victor!  My only remaining concern is with subagents.  Does the GPL licensing of nxagentd and all the subagents mean that a custom subagent cannot be developed without releasing it as GPL?  (I'm still working on getting a build environment configured and do not yet know the dependencies of a subagent, but I assume it would have to link against nxagentd).  Thanks.

Tony

Victor Kirhenshtein

Subagent is a shared library loaded by nxagentd, so it's nxagentd linked to subagent. The only dependence for any subagent is libnetxms, which is LGPL. From the GPL FAQ (http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins) it looks like a borderline case - core agent calls subagents periodically via few entry points. Also, if I understand license correctly, it doesn't matter until you use your proprietary modules in your organization and not selling them.

Best regards,
Victor

tizzo

OK,that definitely helps.  Thanks again.

Tony