<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Hi Rob,<br>
<blockquote type="cite"
cite="mid:CAFLLRpKRyTPR97khYTZhiLZJRKwgQzb+_7qT5Jtn=zCPQ+ivMQ@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>This looks great from my perspective. Are there any
downsides?</div>
</div>
</div>
</blockquote>
<p>- A bit of additional coding complexity for driver development,
but not that much<br>
</p>
<p>- As mentioned in the backwards compatibility paragraph, for
people doing multi-step builds to build first libgdal and then
plugins, that will require extra care and defining the
-DGDAL/OGR_DECLARE_DRIVER_xxxx_FOR_LATER_PLUGIN. Like the
condaforge build recipee, but I would expect this to be more the
exception, than what most distributions do. The recommended
approach is still to do a single build and dispatch the artifacts
in separate installable packages afterwards<br>
</p>
<blockquote type="cite"
cite="mid:CAFLLRpKRyTPR97khYTZhiLZJRKwgQzb+_7qT5Jtn=zCPQ+ivMQ@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>I guess conceptually "Driver X depending on LibW clashes
with Driver Z depending on LibY" cases are less likely to be
hit during unit testing, since a particular
test-runner/process won't (eventually) be loading the full
set of drivers + dependencies? Usually that's a LibW vs LibY
problem though, not a GDAL issue.<br>
</div>
</div>
</div>
</blockquote>
<p>Yes that could somehow hide such issues, but as you said, there
are integration issues, and GDAL can't be expected to reliably
detect those. Clashes also happen generally at runtime, when you
used clashing drivers. Just loading the libraries isn't sufficient
per se to run into the clashes. At least in most situations on
Linux.<br>
</p>
<p>I've considered yet-another config option like
GDAL_DEFERRED_PLUGIN_LOADING=NO to disable the new behaviour
(meaning to fully load the drivers at GDALAllRegister() time), but
didn't go for it for now as the use cases for it are not obvious.
People wanting to emulate it can just loop through drivers and
call GetMetadata() on them, which will force plugin loading, to
simulate that.<br>
</p>
<blockquote type="cite"
cite="mid:CAFLLRpKRyTPR97khYTZhiLZJRKwgQzb+_7qT5Jtn=zCPQ+ivMQ@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<div>Rob :)</div>
</div>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
</body>
</html>