Hello community, here is the log from the commit of package kimageformats for openSUSE:Factory checked in at 2018-10-22 11:13:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kimageformats (Old) and /work/SRC/openSUSE:Factory/.kimageformats.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kimageformats" Mon Oct 22 11:13:09 2018 rev:59 rq:642324 version:5.51.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kimageformats/kimageformats.changes 2018-10-01 08:06:58.474334818 +0200 +++ /work/SRC/openSUSE:Factory/.kimageformats.new/kimageformats.changes 2018-10-22 11:13:11.351786010 +0200 @@ -1,0 +2,17 @@ +Tue Oct 16 08:02:17 UTC 2018 - Luca Beltrame <[email protected]> + +- Run spec-cleaner + +------------------------------------------------------------------- +Mon Oct 15 11:50:35 UTC 2018 - [email protected] + +- Update to 5.51.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.51.0.php +- Changes since 5.50.0: + * kimg_rgb: optimize away QRegExp and QString::fromLocal8Bit. + * [EPS] qWarning -> qCWarning + * [EPS] Fix crash at app shutdown (being tried to persist clipboard image) (kde#397040) + +------------------------------------------------------------------- Old: ---- kimageformats-5.50.0.tar.xz New: ---- kimageformats-5.51.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kimageformats.spec ++++++ --- /var/tmp/diff_new_pack.fhlXYI/_old 2018-10-22 11:13:11.963785523 +0200 +++ /var/tmp/diff_new_pack.fhlXYI/_new 2018-10-22 11:13:11.967785519 +0200 @@ -12,22 +12,22 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define _tar_path 5.50 +%define _tar_path 5.51 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} Name: kimageformats -Version: 5.50.0 +Version: 5.51.0 Release: 0 Summary: Image format plugins for Qt License: LGPL-2.1-or-later Group: System/GUI/KDE -URL: http://www.kde.org +URL: https://www.kde.org Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz Source1: baselibs.conf BuildRequires: cmake >= 3.0 ++++++ kimageformats-5.50.0.tar.xz -> kimageformats-5.51.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimageformats-5.50.0/CMakeLists.txt new/kimageformats-5.51.0/CMakeLists.txt --- old/kimageformats-5.50.0/CMakeLists.txt 2018-09-01 00:22:12.000000000 +0200 +++ new/kimageformats-5.51.0/CMakeLists.txt 2018-10-07 12:07:12.000000000 +0200 @@ -3,7 +3,7 @@ project(KImageFormats) include(FeatureSummary) -find_package(ECM 5.50.0 NO_MODULE) +find_package(ECM 5.51.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimageformats-5.50.0/src/imageformats/eps.cpp new/kimageformats-5.51.0/src/imageformats/eps.cpp --- old/kimageformats-5.50.0/src/imageformats/eps.cpp 2018-09-01 00:22:12.000000000 +0200 +++ new/kimageformats-5.51.0/src/imageformats/eps.cpp 2018-10-07 12:07:12.000000000 +0200 @@ -14,6 +14,7 @@ #include <QPrinter> #include <QProcess> #include <QTemporaryFile> +#include <QCoreApplication> // logging category for this framework, default: log stuff >= warning Q_LOGGING_CATEGORY(EPSPLUGIN, "epsplugin", QtWarningMsg) @@ -156,7 +157,7 @@ QTemporaryFile tmpFile; if (!tmpFile.open()) { - qWarning() << "Could not create the temporary file" << tmpFile.fileName(); + qCWarning(EPSPLUGIN) << "Could not create the temporary file" << tmpFile.fileName(); return false; } qCDebug(EPSPLUGIN) << "temporary file:" << tmpFile.fileName(); @@ -198,7 +199,7 @@ converter.setProcessChannelMode(QProcess::ForwardedErrorChannel); converter.start(QStringLiteral("gs"), gsArgs); if (!converter.waitForStarted(3000)) { - qWarning() << "Reading EPS files requires gs (from GhostScript)"; + qCWarning(EPSPLUGIN) << "Reading EPS files requires gs (from GhostScript)"; return false; } @@ -297,7 +298,7 @@ converter.start(QStringLiteral("gs"), gsArgs); if (!converter.waitForStarted(3000)) { - qWarning() << "Creating EPS files requires pdftops (from Poppler) or gs (from GhostScript)"; + qCWarning(EPSPLUGIN) << "Creating EPS files requires pdftops (from Poppler) or gs (from GhostScript)"; return false; } } @@ -312,7 +313,7 @@ bool EPSHandler::canRead(QIODevice *device) { if (!device) { - qWarning("EPSHandler::canRead() called with no device"); + qCWarning(EPSPLUGIN) << "EPSHandler::canRead() called with no device"; return false; } @@ -333,6 +334,15 @@ QImageIOPlugin::Capabilities EPSPlugin::capabilities(QIODevice *device, const QByteArray &format) const { + // prevent bug #397040: when on app shutdown the clipboard content is to be copied to survive end of the app, + // QXcbIntegration looks for some QImageIOHandler to apply, querying the capabilities and picking any first. + // At that point this plugin no longer has its requirements e.g. to run the external process, so we have to deny. + // The capabilities seem to be queried on demand in Qt code and not cached, so it's fine to report based + // in current dynamic state + if (!QCoreApplication::instance()) { + return {}; + } + if (format == "eps" || format == "epsi" || format == "epsf") { return Capabilities(CanRead | CanWrite); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kimageformats-5.50.0/src/imageformats/rgb.cpp new/kimageformats-5.51.0/src/imageformats/rgb.cpp --- old/kimageformats-5.50.0/src/imageformats/rgb.cpp 2018-09-01 00:22:12.000000000 +0200 +++ new/kimageformats-5.51.0/src/imageformats/rgb.cpp 2018-10-07 12:07:12.000000000 +0200 @@ -686,8 +686,8 @@ return false; } - qint64 oldPos = device->pos(); - QByteArray head = device->readLine(64); + const qint64 oldPos = device->pos(); + const QByteArray head = device->readLine(64); int readBytes = head.size(); if (device->isSequential()) { @@ -699,10 +699,7 @@ device->seek(oldPos); } - const QRegExp regexp(QLatin1String("^\x01\xda\x01[\x01\x02]")); - QString data(QString::fromLocal8Bit(head)); - - return data.contains(regexp); + return head.size() >= 4 && head.startsWith("\x01\xda\x01") && (head[3] == 1 || head[3] == 2); } ///////////////////////////////////////////////////////////////////////////////
