MaxRev-Dev / gdal.netcore

GDAL 3.x C#/F# bindings for .NET apps
MIT License
157 stars 36 forks source link

Can't build GDAL 3.2.0 with external libtiff on linux #30

Closed MaxRev-Dev closed 2 years ago

MaxRev-Dev commented 3 years ago

Describe the bug GDAL of version 3.2.0 fails to build with external libtiff on linux. Configure requires a higher version of libtiff than 4.0. But 4.1.0 is already installed and windows part links successfully.

To Reproduce Please, checkout the branch repro-v3.2.0-libtiff Go to directory: cd unix

Expected behavior GDAL configure fails with this output:

configure: Bash completions not requested
checking for libtiff... using libtiff from /gdal-netcore/unix/build-unix/vcpkg/installed/x64-linux/lib.
checking for TIFFScanlineSize64 in -ltiff... no
configure: error: libtiff >= 4.0 is required.
make[1]: *** [gdal-makefile:73: configure_gdal] Error 1

VCPKG (build-unix/vcpkg - vcpkg --list)

szip:x64-linux-dynamic                             2.1.1-6          Szip compression software, providing lossless co...
tiff:x64-linux                                     4.1.0            A library that supports the manipulation of TIFF...
xerces-c:x64-linux                                 3.2.3-1          Xerces-C++ is a XML parser, for parsing, generat...

Environment information:

@rouault we'd be very grateful for your assist. There was a related issue in https://github.com/OSGeo/gdal/issues/3135. Currently we use an internal libtiff in 3.2.0.100, but some tests on linux are failing in this library Gigas002/GTiff2Tiles - Bump gdal packages and Gigas002/GTiff2Tiles - CI. This issue was related to bindings, but anyway we have a problem with configure.

MaxRev-Dev commented 3 years ago

May be fixed in GDAL 3.3.1 https://github.com/OSGeo/gdal/commit/7c42da54f0868b62b2b005681c0b109bd036bd9a

MaxRev-Dev commented 3 years ago

TIFF was updated in GDAL 3.3.3. Next release should fix this.

MaxRev-Dev commented 2 years ago

This library still won't compile with as external dependency, so still we will use an internal implementation.