Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul binary build process and support newer GDAL/GEOS/PROJ #53

Merged
merged 1 commit into from
May 20, 2024

Conversation

edmorley
Copy link
Member

@edmorley edmorley commented May 19, 2024

As a prerequisite to adding Heroku-24 support, this PR:

  • Switches to using GitHub Actions to build and upload the packages to S3, instead of the packages being built in containers locally.
  • Fixes the errors seen when building libkml (libkml build failing #51) by switching to using libkml from the Ubuntu APT repository instead. As a side effect this means the final GDAL package is smaller since it no longer includes unnecessary libkml related headers.
  • Switches to using CMake instead of autoconf/make, since newer GDAL/GEOS/PROJ no longer support autoconf (Building newer GDAL fails due to removal of autoconf support #52).
  • Rewrites the build scripts to accept an input version, so new versions can be built without having to copy-paste-commit additional scripts.
  • Adds testing of the built packages against the run image, to ensure all dynamically linked libraries can be found.
  • Enables GDAL's GEOS related features, by ensuring GEOS is available during the GDAL build.
  • Documents the newly built and available package versions, which are:
    • GDAL: 3.6.4, 3.7.3, 3.8.5, 3.9.0
    • GEOS: 3.10.6, 3.11.3, 3.12.1
    • PROJ: 9.4.0

For now, the buildpack default versions of GDAL/GEOS/PROJ remain the same, and anyone wanting the new versions needs to explicitly request the new version using the *_VERSION env vars:
https://github.com/heroku/heroku-geo-buildpack#default-versions

See also:
https://gdal.org/development/building_from_source.html
https://libgeos.org/usage/download/#build-from-source
https://proj.org/en/stable/install.html#compilation-and-installation-from-source-code

Fixes #51.
Fixes #52.
GUS-W-15803969.
GUS-W-15803977.

@edmorley edmorley self-assigned this May 19, 2024
@edmorley edmorley marked this pull request as ready for review May 19, 2024 13:32
* Switches to using GitHub Actions to build and upload the packages to S3,
  instead of the packages being built in containers locally.
* Fixes the errors seen when building `libkml` (#51) by switching to
  using `libkml` from the Ubuntu APT repository instead. As a side
  effect this means the final GDAL package is smaller since it no longer
  includes unnecessary libkml related headers.
* Switches to using CMake instead of autoconf/make, since newer
  GDAL/GEOS/PROJ no longer support autoconf.
* Rewrites the build scripts to accept an input version, so new versions
  can be built without having to copy-paste-commit additional scripts.
* Adds testing of the built packages against the run image, to ensure
  all dynamically linked libraries can be found.
* Enables GDAL's GEOS related features, by ensuring GEOS is available
  during the GDAL build.
* Documents the newly built and available package versions, which are:
  * GDAL: 3.6.4, 3.7.3, 3.8.5, 3.9.0
  * GEOS: 3.10.6, 3.11.3, 3.12.1
  * PROJ: 9.4.0

For now, the buildpack default versions of GDAL/GEOS/PROJ remain the
same, as anyone wanting the new versions needs to explicitly request the
new version using the `*_VERSION` env vars:
https://github.com/heroku/heroku-geo-buildpack#default-versions

See also:
https://gdal.org/development/building_from_source.html
https://libgeos.org/usage/download/#build-from-source
https://proj.org/en/stable/install.html#compilation-and-installation-from-source-code

Fixes #51.
Fixes #52.
@edmorley edmorley merged commit 4504a5f into main May 20, 2024
3 checks passed
@edmorley edmorley deleted the edmorley/modernise-builds branch May 20, 2024 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Building newer GDAL fails due to removal of autoconf support libkml build failing
1 participant