[SCM] PostGIS branch master updated. 3.7.0rc1-19-ga767a934f
git at osgeo.org
git at osgeo.org
Tue Sep 1 08:59:50 PDT 2026
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, master has been updated
via a767a934f3cb14b3f1078846db56772ea31b056b (commit)
from 1863d42cf91aaf5de7d78071f834a4836b1e43d8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a767a934f3cb14b3f1078846db56772ea31b056b
Author: Regina Obe <lr at pcorp.us>
Date: Tue Sep 1 10:31:23 2026 -0400
DOC BUILDING warnings
- If doc building is requested, note that Python 3 is now required
- Fix typo in configure when checking for xmlint it gives a note about xmlcatalog
- Fix the README.postgis and docs to note all dependencies
diff --git a/NEWS b/NEWS
index 8fa9ba9cb..fa9879877 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,174 @@
+PostGIS 3.7.0rc2
+2026/xx/xx
+
+This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, and libgmp.
+To take advantage of all postgis extension features, GEOS 3.15+ is needed.
+To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed.
+
+* Breaking Changes *
+
+ - #5688, [topology] topology building functions now interpret tolerance 0
+ (old default) to really mean 0 and want -1 (new default) to mean
+ "use topology precision" (Sandro Santilli)
+ - #6024, Remove support for PostgreSQL 12 and 13 (Regina Obe)
+ - #6040, ST_GeoHash round trip through ST_GeomFromGeoHash (Paul Ramsey)
+ - #6053, [address_standardizer] Extension removed and moved to
+ https://github.com/postgis/address_standardizer (Paul Ramsey)
+ - #6052, [tiger_geocoder] Extension removed and moved to
+ https://git.osgeo.org/postgis/postgis_tiger_geocoder (Regina Obe)
+ - #6079, Remove support for GEOS < 3.10 (Sandro Santilli)
+ - #1793, Remove ST_MemCollect aggregate (Darafei Praliaskouski)
+ - GH-848, CG_AlphaShape now returns a MultiPolygon (Jean Felder)
+ - [docs] Python 3 and an SVG rasterizer (rsvg-convert preferred,
+ GraphicsMagick or ImageMagick supported) now required for doc
+ building (Darafei Praliaskouski)
+
+* New Features *
+
+ - #1124, #2935, #3033, #4658, #4659, [loader] Rework loader arguments:
+ shp2pgsql can create UNLOGGED tables and choose the feature id column
+ name, shp2pgsql --drop-table can emit DROP TABLE before prepare
+ output, raster2pgsql/shp2pgsql expose loader actions as long options,
+ both loaders accept long aliases for existing options, and
+ --if-not-exists makes creation actions idempotent
+ (Darafei Praliaskouski)
+ - #4208, Add single-geometry variants of ST_MaxDistance and ST_LongestLine
+ (Darafei Praliaskouski)
+ - [topology] FindVertexSegmentPairsBelowDistance function (Sandro Santilli)
+ - ST_CoverageEdges, returns MultiLinestring of distinct shared edges in
+ polygonal coverage (Paul Ramsey)
+ - ST_MinimumSpanningTree, window function to calculate MST (Paul Ramsey)
+ - #5993, [topology] Add max_edges parameter to TopoGeo_AddLinestring
+ (Sandro Santilli)
+ - #6001, support MultiLineString in ST_MakeLine (Paul Ramsey)
+ - #2858, ST_MMin and ST_MMax (Paul Ramsey)
+ - #5941, [raster] Support GDT_Float16 pixel type (Darafei Praliaskouski)
+ - #5992, Optimize GiST index for repeated edge subdivision in topology (Darafei Praliaskouski)
+ - #5702, Allow the compiler to detect the parallelism -flto=auto (Darafei Praliaskouski)
+ - #4798, ST_AsGeoJSON warns about duplicate property keys (Darafei Praliaskouski)
+ - #4222, [raster] ST_DumpAsPolygons honours PostgreSQL interrupts (Darafei Praliaskouski)
+ - #5889, [topology] Include representative locations in topology build errors (Darafei Praliaskouski)
+ - #2614, Use GEOSPreparedDistance and caching to accelerate ST_DWithin (Paul Ramsey)
+ - GH-839, ST_Multi support for TIN and surfaces (Loïc Bartoletti)
+ - #4398, Add ST_CatmullSmoothing smoothes but retains original vertices (Paul Ramsey)
+ - #4560, ST_3DInterpolatePoint for M interpolation from XYZ inputs (Paul Ramsey)
+ - #1291, ST_MakePolygon support for curved rings (Darafei Praliaskouski)
+ - GT-270, Add NURBSCurve (Loïc Bartoletti)
+ - #2863, Add ST_XSize, ST_YSize, ST_ZSize, and ST_MSize dimension helpers
+ (Darafei Praliaskouski)
+
+* Enhancements *
+
+ - #2045, pgsql2shp query dumps no longer require temporary table
+ privileges (Darafei Praliaskouski)
+ - #1577, [loader] Report unsupported .zip archive input before trying
+ to open shapefile sidecar files (Darafei Praliaskouski)
+ - #3158, Move geometry and geography typmod bit helpers out of the
+ public liblwgeom header (Darafei Praliaskouski)
+ - #3776, [raster] Keep distinct 32-bit integer pixel values separate in
+ ST_DumpAsPolygons (Darafei Praliaskouski)
+ - #4678, [raster] Move st_sum4ma neighborhood callback to C
+ (Darafei Praliaskouski)
+ - #2116, [raster] Add ST_Value nearest-neighbor boundary options
+ (Darafei Praliaskouski)
+ - #2804, #4315, [raster] Support two-argument ST_MapAlgebra callbacks
+ and pass callback call data as actual arguments (Darafei Praliaskouski)
+ - #6062, [topology] Stop using recursive snapping, for improved robustness (Sandro Santilli)
+ - #6065, Improved winding order computation robustness for rings having collapsed elements
+ (Sandro Santilli)
+ - #2137, [raster] Reuse matching source raster overviews in raster2pgsql -l
+ (Darafei Praliaskouski)
+ - #4749, Use point-in-polygon predicate fast paths for point-only
+ GeometryCollections (Darafei Praliaskouski)
+ - #2807, [raster] Preserve missing NODATA values in ST_MapAlgebra outputs
+ (Darafei Praliaskouski)
+ - #2832, [raster] Avoid padding single-tile raster2pgsql overviews
+ when padding is not requested (Darafei Praliaskouski)
+ - #2623, Generate a pgsql2shp GID field when exporting geometry-only
+ shapefiles (Darafei Praliaskouski)
+ - #2850, Preserve pgsql2shp numeric precision and scale in DBF metadata
+ (Darafei Praliaskouski)
+ - Build PostgreSQL extension modules with `-fno-semantic-interposition` when
+ available so LTO can optimize same-DSO calls to exported PostGIS
+ entry points directly instead of routing through the module PLT; in
+ a local PostgreSQL 18 `pgbench` microbenchmark over 100k four-point
+ groups this reduced `ST_Collect` aggregate latency by about 4%
+ (Darafei Praliaskouski)
+ - #5973, Install PostGIS utilities under `pg_config --bindir` by default
+ and document `pg_config`-derived install paths more accurately
+ (Darafei Praliaskouski)
+ - #2808, Clarify postgis_full_version() output when installed component
+ scripts are newer than core scripts (Darafei Praliaskouski)
+ - #2838, Emit valid X3D Coordinate nodes for 2D polygon output
+ (Darafei Praliaskouski)
+ - GH-899, [raster] Honor PostgreSQL interrupts in long-running GDAL
+ progress callbacks (Darafei Praliaskouski)
+ - #6073, #6074, Stabilize geography LRS endpoint interpolation and pole
+ centroid regressions on 32-bit systems (Darafei Praliaskouski)
+ - #2583, Preserve Z/ZM dimensional qualifiers in ST_AsEWKT output for TIN
+ (Darafei Praliaskouski)
+ - #4616, Detect pgsql2shp query keywords case-insensitively
+ (Darafei Praliaskouski)
+ - #1986, ST_GeomFromGML support for GML ArcString and curved polygon rings
+ (Darafei Praliaskouski)
+ - #4749, Use point-in-polygon predicate fast paths for point-only
+ GeometryCollections, including ST_Disjoint (Darafei Praliaskouski)
+ - #3676, Mark geometry and geography btree comparison support functions
+ as leakproof (Darafei Praliaskouski)
+ - GH-875, Allow ST_OrderingEquals joins to use hash and merge join plans
+ (Darafei Praliaskouski)
+ - #1168, [raster] Support curved geometry inputs in ST_AsRaster
+ (Darafei Praliaskouski)
+ - #1416, ST_AsX3D outputs NURBSCURVE as X3D NurbsCurve
+ and linearizes other curve geometries
+ (Darafei Praliaskouski)
+ - #3705, ST_AsX3D outputs valid coordinate nodes for 2D multi-geometries
+ and GeometryCollections (Darafei Praliaskouski)
+ - GT-484, Use column-level SELECT privileges for metadata views
+ (Arthur Bazin)
+ - #1408, #2386, #2557, #2805, #2898, #3743, #4323, #4332, #4385, #5109,
+ #5532, #5593, #5638, #5645, #5950, #6022, #6082, GH-1161, GT-584,
+ Numerous doc enhancements (Darafei Praliaskouski)
+
+* Bug Fixes *
+
+ - Fix WKB and TWKB parser resource exhaustion on malformed input
+ (Darafei Praliaskouski)
+ - #6038, Avoid stale relation lookups in geometry_columns after topology
+ objects are dropped (Darafei Praliaskouski)
+ - #5487, Improve error detail for repeated upgrades after an incomplete
+ deprecated-function cleanup (Darafei Praliaskouski)
+ - #5975, Initialize skipped union-find cluster ids deterministically
+ (Darafei Praliaskouski)
+ - #5904, [topology] Avoid MinGW format warnings when logging topology ids
+ (Darafei Praliaskouski)
+ - GH-888, [sfcgal] Avoid stale detoasted geometry access in
+ CG_Visibility empty-input handling for SFCGAL < 2.2
+ (Darafei Praliaskouski)
+ - #3179, Mark truncated libpgcommon PostgreSQL messages instead of silently
+ dropping the tail (Darafei Praliaskouski)
+ - #6003, Avoid size_t formats in liblwgeom logging/error wrappers for
+ MinGW builds (Darafei Praliaskouski)
+ - GH-886, ST_ClusterRelateWin validates NULL relate matrices before
+ detoasting them (Darafei Praliaskouski)
+ - GH-889, ST_Relate pattern inversion avoids out-of-bounds access on
+ short DE-9IM patterns (Darafei Praliaskouski)
+ - GH-890, Avoid GIDX BRIN summary merges across mismatched dimensions
+ (Darafei Praliaskouski)
+ - #5959, Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski)
+ - #6080, Avoid out-of-bounds hex WKB lookup for high-bit input bytes
+ (Darafei Praliaskouski)
+ - #4828, geometry_columns handles NOT VALID SRID checks without errors (Darafei Praliaskouski)
+ - #6048, [raster] ST_Clip no longer crashes when clipping sparse band
+ selections (Darafei Praliaskouski)
+ - GH-894, [raster] Fix Float16 import, mixed nodata warping,
+ band replacement cleanup, GDAL credential redaction, and Python
+ GDAL compatibility (Darafei Praliaskouski)
+
+
+
+
+
PostGIS 3.7.0rc1
2026/08/24
This version requires GEOS 3.10+, PostgreSQL 14-19beta2, Proj 6.1+, libgmp.
@@ -194,170 +365,6 @@ These are only changes since 3.7.0alpha1.
(Darafei Praliaskouski)
-PostGIS 3.7.0dev
-2026/xx/xx
-
-This version requires GEOS 3.10+, PostgreSQL 14-19beta1, Proj 6.1+, libgmp.
-To take advantage of all features postgis extension features, GEOS 3.15+ is needed.
-To take advantage of all postgis_sfcgal extension features SFCGAL 2.3+ is needed.
-
-* Breaking Changes *
-
- - #5688, [topology] topology building functions now interpret tolerance 0
- (old default) to really mean 0 and want -1 (new default) to mean
- "use topology precision" (Sandro Santilli)
- - #6024, Remove support for PostgreSQL 12 and 13 (Regina Obe)
- - #6040, ST_GeoHash round trip through ST_GeomFromGeoHash (Paul Ramsey)
- - #6053, [address_standardizer] Extension removed and moved to
- https://github.com/postgis/address_standardizer (Paul Ramsey)
- - #6052, [tiger_geocoder] Extension removed and moved to
- https://git.osgeo.org/postgis/postgis_tiger_geocoder (Regina Obe)
- - #6079, Remove support for GEOS < 3.10 (Sandro Santilli)
- - #1793, Remove ST_MemCollect aggregate (Darafei Praliaskouski)
- - GH-848, CG_AlphaShape now returns a MultiPolygon (Jean Felder)
-
-* New Features *
-
- - #1124, #2935, #3033, #4658, #4659, [loader] Rework loader arguments:
- shp2pgsql can create UNLOGGED tables and choose the feature id column
- name, shp2pgsql --drop-table can emit DROP TABLE before prepare
- output, raster2pgsql/shp2pgsql expose loader actions as long options,
- both loaders accept long aliases for existing options, and
- --if-not-exists makes creation actions idempotent
- (Darafei Praliaskouski)
- - #4208, Add single-geometry variants of ST_MaxDistance and ST_LongestLine
- (Darafei Praliaskouski)
- - [topology] FindVertexSegmentPairsBelowDistance function (Sandro Santilli)
- - ST_CoverageEdges, returns MultiLinestring of distinct shared edges in
- polygonal coverage (Paul Ramsey)
- - ST_MinimumSpanningTree, window function to calculate MST (Paul Ramsey)
- - #5993, [topology] Add max_edges parameter to TopoGeo_AddLinestring
- (Sandro Santilli)
- - #6001, support MultiLineString in ST_MakeLine (Paul Ramsey)
- - #2858, ST_MMin and ST_MMax (Paul Ramsey)
- - #5941, [raster] Support GDT_Float16 pixel type (Darafei Praliaskouski)
- - #5992, Optimize GiST index for repeated edge subdivision in topology (Darafei Praliaskouski)
- - #5702, Allow the compiler to detect the parallelism -flto=auto (Darafei Praliaskouski)
- - #4798, ST_AsGeoJSON warns about duplicate property keys (Darafei Praliaskouski)
- - #4222, [raster] ST_DumpAsPolygons honours PostgreSQL interrupts (Darafei Praliaskouski)
- - #5889, [topology] Include representative locations in topology build errors (Darafei Praliaskouski)
- - #2614, Use GEOSPreparedDistance and caching to accelerate ST_DWithin (Paul Ramsey)
- - GH-839, ST_Multi support for TIN and surfaces (Loïc Bartoletti)
- - #4398, Add ST_CatmullSmoothing smoothes but retains original vertices (Paul Ramsey)
- - #4560, ST_3DInterpolatePoint for M interpolation from XYZ inputs (Paul Ramsey)
- - #1291, ST_MakePolygon support for curved rings (Darafei Praliaskouski)
- - GT-270, Add NURBSCurve (Loïc Bartoletti)
- - #2863, Add ST_XSize, ST_YSize, ST_ZSize, and ST_MSize dimension helpers
- (Darafei Praliaskouski)
-* Enhancements *
-
- - #2045, pgsql2shp query dumps no longer require temporary table
- privileges (Darafei Praliaskouski)
- - #1577, [loader] Report unsupported .zip archive input before trying
- to open shapefile sidecar files (Darafei Praliaskouski)
- - #3158, Move geometry and geography typmod bit helpers out of the
- public liblwgeom header (Darafei Praliaskouski)
- - #3776, [raster] Keep distinct 32-bit integer pixel values separate in
- ST_DumpAsPolygons (Darafei Praliaskouski)
- - #4678, [raster] Move st_sum4ma neighborhood callback to C
- (Darafei Praliaskouski)
- - #2116, [raster] Add ST_Value nearest-neighbor boundary options
- (Darafei Praliaskouski)
- - #2804, #4315, [raster] Support two-argument ST_MapAlgebra callbacks
- and pass callback call data as actual arguments (Darafei Praliaskouski)
- - #6062, [topology] Stop using recursive snapping, for improved robustness (Sandro Santilli)
- - #6065, Improved winding order computation robustness for rings having collapsed elements
- (Sandro Santilli)
- - #2137, [raster] Reuse matching source raster overviews in raster2pgsql -l
- (Darafei Praliaskouski)
- - #4749, Use point-in-polygon predicate fast paths for point-only
- GeometryCollections (Darafei Praliaskouski)
- - #2807, [raster] Preserve missing NODATA values in ST_MapAlgebra outputs
- (Darafei Praliaskouski)
- - #2832, [raster] Avoid padding single-tile raster2pgsql overviews
- when padding is not requested (Darafei Praliaskouski)
- - #2623, Generate a pgsql2shp GID field when exporting geometry-only
- shapefiles (Darafei Praliaskouski)
- - #2850, Preserve pgsql2shp numeric precision and scale in DBF metadata
- (Darafei Praliaskouski)
- - Build PostgreSQL extension modules with `-fno-semantic-interposition` when
- available so LTO can optimize same-DSO calls to exported PostGIS
- entry points directly instead of routing through the module PLT; in
- a local PostgreSQL 18 `pgbench` microbenchmark over 100k four-point
- groups this reduced `ST_Collect` aggregate latency by about 4%
- (Darafei Praliaskouski)
- - #5973, Install PostGIS utilities under `pg_config --bindir` by default
- and document `pg_config`-derived install paths more accurately
- (Darafei Praliaskouski)
- - #2808, Clarify postgis_full_version() output when installed component
- scripts are newer than core scripts (Darafei Praliaskouski)
- - #2838, Emit valid X3D Coordinate nodes for 2D polygon output
- (Darafei Praliaskouski)
- - GH-899, [raster] Honor PostgreSQL interrupts in long-running GDAL
- progress callbacks (Darafei Praliaskouski)
- - #6073, #6074, Stabilize geography LRS endpoint interpolation and pole
- centroid regressions on 32-bit systems (Darafei Praliaskouski)
- - #2583, Preserve Z/ZM dimensional qualifiers in ST_AsEWKT output for TIN
- (Darafei Praliaskouski)
- - #4616, Detect pgsql2shp query keywords case-insensitively
- (Darafei Praliaskouski)
- - #1986, ST_GeomFromGML support for GML ArcString and curved polygon rings
- (Darafei Praliaskouski)
- - #4749, Use point-in-polygon predicate fast paths for point-only
- GeometryCollections, including ST_Disjoint (Darafei Praliaskouski)
- - #3676, Mark geometry and geography btree comparison support functions
- as leakproof (Darafei Praliaskouski)
- - GH-875, Allow ST_OrderingEquals joins to use hash and merge join plans
- (Darafei Praliaskouski)
- - #1168, [raster] Support curved geometry inputs in ST_AsRaster
- (Darafei Praliaskouski)
- - #1416, ST_AsX3D outputs NURBSCURVE as X3D NurbsCurve
- and linearizes other curve geometries
- (Darafei Praliaskouski)
- - #3705, ST_AsX3D outputs valid coordinate nodes for 2D multi-geometries
- and GeometryCollections (Darafei Praliaskouski)
- - GT-484, Use column-level SELECT privileges for metadata views
- (Arthur Bazin)
- - #1408, #2386, #2557, #2805, #2898, #3743, #4323, #4332, #4385, #5109,
- #5532, #5593, #5638, #5645, #5950, #6022, #6082, GH-1161, GT-584,
- Numerous doc enhancements (Darafei Praliaskouski)
-
-* Bug Fixes *
-
- - Fix WKB and TWKB parser resource exhaustion on malformed input
- (Darafei Praliaskouski)
- - #6038, Avoid stale relation lookups in geometry_columns after topology
- objects are dropped (Darafei Praliaskouski)
- - #5487, Improve error detail for repeated upgrades after an incomplete
- deprecated-function cleanup (Darafei Praliaskouski)
- - #5975, Initialize skipped union-find cluster ids deterministically
- (Darafei Praliaskouski)
- - #5904, [topology] Avoid MinGW format warnings when logging topology ids
- (Darafei Praliaskouski)
- - GH-888, [sfcgal] Avoid stale detoasted geometry access in
- CG_Visibility empty-input handling for SFCGAL < 2.2
- (Darafei Praliaskouski)
- - #3179, Mark truncated libpgcommon PostgreSQL messages instead of silently
- dropping the tail (Darafei Praliaskouski)
- - #6003, Avoid size_t formats in liblwgeom logging/error wrappers for
- MinGW builds (Darafei Praliaskouski)
- - GH-886, ST_ClusterRelateWin validates NULL relate matrices before
- detoasting them (Darafei Praliaskouski)
- - GH-889, ST_Relate pattern inversion avoids out-of-bounds access on
- short DE-9IM patterns (Darafei Praliaskouski)
- - GH-890, Avoid GIDX BRIN summary merges across mismatched dimensions
- (Darafei Praliaskouski)
- - #5959, Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski)
- - #6080, Avoid out-of-bounds hex WKB lookup for high-bit input bytes
- (Darafei Praliaskouski)
- - #4828, geometry_columns handles NOT VALID SRID checks without errors (Darafei Praliaskouski)
- - #6048, [raster] ST_Clip no longer crashes when clipping sparse band
- selections (Darafei Praliaskouski)
- - GH-894, [raster] Fix Float16 import, mixed nodata warping,
- band replacement cleanup, GDAL credential redaction, and Python
- GDAL compatibility (Darafei Praliaskouski)
-
-
PostGIS 3.6.0
2025/09/01
diff --git a/README.postgis b/README.postgis
index 90f50c80d..5fe870f4f 100644
--- a/README.postgis
+++ b/README.postgis
@@ -2,7 +2,7 @@ PostGIS - Geographic Information Systems Extensions to PostgreSQL
=================================================================
:Version: 3.7.0
-:Date: 2026-08-24
+:Date: 2026-09-01
:Website: https://postgis.net
This distribution contains a module which implements GIS simple features, ties
@@ -59,14 +59,16 @@ below dependencies (except for GTK):
libsfcgal-dev \
libxml2-dev \
libxml2-utils \
+ perl \
pkg-config \
protobuf-c-compiler \
xsltproc
* PROJ (Required, Version 6.1 or higher):
- The PROJ catographic projection library is required if you want to use the
- ST_Transform() function to reproject features within the database.
+ The PROJ cartographic projection library is required for map projection /
+ datum transformation support such as the ST_Transform() function. It is a
+ hard build requirement; configure fails if it cannot be found.
https://proj.org
@@ -83,17 +85,19 @@ below dependencies (except for GTK):
https://libgeos.org
-* XML SUPPORT (Required, Version 2.5.0 or higher):
+* XML SUPPORT / libxml2 (Required):
The LibXML2 library is required to use the ST_GeomFromGML() and
- ST_GeomFromKML() functionality.
+ ST_GeomFromKML() functionality. It is a hard build requirement; configure
+ fails if it cannot be found.
http://xmlsoft.org/
* GMP (Required):
The GMP arbitrary precision arithmetic library is required by PostGIS
- topology support.
+ topology support. It is detected via pkg-config and has no fallback, so
+ ``pkg-config`` must be available for a default build.
https://gmplib.org
@@ -108,9 +112,11 @@ below dependencies (except for GTK):
GNU gettext is used for loader and documentation translation support. It may
be disabled with ``--with-gettext=no``.
-* JSON-C (Optional, Version 0.9 or higher)
+* JSON-C (Optional)
JSON-C is used to import GeoJSON via the function ST_GeomFromGeoJson().
+ It is enabled by default but optional; if it is not found configure only
+ warns and the build continues. Disable with ``--without-json``.
http://github.com/json-c/json-c/wiki
@@ -125,11 +131,13 @@ below dependencies (except for GTK):
https://sfcgal.gitlab.io/sfcgal
-* protobuf-c (Optional, Version 1.1.0 or higher)
+* protobuf-c (Optional, Version 1.1.0 or higher, enabled by default)
The protobuf-c library and compiler are required to enable ST_AsMVT and
- ST_AsGeobuf output. Also, pkg-config is required to verify the correct
- minimum version of protobuf-c.
+ ST_AsGeobuf output. Both the ``libprotobuf-c`` library and the ``protoc-c``
+ compiler are needed; the compiler is a hard error if you request protobuf
+ support but cannot find it. Disable with ``--without-protobuf``. Also,
+ pkg-config is used to verify the correct minimum version of protobuf-c.
https://github.com/protobuf-c/protobuf-c
@@ -142,6 +150,23 @@ below dependencies (except for GTK):
apt-get install libgtk2.0-dev
+Documentation Building
+----------------------
+
+Building the documentation requires the following in addition to the apt
+packages listed above (``docbook-xsl-ns``, ``libxml2-utils`` and ``xsltproc``):
+
+* Python 3 -- required to run the manual example tester that generates the
+ visual examples which HTML and PDF embed. Those SVGs come from running the
+ staged PostGIS build against a live PostgreSQL server via ``make -C regress
+ visual-examples``; no Python database driver is required (the tooling talks
+ to the server through the ``psql`` client).
+
+* An SVG rasterizer for PDF output -- ``rsvg-convert`` (from librsvg) is
+ preferred, with GraphicsMagick (``gm``) or ImageMagick (``convert`` /
+ ``magick``) as fallbacks. HTML and EPUB embed the SVG files directly and do
+ not need a rasterizer.
+
CONFIGURATION
-------------
diff --git a/configure.ac b/configure.ac
index 9324966ee..7371941f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -236,11 +236,15 @@ fi
AC_PATH_PROG([XMLLINT], [xmllint], [])
if test "x$XMLLINT" = "x"; then
dnl AC_MSG_WARN([xmllint is not installed so documentation cannot be checked])
- AC_MSG_WARN([xmlcatalog is not installed so documentation cannot be built])
+ AC_MSG_WARN([xmllint is not installed so documentation cannot be built])
CAN_BUILD_COMMENTS=no
fi
-
+AC_PATH_PROG([PYTHON3], [python3], [])
+if test "x$PYTHON3" = "x"; then
+ AC_MSG_WARN([python3 is not installed so documentation visual examples cannot be generated])
+ AC_MSG_WARN([documentation build will fail: run 'make -C regress visual-examples' first])
+fi
AC_PATH_PROG([XML2POT], [xml2pot], [])
if test "x$XML2POT" = "x"; then
@@ -2011,6 +2015,7 @@ AC_MSG_RESULT([ xsltproc: ${XSLTPROC}])
AC_MSG_RESULT([ docbook xsl base: ${XSLBASE}])
AC_MSG_RESULT([ dblatex: ${DBLATEX}])
AC_MSG_RESULT([ convert: ${CONVERT}])
+AC_MSG_RESULT([ python3: ${PYTHON3}])
AC_MSG_RESULT()
if test "$POSTGIS_GEOS_VERSION" -lt 31200; then
diff --git a/doc/development/environment/ubuntu.md b/doc/development/environment/ubuntu.md
index 7ff95ccd6..4cc628eb5 100644
--- a/doc/development/environment/ubuntu.md
+++ b/doc/development/environment/ubuntu.md
@@ -51,7 +51,7 @@ sudo apt-get install -y --no-install-recommends \
libxml2-dev libxslt1-dev libxml2-utils \
libyaml-dev \
postgresql postgresql-client postgresql-server-dev-all \
- python3 python3-pip python3-venv python3-psycopg2 \
+ python3 python3-pip python3-venv \
xsltproc docbook-xsl docbook-xsl-ns docbook-xml \
zlib1g-dev
```
@@ -59,6 +59,11 @@ sudo apt-get install -y --no-install-recommends \
This installs software so local workflow can exercise builds, sanitizers,
formatters, and regression suites.
+Note that the documentation example and visual-example tooling talks to the
+PostgreSQL server through the `psql` client (spawned by the Python scripts),
+so no Python database driver such as `psycopg2` is required for documentation
+building or example tests.
+
## 2. Configure PostgreSQL for local testing
The CI images keep PostgreSQL entirely under `/usr/local/pgsql`. On Ubuntu we
@@ -105,6 +110,8 @@ have:
* PROTOBUF-C (for `ST_AsMVT`)
* SFCGAL (for 3D/advanced geometry tests)
* Libxml2, libxslt and docbook stylesheets (for documentation targets)
+* Python 3 (required to build documentation and to run the example /
+ visual-example tooling; see `make -C regress visual-examples`)
* Valgrind (for CUnit leak checks)
Verify their presence if `./configure` fails.
diff --git a/doc/development/release-process.md b/doc/development/release-process.md
index 579e873e1..cbf0c5e1b 100644
--- a/doc/development/release-process.md
+++ b/doc/development/release-process.md
@@ -75,7 +75,11 @@ documentation -- that means having the required software:
* For the docs:
- xsltproc
- DocBook XSL scripts
- - ImageMagic
+ - Python 3 (required to run the example tester and generate the visual
+ examples that HTML and PDF embed; the SVGs come from running the staged
+ PostGIS build against a live PostgreSQL server)
+ - rsvg-convert (preferred) or GraphicsMagick/ImageMagick (to rasterize the
+ generated SVGs for PDF)
- DbLatex (for PDF)
## Release Procedure
diff --git a/doc/installation.xml b/doc/installation.xml
index 69cad523a..da7ff43e2 100644
--- a/doc/installation.xml
+++ b/doc/installation.xml
@@ -193,16 +193,27 @@ sh autogen.sh
</listitem>
<listitem>
<para>
- LibXML2, version 2.5.x or higher. LibXML2 is currently used in some imports
+ LibXML2. LibXML2 is currently used in some imports
functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for download from
<link xlink:href="https://gitlab.gnome.org/GNOME/libxml2/-/releases">https://gitlab.gnome.org/GNOME/libxml2/-/releases</link>.
</para>
</listitem>
+
<listitem>
<para>
- JSON-C, version 0.9 or higher. JSON-C is currently used to import GeoJSON via the
- function ST_GeomFromGeoJson. JSON-C is available for download from
- <link xlink:href="https://github.com/json-c/json-c/releases">https://github.com/json-c/json-c/releases/</link>.
+ Perl is required to build PostGIS.
+ Perl is available for download from
+ <link xlink:href="https://www.perl.org/">https://www.perl.org/</link>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The iconv library is required by the shp2pgsql loader for encoding
+ conversion. On GNU/Linux systems it is typically provided by libc; on
+ other platforms you may need a separate
+ <link xlink:href="https://www.gnu.org/software/libiconv/">libiconv</link>
+ package.
</para>
</listitem>
@@ -211,6 +222,8 @@ sh autogen.sh
The GNU Multiple Precision Arithmetic Library (libgmp). Used to control precision of math operations in PostGIS Topology.
GMP is available for download from
<link xlink:href="https://gmplib.org/">https://gmplib.org/</link>.
+ It is detected via <command>pkg-config</command> and has no fallback, so
+ <command>pkg-config</command> must be available for a default build.
</para>
</listitem>
@@ -244,6 +257,23 @@ sh autogen.sh
</para>
</listitem>
<listitem>
+ <para>
+ JSON-C. JSON-C is currently used to import GeoJSON via the
+ function ST_GeomFromGeoJson. JSON-C is available for download from
+ <link xlink:href="https://github.com/json-c/json-c/releases">https://github.com/json-c/json-c/releases/</link>.
+ It is enabled by default but optional; if it is not found configure
+ only warns and the build continues. Disable with
+ <varname>--without-json</varname>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ GNU gettext for loader and documentation translation support. It may be
+ disabled with <varname>--with-gettext=no</varname>.
+ <link xlink:href="https://www.gnu.org/software/gettext/">https://www.gnu.org/software/gettext/</link>.
+ </para>
+ </listitem>
+ <listitem>
<para>
GTK (requires GTK+2.0, 2.8+) to compile the shp2pgsql-gui shape file loader.
<link xlink:href="http://www.gtk.org/">
@@ -290,6 +320,21 @@ sh autogen.sh
</para>
</listitem>
+ <listitem>
+ <para>
+ Python 3 is required to run the manual example tester that generates
+ the visual examples which the HTML and PDF documentation embed.
+ The examples are executed against a live PostgreSQL server running the
+ staged PostGIS build via <command>make -C regress visual-examples</command>;
+ no Python database driver is required, the tooling talks to the server
+ through the <command>psql</command> client. Python 3 is available from
+ <link xlink:href="https://www.python.org/">
+ https://www.python.org/
+ </link>
+ .
+ </para>
+ </listitem>
+
<listitem>
<para>
DBLatex (<filename>dblatex</filename>) is required for building the
-----------------------------------------------------------------------
Summary of changes:
NEWS | 335 +++++++++++++++++-----------------
README.postgis | 45 ++++-
configure.ac | 9 +-
doc/development/environment/ubuntu.md | 9 +-
doc/development/release-process.md | 6 +-
doc/installation.xml | 53 +++++-
6 files changed, 275 insertions(+), 182 deletions(-)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list