Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-ksvg for openSUSE:Factory 
checked in at 2025-10-12 22:22:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-ksvg (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-ksvg.new.18484 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-ksvg"

Sun Oct 12 22:22:41 2025 rev:22 rq:1310872 version:6.19.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-ksvg/kf6-ksvg.changes        2025-09-15 
19:53:38.428953216 +0200
+++ /work/SRC/openSUSE:Factory/.kf6-ksvg.new.18484/kf6-ksvg.changes     
2025-10-12 22:23:49.500368075 +0200
@@ -1,0 +2,13 @@
+Tue Oct  7 17:06:25 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 6.19.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.19.0
+- Changes since 6.18.0:
+  * Update dependency version to 6.19.0
+  * Use alphaMask for the overlay only when the svg actually has a mask 
(kde#510157)
+  * Restrict shared rendering to the main thread
+  * Update version to 6.19.0
+
+-------------------------------------------------------------------

Old:
----
  ksvg-6.18.0.tar.xz
  ksvg-6.18.0.tar.xz.sig

New:
----
  ksvg-6.19.0.tar.xz
  ksvg-6.19.0.tar.xz.sig

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

Other differences:
------------------
++++++ kf6-ksvg.spec ++++++
--- /var/tmp/diff_new_pack.q6cMBJ/_old  2025-10-12 22:23:50.392405427 +0200
+++ /var/tmp/diff_new_pack.q6cMBJ/_new  2025-10-12 22:23:50.396405594 +0200
@@ -19,11 +19,11 @@
 %define qt6_version 6.8.0
 
 %define rname ksvg
-# Full KF6 version (e.g. 6.18.0)
+# Full KF6 version (e.g. 6.19.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-ksvg
-Version:        6.18.0
+Version:        6.19.0
 Release:        0
 Summary:        Components for handling SVGs
 License:        GPL-2.0-or-later

++++++ 0001-Revert-Support-for-fractional-scaling.patch ++++++
--- /var/tmp/diff_new_pack.q6cMBJ/_old  2025-10-12 22:23:50.420406599 +0200
+++ /var/tmp/diff_new_pack.q6cMBJ/_new  2025-10-12 22:23:50.424406767 +0200
@@ -14,10 +14,10 @@
  src/ksvg/svg.cpp                        |  27 ++++---
  7 files changed, 115 insertions(+), 120 deletions(-)
 
-Index: 
ksvg-6.11.0git.20250811T093804~2c80c729/src/declarativeimports/framesvgitem.cpp
+Index: 
ksvg-6.11.0git.20251003T150812~dc56f395/src/declarativeimports/framesvgitem.cpp
 ===================================================================
---- 
ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/declarativeimports/framesvgitem.cpp
       2025-08-11 09:38:04.000000000 +0200
-+++ 
ksvg-6.11.0git.20250811T093804~2c80c729/src/declarativeimports/framesvgitem.cpp 
   2025-08-12 08:15:29.067807321 +0200
+--- 
ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/declarativeimports/framesvgitem.cpp
       2025-10-03 15:08:12.000000000 +0200
++++ 
ksvg-6.11.0git.20251003T150812~dc56f395/src/declarativeimports/framesvgitem.cpp 
   2025-10-04 08:39:20.427455931 +0200
 @@ -122,7 +122,7 @@
  
      void reposition(const QRect &frameGeometry, QSize &fullSize)
@@ -48,10 +48,10 @@
      if (newDevicePixelRatio != m_frameSvg->devicePixelRatio()) {
          m_frameSvg->setDevicePixelRatio(newDevicePixelRatio);
          m_textureChanged = true;
-Index: 
ksvg-6.11.0git.20250811T093804~2c80c729/src/declarativeimports/svgitem.cpp
+Index: 
ksvg-6.11.0git.20251003T150812~dc56f395/src/declarativeimports/svgitem.cpp
 ===================================================================
---- 
ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/declarativeimports/svgitem.cpp 
   2025-08-11 09:38:04.000000000 +0200
-+++ ksvg-6.11.0git.20250811T093804~2c80c729/src/declarativeimports/svgitem.cpp 
2025-08-12 08:15:29.067881892 +0200
+--- 
ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/declarativeimports/svgitem.cpp 
   2025-10-03 15:08:12.000000000 +0200
++++ ksvg-6.11.0git.20251003T150812~dc56f395/src/declarativeimports/svgitem.cpp 
2025-10-04 08:39:20.427590912 +0200
 @@ -16,6 +16,8 @@
  
  #include "managedtexturenode.h"
@@ -73,10 +73,10 @@
      if (newDevicePixelRatio != m_svg->devicePixelRatio()) {
          m_svg->setDevicePixelRatio(newDevicePixelRatio);
          m_textureChanged = true;
-Index: ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/framesvg.cpp
+Index: ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/framesvg.cpp
 ===================================================================
---- ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/ksvg/framesvg.cpp 
2025-08-11 09:38:04.000000000 +0200
-+++ ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/framesvg.cpp      
2025-08-12 08:16:47.526164788 +0200
+--- ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/ksvg/framesvg.cpp 
2025-10-03 15:08:12.000000000 +0200
++++ ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/framesvg.cpp      
2025-10-04 08:39:57.309927750 +0200
 @@ -15,7 +15,7 @@
  #include <QCryptographicHash>
  #include <QPainter>
@@ -86,7 +86,7 @@
  #include <QStringBuilder>
  #include <QTimer>
  
-@@ -196,7 +196,7 @@
+@@ -194,7 +194,7 @@
  QSizeF FrameSvg::frameSize() const
  {
      if (!d->frame) {
@@ -95,7 +95,7 @@
      } else {
          return d->frameSize(d->frame.data());
      }
-@@ -492,6 +492,9 @@
+@@ -490,6 +490,9 @@
  
      if (maskFrame->cachedBackground.isNull()) {
          generateBackground(maskFrame);
@@ -105,7 +105,7 @@
      }
  
      return maskFrame->cachedBackground;
-@@ -556,8 +559,8 @@
+@@ -554,8 +557,8 @@
      }
  
      // Overlays
@@ -116,7 +116,16 @@
      if (overlayAvailable && !overlayCached) {
          overlaySize = q->elementSize(frame->prefix % 
QLatin1String("overlay")).toSize();
  
-@@ -583,13 +586,13 @@
+@@ -582,7 +585,7 @@
+         if (q->hasElement(QLatin1String("mask-") % prefix % 
QLatin1String("center"))) {
+             overlay = alphaMask();
+         } else {
+-            overlay = QPixmap(overlaySize.toSize());
++            overlay = QPixmap(overlaySize);
+             overlay.fill(Qt::white);
+         }
+         QPainter overlayPainter(&overlay);
+@@ -590,13 +593,13 @@
          // Tiling?
          if (q->hasElement(frame->prefix % 
QLatin1String("hint-overlay-tile-horizontal"))
              || q->hasElement(frame->prefix % 
QLatin1String("hint-overlay-tile-vertical"))) {
@@ -133,7 +142,7 @@
          }
  
          overlayPainter.end();
-@@ -602,14 +605,14 @@
+@@ -609,14 +612,14 @@
      if (!overlay.isNull()) {
          QPainter p(&frame->cachedBackground);
          p.setCompositionMode(QPainter::CompositionMode_SourceOver);
@@ -150,7 +159,7 @@
  
      if (!size.isValid()) {
  #ifndef NDEBUG
-@@ -622,14 +625,13 @@
+@@ -629,14 +632,13 @@
          return;
      }
  
@@ -167,7 +176,7 @@
      paintCenter(p, frame, contentRect, size);
  
      paintCorner(p, frame, FrameSvg::LeftBorder | FrameSvg::TopBorder, 
contentRect);
-@@ -638,26 +640,25 @@
+@@ -645,26 +647,25 @@
      paintCorner(p, frame, FrameSvg::RightBorder | FrameSvg::BottomBorder, 
contentRect);
  
      // Sides
@@ -206,7 +215,7 @@
      if (frame->enabledBorders & FrameSvg::LeftBorder && 
q->hasElement(frame->prefix % QLatin1String("left"))) {
          contentRect.translate(frame->leftWidth * q->devicePixelRatio(), 0);
      }
-@@ -679,7 +680,7 @@
+@@ -686,7 +687,7 @@
  
          const QString oldPath = fd->imagePath;
          const FrameSvg::EnabledBorders oldBorders = fd->enabledBorders;
@@ -215,7 +224,7 @@
          const int oldColorSet = fd->colorSet;
          const auto oldColors = fd->colorOverrides;
  
-@@ -744,28 +745,27 @@
+@@ -751,28 +752,27 @@
      }
  }
  
@@ -250,7 +259,7 @@
              } else {
                  q->paint(&p, FrameSvgHelpers::sectionRect(FrameSvg::NoBorder, 
contentRect, fullSize * q->devicePixelRatio()), centerElementId);
              }
-@@ -774,7 +774,7 @@
+@@ -781,7 +781,7 @@
  
      if (frame->composeOverBorder) {
          p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
@@ -259,7 +268,7 @@
          p.setCompositionMode(QPainter::CompositionMode_SourceOver);
      }
  }
-@@ -782,51 +782,35 @@
+@@ -789,51 +789,35 @@
  void FrameSvgPrivate::paintBorder(QPainter &p,
                                    const QSharedPointer<FrameData> &frame,
                                    const FrameSvg::EnabledBorders borders,
@@ -318,7 +327,7 @@
      }
  }
  
-@@ -884,7 +868,7 @@
+@@ -891,7 +875,7 @@
      // qCDebug(LOG_KSVG) << "!!!!!!!!!!!!!!!!!!!!!! updating sizes" << prefix;
      Q_ASSERT(frame);
  
@@ -327,10 +336,10 @@
      q->resize();
      if (!frame->cachedBackground.isNull()) {
          frame->cachedBackground = QPixmap();
-Index: 
ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/private/framesvg_helpers.h
+Index: 
ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/private/framesvg_helpers.h
 ===================================================================
---- 
ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/ksvg/private/framesvg_helpers.h
   2025-08-11 09:38:04.000000000 +0200
-+++ 
ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/private/framesvg_helpers.h     
   2025-08-12 08:15:29.068089004 +0200
+--- 
ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/ksvg/private/framesvg_helpers.h
   2025-10-03 15:08:12.000000000 +0200
++++ 
ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/private/framesvg_helpers.h     
   2025-10-04 08:39:20.427793984 +0200
 @@ -45,7 +45,7 @@
  /*
   * Returns the suggested geometry for the borders given a fullSize frame size 
and a contentRect
@@ -377,10 +386,10 @@
  }
  
  }
-Index: ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/private/framesvg_p.h
+Index: ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/private/framesvg_p.h
 ===================================================================
---- ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/ksvg/private/framesvg_p.h 
2025-08-11 09:38:04.000000000 +0200
-+++ ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/private/framesvg_p.h      
2025-08-12 08:15:29.068123304 +0200
+--- ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/ksvg/private/framesvg_p.h 
2025-10-03 15:08:12.000000000 +0200
++++ ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/private/framesvg_p.h      
2025-10-04 08:39:20.427844144 +0200
 @@ -80,39 +80,38 @@
      static const int MAX_CACHED_MASKS = 10;
      uint lastModified = 0;
@@ -485,11 +494,11 @@
  
      static QHash<ImageSetPrivate *, QHash<uint, QWeakPointer<FrameData>>> 
s_sharedFrames;
  
-Index: ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/private/svg_p.h
+Index: ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/private/svg_p.h
 ===================================================================
---- ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/ksvg/private/svg_p.h      
2025-08-11 09:38:04.000000000 +0200
-+++ ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/private/svg_p.h   
2025-08-12 08:15:29.068192265 +0200
-@@ -140,8 +140,8 @@
+--- ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/ksvg/private/svg_p.h      
2025-10-03 15:08:12.000000000 +0200
++++ ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/private/svg_p.h   
2025-10-04 08:39:20.427878994 +0200
+@@ -141,8 +141,8 @@
      void setNaturalSize(const QString &path, const QSizeF &size);
      QSizeF naturalSize(const QString &path);
  
@@ -500,7 +509,7 @@
  
      QString iconThemePath();
      void setIconThemePath(const QString &path);
-@@ -168,7 +168,7 @@
+@@ -169,7 +169,7 @@
       */
      QHash<size_t, QRectF> m_localRectCache;
      QHash<QString, QSet<unsigned int>> m_invalidElements;
@@ -509,10 +518,10 @@
      QHash<QString, unsigned int> m_lastModifiedTimes;
  };
  }
-Index: ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/svg.cpp
+Index: ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/svg.cpp
 ===================================================================
---- ksvg-6.11.0git.20250811T093804~2c80c729.orig/src/ksvg/svg.cpp      
2025-08-11 09:38:04.000000000 +0200
-+++ ksvg-6.11.0git.20250811T093804~2c80c729/src/ksvg/svg.cpp   2025-08-12 
08:15:29.068274376 +0200
+--- ksvg-6.11.0git.20251003T150812~dc56f395.orig/src/ksvg/svg.cpp      
2025-10-03 15:08:12.000000000 +0200
++++ ksvg-6.11.0git.20251003T150812~dc56f395/src/ksvg/svg.cpp   2025-10-04 
08:39:20.427937765 +0200
 @@ -273,7 +273,7 @@
      QMetaObject::invokeMethod(m_configSyncTimer, qOverload<>(&QTimer::start));
  }
@@ -553,7 +562,7 @@
  
          if (!elementSizeHints.isEmpty()) {
              QSizeF bestFit(-1, -1);
-@@ -878,11 +878,18 @@
+@@ -890,11 +890,18 @@
  
  void Svg::setDevicePixelRatio(qreal ratio)
  {
@@ -573,7 +582,7 @@
  
      Q_EMIT repaintNeeded();
  }
-@@ -910,7 +917,7 @@
+@@ -922,7 +929,7 @@
  void Svg::paint(QPainter *painter, const QPointF &point, const QString 
&elementID)
  {
      Q_ASSERT(painter->device());
@@ -582,7 +591,7 @@
      QPixmap pix((elementID.isNull() || d->multipleImages) ? 
d->findInCache(elementID, ratio, size()) : d->findInCache(elementID, ratio));
  
      if (pix.isNull()) {
-@@ -928,16 +935,16 @@
+@@ -940,16 +947,16 @@
  void Svg::paint(QPainter *painter, const QRectF &rect, const QString 
&elementID)
  {
      Q_ASSERT(painter->device());


++++++ ksvg-6.18.0.tar.xz -> ksvg-6.19.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.18.0/CMakeLists.txt 
new/ksvg-6.19.0/CMakeLists.txt
--- old/ksvg-6.18.0/CMakeLists.txt      2025-09-08 10:14:36.000000000 +0200
+++ new/ksvg-6.19.0/CMakeLists.txt      2025-10-05 14:39:10.000000000 +0200
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "6.18.0") # handled by release scripts
-set(KF_DEP_VERSION "6.18.0") # handled by release scripts
+set(KF_VERSION "6.19.0") # handled by release scripts
+set(KF_DEP_VERSION "6.19.0") # handled by release scripts
 project(KSvg VERSION ${KF_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 6.18.0  NO_MODULE)
+find_package(ECM 6.19.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
@@ -55,7 +55,7 @@
 
 ecm_set_disabled_deprecation_versions(
     QT 6.10.0
-    KF 6.17.0
+    KF 6.18.0
 )
 
 #add_definitions(-Wno-deprecated)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.18.0/src/ksvg/framesvg.cpp 
new/ksvg-6.19.0/src/ksvg/framesvg.cpp
--- old/ksvg-6.18.0/src/ksvg/framesvg.cpp       2025-09-08 10:14:36.000000000 
+0200
+++ new/ksvg-6.19.0/src/ksvg/framesvg.cpp       2025-10-05 14:39:10.000000000 
+0200
@@ -575,7 +575,16 @@
             }
         }
 
-        overlay = alphaMask();
+        // Only search for alphaMask if we actually have a mask element, 
because
+        // alphamask will fallback using the background image itself as mask, 
which
+        // can call generateBackground(), leading to an infinite recursion
+        // see BUG:510157
+        if (q->hasElement(QLatin1String("mask-") % prefix % 
QLatin1String("center"))) {
+            overlay = alphaMask();
+        } else {
+            overlay = QPixmap(overlaySize.toSize());
+            overlay.fill(Qt::white);
+        }
         QPainter overlayPainter(&overlay);
         overlayPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
         // Tiling?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.18.0/src/ksvg/private/imageset_p.cpp 
new/ksvg-6.19.0/src/ksvg/private/imageset_p.cpp
--- old/ksvg-6.18.0/src/ksvg/private/imageset_p.cpp     2025-09-08 
10:14:36.000000000 +0200
+++ new/ksvg-6.19.0/src/ksvg/private/imageset_p.cpp     2025-10-05 
14:39:10.000000000 +0200
@@ -9,7 +9,6 @@
 #include "debug_p.h"
 #include "framesvg.h"
 #include "framesvg_p.h"
-#include "imageset.h"
 #include "svg_p.h"
 
 #include <QDir>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ksvg-6.18.0/src/ksvg/svg.cpp 
new/ksvg-6.19.0/src/ksvg/svg.cpp
--- old/ksvg-6.18.0/src/ksvg/svg.cpp    2025-09-08 10:14:36.000000000 +0200
+++ new/ksvg-6.19.0/src/ksvg/svg.cpp    2025-10-05 14:39:10.000000000 +0200
@@ -661,6 +661,10 @@
 
     styleCrc = qChecksum(QByteArrayView(styleSheet.toUtf8().constData(), 
styleSheet.size()));
 
+    // If the KSVG lives on the main thread (the majority case) share a 
renderer
+    // For other uses we should not as QSvgRenderer is not thread safe.
+    // We cannot compare the current thread as this might be hit from the 
render thread in updatePaintNode for KSVG objects living on the main thread
+    if (q->thread() == qGuiApp->thread())
     {
         std::shared_lock lock(s_renderersLock);
         QHash<QString, SharedSvgRenderer::Ptr>::const_iterator it = 
s_renderers.constFind(styleCrc + path);

Reply via email to