Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-svg for openSUSE:Factory checked 
in at 2021-12-08 22:09:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-svg (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-svg.new.31177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-svg"

Wed Dec  8 22:09:11 2021 rev:11 rq:936321 version:6.2.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-svg/qt6-svg.changes  2021-11-04 
16:09:48.309055088 +0100
+++ /work/SRC/openSUSE:Factory/.qt6-svg.new.31177/qt6-svg.changes       
2021-12-08 22:10:09.622896491 +0100
@@ -1,0 +2,8 @@
+Wed Dec  1 10:06:28 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 6.2.2
+  * https://www.qt.io/blog/qt-6.2.2-released
+- Make sure all dependencies are present when installing devel
+  packages. Qt >= 6.2.2 is much less permissive.
+
+-------------------------------------------------------------------

Old:
----
  qtsvg-everywhere-src-6.2.1.tar.xz

New:
----
  qtsvg-everywhere-src-6.2.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-svg.spec ++++++
--- /var/tmp/diff_new_pack.CapyjW/_old  2021-12-08 22:10:10.098896715 +0100
+++ /var/tmp/diff_new_pack.CapyjW/_new  2021-12-08 22:10:10.098896715 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.2.1
+%define real_version 6.2.2
 %define short_version 6.2
 %define tar_name qtsvg-everywhere-src
 %define tar_suffix %{nil}
@@ -27,7 +27,7 @@
 %endif
 #
 Name:           qt6-svg%{?pkg_suffix}
-Version:        6.2.1
+Version:        6.2.2
 Release:        0
 Summary:        Classes for rendering and displaying SVG drawings
 License:        LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
@@ -72,8 +72,6 @@
 Summary:        Qt 6 SVG libraries - Development files
 Requires:       libQt6Svg6 = %{version}
 Requires:       libQt6SvgWidgets6 = %{version}
-# Dependencies are not detected
-Requires:       cmake(Qt6Core)
 Requires:       cmake(Qt6Gui)
 Requires:       cmake(Qt6Widgets)
 

++++++ qtsvg-everywhere-src-6.2.1.tar.xz -> qtsvg-everywhere-src-6.2.2.tar.xz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/.QT-ENTERPRISE-LICENSE-AGREEMENT 
new/qtsvg-everywhere-src-6.2.2/.QT-ENTERPRISE-LICENSE-AGREEMENT
--- old/qtsvg-everywhere-src-6.2.1/.QT-ENTERPRISE-LICENSE-AGREEMENT     
2021-10-21 18:32:35.807413300 +0200
+++ new/qtsvg-everywhere-src-6.2.2/.QT-ENTERPRISE-LICENSE-AGREEMENT     
2021-11-26 23:02:15.572220600 +0100
@@ -82,7 +82,7 @@
 "Distribution License(s)" shall mean the license required for any kind of sale,
 trade, exchange, loan, lease, rental or other distribution by or on behalf of
 Licensee to a third party of Redistributables in connection with Devices
-ursuant to license grant described in Section 3.3 of this Agreement.
+pursuant to license grant described in Section 3.3 of this Agreement.
 
 "Distribution License Packs" shall mean set of prepaid Distribution Licenses 
for
 distribution of Redistributables, as defined in The Qt Company's standard price
@@ -688,7 +688,7 @@
 or through an in-person visit to Licensee's place of business. Any such
 in-person audit shall be conducted during regular business hours at
 Licensee's facilities and shall not unreasonably interfere with Licensee's
-usiness activities. The Qt Company or the independent auditor acting on
+business activities. The Qt Company or the independent auditor acting on
 behalf of The Qt Company shall be entitled to inspect Licensee's Records
 and conduct necessary interviews of Licensee's relevant employees and
 Contractors. All such Licensee's Records and use thereof shall be subject
@@ -1227,7 +1227,7 @@
 Agreement, for a Renewal Term either as new Start-up Development Licenses
 (if the Licensee still qualifies as a Start-up Company), or as normal
 Development Licenses (if the Licensee no longer qualifies as a Start-up
-ompany).
+company).
 
 APPENDIX 5: NON-COMMERCIAL USE
 The provisions of this Appendix 5 are applicable for non-commercial use of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT
 
new/qtsvg-everywhere-src-6.2.2/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT
--- 
old/qtsvg-everywhere-src-6.2.1/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT
    2021-10-21 18:32:35.807413300 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/.QT-FOR-APPLICATION-DEVELOPMENT-LICENSE-AGREEMENT
    2021-11-26 23:02:15.572220600 +0100
@@ -82,7 +82,7 @@
 "Distribution License(s)" shall mean the license required for any kind of sale,
 trade, exchange, loan, lease, rental or other distribution by or on behalf of
 Licensee to a third party of Redistributables in connection with Devices
-ursuant to license grant described in Section 3.3 of this Agreement.
+pursuant to license grant described in Section 3.3 of this Agreement.
 
 "Distribution License Packs" shall mean set of prepaid Distribution Licenses 
for
 distribution of Redistributables, as defined in The Qt Company's standard price
@@ -688,7 +688,7 @@
 or through an in-person visit to Licensee's place of business. Any such
 in-person audit shall be conducted during regular business hours at
 Licensee's facilities and shall not unreasonably interfere with Licensee's
-usiness activities. The Qt Company or the independent auditor acting on
+business activities. The Qt Company or the independent auditor acting on
 behalf of The Qt Company shall be entitled to inspect Licensee's Records
 and conduct necessary interviews of Licensee's relevant employees and
 Contractors. All such Licensee's Records and use thereof shall be subject
@@ -1227,7 +1227,7 @@
 Agreement, for a Renewal Term either as new Start-up Development Licenses
 (if the Licensee still qualifies as a Start-up Company), or as normal
 Development Licenses (if the Licensee no longer qualifies as a Start-up
-ompany).
+company).
 
 APPENDIX 5: NON-COMMERCIAL USE
 The provisions of this Appendix 5 are applicable for non-commercial use of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT 
new/qtsvg-everywhere-src-6.2.2/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT
--- old/qtsvg-everywhere-src-6.2.1/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT 
2021-10-21 18:32:35.807413300 +0200
+++ new/qtsvg-everywhere-src-6.2.2/.QT-FOR-AUTOMATION-LICENSE-AGREEMENT 
2021-11-26 23:02:15.572220600 +0100
@@ -82,7 +82,7 @@
 "Distribution License(s)" shall mean the license required for any kind of sale,
 trade, exchange, loan, lease, rental or other distribution by or on behalf of
 Licensee to a third party of Redistributables in connection with Devices
-ursuant to license grant described in Section 3.3 of this Agreement.
+pursuant to license grant described in Section 3.3 of this Agreement.
 
 "Distribution License Packs" shall mean set of prepaid Distribution Licenses 
for
 distribution of Redistributables, as defined in The Qt Company's standard price
@@ -688,7 +688,7 @@
 or through an in-person visit to Licensee's place of business. Any such
 in-person audit shall be conducted during regular business hours at
 Licensee's facilities and shall not unreasonably interfere with Licensee's
-usiness activities. The Qt Company or the independent auditor acting on
+business activities. The Qt Company or the independent auditor acting on
 behalf of The Qt Company shall be entitled to inspect Licensee's Records
 and conduct necessary interviews of Licensee's relevant employees and
 Contractors. All such Licensee's Records and use thereof shall be subject
@@ -1227,7 +1227,7 @@
 Agreement, for a Renewal Term either as new Start-up Development Licenses
 (if the Licensee still qualifies as a Start-up Company), or as normal
 Development Licenses (if the Licensee no longer qualifies as a Start-up
-ompany).
+company).
 
 APPENDIX 5: NON-COMMERCIAL USE
 The provisions of this Appendix 5 are applicable for non-commercial use of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT 
new/qtsvg-everywhere-src-6.2.2/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT
--- old/qtsvg-everywhere-src-6.2.1/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT    
2021-10-21 18:32:35.807413300 +0200
+++ new/qtsvg-everywhere-src-6.2.2/.QT-FOR-DEVICE-CREATION-LICENSE-AGREEMENT    
2021-11-26 23:02:15.572220600 +0100
@@ -82,7 +82,7 @@
 "Distribution License(s)" shall mean the license required for any kind of sale,
 trade, exchange, loan, lease, rental or other distribution by or on behalf of
 Licensee to a third party of Redistributables in connection with Devices
-ursuant to license grant described in Section 3.3 of this Agreement.
+pursuant to license grant described in Section 3.3 of this Agreement.
 
 "Distribution License Packs" shall mean set of prepaid Distribution Licenses 
for
 distribution of Redistributables, as defined in The Qt Company's standard price
@@ -688,7 +688,7 @@
 or through an in-person visit to Licensee's place of business. Any such
 in-person audit shall be conducted during regular business hours at
 Licensee's facilities and shall not unreasonably interfere with Licensee's
-usiness activities. The Qt Company or the independent auditor acting on
+business activities. The Qt Company or the independent auditor acting on
 behalf of The Qt Company shall be entitled to inspect Licensee's Records
 and conduct necessary interviews of Licensee's relevant employees and
 Contractors. All such Licensee's Records and use thereof shall be subject
@@ -1227,7 +1227,7 @@
 Agreement, for a Renewal Term either as new Start-up Development Licenses
 (if the Licensee still qualifies as a Start-up Company), or as normal
 Development Licenses (if the Licensee no longer qualifies as a Start-up
-ompany).
+company).
 
 APPENDIX 5: NON-COMMERCIAL USE
 The provisions of this Appendix 5 are applicable for non-commercial use of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.2.1/.cmake.conf 
new/qtsvg-everywhere-src-6.2.2/.cmake.conf
--- old/qtsvg-everywhere-src-6.2.1/.cmake.conf  2021-10-21 08:22:59.000000000 
+0200
+++ new/qtsvg-everywhere-src-6.2.2/.cmake.conf  2021-11-24 03:20:27.000000000 
+0100
@@ -1,2 +1,2 @@
-set(QT_REPO_MODULE_VERSION "6.2.1")
+set(QT_REPO_MODULE_VERSION "6.2.2")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.2.1/.qmake.conf 
new/qtsvg-everywhere-src-6.2.2/.qmake.conf
--- old/qtsvg-everywhere-src-6.2.1/.qmake.conf  2021-10-21 08:22:59.000000000 
+0200
+++ new/qtsvg-everywhere-src-6.2.2/.qmake.conf  2021-11-24 03:20:27.000000000 
+0100
@@ -3,4 +3,4 @@
 CONFIG += warning_clean
 DEFINES += QT_NO_FOREACH
 
-MODULE_VERSION = 6.2.1
+MODULE_VERSION = 6.2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.2.1/.tag 
new/qtsvg-everywhere-src-6.2.2/.tag
--- old/qtsvg-everywhere-src-6.2.1/.tag 2021-10-21 08:22:59.000000000 +0200
+++ new/qtsvg-everywhere-src-6.2.2/.tag 2021-11-24 03:20:27.000000000 +0100
@@ -1 +1 @@
-bb5a847d9b2f388aa348bdd3158b125a77091ccf
+c858f65c04fa5b07f8b8ae539a48d4a89ceb9bac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.2.1/dependencies.yaml 
new/qtsvg-everywhere-src-6.2.2/dependencies.yaml
--- old/qtsvg-everywhere-src-6.2.1/dependencies.yaml    2021-10-21 
08:22:59.000000000 +0200
+++ new/qtsvg-everywhere-src-6.2.2/dependencies.yaml    2021-11-24 
03:20:27.000000000 +0100
@@ -1,4 +1,4 @@
 dependencies:
   ../qtbase:
-    ref: 9fa805f7f8dfe96d561e9ed3170770ad768baf93
+    ref: eae95814a46386f8930eeae5486513a78a7a4ddc
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgfont_p.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgfont_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgfont_p.h   
    2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgfont_p.h   
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvgfont_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvggraphics_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvggraphics_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvggraphics_p.h
   2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvggraphics_p.h
   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvggraphics_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvghandler_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvghandler_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvghandler_p.h
    2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvghandler_p.h
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvghandler_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgnode_p.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgnode_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgnode_p.h   
    2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgnode_p.h   
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvgnode_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgstructure_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgstructure_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgstructure_p.h
  2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgstructure_p.h
  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvgstructure_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgstyle_p.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgstyle_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgstyle_p.h  
    2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgstyle_p.h  
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvgstyle_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgtinydocument_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgtinydocument_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qsvgtinydocument_p.h
       2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qsvgtinydocument_p.h
       1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qsvgtinydocument_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qtsvgglobal_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qtsvgglobal_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.1/QtSvg/private/qtsvgglobal_p.h
    2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.1/QtSvg/private/qtsvgglobal_p.h
    1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-#include "../../../../../src/svg/qtsvgglobal_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgfont_p.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgfont_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgfont_p.h   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgfont_p.h   
    2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvgfont_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvggraphics_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvggraphics_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvggraphics_p.h
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvggraphics_p.h
   2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvggraphics_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvghandler_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvghandler_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvghandler_p.h
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvghandler_p.h
    2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvghandler_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgnode_p.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgnode_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgnode_p.h   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgnode_p.h   
    2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvgnode_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgstructure_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgstructure_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgstructure_p.h
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgstructure_p.h
  2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvgstructure_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgstyle_p.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgstyle_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgstyle_p.h  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgstyle_p.h  
    2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvgstyle_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgtinydocument_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgtinydocument_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qsvgtinydocument_p.h
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qsvgtinydocument_p.h
       2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qsvgtinydocument_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qtsvgglobal_p.h
 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qtsvgglobal_p.h
--- 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/6.2.2/QtSvg/private/qtsvgglobal_p.h
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/6.2.2/QtSvg/private/qtsvgglobal_p.h
    2021-11-24 03:20:27.000000000 +0100
@@ -0,0 +1 @@
+#include "../../../../../src/svg/qtsvgglobal_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvg/qtsvgversion.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvg/qtsvgversion.h
--- old/qtsvg-everywhere-src-6.2.1/include/QtSvg/qtsvgversion.h 2021-10-21 
18:32:35.000000000 +0200
+++ new/qtsvg-everywhere-src-6.2.2/include/QtSvg/qtsvgversion.h 2021-11-26 
23:02:15.000000000 +0100
@@ -2,8 +2,8 @@
 #ifndef QT_QTSVG_VERSION_H
 #define QT_QTSVG_VERSION_H
 
-#define QTSVG_VERSION_STR "6.2.1"
+#define QTSVG_VERSION_STR "6.2.2"
 
-#define QTSVG_VERSION 0x060201
+#define QTSVG_VERSION 0x060202
 
 #endif // QT_QTSVG_VERSION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/include/QtSvgWidgets/qtsvgwidgetsversion.h 
new/qtsvg-everywhere-src-6.2.2/include/QtSvgWidgets/qtsvgwidgetsversion.h
--- old/qtsvg-everywhere-src-6.2.1/include/QtSvgWidgets/qtsvgwidgetsversion.h   
2021-10-21 18:32:35.000000000 +0200
+++ new/qtsvg-everywhere-src-6.2.2/include/QtSvgWidgets/qtsvgwidgetsversion.h   
2021-11-26 23:02:15.000000000 +0100
@@ -2,8 +2,8 @@
 #ifndef QT_QTSVGWIDGETS_VERSION_H
 #define QT_QTSVGWIDGETS_VERSION_H
 
-#define QTSVGWIDGETS_VERSION_STR "6.2.1"
+#define QTSVGWIDGETS_VERSION_STR "6.2.2"
 
-#define QTSVGWIDGETS_VERSION 0x060201
+#define QTSVGWIDGETS_VERSION 0x060202
 
 #endif // QT_QTSVGWIDGETS_VERSION_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.2.1/src/plugins/imageformats/svg/qsvgiohandler.cpp 
new/qtsvg-everywhere-src-6.2.2/src/plugins/imageformats/svg/qsvgiohandler.cpp
--- 
old/qtsvg-everywhere-src-6.2.1/src/plugins/imageformats/svg/qsvgiohandler.cpp   
    2021-10-21 08:22:59.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.2.2/src/plugins/imageformats/svg/qsvgiohandler.cpp   
    2021-11-24 03:20:27.000000000 +0100
@@ -184,6 +184,8 @@
         if (finalSize.isEmpty()) {
             *image = QImage();
         } else {
+            if (qMax(finalSize.width(), finalSize.height()) > 0xffff)
+                return false; // Assume corrupted file
             if (!QImageIOHandler::allocateImage(finalSize, 
QImage::Format_ARGB32_Premultiplied, image))
                 return false;
             image->fill(d->backColor.rgba());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.2.1/src/svg/qsvghandler.cpp 
new/qtsvg-everywhere-src-6.2.2/src/svg/qsvghandler.cpp
--- old/qtsvg-everywhere-src-6.2.1/src/svg/qsvghandler.cpp      2021-10-21 
08:22:59.000000000 +0200
+++ new/qtsvg-everywhere-src-6.2.2/src/svg/qsvghandler.cpp      2021-11-24 
03:20:27.000000000 +0100
@@ -1597,6 +1597,7 @@
 
 static bool parsePathDataFast(QStringView dataStr, QPainterPath &path)
 {
+    const int maxElementCount = 0x7fff; // Assume file corruption if more path 
elements than this
     qreal x0 = 0, y0 = 0;              // starting point
     qreal x = 0, y = 0;                // current point
     char lastMode = 0;
@@ -1604,7 +1605,8 @@
     const QChar *str = dataStr.constData();
     const QChar *end = str + dataStr.size();
 
-    while (str != end) {
+    bool ok = true;
+    while (ok && str != end) {
         while (str->isSpace() && (str + 1) != end)
             ++str;
         QChar pathElem = *str;
@@ -1621,14 +1623,13 @@
             arg.append(0);//dummy
         const qreal *num = arg.constData();
         int count = arg.count();
-        while (count > 0) {
+        while (ok && count > 0) {
             qreal offsetX = x;        // correction offsets
             qreal offsetY = y;        // for relative commands
             switch (pathElem.unicode()) {
             case 'm': {
                 if (count < 2) {
-                    num++;
-                    count--;
+                    ok = false;
                     break;
                 }
                 x = x0 = num[0] + offsetX;
@@ -1645,8 +1646,7 @@
                 break;
             case 'M': {
                 if (count < 2) {
-                    num++;
-                    count--;
+                    ok = false;
                     break;
                 }
                 x = x0 = num[0];
@@ -1672,8 +1672,7 @@
                 break;
             case 'l': {
                 if (count < 2) {
-                    num++;
-                    count--;
+                    ok = false;
                     break;
                 }
                 x = num[0] + offsetX;
@@ -1686,8 +1685,7 @@
                 break;
             case 'L': {
                 if (count < 2) {
-                    num++;
-                    count--;
+                    ok = false;
                     break;
                 }
                 x = num[0];
@@ -1727,8 +1725,7 @@
                 break;
             case 'c': {
                 if (count < 6) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF c1(num[0] + offsetX, num[1] + offsetY);
@@ -1744,8 +1741,7 @@
             }
             case 'C': {
                 if (count < 6) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF c1(num[0], num[1]);
@@ -1761,8 +1757,7 @@
             }
             case 's': {
                 if (count < 4) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF c1;
@@ -1783,8 +1778,7 @@
             }
             case 'S': {
                 if (count < 4) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF c1;
@@ -1805,8 +1799,7 @@
             }
             case 'q': {
                 if (count < 4) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF c(num[0] + offsetX, num[1] + offsetY);
@@ -1821,8 +1814,7 @@
             }
             case 'Q': {
                 if (count < 4) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF c(num[0], num[1]);
@@ -1837,8 +1829,7 @@
             }
             case 't': {
                 if (count < 2) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF e(num[0] + offsetX, num[1] + offsetY);
@@ -1858,8 +1849,7 @@
             }
             case 'T': {
                 if (count < 2) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 QPointF e(num[0], num[1]);
@@ -1879,8 +1869,7 @@
             }
             case 'a': {
                 if (count < 7) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 qreal rx = (*num++);
@@ -1902,8 +1891,7 @@
                 break;
             case 'A': {
                 if (count < 7) {
-                    num += count;
-                    count = 0;
+                    ok = false;
                     break;
                 }
                 qreal rx = (*num++);
@@ -1924,12 +1912,15 @@
             }
                 break;
             default:
-                return false;
+                ok = false;
+                break;
             }
             lastMode = pathElem.toLatin1();
+            if (path.elementCount() > maxElementCount)
+                ok = false;
         }
     }
-    return true;
+    return ok;
 }
 
 static bool parseStyle(QSvgNode *node,
@@ -2987,8 +2978,8 @@
 
     QPainterPath qpath;
     qpath.setFillRule(Qt::WindingFill);
-    //XXX do error handling
-    parsePathDataFast(data, qpath);
+    if (!parsePathDataFast(data, qpath))
+        qCWarning(lcSvgHandler, "Invalid path data; path truncated.");
 
     QSvgNode *path = new QSvgPath(parent, qpath);
     return path;
@@ -3688,7 +3679,7 @@
                 --remainingUnfinishedElements;
             } else {
                 delete m_doc;
-                m_doc = 0;
+                m_doc = nullptr;
                 return;
             }
             break;
@@ -3829,8 +3820,9 @@
                 } else if (node->type() == QSvgNode::TSPAN) {
                     static_cast<QSvgTspan 
*>(node)->setWhitespaceMode(m_whitespaceMode.top());
                 } else if (node->type() == QSvgNode::USE) {
-                    if (!static_cast<QSvgUse *>(node)->isResolved())
-                        m_resolveNodes.append(node);
+                    auto useNode = static_cast<QSvgUse *>(node);
+                    if (!useNode->isResolved())
+                        m_toBeResolved.append(useNode);
                 }
             }
         }
@@ -3937,17 +3929,16 @@
 
 void QSvgHandler::resolveNodes()
 {
-    for (QSvgNode *node : qAsConst(m_resolveNodes)) {
-        if (!node || !node->parent() || node->type() != QSvgNode::USE)
-            continue;
-        QSvgUse *useNode = static_cast<QSvgUse *>(node);
-        if (useNode->isResolved())
+    for (QSvgUse *useNode : qAsConst(m_toBeResolved)) {
+        const auto parent = useNode->parent();
+        if (!parent)
             continue;
-        QSvgNode::Type t = useNode->parent()->type();
-        if (!(t == QSvgNode::DOC || t == QSvgNode::DEFS || t == QSvgNode::G || 
t == QSvgNode::SWITCH))
+
+        QSvgNode::Type t = parent->type();
+        if (t != QSvgNode::DOC && t != QSvgNode::DEFS && t != QSvgNode::G && t 
!= QSvgNode::SWITCH)
             continue;
 
-        QSvgStructureNode *group = static_cast<QSvgStructureNode 
*>(useNode->parent());
+        QSvgStructureNode *group = static_cast<QSvgStructureNode *>(parent);
         QSvgNode *link = group->scopeNode(useNode->linkId());
         if (!link) {
             qCWarning(lcSvgHandler, "link #%s is undefined!", 
qPrintable(useNode->linkId()));
@@ -3959,7 +3950,7 @@
 
         useNode->setLink(link);
     }
-    m_resolveNodes.clear();
+    m_toBeResolved.clear();
 }
 
 bool QSvgHandler::characters(const QStringView str)
@@ -3990,7 +3981,7 @@
     return xml->device();
 }
 
-QSvgTinyDocument * QSvgHandler::document() const
+QSvgTinyDocument *QSvgHandler::document() const
 {
     return m_doc;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.2.1/src/svg/qsvghandler_p.h 
new/qtsvg-everywhere-src-6.2.2/src/svg/qsvghandler_p.h
--- old/qtsvg-everywhere-src-6.2.1/src/svg/qsvghandler_p.h      2021-10-21 
08:22:59.000000000 +0200
+++ new/qtsvg-everywhere-src-6.2.2/src/svg/qsvghandler_p.h      2021-11-24 
03:20:27.000000000 +0100
@@ -144,9 +144,10 @@
     void init();
 
     QSvgTinyDocument *m_doc;
-    QStack<QSvgNode*> m_nodes;
-
-    QList<QSvgNode*>  m_resolveNodes;
+    QStack<QSvgNode *> m_nodes;
+    // TODO: This is only needed during parsing, so it unnecessarily takes up 
space after that.
+    // Temporary container for <use> nodes which haven't been resolved yet.
+    QList<QSvgUse *> m_toBeResolved;
 
     enum CurrentNode
     {

Reply via email to