Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [technology-pmc] "Works with" dependency for GeoServer (subset)

This is a case of extending a base class which is GPL. The difference between extending a base class and implementing an interface does not align with the traditional C/C++ separation between headers and implementation. There is the GPL with Classpath Exception which seeks to explicitly provide an escape valve.

From http://www.gnu.org/software/classpath/license.html

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

Read the page it is more clear then any discussion I will provide on it.
--
Jody
My read is : extended classes or other used implementations leads to GPL
However : Implementing against an API would not lead to GPL for own work 

HTH
- Frank  
 



2014-11-28 23:40 GMT+01:00 Jody Garnett <jody.garnett@xxxxxxxxx>:
Afternoon Wayne, had to wait until I had time to hunt down links for you.

To reiterate: I am unsure GeoMesa can include GeoServer user interface contributions in the code hosted at LocationTech. To implement a GeoServer user interface contribution reference must be made to GPL classes making up the GeoServer API.

I skipped a bit quickly past this common problem, in order to focus on the solution the GeoServer community has come up with. GeoServer is well aware that not all data source can meet the restrictions of the GPL license. As a result:
1) All data access code has been moved in the GeoTools project, where appropriate interfaces are provided with a less restrictive "business friendly" LGPL license is used.
2) Connection details required for data access is "advertised" as meta-data by an implementor as part of the DataStoreFactorySPI interface getParams() method. Using this metadata GeoServer will generate a user interface suitable for casual use.
3) Finally (if the generated user interface is not considered usable enough) we have a section of the code base called "community" (informal - no QA or docs) or "extensions" (formal - QA and Doc requirements met) where the few user interface classes that must be GPL can be hosted.

Armed with this background let me provide a couple of examples.

DB2
DB2 minimal example where auto-generated user interface is enough:

https://github.com/geoserver/geoserver/tree/master/src/extension/db2 (geoserver extension, just contains a dependency on geotools)

In this case DB2 supported has been added by implementing a JDBCDialect and supporting classes from the GeoTools project.

ArcSDE
ArcSDE example uses this LGPL/GPL separation to allow interaction with a proprietary API.


The implementation of ArcSDECoverageStoreEditPanel implements the GPL interface StoredEditPanel. This is packaged as a GeoServer extension in order to hold code using GPL interfaces. The ArcSDEDataStore is extends the ContentStore base class from the GeoTools project.

I hope those two examples are sufficient? The use of GeoTools LGPL Interfaces allows implementors a great deal of freedom in choice of license (BSD, EPL, MIT, LGPL or even GPL).
--
Jody



Jody Garnett

On Mon, Nov 24, 2014 at 8:39 AM, Wayne Beaton <wayne@xxxxxxxxxxx> wrote:
Actually, before we go there...

Is this templating feature what you mean by "custom pages"?

http://docs.geoserver.org/latest/en/user/tutorials/GetFeatureInfo/index.html

Or is it something else? Can you give me a pointer to a specific example?

Wayne


On 24/11/14 11:35 AM, Wayne Beaton wrote:
My apologies for dropping the ball.

The GeoServer project is aware of these limitations and has a "community module" section that can be used host optional integration such as custom pages. For many DataStores the connection parameters described by DataStoreFactorySpi is descriptive enough to generate a connection page.
If I understand this correctly, as long as the GeoMesa project uses this "community module" as the Glue to GeoServer, you believe that we're in good shape.

Is that accurate?

Wayne

On 23/09/14 11:54 AM, Jody Garnett wrote:
Yes that was my understanding.

Indeed this understanding led to the geogig geoserver module being removed from our initial contribution.

Jody

Jody Garnett

On Mon, Sep 22, 2014 at 6:47 PM, Wayne Beaton <wayne@xxxxxxxxxxx> wrote:
Hi Jody.

I'm not sure that I understand your concern. I think that there might be a missing question.

Is it your concern that the implementation of a GeoServer interface constitutes linking?

Wayne


On 22/09/14 06:23 PM, Jody Garnett wrote:
This should be a clear works with dependency.

* Custom DataStore configuration page to allow a GeoMesa DataStore to be used in GeoServer. 
This could be a toned down to "works with GeoTools". 
* Implementation of various WPS processes, such as import into GeoMesa, an enhanced heat map, and various analytics. 
In general WPS processes could be toned down to "Works with GeoTools".
A custom "Import into GeoMesa" may require access to GeoServer catalog? See discussion on GPL below...
* Custom GeoServer pages that allow monitoring and inspection of GeoMesa data
This is tricky as it requires making use of GPL interfaces.

I always found it confusing as the language used in source code licenses refers to linking - a concept which does not directly match what we do in Java.

I could see this two ways:

1) Custom pages depend on GeoServer API to compile, but cannot be instantiated by the JVM unless deployed in a GeoServer environment. Result: Custom page is not "linked" and can be distributed as with GeoMesa project.

2) Custom page implements GeoServer interface, considered GPL, and cannot be disturbed with main GeoMesa project. For GeoGig we chose this interpretation (separated "tight" GeoServer integration out into a seperate project) to avoid any use of GPL license.


The GeoServer project is aware of these limitations and has a "community module" section that can be used host optional integration such as custom pages. For many DataStores the connection parameters described by DataStoreFactorySpi is descriptive enough to generate a connection page.

If a custom page is not considered to be GPL we would happily fold our GeoServer integration back into the GeoGig project (rather than create a community module).
--
Jody

Per the Guidelines for the Review of Third Party Dependencies [2]:
The Eclipse software does not require the third party software to be present. If the third  
party software happens to be present, the Eclipse software may call or invoke it.  
Example: If a web browser is present, clicking on URL's in Eclipse will cause the user's  
configured web browser to open the URL.  

If you have any concerns, please make them known on this thread. If you are satisfied with the laid out criteria and are confident that this qualifies as a "works with" dependency, please express your approval with a +1 on this thread.

I'll leave this thread open for a couple of days to give all members a chance to express their concerns/approval. I'll set the flag on the CQ.

Thanks,

Wayne

[1] https://dev.eclipse.org/ipzilla/show_bug.cgi?id=8744
[2] https://www.eclipse.org/org/documents/Eclipse_Policy_and_Procedure_for_3rd_Party_Dependencies_Final.pdf

--
Wayne Beaton
@waynebeaton
The Eclipse Foundation
EclipseCon Europe 2014

_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc



_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc

--
Wayne Beaton
@waynebeaton
The Eclipse Foundation
EclipseCon Europe 2014

_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc



_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc

--
Wayne Beaton
@waynebeaton
The Eclipse Foundation
EclipseCon 2015


_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc

--
Wayne Beaton
@waynebeaton
The Eclipse Foundation
EclipseCon
          2015

_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc


_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc


_______________________________________________
technology-pmc mailing list
technology-pmc@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://locationtech.org/mailman/listinfo/technology-pmc


Back to the top