[gdal-dev] Licensing Policy for drivers and applications

Frank Warmerdam warmerdam at pobox.com
Mon Jan 31 12:11:03 EST 2011


On 11-01-31 11:30 AM, Tamas Szekeres wrote:
> Frank,
>
> I've reviewed the document and it looks good to me, though it seems better to
> enforce these constraints rather at deployment time and not at run-time.
> However I would have some further questions:
>
> 1. With regards to GDAL_APPLICATION_LICENSE_POLICY=DEFAULT does this mean that
> GDAL will provide an error if a licensing violation is happening at run-time?
> For example when MapServer attempts to display an ECW and a MySQL layer at the
> same time?

Tamas,

Note that the intent of the RFC is that in a case of incompatible
drivers and the default policy one or more drivers would be de-registered
to bring things into compliance.  So, for instance the MySQL driver might
be de-registered and that means any effort to use MySQL would result in
an error message about it being an unsupported format since no driver
would recognise it.

It would *not* be a license error.

 > If this is not the case, I would prefer changing 'DEFAULT' to
> 'NONRECIPROCAL' and it would prevent from loading the GPL drivers during the
> default operation. Having GDAL_APPLICATION_LICENSE_POLICY=NONRECIPROCAL would
> provide better match with the licensing policy of GDAL itself which intends to
> be MIT/X.

I can see that "NONRECIPROCAL" might be a better term than "DEFAULT"
but I don't want to avoid loading reciprocal (ie. GPL) drivers in a
default situation.

> 2. In my opinion the user shouldn't override any specific settings (like
> RECIPROCAL or PROPRIETARY) being enforced by the application. In this regard
> the user is allowed to violate the GPL like loading proprietary drivers in
> QGIS. I don't think if USE_ALL should be a valid environment setting either.
> This should only be allowed by a compilation flag which is not intended to be
> used for distribution purposes.

I disagree strongly!  The end user always has the legal and moral
right to mix proprietary and free software.  The purpose of the
override operation is for them to knowingly make the decision that
they want to do this.

> 3. I think the user should only be allowed to override
> GDAL_APPLICATION_LICENSE_POLICY=DEFAULT either by the environment settings or
> in the SWIG interface.
>
> 4. I don't really understand the rationale behind the PREFER_PROPRIETARY and
> PREFER_RECIPROCAL settings. Shouldn't we raise an error if a licence violation
> is detected? I think we might have to decide which kind of the licensing
> enforcement should be applied in GDAL, like:
>
> Version 1, The actual licensing mode is predefined within the scope of the
> execution (either by the applevel or environment setting) and GDAL should avoid
> to load any incompatible drivers.

This was my intent, though because of the way we get metadata from drivers
to examine their license constraints it is necessary for us to load them
and then deregister them if they are in violation.

> Version 2, The actual licensing mode may be controlled by the drivers loaded
> and provide an error if an incompatible driver is about to be used.


Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent



More information about the gdal-dev mailing list