Skip to content

Build the libmeos dependency image with all MEOS families via -DALL#190

Open
estebanzimanyi wants to merge 1 commit into
MobilityDB:mainfrom
estebanzimanyi:tooling/build-all-families
Open

Build the libmeos dependency image with all MEOS families via -DALL#190
estebanzimanyi wants to merge 1 commit into
MobilityDB:mainfrom
estebanzimanyi:tooling/build-all-families

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

What

The dependency image (docker/dependency/Base.dockerfile) built libmeos with only -DMEOS=ON, so the NES MEOS operators linked against a single-family libmeos. This builds it with -DALL=ON instead, so every optional MEOS family (CBUFFER, NPOINT, POSE, RGEO, QUADBIN, H3, POINTCLOUD, RASTER, …) is present — matching the all-families libmeos the rest of the MobilityDB binding ecosystem builds.

Changes

  • -DMEOS=ON-DMEOS=ON -DALL=ON in the MobilityDB build step.
  • Add the family build dependencies: libh3-dev, libgdal-dev, zlib1g-dev, autoconf, automake, libtool, pkg-config (libxml2-dev was already present).
  • Pin the MobilityDB checkout to an upstream master commit for a reproducible dependency image instead of a floating branch.

Notes

  • POINTCLOUD builds without PostgreSQL as of MobilityDB #1370 (a cmake pointcloud_libpc static lib over libxml2 + zlib), so no PGDG/pg_config provisioning is needed.
  • Editing docker/dependency/ changes the dependency-image hash (hash_dependencies.sh), so CI rebuilds the image and exercises this build.

Verification

Locally, cmake -DMEOS=ON -DALL=ON on the pinned commit builds libmeos.so cleanly, with exported symbols for every family (h3, quadbin, npoint, cbuffer, pose, rgeo, trgeometry, raster/raquet, pointcloud/pcpoint).

The dependency image built libmeos with only `-DMEOS=ON`, so the NES MEOS
operators linked against a single-family libmeos that does not match the
full surface built in CI elsewhere in the ecosystem. Build it with
`-DALL=ON` instead, mirroring the shared provision-meos recipe used by the
other MobilityDB bindings, so every optional family (CBUFFER, NPOINT, POSE,
RGEO, QUADBIN, H3, POINTCLOUD, RASTER, ...) is present.

- Add the family build dependencies (libh3-dev, libgdal-dev, zlib1g-dev,
  autoconf/automake/libtool/pkg-config); libxml2-dev was already present.
- POINTCLOUD builds without PostgreSQL as of MobilityDB #1370
  (cmake pointcloud_libpc over libxml2+zlib), so no PGDG/pg_config is needed.
- Pin the MobilityDB checkout to an upstream master commit for a
  reproducible dependency image instead of a floating branch.

Verified locally: `cmake -DMEOS=ON -DALL=ON` builds libmeos.so cleanly with
symbols for every family (h3, quadbin, npoint, cbuffer, pose, rgeo,
trgeometry, raster/raquet, pointcloud/pcpoint).
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