This page last changed on Jan 27, 2012 by cholmes.

Overview

Move the GeoServer dispatch system to GPL+Classpath Exception. (deferred - lost momentum)

Proposed By

Jody Garnett

Assigned to Release

2.0.x

State

Deferred

Motivation

The use of the GPL license forces community modules to be released as GPL. This was fine when GeoServer was a young project and could not be separated from its core implementation of WFS and WMS. Now that GeoServer is taking shape as a very valuable framework for the development of geospatial web services (using an OGC style open web service dispatch system; and a RESTful services) we have an opportunity to relax a little; while still protecting our core WMS, WFS, WCS modules with GPL.

The recommendation of GPL+Classpath Exception is made as:

  • it is a smooth transition from GPL
  • organizations evaluating GeoServer are assumed to have review the GPL+Classpath Exception license as it is now used for Java itself

The GPL Classpath Exception is listed here:

An example of it in use is here:

It amounts to the following blurb:

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.

As shown in this example implementation of Buffer.java.

Proposal

This proposal covers changing the license of the following modules:

  • platform
  • main
  • ows
  • rest
  • web2/web-core

Proposed Header Change

Before:

/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
 * This code is licensed under the GPL 2.0 license, availible at the root
 * application directory.
 */
package org.geoserver.ows

...

public class Dispatcher extends AbstractController {
..
}

After:

/* Copyright (c) 2001 - 2009 TOPP - www.openplans.org. All rights reserved.
 * This code is licensed under the GPL 2.0 license, availible at the root
 * application directory.
 *
 * 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.
 */
package org.geoserver.ows

...

public class Dispatcher extends AbstractController {
..
}

We would also need to include the GPL+Classpath license in our distribution.\

Feedback

This section should contain feedback provided by PSC members who may have a problem with the proposal.

Jody Garnett: Justin noted that the most popular extension is the definition of a new WFS output format; this proposal does not cover this very common usecase

Jody Garnett: personally I cannot really tell the differnece between LGPL and GPL+Classpath

Jody Garnett: this proposal has received no real feedback; we seem to be stuck between:

  • isolating all the code that is for "API" into a seperate module; or
  • running around and stamping the classpath exception header into a specific list of classes

Backwards Compatibility

There are no backwards compatibility issues currently listed. Use of a GPL library by core may constitute a backwards compatibility issue.

Voting

Andrea Aime:
Alessio Fabiani
Justin Deoliveira:
Jody Garnett: +0
[~sfarber]:
[~roba]:

Links

[JIRA Task|]
[Email Discussion|]
[Wiki Page|]

Document generated by Confluence on May 14, 2014 23:00