<div dir="ltr"><div>Hi,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 30, 2020 at 7:33 AM Robert Coup <<a href="mailto:robert.coup@koordinates.com">robert.coup@koordinates.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Christoph,</div><div dir="ltr"><br></div><div dir="ltr">For what it's worth, I'm doing some very minimal GDAL builds at the moment with Python bindings. The problem you'll very quickly run into is that GDAL has an enormous set of dependencies. This is what the default Homebrew gdal package depends on in macOS: cfitsio, epsilon, expat, freexl, geos, giflib, hdf5, jasper, jpeg, json-c, libdap, libgeotiff, libpng, libpq, libspatialite, libtiff, libxml2, netcdf, numpy, pcre, poppler, proj, python, sqlite, unixodbc, webp, xerces-c, xz, zstd. Debian's list is even longer.</div><div><br></div><div>And each of those mostly have yet more dependencies... and if things are missed then issues arrive where one dependency is talking to one version of a library, and another dependency is talking to another. With usual difficult to debug hilarity ensuing.</div><div><br></div><div>Sean has done a pile of this work already with respect to the GDAL wheels for RasterIO & Fiona, and Christoph Gohlke has done the same for the windows GDAL wheels Even linked to. They're both fairly minimal sets of drivers though. I'd definitely suggest building on their work if you want to make a start.</div><div><br></div><div>Good luck!</div><div><br></div><div>Rob :)</div></div></div></div></blockquote><div><br></div><div>The dependency issues that Rob mentions are real, and there's yet another level of DLL Hell that you can get into with Python extension modules. The late-loading of shared libraries and possibilities for loading conflicting versions are problems that 99% of users don't anticipate and don't know how to begin to debug. With a compiled program, you have to go out of your way to link and load different versions of, for example, libhdf5 within that one program. With Python, on the other hand, it's very easy to do so by accident. All you need is "import rasterio; import h5py" et voila, trouble that only 10 people on the internet know how to debug.</div><div><br></div><div>I'm semi-sympathetic to the GDAL wheel cause and you are welcome to borrow from rasterio-wheels (all the hard work was done by Matthew Brett, the creator of multibuild), but I'm not going to actively help. Partly because I want people to use Rasterio instead, and wheels are a competitive advantage, and partly because more versions of GDAL on PyPI will mean more conflicts and more confused users.</div><div><br></div></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Sean Gillies</div></div></div>