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 2026-06-16 13:51:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kf6-ksvg (Old) and /work/SRC/openSUSE:Factory/.kf6-ksvg.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-ksvg" Tue Jun 16 13:51:56 2026 rev:30 rq:1358908 version:6.27.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kf6-ksvg/kf6-ksvg.changes 2026-05-11 16:57:54.602214343 +0200 +++ /work/SRC/openSUSE:Factory/.kf6-ksvg.new.1981/kf6-ksvg.changes 2026-06-16 13:56:56.902069947 +0200 @@ -1,0 +2,17 @@ +Sat Jun 6 11:42:21 UTC 2026 - Christophe Marin <[email protected]> + +- Update to 6.27.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.27.0 +- Changes since 6.26.0: + * Update dependency version to 6.27.0 + * Svg: clear stylesheetOverride on imageSetChanged (kde#503671) + * Svg: make eventFilter public again + * CMake config file: remove duplicated targets include + * Drop accidental duplicate QML registration + * Remove unused ECM module + * Add basic test for SvgItem + * Update version to 6.27.0 + +------------------------------------------------------------------- Old: ---- ksvg-6.26.0.tar.xz ksvg-6.26.0.tar.xz.sig New: ---- ksvg-6.27.0.tar.xz ksvg-6.27.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kf6-ksvg.spec ++++++ --- /var/tmp/diff_new_pack.rWbYmW/_old 2026-06-16 13:56:58.910153814 +0200 +++ /var/tmp/diff_new_pack.rWbYmW/_new 2026-06-16 13:56:58.910153814 +0200 @@ -19,11 +19,11 @@ %define qt6_version 6.9.0 %define rname ksvg -# Full KF6 version (e.g. 6.26.0) +# Full KF6 version (e.g. 6.27.0) %{!?_kf6_version: %global _kf6_version %{version}} %bcond_without released Name: kf6-ksvg -Version: 6.26.0 +Version: 6.27.0 Release: 0 Summary: Components for handling SVGs License: GPL-2.0-or-later ++++++ ksvg-6.26.0.tar.xz -> ksvg-6.27.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/CMakeLists.txt new/ksvg-6.27.0/CMakeLists.txt --- old/ksvg-6.26.0/CMakeLists.txt 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/CMakeLists.txt 2026-06-05 17:49:14.000000000 +0200 @@ -1,12 +1,12 @@ cmake_minimum_required(VERSION 3.29) -set(KF_VERSION "6.26.0") # handled by release scripts -set(KF_DEP_VERSION "6.26.0") # handled by release scripts +set(KF_VERSION "6.27.0") # handled by release scripts +set(KF_DEP_VERSION "6.27.0") # handled by release scripts project(KSvg VERSION ${KF_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 6.26.0 NO_MODULE) +find_package(ECM 6.27.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) @@ -23,7 +23,6 @@ include(ECMSetupVersion) include(ECMQtDeclareLoggingCategory) include(KDEPackageAppTemplates) -include(ECMGenerateQmlTypes) include(ECMMarkNonGuiExecutable) include(ECMDeprecationSettings) include(ECMQmlModule) @@ -55,7 +54,7 @@ ecm_set_disabled_deprecation_versions( QT 6.11.0 - KF 6.23.0 + KF 6.26.0 ) #add_definitions(-Wno-deprecated) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/KF6SvgConfig.cmake.in new/ksvg-6.27.0/KF6SvgConfig.cmake.in --- old/ksvg-6.26.0/KF6SvgConfig.cmake.in 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/KF6SvgConfig.cmake.in 2026-06-05 17:49:14.000000000 +0200 @@ -2,8 +2,6 @@ # Any changes in this ".cmake" file will be overwritten by CMake, the source is the ".cmake.in" file. -include("${CMAKE_CURRENT_LIST_DIR}/KF6SvgTargets.cmake") - set(KSvg_INSTALL_PREFIX "@PACKAGE_CMAKE_INSTALL_PREFIX@") set(KSvg_LIBRARIES KF6::Svg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/CMakeLists.txt new/ksvg-6.27.0/autotests/CMakeLists.txt --- old/ksvg-6.26.0/autotests/CMakeLists.txt 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/autotests/CMakeLists.txt 2026-06-05 17:49:14.000000000 +0200 @@ -9,7 +9,7 @@ MACRO(KSVG_UNIT_TESTS) FOREACH(_testname ${ARGN}) - set(libs Qt6::Qml Qt6::Test KF6::Svg + set(libs Qt6::Qml Qt6::Test KF6::Svg Qt6::Svg KF6::Archive KF6::CoreAddons KF6::ConfigGui KF6::ColorScheme) if(QT_QTOPENGL_FOUND) list(APPEND libs Qt6::OpenGL) @@ -27,5 +27,6 @@ framesvgtest imagesettest svgtest + itemtest ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/element.svg new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/element.svg --- old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/element.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/element.svg 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1 @@ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/metadata.json new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/metadata.json --- old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/metadata.json 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/metadata.json 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1,18 @@ +{ + "KPlugin": { + "Authors": [ + { + "Email": "[email protected]", + "Name": "KDE Visual Design Group" + } + ], + "Category": "", + "EnabledByDefault": true, + "Id": "default", + "License": "LGPL", + "Name": "Plasma test theme", + "Version": "5.20", + "Website": "https://plasma.kde.org" + }, + "X-Plasma-API": "5.0" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/opaque/element.svg new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/opaque/element.svg --- old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/opaque/element.svg 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/opaque/element.svg 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1 @@ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/plasmarc new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/plasmarc --- old/ksvg-6.26.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/plasmarc 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/autotests/data/plasma/desktoptheme/testthemesystemcolors/plasmarc 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1,5 @@ +[ContrastEffect] +enabled=true +contrast=0.23 +intensity=2.0 +saturation=1.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/itemtest.cpp new/ksvg-6.27.0/autotests/itemtest.cpp --- old/ksvg-6.26.0/autotests/itemtest.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/autotests/itemtest.cpp 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1,92 @@ +/* + * SPDX-FileCopyrightText: 2026 Nicolas Fella <[email protected]> + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +#include <QDirIterator> +#include <QGuiApplication> +#include <QQmlApplicationEngine> +#include <QQmlComponent> +#include <QStandardPaths> +#include <QTest> + +#include <KSvg/ImageSet> +#include <KSvg/Svg> + +class ItemTest : public QObject +{ + Q_OBJECT + +public Q_SLOTS: + void initTestCase(); + void cleanupTestCase(); + +private Q_SLOTS: + void testItem(); + +private: + QDir m_themeDir; +}; + +void copyDirectory(const QString &srcDir, const QString &dstDir) +{ + QDir targetDir(dstDir); + QDirIterator it(srcDir, QDir::Filters(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Name), QDirIterator::Subdirectories); + while (it.hasNext()) { + it.next(); + QString path = it.filePath(); + QString relDestPath = path.last(it.filePath().length() - srcDir.length() - 1); + if (it.fileInfo().isDir()) { + QVERIFY(targetDir.mkpath(relDestPath)); + } else { + QVERIFY(QFile::copy(path, dstDir % '/' % relDestPath)); + } + } +} + +void ItemTest::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); + + m_themeDir = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) % '/' % "plasma"); + m_themeDir.removeRecursively(); + + copyDirectory(QFINDTESTDATA("data/plasma"), m_themeDir.absolutePath()); + + m_themeDir.mkpath("desktoptheme/testtheme/widgets"); + QVERIFY(QFile::copy(QFINDTESTDATA("data/background.svgz"), m_themeDir.absolutePath() + "/desktoptheme/testtheme/widgets/background.svgz")); +} + +void ItemTest::cleanupTestCase() +{ + m_themeDir.removeRecursively(); +} + +void ItemTest::testItem() +{ + auto set = std::make_unique<KSvg::ImageSet>(); + set->setBasePath("plasma/desktoptheme"); + set->setImageSetName("testtheme"); + + QQmlEngine engine; + QQmlComponent comp(&engine, QFINDTESTDATA("itemtest.qml")); + auto item = comp.create(); + QVERIFY(item); + + auto svg = item->property("svg").value<KSvg::Svg *>(); + QVERIFY(svg); + + QVERIFY(svg->isValid()); + QCOMPARE(svg->imageSet()->imageSetName(), "testtheme"); + QCOMPARE(svg->imagePath(), "widgets/background"); + + QCOMPARE(item->property("naturalSize"), QSizeF(148, 148)); + QCOMPARE(item->property("elementRect"), QRectF(0, 0, 148, 148)); + + delete item; +} + +#include "itemtest.moc" + +QTEST_MAIN(ItemTest); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/itemtest.qml new/ksvg-6.27.0/autotests/itemtest.qml --- old/ksvg-6.26.0/autotests/itemtest.qml 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/autotests/itemtest.qml 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1,14 @@ +/* + * SPDX-FileCopyrightText: 2026 Nicolas Fella <[email protected]> + * + * SPDX-License-Identifier: LGPL-2.0-or-later + */ + +import QtQuick + +import org.kde.ksvg as KSvg + +KSvg.SvgItem { + imagePath: "widgets/background" + anchors.fill: parent +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/autotests/svgtest.cpp new/ksvg-6.27.0/autotests/svgtest.cpp --- old/ksvg-6.26.0/autotests/svgtest.cpp 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/autotests/svgtest.cpp 2026-06-05 17:49:14.000000000 +0200 @@ -4,13 +4,17 @@ * SPDX-License-Identifier: LGPL-2.0-or-later */ -#include "svg.h" - #include <QDirIterator> #include <QSignalSpy> #include <QTest> #include <KColorScheme> +#include <KConfigGroup> + +// Cursed way to access SvgPrivate +#define private public +#include "../src/ksvg/private/svg_p.h" +#include "svg.h" using namespace Qt::Literals; @@ -21,11 +25,13 @@ public Q_SLOTS: void initTestCase(); void cleanupTestCase(); + void cleanup(); private Q_SLOTS: void testSize(); void testElements(); void testColors(); + void testStylesheetOverrideColorChange(); private: KSvg::Svg *m_svg; @@ -71,6 +77,13 @@ m_themeDir.removeRecursively(); } +void SvgTest::cleanup() +{ + auto config = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); + KConfigGroup cg(config, "Colors:Window"); + cg.deleteEntry("BackgroundNormal"); +} + void SvgTest::testSize() { QSignalSpy spy(m_svg, &KSvg::Svg::sizeChanged); @@ -150,6 +163,39 @@ QCOMPARE(m_svg->color(KSvg::Svg::Text), viewColors.foreground(KColorScheme::NormalText)); } +void SvgTest::testStylesheetOverrideColorChange() +{ + auto config = KSharedConfig::openConfig(QStringLiteral("kdeglobals")); + KColorScheme windowColors(QPalette::Normal, KColorScheme::Window, config); + auto set = new KSvg::ImageSet("testthemesystemcolors", "plasma/desktoptheme"); + m_svg->setImageSet(set); + // Set a color override in the svg + m_svg->setColor(KSvg::Svg::Text, Qt::blue); + // set->setImageSetName(QStringLiteral("testthemesystemcolors")); + + QSignalSpy spy(set, &KSvg::ImageSet::imageSetChanged); + + QCOMPARE(m_svg->color(KSvg::Svg::Text), Qt::blue); + + // Generate pixmap and stylesheet + m_svg->pixmap(); + // Since we set a color, stylesheetOverride must be present + QVERIFY(!m_svg->d->stylesheetOverride.isEmpty()); + + // Simulate an application color scheme change, setting background to red + QPalette pal = qApp->palette(); + KConfigGroup cg(config, "Colors:Window"); + cg.writeEntry("BackgroundNormal", QStringLiteral("255,0,0")); + KColorScheme::adjustForeground(pal, KColorScheme::NormalText, QPalette::WindowText, KColorScheme::Window, config); + config->sync(); + qApp->setPalette(pal); + // Wait the app color change is completely done, then regenerate pixmaps and stylesheets + QVERIFY(spy.wait()); + m_svg->pixmap(); + // The background in stylesheetoverride is now red + QVERIFY(m_svg->d->stylesheetOverride.contains(QStringLiteral(".ColorScheme-Background{color:#ff0000;}"))); +} + QTEST_MAIN(SvgTest) #include "svgtest.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/po/ug/libksvg6.po new/ksvg-6.27.0/po/ug/libksvg6.po --- old/ksvg-6.26.0/po/ug/libksvg6.po 1970-01-01 01:00:00.000000000 +0100 +++ new/ksvg-6.27.0/po/ug/libksvg6.po 2026-06-05 17:49:14.000000000 +0200 @@ -0,0 +1,29 @@ +# Uyghur translation for libksvg6. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the ksvg package. +# Abduqadir Abliz <[email protected]>, 2026., YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: ksvg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2025-11-17 11:49+0000\n" +"PO-Revision-Date: 2026-05-31 19:45-0400\n" +"Last-Translator: Abduqadir Abliz <[email protected]>\n" +"Language-Team: Uyghur <[email protected]>\n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.9\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ئابدۇقادىر ئابلىز، غەيرەت كەنجى" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "[email protected], [email protected]" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/src/declarativeimports/types.h new/ksvg-6.27.0/src/declarativeimports/types.h --- old/ksvg-6.26.0/src/declarativeimports/types.h 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/src/declarativeimports/types.h 2026-06-05 17:49:14.000000000 +0200 @@ -27,7 +27,6 @@ */ struct SvgForeign { Q_GADGET - QML_ELEMENT QML_NAMED_ELEMENT(Svg) QML_FOREIGN(KSvg::Svg) }; @@ -39,7 +38,6 @@ */ struct FrameSvgForeign { Q_GADGET - QML_ELEMENT QML_NAMED_ELEMENT(FrameSvg) QML_FOREIGN(KSvg::FrameSvg) }; @@ -51,7 +49,6 @@ */ struct ImageSetForeign { Q_GADGET - QML_ELEMENT QML_SINGLETON QML_NAMED_ELEMENT(ImageSet) QML_FOREIGN(KSvg::ImageSet) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/src/ksvg/svg.cpp new/ksvg-6.27.0/src/ksvg/svg.cpp --- old/ksvg-6.26.0/src/ksvg/svg.cpp 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/src/ksvg/svg.cpp 2026-06-05 17:49:14.000000000 +0200 @@ -854,6 +854,10 @@ QString currentPath = themed ? themePath : path; themePath.clear(); + // If imageset colors changed, stylesheetOverride will lways be + // invalid, because it contains both the colors it overrides and the + // colors it doesn't, which come from imageset colors + stylesheetOverride.clear(); eraseRenderer(); setImagePath(currentPath); q->resize(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ksvg-6.26.0/src/ksvg/svg.h new/ksvg-6.27.0/src/ksvg/svg.h --- old/ksvg-6.26.0/src/ksvg/svg.h 2026-05-01 13:55:27.000000000 +0200 +++ new/ksvg-6.27.0/src/ksvg/svg.h 2026-06-05 17:49:14.000000000 +0200 @@ -653,6 +653,8 @@ */ void clearColorOverrides(); + bool eventFilter(QObject *watched, QEvent *event) override; + Q_SIGNALS: /*! * \brief This signal is emitted whenever the SVG data has changed in such a @@ -709,7 +711,6 @@ private: SvgPrivate *const d; - bool eventFilter(QObject *watched, QEvent *event) override; Q_PRIVATE_SLOT(d, void imageSetChanged()) Q_PRIVATE_SLOT(d, void colorsChanged())
