Source: mobilitydb
Version: 1.3.0-1
Severity: serious
Tags: upstream ftbfs patch
Justification: makes the package in question unusable or mostly so
Control: forwarded -1 https://github.com/MobilityDB/MobilityDB/pull/1364

Dear Maintainer,

Your package FTBFS with GEOS 3.15.0 from experimental:

 -- GEOS_VERSION: 3.15.0beta1
 -- GEOS_VERSION_MAJOR: 3beta1
 -- GEOS_VERSION_MINOR: 15beta1
 -- GEOS_VERSION_MICRO: 0beta1
 -- POSTGIS_GEOS_VERSION: ERROR
 CMake Error at CMakeLists.txt:258 (math):
   math cannot parse the expression: "3beta1 * 10000 + 15beta1 * 100 +
   0beta1": syntax error, unexpected exp_NUMBER, expecting end of file (7).

The attached patch fixes the issue by stripping the patch word from the GEOS 
version.

Kind Regards,

Bas
diff -Nru mobilitydb-1.3.0/debian/patches/geos-version.patch 
mobilitydb-1.3.0/debian/patches/geos-version.patch
--- mobilitydb-1.3.0/debian/patches/geos-version.patch  1970-01-01 
01:00:00.000000000 +0100
+++ mobilitydb-1.3.0/debian/patches/geos-version.patch  2026-07-10 
15:37:58.000000000 +0200
@@ -0,0 +1,52 @@
+Description: Strip patch word from GEOS version.
+ -- GEOS_VERSION: 3.15.0beta1
+ -- GEOS_VERSION_MAJOR: 3beta1
+ -- GEOS_VERSION_MINOR: 15beta1
+ -- GEOS_VERSION_MICRO: 0beta1
+ -- POSTGIS_GEOS_VERSION: ERROR
+ CMake Error at CMakeLists.txt:258 (math):
+   math cannot parse the expression: "3beta1 * 10000 + 15beta1 * 100 +
+   0beta1": syntax error, unexpected exp_NUMBER, expecting end of file (7).
+Author: Bas Couwenberg <[email protected]>
+
+--- a/cmake/FindGEOS.cmake
++++ b/cmake/FindGEOS.cmake
+@@ -72,9 +72,9 @@ ELSE(WIN32)
+           IF (NOT GEOS_VERSION)
+             MESSAGE (FATAL_ERROR "Could not determine GEOS version from 
framework.")
+           ENDIF (NOT GEOS_VERSION)
+-          STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\1" 
GEOS_VERSION_MAJOR "${GEOS_VERSION}")
+-          STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\2" 
GEOS_VERSION_MINOR "${GEOS_VERSION}")
+-          STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\3" 
GEOS_VERSION_MICRO "${GEOS_VERSION}")
++          STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\1" 
GEOS_VERSION_MAJOR "${GEOS_VERSION}")
++          STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\2" 
GEOS_VERSION_MINOR "${GEOS_VERSION}")
++          STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\3" 
GEOS_VERSION_MICRO "${GEOS_VERSION}")
+           IF (GEOS_VERSION_MAJOR LESS 3)
+             MESSAGE (FATAL_ERROR "GEOS version is too old (${GEOS_VERSION}). 
Use 3.0.0 or higher.")
+           ENDIF (GEOS_VERSION_MAJOR LESS 3)
+@@ -104,9 +104,9 @@ ELSE(WIN32)
+             OUTPUT_VARIABLE GEOS_VERSION)
+         # Remove trailing newline
+         STRING(REGEX REPLACE "\n$" "" GEOS_VERSION "${GEOS_VERSION}")
+-        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\1" 
GEOS_VERSION_MAJOR "${GEOS_VERSION}")
+-        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\2" 
GEOS_VERSION_MINOR "${GEOS_VERSION}")
+-        STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\3" 
GEOS_VERSION_MICRO "${GEOS_VERSION}")
++        STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\1" 
GEOS_VERSION_MAJOR "${GEOS_VERSION}")
++        STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\2" 
GEOS_VERSION_MINOR "${GEOS_VERSION}")
++        STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\3" 
GEOS_VERSION_MICRO "${GEOS_VERSION}")
+ 
+         IF (GEOS_VERSION_MAJOR LESS 3 OR (GEOS_VERSION_MAJOR EQUAL 3 AND 
GEOS_VERSION_MINOR LESS 3) )
+           MESSAGE (FATAL_ERROR "GEOS version is too old (${GEOS_VERSION}). 
Use 3.3.0 or higher.")
+@@ -187,9 +187,9 @@ IF(GEOS_INCLUDE_DIR AND NOT GEOS_VERSION
+   FILE(READ ${GEOS_INCLUDE_DIR}/geos_c.h VERSIONFILE)
+   STRING(REGEX MATCH "#define GEOS_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+" 
GEOS_VERSION ${VERSIONFILE})
+   STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" GEOS_VERSION ${GEOS_VERSION})
+-  STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\1" 
GEOS_VERSION_MAJOR "${GEOS_VERSION}")
+-  STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\2" 
GEOS_VERSION_MINOR "${GEOS_VERSION}")
+-  STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev)?" "\\3" 
GEOS_VERSION_MICRO "${GEOS_VERSION}")
++  STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\1" 
GEOS_VERSION_MAJOR "${GEOS_VERSION}")
++  STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\2" 
GEOS_VERSION_MINOR "${GEOS_VERSION}")
++  STRING(REGEX REPLACE 
"([0-9]+)\\.([0-9]+)\\.([0-9]+)(dev|(alpha|beta|rc)[0-9]*)?" "\\3" 
GEOS_VERSION_MICRO "${GEOS_VERSION}")
+ ENDIF(GEOS_INCLUDE_DIR AND NOT GEOS_VERSION)
+ 
+ IF (GEOS_INCLUDE_DIR AND GEOS_LIBRARY)
diff -Nru mobilitydb-1.3.0/debian/patches/series 
mobilitydb-1.3.0/debian/patches/series
--- mobilitydb-1.3.0/debian/patches/series      2026-02-21 08:58:40.000000000 
+0100
+++ mobilitydb-1.3.0/debian/patches/series      2026-07-10 15:30:52.000000000 
+0200
@@ -1,2 +1,3 @@
 generate-configure-file-in-build-dir
 reproducible
+geos-version.patch

Reply via email to