Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-Shapely for openSUSE:Factory
checked in at 2026-09-17 15:25:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Shapely (Old)
and /work/SRC/openSUSE:Factory/.python-Shapely.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Shapely"
Thu Sep 17 15:25:42 2026 rev:32 rq:1378613 version:2.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Shapely/python-Shapely.changes
2026-03-27 06:47:16.128435362 +0100
+++
/work/SRC/openSUSE:Factory/.python-Shapely.new.383539/python-Shapely.changes
2026-09-17 15:25:56.905409894 +0200
@@ -1,0 +2,9 @@
+Wed Sep 16 22:14:02 UTC 2026 - Libor Pechacek <[email protected]>
+
+- Fix build tests after GEOS update to 3.15
+ Added patches
+ TST-change-test_remove_repeated_points_invalid_resul.patch
+ TST-fix-test_set_precision_collapse-with-normalized-.patch
+ TST_update_tests_for_GEOS_3_15.patch
+
+-------------------------------------------------------------------
New:
----
TST-change-test_remove_repeated_points_invalid_resul.patch
TST-fix-test_set_precision_collapse-with-normalized-.patch
TST_update_tests_for_GEOS_3_15.patch
----------(New B)----------
New: Added patches
TST-change-test_remove_repeated_points_invalid_resul.patch
TST-fix-test_set_precision_collapse-with-normalized-.patch
New: TST-change-test_remove_repeated_points_invalid_resul.patch
TST-fix-test_set_precision_collapse-with-normalized-.patch
TST_update_tests_for_GEOS_3_15.patch
New: TST-fix-test_set_precision_collapse-with-normalized-.patch
TST_update_tests_for_GEOS_3_15.patch
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Shapely.spec ++++++
--- /var/tmp/diff_new_pack.DpijDe/_old 2026-09-17 15:25:57.697443126 +0200
+++ /var/tmp/diff_new_pack.DpijDe/_new 2026-09-17 15:25:57.700443252 +0200
@@ -24,6 +24,12 @@
License: BSD-3-Clause
URL: https://github.com/shapely/shapely
Source:
https://files.pythonhosted.org/packages/source/s/shapely/shapely-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM TST_update_tests_for_GEOS_3_15.patch -- based on commit
639ff48319ac008841f02be597fd5fae3ddb4f23
+Patch0: TST_update_tests_for_GEOS_3_15.patch
+# PATCH-FIX-UPSTREAM
TST-fix-test_set_precision_collapse-with-normalized-.patch -- based on commit
703df27ec61bef4e2ebacfc791c0c01947ae47a8
+Patch1: TST-fix-test_set_precision_collapse-with-normalized-.patch
+# PATCH-FIX-UPSTREAM
TST-change-test_remove_repeated_points_invalid_resul.patch -- based on commit
9cca2e074cd9f695a99e3c884919eb18f99328d6
+Patch2: TST-change-test_remove_repeated_points_invalid_resul.patch
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module numpy-devel >= 1.25}
@@ -58,7 +64,7 @@
and pyproj.
%prep
-%autosetup -n shapely-%{version}
+%autosetup -p 1 -n shapely-%{version}
%build
CFLAGS="%{optflags} `geos-config --cflags` LDFLAGS=`geos-config --clibs`"
++++++ TST-change-test_remove_repeated_points_invalid_resul.patch ++++++
>From 9cca2e074cd9f695a99e3c884919eb18f99328d6 Mon Sep 17 00:00:00 2001
From: Mike Taves <[email protected]>
Date: Fri, 12 Dec 2025 20:53:06 +1300
Subject: [PATCH] TST: change test_remove_repeated_points_invalid_result for
GEOS 3.15 (#2366)
---
shapely/tests/test_constructive.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/shapely/tests/test_constructive.py
+++ b/shapely/tests/test_constructive.py
@@ -474,8 +474,12 @@ def test_remove_repeated_points(geom, ex
def test_remove_repeated_points_invalid_result(geom, tolerance):
# Requiring GEOS 3.12 instead of 3.11
# (GEOS 3.11 had a bug causing this to intermittently not fail)
- with pytest.raises(shapely.GEOSException, match="Invalid number of
points"):
- shapely.remove_repeated_points(geom, tolerance)
+ if shapely.geos_version >= (3, 15, 0):
+ result = shapely.remove_repeated_points(geom, tolerance)
+ assert result.wkt == "POLYGON EMPTY"
+ else:
+ with pytest.raises(shapely.GEOSException, match="Invalid number of
points"):
+ shapely.remove_repeated_points(geom, tolerance)
@pytest.mark.skipif(shapely.geos_version < (3, 11, 0), reason="GEOS < 3.11")
++++++ TST-fix-test_set_precision_collapse-with-normalized-.patch ++++++
>From 703df27ec61bef4e2ebacfc791c0c01947ae47a8 Mon Sep 17 00:00:00 2001
From: Mike Taves <[email protected]>
Date: Mon, 13 Apr 2026 20:30:54 +1200
Subject: [PATCH] TST: fix test_set_precision_collapse with normalized
geometries (#2433)
---
shapely/tests/test_geometry.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/shapely/tests/test_geometry.py
+++ b/shapely/tests/test_geometry.py
@@ -612,12 +612,8 @@ def test_set_precision_grid_size_nan():
def test_set_precision_collapse(geometry, mode, expected):
"""Lines and polygons collapse to empty geometries if vertices are too
close"""
actual = shapely.set_precision(geometry, 1, mode=mode)
- assert_geometries_equal(
- # force to 2D because of various dimension issues; GEOS GH-1152
- shapely.force_2d(actual),
- expected,
- normalize=shapely.geos_version == (3, 9, 0),
- )
+ # force to 2D because of various dimension issues; GEOS GH-1152
+ assert_geometries_equal(shapely.force_2d(actual), expected, normalize=True)
def test_set_precision_intersection():
++++++ TST_update_tests_for_GEOS_3_15.patch ++++++
>From 639ff48319ac008841f02be597fd5fae3ddb4f23 Mon Sep 17 00:00:00 2001
From: Joris Van den Bossche <[email protected]>
Date: Wed, 29 Jul 2026 08:40:41 +0200
Subject: [PATCH] TST: update tests for upstream changes in GEOS 3.15 (#2473)
---
shapely/tests/legacy/test_split.py | 13 +++++++++++++
shapely/tests/test_constructive.py | 6 ++++--
2 files changed, 17 insertions(+), 2 deletions(-)
--- a/shapely/tests/legacy/test_split.py
+++ b/shapely/tests/legacy/test_split.py
@@ -2,6 +2,7 @@ import unittest
import pytest
+from shapely import geos_version
from shapely.errors import GeometryTypeError
from shapely.geometry import (
LineString,
@@ -146,6 +147,9 @@ class TestSplitLine(TestSplitGeometry):
splitter = MultiPoint([(1, 1), (1.5, 1.5), (1, 1)])
self.helper(self.ls, splitter, 3)
+ @pytest.mark.xfail(
+ geos_version >= (3, 15, 0), reason="TODO split with line broken in
GEOS 3.15"
+ )
def test_split_line_with_line(self):
# crosses at one point --> return 2 segments
splitter = LineString([(0, 1), (1, 0)])
@@ -174,6 +178,9 @@ class TestSplitLine(TestSplitGeometry):
assert splitter.touches(self.ls)
self.helper(self.ls, splitter, 2)
+ @pytest.mark.xfail(
+ geos_version >= (3, 15, 0), reason="TODO split with line broken in
GEOS 3.15"
+ )
def test_split_line_with_multiline(self):
# crosses at one point --> return 2 segments
splitter = MultiLineString([[(0, 1), (1, 0)], [(0, 0), (2, -2)]])
@@ -196,6 +203,9 @@ class TestSplitLine(TestSplitGeometry):
splitter = MultiLineString([[(0, 1), (0, 2)], [(1, 0), (2, 0)]])
self.helper(self.ls, splitter, 1)
+ @pytest.mark.xfail(
+ geos_version >= (3, 15, 0), reason="TODO split with line broken in
GEOS 3.15"
+ )
def test_split_line_with_polygon(self):
# crosses at two points --> return 3 segments
splitter = Polygon([(1, 0), (1, 2), (2, 2), (2, 0), (1, 0)])
@@ -213,6 +223,9 @@ class TestSplitLine(TestSplitGeometry):
)
self.helper(self.ls, splitter, 4)
+ @pytest.mark.xfail(
+ geos_version >= (3, 15, 0), reason="TODO split with line broken in
GEOS 3.15"
+ )
def test_split_line_with_multipolygon(self):
poly1 = Polygon(
[(0, 0), (2, 0), (2, 2), (0, 2), (0, 0)]
--- a/shapely/tests/test_constructive.py
+++ b/shapely/tests/test_constructive.py
@@ -199,10 +199,12 @@ def test_make_valid_none():
"geom,expected",
[
(point, point), # a valid geometry stays the same (but is copied)
- # an L shaped polygon without area is converted to a multilinestring
+ # an L shaped polygon without area is converted to a (multi)linestring
(
Polygon([(0, 0), (1, 1), (1, 2), (1, 1), (0, 0)]),
- MultiLineString([((1, 1), (1, 2)), ((0, 0), (1, 1))]),
+ LineString([(0, 0), (1, 1), (1, 2)])
+ if shapely.geos_version >= (3, 15, 0)
+ else MultiLineString([((1, 1), (1, 2)), ((0, 0), (1, 1))]),
),
# a polygon with self-intersection (bowtie) is converted into polygons
(