From a9ccaf0d305148548121dfd246582632870b1b52 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Jun 17 2021 09:45:33 +0000 Subject: Backport fix for performance regression (#1972892) --- diff --git a/e615f6ca286cb15bad3f919e066b4b3bbd8cad58.patch b/e615f6ca286cb15bad3f919e066b4b3bbd8cad58.patch new file mode 100644 index 0000000..01e83fc --- /dev/null +++ b/e615f6ca286cb15bad3f919e066b4b3bbd8cad58.patch @@ -0,0 +1,21 @@ +diff -rupN --no-dereference geos-3.9.1/src/noding/SegmentNodeList.cpp geos-3.9.1-new/src/noding/SegmentNodeList.cpp +--- geos-3.9.1/src/noding/SegmentNodeList.cpp 2021-02-10 19:10:27.000000000 +0100 ++++ geos-3.9.1-new/src/noding/SegmentNodeList.cpp 2021-06-17 11:44:40.862229759 +0200 +@@ -301,6 +301,8 @@ SegmentNodeList::getSplitCoordinates() + addEdgeCoordinates(eiPrev, ei, *coordList); + eiPrev = ei; + } ++ // Remove duplicate Coordinates from coordList ++ coordList->erase(std::unique(coordList->begin(), coordList->end()), coordList->end()); + return coordList; + } + +@@ -312,8 +314,6 @@ SegmentNodeList::addEdgeCoordinates(cons + createSplitEdgePts(ei0, ei1, pts); + // Append pts to coordList + coordList.insert(coordList.end(), pts.begin(), pts.end()); +- // Remove duplicate Coordinates from coordList +- coordList.erase(std::unique(coordList.begin(), coordList.end()), coordList.end()); + } + + diff --git a/geos.spec b/geos.spec index 278831f..c807a27 100644 --- a/geos.spec +++ b/geos.spec @@ -1,6 +1,6 @@ Name: geos Version: 3.9.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: GEOS is a C++ port of the Java Topology Suite License: LGPLv2 @@ -11,6 +11,8 @@ Source1: http://git.osgeo.org/gitea/geos/geos/raw/tag/%{version}/doc/check # Honour libsuffix Patch1: geos_libsuffix.patch +# Backport fix for performance regression +Patch2: https://github.com/libgeos/geos/commit/e615f6ca286cb15bad3f919e066b4b3bbd8cad58.patch BuildRequires: cmake BuildRequires: doxygen @@ -86,6 +88,9 @@ make docs -C %{__cmake_builddir} %changelog +* Thu Jun 17 2021 Sandro Mani - 3.9.1-4 +- Backport fix for performance regression (#1972892) + * Tue Mar 23 2021 Sandro Mani - 3.9.1-3 - Bump diff --git a/geos_libsuffix.patch b/geos_libsuffix.patch index 59818d0..3993e5b 100644 --- a/geos_libsuffix.patch +++ b/geos_libsuffix.patch @@ -1,6 +1,6 @@ diff -rupN --no-dereference geos-3.9.1/CMakeLists.txt geos-3.9.1-new/CMakeLists.txt ---- geos-3.9.1/CMakeLists.txt 2021-02-10 13:10:27.000000000 -0500 -+++ geos-3.9.1-new/CMakeLists.txt 2021-03-10 11:38:06.200581963 -0500 +--- geos-3.9.1/CMakeLists.txt 2021-02-10 19:10:27.000000000 +0100 ++++ geos-3.9.1-new/CMakeLists.txt 2021-06-17 11:44:40.776229757 +0200 @@ -308,16 +308,16 @@ configure_file(cmake/geos-config.cmake install(TARGETS geos geos_cxx_flags @@ -38,8 +38,8 @@ diff -rupN --no-dereference geos-3.9.1/CMakeLists.txt geos-3.9.1-new/CMakeLists. "${CMAKE_CURRENT_LIST_DIR}/include/geos" "${CMAKE_CURRENT_BINARY_DIR}/include/geos" diff -rupN --no-dereference geos-3.9.1/tools/CMakeLists.txt geos-3.9.1-new/tools/CMakeLists.txt ---- geos-3.9.1/tools/CMakeLists.txt 2021-02-10 13:10:27.000000000 -0500 -+++ geos-3.9.1-new/tools/CMakeLists.txt 2021-03-10 11:38:06.200581963 -0500 +--- geos-3.9.1/tools/CMakeLists.txt 2021-02-10 19:10:27.000000000 +0100 ++++ geos-3.9.1-new/tools/CMakeLists.txt 2021-06-17 11:44:40.776229757 +0200 @@ -36,7 +36,7 @@ if(NOT MSVC) install(FILES @@ -50,8 +50,8 @@ diff -rupN --no-dereference geos-3.9.1/tools/CMakeLists.txt geos-3.9.1-new/tools endif() diff -rupN --no-dereference geos-3.9.1/tools/geos-config.cmake geos-3.9.1-new/tools/geos-config.cmake ---- geos-3.9.1/tools/geos-config.cmake 2021-02-03 18:19:53.000000000 -0500 -+++ geos-3.9.1-new/tools/geos-config.cmake 2021-03-10 11:38:06.201581969 -0500 +--- geos-3.9.1/tools/geos-config.cmake 2021-02-04 00:19:53.000000000 +0100 ++++ geos-3.9.1-new/tools/geos-config.cmake 2021-06-17 11:44:40.776229757 +0200 @@ -1,7 +1,7 @@ #!/bin/sh @@ -62,8 +62,8 @@ diff -rupN --no-dereference geos-3.9.1/tools/geos-config.cmake geos-3.9.1-new/to usage() { diff -rupN --no-dereference geos-3.9.1/tools/geos.pc.cmake geos-3.9.1-new/tools/geos.pc.cmake ---- geos-3.9.1/tools/geos.pc.cmake 2021-02-03 18:19:53.000000000 -0500 -+++ geos-3.9.1-new/tools/geos.pc.cmake 2021-03-10 11:40:18.802433179 -0500 +--- geos-3.9.1/tools/geos.pc.cmake 2021-02-04 00:19:53.000000000 +0100 ++++ geos-3.9.1-new/tools/geos.pc.cmake 2021-06-17 11:44:40.776229757 +0200 @@ -8,4 +8,4 @@ Description: Geometry Engine, Open Sourc Requires: Version: @GEOS_VERSION@