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
                        and...@aitchison.me.uk
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to