Skip to content

Provision MEOS with a GDAL built without GEOS - #217

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:ci/provision-gdal-without-geos
Oct 28, 2026
Merged

estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:ci/provision-gdal-without-geos

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

MEOS calls no GEOS function, and the GDAL a distribution packages links GEOS, so a libmeos linked against libgdal-dev loads GEOS with it. The provision-meos action builds GDAL 3.12.0 from its release source, pinned by its SHA-256, with GEOS off (build-gdal.sh), and installs it under /usr/local before libmeos is built or restored; MobilityDB's CMake finds it there, and every consumer builds and runs against it. The configuration is the one MEOS.js builds its GDAL with: every optional driver off, GDAL's internal libraries in place of external ones, and PROJ, SQLite and zlib from the system, the libraries libmeos already takes. MEOS reads raster bands through the generic GDAL API and the built-in drivers.

The GDAL prefix is cached on the runner image and on build-gdal.sh, so a runner builds it once; the libmeos cache already keys on the action's files. The package list names libsqlite3-dev and zlib1g-dev, GDAL's own inputs, in place of libgdal-dev. A last step fails the action where any GEOS library loads with libmeos, naming it.

MEOS calls no GEOS function, and the GDAL a distribution packages links GEOS, so a libmeos linked against libgdal-dev loads GEOS with it. The provision-meos action builds GDAL 3.12.0 from its release source, pinned by its SHA-256, with GEOS off (build-gdal.sh), and installs it under /usr/local before libmeos is built or restored; MobilityDB's CMake finds it there, and every consumer builds and runs against it. The configuration is the one MEOS.js builds its GDAL with: every optional driver off, GDAL's internal libraries in place of external ones, and PROJ, SQLite and zlib from the system, the libraries libmeos already takes. MEOS reads raster bands through the generic GDAL API and the built-in drivers.

The GDAL prefix is cached on the runner image and on build-gdal.sh, so a runner builds it once; the libmeos cache already keys on the action's files. The package list names libsqlite3-dev and zlib1g-dev, GDAL's own inputs, in place of libgdal-dev. A last step fails the action where any GEOS library loads with libmeos, naming it.
@estebanzimanyi
estebanzimanyi merged commit 5e9faa2 into MobilityDB:master Oct 28, 2026
2 checks passed
@estebanzimanyi
estebanzimanyi deleted the ci/provision-gdal-without-geos branch October 28, 2026 00:17
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.

1 participant