Accepting request 911938 from Application:Geo

- Add fix-infinite-loop.patch: fix startup of QGIS. This will be
  integrated upstream in 3.20.2.
- Enable PDAL (add qgis-fix-cmake-findpdal.patch)

OBS-URL: https://build.opensuse.org/request/show/911938
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qgis?expand=0&rev=25
This commit is contained in:
Dominique Leuenberger 2021-08-24 08:54:19 +00:00 committed by Git OBS Bridge
commit d910c02ab6
4 changed files with 244 additions and 1 deletions

214
fix-infinite-loop.patch Normal file
View File

@ -0,0 +1,214 @@
From 2055199a3a4a01f5fcc9fe54a14d3ca27a21961b Mon Sep 17 00:00:00 2001
From: PeterPetrik <zilolv@gmail.com>
Date: Fri, 2 Jul 2021 14:40:59 +0200
Subject: [PATCH 1/2] fix infinite loop in qgsstyle
---
src/core/symbology/qgsstyle.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/core/symbology/qgsstyle.cpp b/src/core/symbology/qgsstyle.cpp
index 6ca37dde3a15..c87305b3c8fa 100644
--- a/src/core/symbology/qgsstyle.cpp
+++ b/src/core/symbology/qgsstyle.cpp
@@ -2755,6 +2755,7 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the symbol, should already be present
+ e = e.nextSiblingElement();
continue;
}
@@ -2810,6 +2811,7 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the ramp, should already be present
+ e = e.nextSiblingElement();
continue;
}
@@ -2859,6 +2861,7 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the format, should already be present
+ e = e.nextSiblingElement();
continue;
}
@@ -2904,6 +2907,7 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the settings, should already be present
+ e = e.nextSiblingElement();
continue;
}
@@ -2950,6 +2954,7 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the shape, should already be present
+ e = e.nextSiblingElement();
continue;
}
@@ -2995,6 +3000,7 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the symbol, should already be present
+ e = e.nextSiblingElement();
continue;
}
From d03c4b4806ca241c8daed446c98ae66988bd1dcd Mon Sep 17 00:00:00 2001
From: Nyall Dawson <nyall.dawson@gmail.com>
Date: Thu, 22 Jul 2021 10:30:05 +1000
Subject: [PATCH 2/2] Cleanup style upgrade loop
Refs https://github.com/qgis/QGIS/pull/44038/files#r663350654
---
src/core/symbology/qgsstyle.cpp | 24 ++++++------------------
1 file changed, 6 insertions(+), 18 deletions(-)
diff --git a/src/core/symbology/qgsstyle.cpp b/src/core/symbology/qgsstyle.cpp
index c87305b3c8fa..b4f57116d81e 100644
--- a/src/core/symbology/qgsstyle.cpp
+++ b/src/core/symbology/qgsstyle.cpp
@@ -2749,13 +2749,12 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
if ( version == QLatin1String( STYLE_CURRENT_VERSION ) || version == QLatin1String( "1" ) )
{
// For the new style, load symbols individually
- while ( !e.isNull() )
+ for ( ; !e.isNull(); e = e.nextSiblingElement() )
{
const int entityAddedVersion = e.attribute( QStringLiteral( "addedVersion" ) ).toInt();
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the symbol, should already be present
- e = e.nextSiblingElement();
continue;
}
@@ -2787,7 +2786,6 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
QgsDebugMsg( "unknown tag: " + e.tagName() );
}
- e = e.nextSiblingElement();
}
}
else
@@ -2805,13 +2803,12 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
// load color ramps
QDomElement rampsElement = docEl.firstChildElement( QStringLiteral( "colorramps" ) );
e = rampsElement.firstChildElement();
- while ( !e.isNull() )
+ for ( ; !e.isNull(); e = e.nextSiblingElement() )
{
const int entityAddedVersion = e.attribute( QStringLiteral( "addedVersion" ) ).toInt();
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the ramp, should already be present
- e = e.nextSiblingElement();
continue;
}
@@ -2843,7 +2840,6 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
QgsDebugMsg( "unknown tag: " + e.tagName() );
}
- e = e.nextSiblingElement();
}
// load text formats
@@ -2855,13 +2851,12 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
const QDomElement textFormatElement = docEl.firstChildElement( QStringLiteral( "textformats" ) );
e = textFormatElement.firstChildElement();
- while ( !e.isNull() )
+ for ( ; !e.isNull(); e = e.nextSiblingElement() )
{
const int entityAddedVersion = e.attribute( QStringLiteral( "addedVersion" ) ).toInt();
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the format, should already be present
- e = e.nextSiblingElement();
continue;
}
@@ -2892,7 +2887,6 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
QgsDebugMsg( "unknown tag: " + e.tagName() );
}
- e = e.nextSiblingElement();
}
}
@@ -2901,13 +2895,12 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
const QDomElement labelSettingsElement = docEl.firstChildElement( QStringLiteral( "labelsettings" ) );
e = labelSettingsElement.firstChildElement();
- while ( !e.isNull() )
+ for ( ; !e.isNull(); e = e.nextSiblingElement() )
{
const int entityAddedVersion = e.attribute( QStringLiteral( "addedVersion" ) ).toInt();
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the settings, should already be present
- e = e.nextSiblingElement();
continue;
}
@@ -2938,7 +2931,6 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
QgsDebugMsg( "unknown tag: " + e.tagName() );
}
- e = e.nextSiblingElement();
}
}
}
@@ -2948,13 +2940,12 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
const QDomElement legendPatchShapesElement = docEl.firstChildElement( QStringLiteral( "legendpatchshapes" ) );
e = legendPatchShapesElement.firstChildElement();
- while ( !e.isNull() )
+ for ( ; !e.isNull(); e = e.nextSiblingElement() )
{
const int entityAddedVersion = e.attribute( QStringLiteral( "addedVersion" ) ).toInt();
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the shape, should already be present
- e = e.nextSiblingElement();
continue;
}
@@ -2985,7 +2976,6 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
QgsDebugMsg( "unknown tag: " + e.tagName() );
}
- e = e.nextSiblingElement();
}
}
@@ -2994,13 +2984,12 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
const QDomElement symbols3DElement = docEl.firstChildElement( QStringLiteral( "symbols3d" ) );
e = symbols3DElement.firstChildElement();
- while ( !e.isNull() )
+ for ( ; !e.isNull(); e = e.nextSiblingElement() )
{
const int entityAddedVersion = e.attribute( QStringLiteral( "addedVersion" ) ).toInt();
if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
{
// skip the symbol, should already be present
- e = e.nextSiblingElement();
continue;
}
@@ -3036,7 +3025,6 @@ bool QgsStyle::importXml( const QString &filename, int sinceVersion )
{
QgsDebugMsg( "unknown tag: " + e.tagName() );
}
- e = e.nextSiblingElement();
}
}

View File

@ -0,0 +1,11 @@
--- a/cmake/FindPDAL.cmake 2021-08-05 12:51:21.255398497 +0000
+++ b/cmake/FindPDAL.cmake 2021-08-05 12:51:42.319428567 +0000
@@ -40,7 +40,7 @@ FIND_LIBRARY(PDAL_UTIL_LIBRARY NAMES pda
)
FIND_LIBRARY(PDAL_UTIL_LIBRARY NAMES pdal_util libpdal_util)
-FIND_PROGRAM(PDAL_BIN pdal
+FIND_PROGRAM(PDAL_BIN pdal-config
$ENV{LIB_DIR}/bin
/usr/local/bin/
/usr/bin/

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed Aug 11 18:40:04 UTC 2021 - Jason Craig <os@jacraig.com>
- Add fix-infinite-loop.patch: fix startup of QGIS. This will be
integrated upstream in 3.20.2.
-------------------------------------------------------------------
Thu Aug 5 17:41:56 UTC 2021 - D. Berge <opensuse@navlost.eu>
- Enable PDAL (add qgis-fix-cmake-findpdal.patch)
-------------------------------------------------------------------
Tue Aug 3 08:40:57 UTC 2021 - Dirk Stoecker <opensuse@dstoecker.de>
@ -747,4 +758,3 @@ Wed Sep 11 08:05:44 UTC 2013 - dassau@gbd-consult.de
Mon Sep 9 14:18:59 UTC 2013 - dassau@gbd-consult.de
- start building qgis packages for version 2.x

View File

@ -39,7 +39,12 @@ Patch1: fix-fastcgi-include.patch
Patch2: qgis-fix-missing-qwt-inc.patch
# PATCH-FIX-UPSTREAM - https://github.com/qgis/QGIS/commit/581cb40603dd3daca2916b564a4cd2630d005556
Patch3: qgis-fix-missing-qwt-inc-part2.patch
# PATCH-FIX-UPSTREAM - scan for pdal-config instead of pdal in cmake
Patch4: qgis-fix-cmake-findpdal.patch
# PATCH-FIX-UPSTREAM - gh#qgis/QGIS#44293
Patch5: fix-infinite-loop.patch
BuildRequires: FastCGI-devel
BuildRequires: PDAL-devel
BuildRequires: bison >= 2.4
BuildRequires: cmake >= 3.0.0
BuildRequires: fdupes
@ -117,6 +122,7 @@ BuildRequires: pkgconfig(Qt5Qwt6)
BuildRequires: pkgconfig(gsl) >= 1.8
BuildRequires: pkgconfig(libpq) > 9.4
BuildRequires: pkgconfig(libzip)
BuildRequires: pkgconfig(pdal) >= 2.2.0
BuildRequires: pkgconfig(proj) >= 6.3.1
BuildRequires: pkgconfig(python3) >= 3.7
BuildRequires: pkgconfig(qca2-qt5)
@ -127,6 +133,7 @@ Requires: libQt5Sql5-postgresql
Requires: libQt5Sql5-sqlite
# proj.db is required
Requires: proj
Requires: pdal
Requires: python3-GDAL
Requires: python3-Jinja2
Requires: python3-OWSLib
@ -222,6 +229,7 @@ export PATH=$PATH:$QTDIR/bin
-DWITH_SERVER=TRUE \
-DWITH_SERVER_PLUGINS=TRUE \
-DWITH_POSTGRESQL=TRUE \
-DWITH_PDAL=TRUE \
-DWITH_QTWEBKIT=FALSE \
-DFCGI_INCLUDE_DIR=%{_includedir}/fastcgi \
-DPOSTGRES_LIBRARY=%{_libdir}/libpq.so \