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 2023-12-04 23:00:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-svg (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-svg.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-svg"

Mon Dec  4 23:00:21 2023 rev:28 rq:1130431 version:6.6.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-svg/qt6-svg.changes  2023-10-17 
20:24:36.762472020 +0200
+++ /work/SRC/openSUSE:Factory/.qt6-svg.new.25432/qt6-svg.changes       
2023-12-04 23:00:38.305736173 +0100
@@ -1,0 +2,9 @@
+Mon Nov 27 14:00:19 UTC 2023 - Christophe Marin <[email protected]>
+
+- Update to 6.6.1:
+  * https://www.qt.io/blog/qt-6.6.1-released
+- Drop patches, merged upstream:
+  * 0001-fix-nullptr-derefence-with-invalid-SVG.patch
+  * 0002-make-sure-we-do-not-load-invalid-SVGs-twice.patch
+
+-------------------------------------------------------------------

Old:
----
  0001-fix-nullptr-derefence-with-invalid-SVG.patch
  0002-make-sure-we-do-not-load-invalid-SVGs-twice.patch
  qtsvg-everywhere-src-6.6.0.tar.xz

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

BETA DEBUG BEGIN:
  Old:- Drop patches, merged upstream:
  * 0001-fix-nullptr-derefence-with-invalid-SVG.patch
  * 0002-make-sure-we-do-not-load-invalid-SVGs-twice.patch
  Old:  * 0001-fix-nullptr-derefence-with-invalid-SVG.patch
  * 0002-make-sure-we-do-not-load-invalid-SVGs-twice.patch
BETA DEBUG END:

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

Other differences:
------------------
++++++ qt6-svg.spec ++++++
--- /var/tmp/diff_new_pack.vWbDUr/_old  2023-12-04 23:00:38.909757521 +0100
+++ /var/tmp/diff_new_pack.vWbDUr/_new  2023-12-04 23:00:38.913757662 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.6.0
+%define real_version 6.6.1
 %define short_version 6.6
 %define tar_name qtsvg-everywhere-src
 %define tar_suffix %{nil}
@@ -27,16 +27,12 @@
 %endif
 #
 Name:           qt6-svg%{?pkg_suffix}
-Version:        6.6.0
+Version:        6.6.1
 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)
 URL:            https://www.qt.io
 Source:         
https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
-# PATCH-FIX-UPSTREAM 0001-fix-nullptr-derefence-with-invalid-SVG.patch 
QTBUG-117944 boo#1216269
-Patch01:        0001-fix-nullptr-derefence-with-invalid-SVG.patch
-# PATCH-FIX-UPSTREAM 0002-make-sure-we-do-not-load-invalid-SVGs-twice.patch 
boo#1216269
-Patch02:        0002-make-sure-we-do-not-load-invalid-SVGs-twice.patch
 Source99:       qt6-svg-rpmlintrc
 BuildRequires:  pkgconfig
 BuildRequires:  qt6-core-private-devel

++++++ qtsvg-everywhere-src-6.6.0.tar.xz -> qtsvg-everywhere-src-6.6.1.tar.xz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.6.0/.cmake.conf 
new/qtsvg-everywhere-src-6.6.1/.cmake.conf
--- old/qtsvg-everywhere-src-6.6.0/.cmake.conf  2023-10-02 05:05:52.000000000 
+0200
+++ new/qtsvg-everywhere-src-6.6.1/.cmake.conf  2023-11-20 06:28:45.000000000 
+0100
@@ -1,3 +1,3 @@
-set(QT_REPO_MODULE_VERSION "6.6.0")
+set(QT_REPO_MODULE_VERSION "6.6.1")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.6.0/.tag 
new/qtsvg-everywhere-src-6.6.1/.tag
--- old/qtsvg-everywhere-src-6.6.0/.tag 2023-10-02 05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/.tag 2023-11-20 06:28:45.000000000 +0100
@@ -1 +1 @@
-da7e04eaa56c54d5486e39d2e0bd0ddb2a62b74b
+18801e1b024dad9401fc655549a6bb123439cfa3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.6.0/dependencies.yaml 
new/qtsvg-everywhere-src-6.6.1/dependencies.yaml
--- old/qtsvg-everywhere-src-6.6.0/dependencies.yaml    2023-10-02 
05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/dependencies.yaml    2023-11-20 
06:28:45.000000000 +0100
@@ -1,4 +1,4 @@
 dependencies:
   ../qtbase:
-    ref: 33f5e985e480283bb0ca9dea5f82643e825ba87c
+    ref: e2cbce919ccefcae2b18f90257d67bc6e24c3c94
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/src/plugins/imageformats/svg/qsvgiohandler.cpp 
new/qtsvg-everywhere-src-6.6.1/src/plugins/imageformats/svg/qsvgiohandler.cpp
--- 
old/qtsvg-everywhere-src-6.6.0/src/plugins/imageformats/svg/qsvgiohandler.cpp   
    2023-10-02 05:05:52.000000000 +0200
+++ 
new/qtsvg-everywhere-src-6.6.1/src/plugins/imageformats/svg/qsvgiohandler.cpp   
    2023-11-20 06:28:45.000000000 +0100
@@ -19,7 +19,7 @@
 {
 public:
     QSvgIOHandlerPrivate(QSvgIOHandler *qq)
-        : q(qq), loaded(false), readDone(false), backColor(Qt::transparent)
+        : q(qq), loadAttempted(false), loadStatus(false), readDone(false), 
backColor(Qt::transparent)
     {}
 
     bool load(QIODevice *device);
@@ -31,7 +31,8 @@
     QRect            clipRect;
     QSize            scaledSize;
     QRect            scaledClipRect;
-    bool             loaded;
+    bool             loadAttempted;
+    bool             loadStatus;
     bool             readDone;
     QColor           backColor;
 };
@@ -39,8 +40,9 @@
 
 bool QSvgIOHandlerPrivate::load(QIODevice *device)
 {
-    if (loaded)
-        return true;
+    if (loadAttempted)
+        return loadStatus;
+    loadAttempted = true;
     if (q->format().isEmpty())
         q->canRead();
 
@@ -63,10 +65,10 @@
 
     if (res) {
         defaultSize = r.defaultSize();
-        loaded = true;
+        loadStatus = true;
     }
 
-    return loaded;
+    return loadStatus;
 }
 
 
@@ -105,7 +107,7 @@
 {
     if (!device())
         return false;
-    if (d->loaded && !d->readDone)
+    if (d->loadStatus && !d->readDone)
         return true;        // Will happen if we have been asked for the size
 
     bool isCompressed = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.6.0/src/svg/qsvggraphics.cpp 
new/qtsvg-everywhere-src-6.6.1/src/svg/qsvggraphics.cpp
--- old/qtsvg-everywhere-src-6.6.0/src/svg/qsvggraphics.cpp     2023-10-02 
05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/src/svg/qsvggraphics.cpp     2023-11-20 
06:28:45.000000000 +0100
@@ -319,8 +319,10 @@
     QFontMetricsF fm(font);
 
     int charCount = 0;
-    for (int i = 0; i < m_tspans.size(); ++i)
-        charCount += m_tspans.at(i)->text().size();
+    for (int i = 0; i < m_tspans.size(); ++i) {
+        if (m_tspans.at(i) != LINEBREAK)
+            charCount += m_tspans.at(i)->text().size();
+    }
 
     QRectF approxMaximumBrect(m_coord.x(),
                               m_coord.y(),
@@ -343,6 +345,9 @@
     qreal originalFontSize = p->font().pointSizeF();
     qreal maxFontSize = originalFontSize;
     for (const QSvgTspan *span : std::as_const(m_tspans)) {
+        if (span == LINEBREAK)
+            continue;
+
         numChars += span->text().size();
 
         QSvgFontStyle *style = static_cast<QSvgFontStyle 
*>(span->styleProperty(QSvgStyleProperty::FONT));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtsvg-everywhere-src-6.6.0/src/svg/qsvghandler.cpp 
new/qtsvg-everywhere-src-6.6.1/src/svg/qsvghandler.cpp
--- old/qtsvg-everywhere-src-6.6.0/src/svg/qsvghandler.cpp      2023-10-02 
05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/src/svg/qsvghandler.cpp      2023-11-20 
06:28:45.000000000 +0100
@@ -3606,6 +3606,8 @@
 
 static bool detectCycles(const QSvgNode *node, QList<const QSvgUse *> active = 
{})
 {
+    if (Q_UNLIKELY(!node))
+        return false;
     switch (node->type()) {
     case QSvgNode::DOC:
     case QSvgNode::G:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/CMakeLists.txt 
new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/CMakeLists.txt
--- old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/CMakeLists.txt 
2023-10-02 05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/CMakeLists.txt 
2023-11-20 06:28:45.000000000 +0100
@@ -37,6 +37,9 @@
     "simple_Utf16BE.svg"
     "simple_Utf32LE.svg"
     "simple_Utf32BE.svg"
+    "invalid_xml.svg"
+    "xml_not_svg.svg"
+    "invalid_then_valid.svg"
 )
 
 qt_internal_add_resource(tst_qsvgplugin "resources"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/invalid_then_valid.svg 
new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/invalid_then_valid.svg
--- old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/invalid_then_valid.svg 
1970-01-01 01:00:00.000000000 +0100
+++ new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/invalid_then_valid.svg 
2023-11-20 06:28:45.000000000 +0100
@@ -0,0 +1,18 @@
+<!-- html-header type=current begin -->
+       
+       <!DOCTYPE html>
+       
+       <html lang="en">
+       <head>
+       <!-- Render IE9 -->
+       <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+       </head>
+
+<body class="anon comments ">
+
+</body></html>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd";>
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg";>
+  <circle cx="50" cy="50" r="25" fill="#00ff00" />
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/invalid_xml.svg 
new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/invalid_xml.svg
--- old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/invalid_xml.svg        
1970-01-01 01:00:00.000000000 +0100
+++ new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/invalid_xml.svg        
2023-11-20 06:28:45.000000000 +0100
@@ -0,0 +1,2 @@
+<!--abcd
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/tst_qsvgplugin.cpp 
new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/tst_qsvgplugin.cpp
--- old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/tst_qsvgplugin.cpp     
2023-10-02 05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/tst_qsvgplugin.cpp     
2023-11-20 06:28:45.000000000 +0100
@@ -67,6 +67,9 @@
     QTest::newRow("wide_size")           << QFINDTESTDATA("wide_size.svg")     
      << 100 << 200;
     QTest::newRow("wide_size_viewbox")   << 
QFINDTESTDATA("wide_size_viewbox.svg")   << 100 << 200;
     QTest::newRow("wide_viewbox")        << QFINDTESTDATA("wide_viewbox.svg")  
      <<  50 << 100;
+    QTest::newRow("invalid_xml")         << QFINDTESTDATA("invalid_xml.svg")   
      <<  0 << 0;
+    QTest::newRow("xml_not_svg")         << QFINDTESTDATA("xml_not_svg.svg")   
      <<  0 << 0;
+    QTest::newRow("invalid_then_valid")  << 
QFINDTESTDATA("invalid_then_valid.svg")  <<  0 << 0;
 }
 
 void tst_QSvgPlugin::checkSize()
@@ -84,10 +87,19 @@
     QImage image;
     plugin.read(&image);
 
+    // Check that plugin survives double load
+    QVariant sizeVariant = plugin.option(QImageIOHandler::Size);
+
     file.close();
 
     QCOMPARE(imageHeight, image.height());
     QCOMPARE(imageWidth, image.width());
+
+    QSize size = qvariant_cast<QSize>(sizeVariant);
+    if (size.isEmpty())
+        size = QSize(0, 0); // don't distinguish between null and invalid QSize
+    QCOMPARE(size.width(), imageWidth);
+    QCOMPARE(size.height(), imageHeight);
 }
 
 void tst_QSvgPlugin::checkImageInclude()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/xml_not_svg.svg 
new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/xml_not_svg.svg
--- old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgplugin/xml_not_svg.svg        
1970-01-01 01:00:00.000000000 +0100
+++ new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgplugin/xml_not_svg.svg        
2023-11-20 06:28:45.000000000 +0100
@@ -0,0 +1,13 @@
+<!-- html-header type=current begin -->
+       
+       <!DOCTYPE html>
+       
+       <html lang="en">
+       <head>
+       <!-- Render IE9 -->
+       <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+       </head>
+
+<body class="anon comments ">
+
+</body></html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp 
new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
--- old/qtsvg-everywhere-src-6.6.0/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp 
2023-10-02 05:05:52.000000000 +0200
+++ new/qtsvg-everywhere-src-6.6.1/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp 
2023-11-20 06:28:45.000000000 +0100
@@ -64,6 +64,7 @@
     void imageRendering();
     void illegalAnimateTransform_data();
     void illegalAnimateTransform();
+    void tSpanLineBreak();
 
 #ifndef QT_NO_COMPRESS
     void testGzLoading();
@@ -1709,5 +1710,17 @@
     QVERIFY(!renderer.load(svg)); // also shouldn't assert
 }
 
+void tst_QSvgRenderer::tSpanLineBreak()
+{
+    QSvgRenderer renderer;
+    
QVERIFY(renderer.load(QByteArray("<svg><textArea>Foo<tbreak/>Bar</textArea></svg>")));
+
+    QImage img(50, 50, QImage::Format_ARGB32);
+    {
+        QPainter p(&img);
+        renderer.render(&p); // Don't crash
+    }
+}
+
 QTEST_MAIN(tst_QSvgRenderer)
 #include "tst_qsvgrenderer.moc"

Reply via email to