[gdal-dev] New JPEG 2000 Driver

Andrew C Aitchison andrew at aitchison.me.uk
Mon Mar 1 10:37:54 PST 2021


On Mon, 1 Mar 2021, Greg Troxel wrote:

> I also was unclear on the optional driver situation.  Certainly if
> drivers can link with proprietary libraries, there is absolutely no
> reason to object to a driver because it links so an AGPL3 library.
>
> I believe that drivers with non-MIT licenses shouldn't be built by
> default even if the prerequisite libraries are available in the build
> environment.  Partly this bias is from pkgsrc, as packaging systems
> typically try to control the build to get a repeatable outcome, and
> partly because having a proprietary library installed is different from
> a decision to make gdal use it and thus end up with possible
> distribrution problems.
>
> I found
>  https://gdal.org/download.html#development-source
>  https://gdal.org/drivers/vector/index.html#vector-drivers
>  https://gdal.org/drivers/raster/index.html#raster-drivers
>
> but didn't from that understand if one needs to pass --enable, or if the
> library being found is enough.
>
> Consulting configure.ac, it seems some drivers are built if the library
> is found, and others are only built if the driver is requested and also
> the library is found.

I take it you are aware of
doc/source/development/rfc/rfc34_license_policy.rst
https://gdal.org/development/rfc/rfc34_license_policy.html

User License Policy
-------------------

The restrictions on mixing proprietary and reciprocally licensed
software generally applies at the point of distribution. In particular,
it is not intended to prevent the end user from assembling a variety of
components for their own use as they see fit, for their own use. To that
end it is important to provide a mechanism for the end user to
deliberately override the restrictions on mixing reciprocally licensed,
and proprietary components. This is accomplished via the
GDAL_LICENSE_POLICY configuration variable which might typically be set
via the environment or via the --config commandline switch to most GDAL
applications. It may have the following values:

-  "USE_ALL": do not discard any drivers based on licensing
    restrictions.
-  "PREFER_PROPRIETARY": If there is a conflict between proprietary and
    reciprocally licensed drivers, use the proprietary ones.
-  "PREFER_RECIPROCAL": If there is a conflict between proprietary and
    reciprocally licensed drivers, use the reciprocally licensed ones.

In addition to setting this via config variables, there will also be a
configure / nmake.opt declaration to alter the default
GDAL_LICENSE_POLICY. Thus a local build could be configured to USE_ALL
at build time instead of having to set environment variables or
commandline switches. This would not be suitable for software that will
be redistributed.

> For pkgsrc this is not a big issue as our build process hides libraries
> that have not been declared as an explicit dependency.  But I wonder if
> it would be best to document that libraries that are other than MIT
> (really, not MIT-ish) will not be searched for and used without an
> explicit --enable-foo, and adjust.

-- 
Andrew C. Aitchison					Kendal, UK
 			andrew at aitchison.me.uk


More information about the gdal-dev mailing list