From 0e1841b66061f34e2e48034ea2de7e890e2fd350 Mon Sep 17 00:00:00 2001 From: Esteban Zimanyi Date: Sat, 11 Jul 2026 09:41:33 +0200 Subject: [PATCH] Build the libmeos dependency image with all MEOS families via -DALL 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). --- docker/dependency/Base.dockerfile | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/docker/dependency/Base.dockerfile b/docker/dependency/Base.dockerfile index 5295e529d3..5186753d94 100644 --- a/docker/dependency/Base.dockerfile +++ b/docker/dependency/Base.dockerfile @@ -67,13 +67,30 @@ RUN apt update -y && apt install -y \ libgeos-dev \ libgeos++-dev \ libgeos-c1v5 \ - libxml2-dev + libxml2-dev \ + zlib1g-dev \ + libh3-dev \ + libgdal-dev \ + autoconf \ + automake \ + libtool \ + pkg-config -# Build MobilityDB with MEOS enabled using GCC -RUN git clone https://github.com/MobilityDB/MobilityDB.git -b master /usr/local/src/MobilityDB \ - && mkdir -p /usr/local/src/MobilityDB/build \ - && cd /usr/local/src/MobilityDB/build \ - && cmake -DMEOS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .. \ +# Build MobilityDB with MEOS and ALL optional families enabled using GCC. +# -DALL=ON mirrors the ecosystem-wide provision-meos recipe (all present and +# future families: CBUFFER/NPOINT/POSE/RGEO/QUADBIN/H3/POINTCLOUD/RASTER/…), so +# the libmeos the NES MEOS operators link against matches CI. POINTCLOUD builds +# without PostgreSQL as of MobilityDB #1370 (cmake pointcloud_libpc, libxml2+zlib). +# Pinned to an upstream master commit for a reproducible dependency image. +RUN git clone https://github.com/MobilityDB/MobilityDB.git /usr/local/src/MobilityDB \ + && cd /usr/local/src/MobilityDB \ + && git checkout 5c5b3cd25b2dba55a137eeacc4b133998cbc6530 \ + && mkdir -p build \ + && cd build \ + && cmake -DMEOS=ON -DALL=ON -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \ + -DH3_INCLUDE_DIR=/usr/include/h3 \ + -DH3_LIBRARY=/usr/lib/$(gcc -dumpmachine)/libh3.so .. \ && make -j$(nproc) \ && make install \ && ldconfig