[SCM] PostGIS branch stable-3.2 updated. 3.2.10-79-g184fc31b6

git at osgeo.org git at osgeo.org
Sun Jul 19 20:35:56 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, stable-3.2 has been updated
       via  184fc31b65e84cffba35bf54bcb9e0cc265ff0cd (commit)
       via  e35add6612836948744edfe087b7f750092f9986 (commit)
       via  6fbbfcd29abbd27ff954c3fae4f4e6671fb95b64 (commit)
       via  f2bf57388f2fcbb7bdb7f69344e535b9e98c6db6 (commit)
      from  31612cd7bb39311cb06eafae3348641b51b91df8 (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 184fc31b65e84cffba35bf54bcb9e0cc265ff0cd
Merge: 31612cd7b e35add661
Author: Darafei Praliaskouski <komzpa at gmail.com>
Date:   Sun Jul 19 20:35:55 2026 -0700

    Merge pull request 'ci: fix stable 3.2 Bessie worker gating' (!460) from Komzpa/postgis:fix/stable-3.2-bessie-private-postgres into stable-3.2
    
    Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/460


commit e35add6612836948744edfe087b7f750092f9986
Author: Darafei Praliaskouski <me at komzpa.net>
Date:   Mon Jul 20 06:57:01 2026 +0400

    ci: skip Bessie when stable 3.2 lacks supported PostgreSQL
    
    PostGIS 3.2 intentionally rejects PostgreSQL versions newer than 15. Prefer a supported pg_config on Bessie when one exists, but turn the PG18-only host into an explicit skip instead of a release-blocking false failure.

diff --git a/ci/bessie/postgis_regress.sh b/ci/bessie/postgis_regress.sh
index 75f6d1466..6afde5d72 100644
--- a/ci/bessie/postgis_regress.sh
+++ b/ci/bessie/postgis_regress.sh
@@ -1,6 +1,43 @@
 #BRANCH is passed in via jenkins which is set via svn hook
 export PATH=${PATH}:/usr/local:/usr/local/lib:/usr/local/bin
 
+pg_config_major()
+{
+  "$1" --version 2>/dev/null | sed -n 's/^PostgreSQL \([0-9][0-9]*\).*/\1/p'
+}
+
+find_supported_pg_config()
+{
+  for candidate in \
+    "${PG_CONFIG:-}" \
+    /usr/local/bin/pg_config15 \
+    /usr/local/pgsql15/bin/pg_config \
+    /usr/local/pgsql-15/bin/pg_config \
+    /usr/local/postgresql15/bin/pg_config \
+    "$(command -v pg_config || true)"
+  do
+    test -n "${candidate}" || continue
+    test -x "${candidate}" || continue
+    major=$(pg_config_major "${candidate}")
+    test -n "${major}" || continue
+    if test "${major}" -le 15; then
+      printf '%s\n' "${candidate}"
+      return 0
+    fi
+  done
+  return 1
+}
+
+PG_CONFIG_PATH=$(find_supported_pg_config || true)
+if test -z "${PG_CONFIG_PATH}"; then
+  pg_config_version=$(pg_config --version 2>/dev/null || true)
+  echo "Skipping Bessie: PostGIS 3.2 supports PostgreSQL <= 15, but no supported pg_config was found. Default pg_config: ${pg_config_version:-missing}."
+  exit 0
+fi
+
+PG_BINDIR=$(dirname "${PG_CONFIG_PATH}")
+export PATH="${PG_BINDIR}:${PATH}"
+
 PGIS_TMP_ROOT=$(mktemp -d "${TMPDIR:-/tmp}/postgis-bessie.XXXXXX")
 export PGDATA="${PGIS_TMP_ROOT}/data"
 export PGHOST="${PGIS_TMP_ROOT}"
@@ -27,6 +64,7 @@ trap 'exit 1' HUP INT TERM
 
 sh autogen.sh
 ./configure \
+  --with-pgconfig="${PG_CONFIG_PATH}" \
   --with-projdir=/usr/local \
   --with-libiconv=/usr/local \
   --without-interrupt-tests \

commit 6fbbfcd29abbd27ff954c3fae4f4e6671fb95b64
Author: Darafei Praliaskouski <me at komzpa.net>
Date:   Mon Jul 20 06:43:21 2026 +0400

    Avoid pqsignal return value on PostgreSQL 18
    
    Backport the interrupt callback pattern used by newer stable branches so this older branch no longer depends on pqsignal returning the previous handler.
    
    References #5841

diff --git a/postgis/postgis_module.c b/postgis/postgis_module.c
index c82284b36..ffb6e0a3f 100644
--- a/postgis/postgis_module.c
+++ b/postgis/postgis_module.c
@@ -25,9 +25,9 @@
 
 #include "postgres.h"
 #include "fmgr.h"
+#include "miscadmin.h"
 #include "utils/elog.h"
 #include "utils/guc.h"
-#include "libpq/pqsignal.h"
 
 #include "../postgis_config.h"
 
@@ -44,15 +44,39 @@
  */
 PG_MODULE_MAGIC;
 
-static pqsigfunc coreIntHandler = 0;
-static void handleInterrupt(int sig);
-
+static void interrupt_geos_callback()
+{
 #ifdef WIN32
-static void interruptCallback() {
-  if (UNBLOCKED_SIGNAL_QUEUE())
-    pgwin32_dispatch_queued_signals();
-}
+	if (UNBLOCKED_SIGNAL_QUEUE())
+		pgwin32_dispatch_queued_signals();
 #endif
+	/*
+	 * If PgSQL global flags show interrupt,
+	 * flip the pending flag in GEOS
+	 * to end current query.
+	 */
+	if (QueryCancelPending || ProcDiePending)
+		GEOS_interruptRequest();
+	else
+		GEOS_interruptCancel();
+}
+
+static void interrupt_liblwgeom_callback()
+{
+#ifdef WIN32
+	if (UNBLOCKED_SIGNAL_QUEUE())
+		pgwin32_dispatch_queued_signals();
+#endif
+	/*
+	 * If PgSQL global flags show interrupt,
+	 * flip the pending flag in liblwgeom
+	 * to end current query.
+	 */
+	if (QueryCancelPending || ProcDiePending)
+		lwgeom_request_interrupt();
+	else
+		lwgeom_cancel_interrupt();
+}
 
 /*
  * Module load callback
@@ -61,12 +85,12 @@ void _PG_init(void);
 void
 _PG_init(void)
 {
-  coreIntHandler = pqsignal(SIGINT, handleInterrupt);
-
-#ifdef WIN32
-  GEOS_interruptRegisterCallback(interruptCallback);
-  lwgeom_register_interrupt_callback(interruptCallback);
-#endif
+  /*
+   * Hook up interrupt checking to call back here and examine the PgSQL
+   * interrupt state variables.
+   */
+  GEOS_interruptRegisterCallback(interrupt_geos_callback);
+  lwgeom_register_interrupt_callback(interrupt_liblwgeom_callback);
 
   /* install PostgreSQL handlers */
   pg_install_lwgeom_handlers();
@@ -80,31 +104,4 @@ void
 _PG_fini(void)
 {
   elog(NOTICE, "Goodbye from PostGIS %s", POSTGIS_VERSION);
-  pqsignal(SIGINT, coreIntHandler);
-}
-
-
-static void
-handleInterrupt(int sig)
-{
-  /* NOTE: printf here would be dangerous, see
-   * https://trac.osgeo.org/postgis/ticket/3644
-   *
-   * TODO: block interrupts during execution, to fix the problem
-   */
-  /* printf("Interrupt requested\n"); fflush(stdout); */
-
-  GEOS_interruptRequest();
-
-#ifdef HAVE_LIBPROTOBUF
-  /* Taking out per #5385 crash */
-  //lwgeom_wagyu_interruptRequest();
-#endif
-
-  /* request interruption of liblwgeom as well */
-  lwgeom_request_interrupt();
-
-  if ( coreIntHandler ) {
-    (*coreIntHandler)(sig);
-  }
 }

commit f2bf57388f2fcbb7bdb7f69344e535b9e98c6db6
Author: Darafei Praliaskouski <me at komzpa.net>
Date:   Sun Jul 19 00:36:58 2026 +0400

    ci: isolate the Bessie PostgreSQL cluster
    
    (cherry picked from commit 23a1f5deddb5947c830ec6cc54d4e44dc19ebbdc)

diff --git a/ci/bessie/postgis_regress.sh b/ci/bessie/postgis_regress.sh
index 7057d0649..75f6d1466 100644
--- a/ci/bessie/postgis_regress.sh
+++ b/ci/bessie/postgis_regress.sh
@@ -1,5 +1,30 @@
 #BRANCH is passed in via jenkins which is set via svn hook
 export PATH=${PATH}:/usr/local:/usr/local/lib:/usr/local/bin
+
+PGIS_TMP_ROOT=$(mktemp -d "${TMPDIR:-/tmp}/postgis-bessie.XXXXXX")
+export PGDATA="${PGIS_TMP_ROOT}/data"
+export PGHOST="${PGIS_TMP_ROOT}"
+export PGUSER=postgres
+export PGIS_REG_TMPDIR="${PGIS_TMP_ROOT}/regress"
+PGLOG="${PGIS_TMP_ROOT}/postgresql.log"
+
+cleanup() {
+  status=$?
+  trap - EXIT
+  if test -s "${PGDATA}/postmaster.pid"; then
+    pg_ctl -D "${PGDATA}" -m immediate stop >/dev/null 2>&1 || true
+  fi
+  if test "${status}" -ne 0 && test -s "${PGLOG}"; then
+    echo "PostgreSQL log follows:" >&2
+    tail -n 100 "${PGLOG}" >&2
+  fi
+  rm -rf -- "${PGIS_TMP_ROOT}"
+  exit "${status}"
+}
+
+trap cleanup EXIT
+trap 'exit 1' HUP INT TERM
+
 sh autogen.sh
 ./configure \
   --with-projdir=/usr/local \
@@ -8,9 +33,17 @@ sh autogen.sh
   --with-library-minor-version
 make clean
 make
-export PGUSER=postgres
-export PGIS_REG_TMPDIR=~/tmp/pgis_reg_${BRANCH}
-psql -c "DROP DATABASE IF EXISTS postgis_reg;"
+
+initdb -N --no-data-checksums -U "${PGUSER}" -D "${PGDATA}"
+printf '%s\n' \
+  'fsync = off' \
+  'full_page_writes = off' \
+  'synchronous_commit = off' \
+  >> "${PGDATA}/postgresql.conf"
+pg_ctl -D "${PGDATA}" -l "${PGLOG}" \
+  -o "-F -c listen_addresses='' -c unix_socket_directories='${PGHOST}'" start
+mkdir -p "${PGIS_REG_TMPDIR}"
+
 make check RUNTESTFLAGS="-v"
 sudo make install
 make check RUNTESTFLAGS="-v --extension"

-----------------------------------------------------------------------

Summary of changes:
 ci/bessie/postgis_regress.sh | 77 ++++++++++++++++++++++++++++++++++++++++++--
 postgis/postgis_module.c     | 77 +++++++++++++++++++++-----------------------
 2 files changed, 111 insertions(+), 43 deletions(-)


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list