Commercial OpenNMS
Subscribe

From OpenNMS

Jump to: navigation, search

Using OpenNMS As Part of a Commercial Product

About once or twice a month the question arises about the possibility of using OpenNMS code in a commercial product (i.e. a software product that will be packaged and sold under a non-open source license).

OpenNMS is published under version 2 of the GNU General Public License (GPL). The basic idea of the GPL is that this license allows one to freely use and modify software code, as long as the source (including any changes) is provided whenever that code is transferred to another party.

That's the general idea. The problems arise in the specifics.

There is a pretty detailed FAQ on the GPL, so it will not be reproduced here, but if a company wishes to use OpenNMS code commercially, they should probably seek out their own legal and licensing council. While not a lawyer, Don Rosenberg of Stromian Technologies, author of Open Source: The Unauthorized White Papers is an expert in all kinds of software licensing, and he is one resource to help navigate through the details.

So here are some thoughts, taken at face value, not legal advice, etc. etc.

Linux is published under the GPL, and there are a large number of commercial software products that run under Linux. It doesn't make those programs free software. Often a lot of fear, uncertainty and doubt is spread that just by interacting with a GPL'd application code must be published under the GPL. This is not true.

However, the best way to avoid issues with using GPL'd code is to publish all of the code involved under the GPL. This is what the OpenNMS Project does, as OpenNMS relies on a lot of other open source projects to make things work.

If GPL'd code is distributed in any fashion, those receiving the code must be made aware of the fact that the code is GPL'd and that they have certain rights because of it. Those rights include the ability to get a copy of the source code directly from the entity doing the distribution for up to three years after they receive the software, as well as any software tools needed to turn that code into a working application. In other words, if OpenNMS binaries are distributed on a CD, it is not valid to distribute the code on clay tablets. It, too, must be distributed on CD, even though the code is available on the internet.

The OpenNMS Project only distributes its work via the Internet, thus it meets the requirements of the GPL by also distributing the code via the Internet.

Another big issue is the determination of when two separate pieces of code interact closely enough to be considered one program. From the GPL FAQ:

"By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program."

When applied to OpenNMS, this is taken to mean that if connections are made to the OpenNMS database over a socket using JDBC or ODBC, it is not creating "one program". Also, OpenNMS provides a way to insert events into the system over a socket, as well as using XML RPC to communicate, all of which, if used, should not violate the GPL. If a program or script is used to modify OpenNMS configuration files, or to start and stop OpenNMS by using the main OpenNMS startup script, this wouldn't constitute creating one program. Finally, direct HTTP calls to the OpenNMS webUI should also be valid.

However, if the OpenNMS webUI pages are modified in any fashion (new logos, new style-sheets, etc.) that should constitute a modification that would fall under the GPL. Any change to OpenNMS that would require a recompile definitely represents a modification. Some discussion seems to suggest that even using a JDBC driver (which may need to be linked to) represents creating "one program", and so the final word is probably in the hands of the lawyers.

OpenNMS is only published under the GPL. There is no "commercial" license option, and this will not change in the foreseeable future.

Finally, OpenNMS is maintained mainly by volunteers who like to get credit for their work. If OpenNMS is used as part of any product, commercial or not, please consider making some sort of acknowledgment to the team. OpenNMS lists a number of projects it uses on the Help -> About page of the OpenNMS webUI.