License compatibility of a closed source GeoTools plugin loaded by Geoserver

Hi all,

I am considering creating a closed source plugin for GeoTools. When I load this as a plugin in a closed source program, this is fine as GeoTools is LGPL. I can distribute this (complying with the notice requirements etc) without disclosing my source code.

If I then add that plugin to GeoServer - does that inherit the GPL license? If I distribute GeoServer with that plugin, am I compelled to make my source available (in one of the ways from the GPL license)?

Does distributing separately (e.g. the SAP HANA community plugin) avoid this, noting that the SAP HANA JDBC driver is closed source?

Any help would be greatly appreciated. I have gone through all of the discourse and (gis/normal) stack overflow posts I could find on the topic, with no luck.

Thanks

Hello @sortduck welcome to the GeoServer users forum.

Geotools uses a permissive license, LGPL was the most popular permissive license when the library was established, today I would select something like Apache License.

The GeoTools library is there to help jumpstart your development. The permissive part means that we any changes you make to the library over the course of your development need to be provided alongside your plugin. The contents of your plugin is up to you; LGPL just covers the GeoTools library.

And yes separate distribution is required as with your SAP HANA plugin in example. Folks will download that separate and install. It becomes part of the environment that GeoServer is running in, which it is able to make use of using the GeoTools API.

Thanks @jive for the quick response!

I appreciate the permissive license of GeoTools and understand that LGPL was the best choice back in the day.

Just to clarify - if I create something like the below, and I distribute two bundles/installers/whatever (one containing an unmodified GeoServer, the other containing my code), then I am OK from a licensing perspective without releasing my source code?

Thanks!

Yes you are fine, some details to correct your diagram. You drew the compile time diagram, what what you want to consider is the distribution (what people download) diagram since that is what the license is about.

  • GeoServer : Free Software

    You can move GeoTools into the this box as it is included in GeoServer download.
    As long as you have no changes to GeoTools you are not distributing it, geoserver.org is.

  • Closed Source Code: Remove GeoTools box from here - you are only using GeoTools library at compile time, not distributing this to your end user.

The critical check is what your end-user receives:

  1. One bundle downloaded from geoserver.org.

    End user have the ability to look at all the source code of everything included and compile it themselves or perform a security audit.

  2. One bundle from you with some closed source MyProjection and MyProjectionProvider classes, that will call over to your closed source application using some library API calls.