heroku / heroku-geo-buildpack

37 stars 26 forks source link

GDAL 3.5.0 fails to compile with `PROJ 6 symbols not found` #30

Closed edmorley closed 2 years ago

edmorley commented 2 years ago

Trying to compile GDAL 3.5.0 using a new build script based on those already in this repo, results in:

$ make build-heroku-20
...
root@e32c108174cb:/heroku-geo-buildpack# ./builds/gdal/gdal-3.5.0.sh 
...
checking for SQLite3 library >= 3.0.0... disabled
checking for PROJ >= 6 library... checking for proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -linternalproj... no
configure: error: PROJ 6 symbols not found
./config.status --recheck
make: ./config.status: Command not found
GNUmakefile:1: GDALmake.opt: No such file or directory
make: *** [GNUmakefile:171: config.status] Error 127
./config.status --recheck
make: ./config.status: Command not found
GNUmakefile:1: GDALmake.opt: No such file or directory
make: *** [GNUmakefile:171: config.status] Error 127

It seems proj is now required at build time too: https://github.com/OSGeo/gdal/issues/1352

Vendoring like this buildpack already does for libkml is one option, but then we'll end up with duplicate proj installs, given we build it separately too.

edmorley commented 2 years ago

I also spot-checked 3.4.2 and 3.0.4, and they are affected too, so I presume this affects any 3.x GDAL version.