Build pgPointCloud libpc.a without autotools to enable POINTCLOUD#154
Open
estebanzimanyi wants to merge 1 commit into
Open
Build pgPointCloud libpc.a without autotools to enable POINTCLOUD#154estebanzimanyi wants to merge 1 commit into
estebanzimanyi wants to merge 1 commit into
Conversation
9331934 to
024e8da
Compare
Member
Author
Reviewer's quickstart — ~2-3 minutesWhat this PR does: Build pgPointCloud libpc.a without autotools to enable POINTCLOUD. Risk: focused, single-purpose. Spot-check the source diff + matching tests; CI confirms. Cross-link: Linux arm64 CI here needs #161 for the orthogonal |
estebanzimanyi
added a commit
to estebanzimanyi/MobilityDuck
that referenced
this pull request
May 26, 2026
…bilityDB#154) Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS. The MEOS pointcloud module links the pgPointCloud archive libpc.a, normally produced by pgPointCloud's autotools (./autogen.sh && configure && make), which cannot run here (no pg_config, no autotools-usable PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and zlib, and lib/Makefile builds libpc.a directly via ar. So the port now: - patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros, which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike every other type header, to DatumGetPointer under MEOS; - generates config.mk + lib/pc_config.h the way pgPointCloud's autotools would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled); - builds the libpc.a archive target directly; - renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_* namespace to avoid colliding with MEOS's bundled liblwgeom copy; - installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib) through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly. Add libxml2/zlib to the meos port and project dependencies; bump the meos port-version so vcpkg rebuilds it.
ede1610 to
eb23e7c
Compare
2ecc969 to
18dfeec
Compare
eb23e7c to
811018d
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 26, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
18dfeec to
0b5e583
Compare
811018d to
8f4d1b9
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 27, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
0b5e583 to
b7e4f7e
Compare
8f4d1b9 to
8db3629
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 27, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
b7e4f7e to
316ca4f
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 27, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
316ca4f to
9c64f7b
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 27, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
9c64f7b to
f6d2141
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 27, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
f6d2141 to
c5d4a61
Compare
cb39d26 to
744b0df
Compare
estebanzimanyi
added a commit
that referenced
this pull request
May 30, 2026
Enable -DPOINTCLOUD=ON in the MEOS vcpkg port so the temporal point
cloud types (tpcpoint/tpcpatch) can be built from the pinned MEOS.
The MEOS pointcloud module links the pgPointCloud archive libpc.a,
normally produced by pgPointCloud's autotools (./autogen.sh && configure
&& make), which cannot run here (no pg_config, no autotools-usable
PostgreSQL). The vendored pointcloud-pg/lib sources need only libxml2 and
zlib, and lib/Makefile builds libpc.a directly via ar. So the port now:
- patches the upstream MEOS pcpoint.h/pcpatch.h DatumGetXxxP macros,
which unconditionally use PG_DETOAST_DATUM (PostgreSQL-only) unlike
every other type header, to DatumGetPointer under MEOS;
- generates config.mk + lib/pc_config.h the way pgPointCloud's autotools
would, with vcpkg's libxml2/zlib paths (CUnit/LazPerf disabled);
- builds the libpc.a archive target directly;
- renames libpc.a's stringbuffer_* symbols into a pc_stringbuffer_*
namespace to avoid colliding with MEOS's bundled liblwgeom copy;
- installs libpc.a alongside libmeos.a and propagates it (+ libxml2/zlib)
through MEOS::meos's INTERFACE_LINK_LIBRARIES so consumers link cleanly.
Add libxml2/zlib to the meos port and project dependencies; bump the meos
port-version so vcpkg rebuilds it.
6f7f6ba to
0399d81
Compare
744b0df to
f053543
Compare
f053543 to
9fba6b8
Compare
0399d81 to
ac5edff
Compare
9fba6b8 to
80e5b50
Compare
ac5edff to
287abc9
Compare
80e5b50 to
2914789
Compare
152e3fc to
67e326f
Compare
201a740 to
e8f021a
Compare
67e326f to
94250ca
Compare
e8f021a to
b22b977
Compare
596b182 to
f016ba1
Compare
b22b977 to
9d0e670
Compare
Enable -DPOINTCLOUD=ON and -DH3=ON in the MEOS vcpkg port so the temporal point cloud types (tpcpoint/tpcpatch) and the temporal H3 index can be built from the pinned MEOS. The pin carries the extended-type stack (tbigint, th3index, pgPointCloud) on the pre-rename trgeo C API the stack targets. The MEOS pointcloud module links the pgPointCloud archive libpc.a, normally produced by pgPointCloud's autotools, which cannot run here. The vendored pointcloud-pg/lib sources need only libxml2 and zlib, and lib/Makefile builds libpc.a directly via ar. So the port patches the upstream pcpoint.h/pcpatch.h DatumGetXxxP macros to DatumGetPointer under MEOS, generates config.mk + lib/pc_config.h with vcpkg's libxml2/zlib paths, builds the libpc.a archive target directly with the stringbuffer_* symbols renamed into a pc_stringbuffer_* namespace, installs libpc.a alongside libmeos.a, and propagates it (+ libxml2/ zlib) through MEOS::meos's INTERFACE_LINK_LIBRARIES. Adds the meos_h3.h install rule and adds h3/libxml2/zlib to the meos port and project dependencies.
9d0e670 to
730dd3e
Compare
f016ba1 to
cabf439
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The MEOS -DPOINTCLOUD=ON build FATAL_ERRORs unless pointcloud-pg/lib/libpc.a exists, which pgPointCloud normally produces as a side effect of ./autogen.sh && ./configure && make. That autotools path cannot run in the manylinux extension-ci container, which has no autotools-usable PostgreSQL and no pg_config. The vendored pointcloud-pg/lib/ archive sources include only libxml2 and zlib (no PostgreSQL headers), and pointcloud-pg/lib/Makefile builds the libpc.a target directly via ar rs using only the XML2/ZLIB CPPFLAGS from config.mk; the CUnit dependency is confined to the all: cunit/ recurse. The portfile now generates config.mk and lib/pc_config.h the way pgPointCloud's autotools would, filling only the @vars@ that config.mk.in declares and the lib archive sources consume with vcpkg's libxml2 and zlib paths, builds the libpc.a target directly, asserts the archive exists at the path meos/src/pointcloud/CMakeLists.txt checks, and adds -DPOINTCLOUD=ON. libxml2 is declared as a dependency of the meos port and the top-level manifest; the meos port-version is bumped.