Even,

On Tue, 11 Feb 2025, Even Rouault wrote:

Roger,

curl > = 7.68 was made a requirement for GDAL 3.9 per https://gdal.org/en/stable/development/rfc/rfc98_build_requirements_gdal_3_9.html a bit more than one year ago.

You can try to downgrade the minimum version by patching https://github.com/OSGeo/gdal/blob/51ee2933c08896648613488926bff36939a66be7/cmake/helpers/CheckDependentLibraries.cmake#L29 and see if GDAL still builds with it. It might. This is just untested territory. If that builds, that should be fine. If that doesn't, minor patches might be needed.


We are planning to use 3.8.5, the minor patches would have been of the larger kind of minor.

Has it considered that R on Mac ships with a custom libcurl build that is up to date ? After all, if you ship an up-to-date GDAL why not shipping an up-to-date libcurl as well?

The R static build train provides libraries for R itself and all the packages for both architectures, based as far as possible on Xcode plus a Fortran compiler. So changing one central component isn't so attractive, as it may impact other libraries. For the Windows static binaries, MXE is used for cross-compilation, so more of the context is under our control.

Roger



Even


Le 11/02/2025 à 21:00, Roger Bivand via gdal-dev a écrit :
 R-spatial for macOS static builds have run into a serious roadblock at
 3.10.1, so maybe an early 3.10.2 could assist us.

 Until recently, static macOS builds of GDAL were using 3.5.3. Simon
 Urbanek
 (https://github.com/R-macos/recipes)
 has just converted the recipe for GDAL to cmake, and things were looking
 positive for 3.10.1, until we realised that:

 -- Found CURL:
 /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libcurl.tbd
 (found version "7.64.1")
 [...]
  checking whether CURLOPT_USERNAME is defined... yes
  checking whether CURLOPT_PASSWORD is defined... yes
  checking whether CURLOPT_KEYPASSWD is defined... yes
  checking whether CURLINFO_RESPONSE_CODE is defined... yes
  checking whether CURLOPT_BUFFERSIZE is defined... yes
  checking whether CURLOPT_TCP_KEEPALIVE is defined... yes
  checking whether libcurl is version 7.66 or later?... no

 so CURL is available but the MacOSX11.3.sdk version is insufficient -
 macOS 11.3 is the mandated build platform for R and R packages to
 accommodate most Darwin systems from older to newest.

 Building GDAL on the cmake step says:

 CURL component has been detected, but is disabled with GDAL_USE_CURL=OFF

 during the building of GDAL itself, leading to errors in downstream R
 software:

 GDAL/OGR not compiled with libcurl support, remote requests not supported.

 in sf and terra if opening resources via URL, and in potentially all the
 1000+ packages using sf and terra. So unless this can be resolved, we'll
probably have to go back to the last GDAL version not requiring > = 7.66 or whatever the threshold is and when it was changed.

 On the macOS side, it isn't practicable to upgrade the system library for
 distribution to many users.

 Is it possible to (optionally) specify a minimum CURL version of 7.64 say
 when calling cmake in GDAL 3.10? If there is no such possibility now,
 could it be added to 3.10.2 (RC2)? Where should I look to try to add a
 prototype change?

 I didn't see a mention of the tightening of the CURL version requirement
 in the NEWS entries, but probably I'm looking in the wrong place.

 Best wishes,

 Roger



--
Roger Bivand
Emeritus Professor
Department of Economics, Norwegian School of Economics,
Postboks 3490 Ytre Sandviken, 5045 Bergen, Norway.
e-mail: roger.biv...@nhh.no
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to