Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kpkpass for openSUSE:Factory checked in at 2022-08-19 17:52:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kpkpass (Old) and /work/SRC/openSUSE:Factory/.kpkpass.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kpkpass" Fri Aug 19 17:52:20 2022 rev:49 rq:997888 version:22.08.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kpkpass/kpkpass.changes 2022-07-09 17:01:30.648659122 +0200 +++ /work/SRC/openSUSE:Factory/.kpkpass.new.2083/kpkpass.changes 2022-08-19 17:53:00.443663874 +0200 @@ -1,0 +2,20 @@ +Sun Aug 14 09:43:11 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 22.08.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/gear/22.08.0/ + +------------------------------------------------------------------- +Fri Aug 5 12:11:15 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 22.07.90 + * New feature release + +------------------------------------------------------------------- +Sat Jul 16 08:28:30 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 22.07.80 + * New feature release + +------------------------------------------------------------------- Old: ---- kpkpass-22.04.3.tar.xz kpkpass-22.04.3.tar.xz.sig New: ---- kpkpass-22.08.0.tar.xz kpkpass-22.08.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kpkpass.spec ++++++ --- /var/tmp/diff_new_pack.U1ZEHR/_old 2022-08-19 17:53:01.103665258 +0200 +++ /var/tmp/diff_new_pack.U1ZEHR/_new 2022-08-19 17:53:01.107665266 +0200 @@ -18,7 +18,7 @@ %bcond_without released Name: kpkpass -Version: 22.04.3 +Version: 22.08.0 Release: 0 Summary: Library to parse Passbook files License: LGPL-2.1-or-later ++++++ kpkpass-22.04.3.tar.xz -> kpkpass-22.08.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/.codespellrc new/kpkpass-22.08.0/.codespellrc --- old/kpkpass-22.04.3/.codespellrc 1970-01-01 01:00:00.000000000 +0100 +++ new/kpkpass-22.08.0/.codespellrc 2022-08-05 13:33:08.000000000 +0200 @@ -0,0 +1,4 @@ +[codespell] +skip = ./build*,.git,*.notifyrc,*.desktop,*.json,*.xml +interactive = 3 +ignore-words-list = accessort diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/.codespellrc.license new/kpkpass-22.08.0/.codespellrc.license --- old/kpkpass-22.04.3/.codespellrc.license 1970-01-01 01:00:00.000000000 +0100 +++ new/kpkpass-22.08.0/.codespellrc.license 2022-08-05 13:33:08.000000000 +0200 @@ -0,0 +1,2 @@ +# SPDX-FileCopyrightText: 2022 Laurent Montel <mon...@kde.org> +# SPDX-License-Identifier: CC0-1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/.gitlab-ci.yml new/kpkpass-22.08.0/.gitlab-ci.yml --- old/kpkpass-22.04.3/.gitlab-ci.yml 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/.gitlab-ci.yml 2022-08-05 13:33:08.000000000 +0200 @@ -6,6 +6,5 @@ - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android.yml - - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android-qt6.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/.kde-ci.yml new/kpkpass-22.08.0/.kde-ci.yml --- old/kpkpass-22.04.3/.kde-ci.yml 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/.kde-ci.yml 2022-08-05 13:33:08.000000000 +0200 @@ -6,3 +6,6 @@ 'require': 'frameworks/extra-cmake-modules': '@latest' 'frameworks/karchive' : '@latest' + +Options: + require-passing-tests-on: [ 'Linux', 'FreeBSD', 'Windows' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/CMakeLists.txt new/kpkpass-22.08.0/CMakeLists.txt --- old/kpkpass-22.04.3/CMakeLists.txt 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/CMakeLists.txt 2022-08-05 13:33:08.000000000 +0200 @@ -3,10 +3,10 @@ # SPDX-License-Identifier: BSD-3-Clause cmake_minimum_required(VERSION 3.16 FATAL_ERROR) -set(PIM_VERSION "5.20.3") +set(PIM_VERSION "5.21.0") project(KPkPass VERSION ${PIM_VERSION}) -set(KF5_MIN_VERSION "5.91.0") +set(KF5_MIN_VERSION "5.95.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) @@ -40,9 +40,11 @@ find_package(Qt${QT_MAJOR_VERSION} ${QT_REQUIRED_VERSION} REQUIRED COMPONENTS Gui) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Archive) -find_package(SharedMimeInfo 1.3 REQUIRED) +if (NOT ANDROID) + find_package(SharedMimeInfo 1.3 REQUIRED) +endif() -ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.92.0) +ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.96.0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/CMakePresets.json new/kpkpass-22.08.0/CMakePresets.json --- old/kpkpass-22.04.3/CMakePresets.json 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/CMakePresets.json 2022-08-05 13:33:08.000000000 +0200 @@ -2,81 +2,89 @@ "version": 3, "configurePresets": [ { + "name": "base", + "displayName": "base preset", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-${presetName}", + "installDir": "$env{KF5}", + "hidden": true + }, + { "name": "dev", "displayName": "Build as debug", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] + }, { "name": "coverage", "displayName": "Build as debug", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "BUILD_COVERAGE": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "dev-qt6", "displayName": "Build against qt6", - "generator": "Ninja", "binaryDir": "${sourceDir}/build-qt6", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "BUILD_WITH_QT6": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF6}" + "inherits": [ + "base" + ] }, { "name": "dev-disable-deprecated", "displayName": "Build as without deprecated methods", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-disable-deprecated", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_CXX_FLAGS_INIT": "-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "asan", "displayName": "Build with Asan support.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-asan", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "ECM_ENABLE_SANITIZERS" : "'address;undefined'", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "pch", "displayName": "Build with PCH support.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-pch", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "COMPILE_WITH_CMAKE_PCH_SUPPORT": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "dev-clang", "displayName": "dev-clang", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-clang", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" @@ -85,46 +93,46 @@ "CXX": "clang++", "CCACHE_DISABLE": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "unity", "displayName": "Build with CMake unity support.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-unity", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "USE_UNITY_CMAKE_SUPPORT": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "release", "displayName": "Build as release mode.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-release", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "profile", "displayName": "profile", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-profile", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "clazy", "displayName": "clazy", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-clazy", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" }, @@ -132,7 +140,9 @@ "CXX": "clazy", "CCACHE_DISABLE": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] } ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/autotests/pkpasstest.cpp new/kpkpass-22.08.0/autotests/pkpasstest.cpp --- old/kpkpass-22.04.3/autotests/pkpasstest.cpp 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/autotests/pkpasstest.cpp 2022-08-05 13:33:08.000000000 +0200 @@ -75,10 +75,16 @@ QCOMPARE(loc.relevantText(), QLatin1String("LX962 Boarding 20:25")); QCOMPARE(pass->maximumDistance(), 500); + QCOMPARE(pass->hasIcon(), false); + QCOMPARE(pass->hasLogo(), true); auto img = pass->logo(3); QVERIFY(!img.isNull()); img = pass->image(QStringLiteral("I don't exist")); QVERIFY(img.isNull()); + + auto sourceFile = QFile(QStringLiteral(SOURCE_DIR "/data/boardingpass-v1.pkpass")); + QVERIFY(sourceFile.open(QFile::ReadOnly)); + QCOMPARE(pass->rawData(), sourceFile.readAll()); } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/CMakeLists.txt new/kpkpass-22.08.0/src/CMakeLists.txt --- old/kpkpass-22.04.3/src/CMakeLists.txt 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/CMakeLists.txt 2022-08-05 13:33:08.000000000 +0200 @@ -59,6 +59,7 @@ install(FILES ${KPkPass_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/kpkpass_export.h + ${CMAKE_BINARY_DIR}/kpkpass_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_PIM}/KPkPass ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/barcode.h new/kpkpass-22.08.0/src/barcode.h --- old/kpkpass-22.04.3/src/barcode.h 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/barcode.h 2022-08-05 13:33:08.000000000 +0200 @@ -56,4 +56,3 @@ } Q_DECLARE_METATYPE(KPkPass::Barcode) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/boardingpass.h new/kpkpass-22.08.0/src/boardingpass.h --- old/kpkpass-22.04.3/src/boardingpass.h 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/boardingpass.h 2022-08-05 13:33:08.000000000 +0200 @@ -26,4 +26,3 @@ }; } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/field.h new/kpkpass-22.08.0/src/field.h --- old/kpkpass-22.04.3/src/field.h 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/field.h 2022-08-05 13:33:08.000000000 +0200 @@ -74,4 +74,3 @@ } Q_DECLARE_METATYPE(KPkPass::Field) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/location.h new/kpkpass-22.08.0/src/location.h --- old/kpkpass-22.04.3/src/location.h 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/location.h 2022-08-05 13:33:08.000000000 +0200 @@ -50,4 +50,3 @@ } Q_DECLARE_METATYPE(KPkPass::Location) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/pass.cpp new/kpkpass-22.08.0/src/pass.cpp --- old/kpkpass-22.04.3/src/pass.cpp 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/pass.cpp 2022-08-05 13:33:08.000000000 +0200 @@ -346,6 +346,49 @@ return d->message(d->passObj.value(QLatin1String("logoText")).toString()); } +bool Pass::hasImage(const QString &baseName) const +{ + const auto entries = d->zip->directory()->entries(); + for (const auto &entry : entries) { + if (entry.startsWith(baseName) + && (QStringView(entry).mid(baseName.size()).startsWith(QLatin1Char('@')) || QStringView(entry).mid(baseName.size()).startsWith(QLatin1Char('.'))) + && entry.endsWith(QLatin1String(".png"))) { + return true; + } + } + return false; +} + +bool Pass::hasIcon() const +{ + return hasImage(QStringLiteral("icon")); +} + +bool Pass::hasLogo() const +{ + return hasImage(QStringLiteral("logo")); +} + +bool Pass::hasStrip() const +{ + return hasImage(QStringLiteral("strip")); +} + +bool Pass::hasBackground() const +{ + return hasImage(QStringLiteral("background")); +} + +bool Pass::hasFooter() const +{ + return hasImage(QStringLiteral("footer")); +} + +bool Pass::hasThumbnail() const +{ + return hasImage(QStringLiteral("thumbnail")); +} + QImage Pass::image(const QString &baseName, unsigned int devicePixelRatio) const { const KArchiveFile *file = nullptr; @@ -502,7 +545,8 @@ return nullptr; } -template<typename T> static QVariantList toVariantList(const QVector<T> &elems) +template<typename T> +static QVariantList toVariantList(const QVector<T> &elems) { QVariantList l; l.reserve(elems.size()); @@ -557,4 +601,13 @@ return m; } +QByteArray Pass::rawData() const +{ + const auto prevPos = d->buffer->pos(); + d->buffer->seek(0); + const auto data = d->buffer->readAll(); + d->buffer->seek(prevPos); + return data; +} + #include "moc_pass.cpp" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/pass.h new/kpkpass-22.08.0/src/pass.h --- old/kpkpass-22.04.3/src/pass.h 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/pass.h 2022-08-05 13:33:08.000000000 +0200 @@ -52,6 +52,13 @@ Q_PROPERTY(QColor labelColor READ labelColor CONSTANT) Q_PROPERTY(QString logoText READ logoText CONSTANT) + Q_PROPERTY(bool hasIcon READ hasIcon CONSTANT) + Q_PROPERTY(bool hasLogo READ hasLogo CONSTANT) + Q_PROPERTY(bool hasStrip READ hasStrip CONSTANT) + Q_PROPERTY(bool hasBackground READ hasBackground CONSTANT) + Q_PROPERTY(bool hasFooter READ hasFooter CONSTANT) + Q_PROPERTY(bool hasThumbnail READ hasThumbnail CONSTANT) + // needs to be QVariantList just for QML (Grantlee would also work with QVector<Field> Q_PROPERTY(QVariantList barcodes READ barcodesVariant CONSTANT) Q_PROPERTY(QVariantList auxiliaryFields READ auxiliaryFieldsVariant CONSTANT) @@ -96,6 +103,18 @@ Q_REQUIRED_RESULT QColor labelColor() const; Q_REQUIRED_RESULT QString logoText() const; + /** Returns @c true if an image asset with the given base name exists. + * @param baseName The name of the asset, without the file type and high dpi extensions. + * @since 5.20.41 + */ + bool hasImage(const QString &baseName) const; + bool hasIcon() const; + bool hasLogo() const; + bool hasStrip() const; + bool hasBackground() const; + bool hasFooter() const; + bool hasThumbnail() const; + /** Returns an image asset of this pass. * @param baseName The name of the asset, without the file name extension. * @param devicePixelRatio The device pixel ration, for loading highdpi assets. @@ -138,6 +157,13 @@ /** Create a appropriate sub-class based on the pkpass file type. */ static Pass *fromFile(const QString &fileName, QObject *parent = nullptr); + /** The raw data of this pass. + * That is the binary representation of the ZIP archive which contains + * all the pass data. + * @since 5.20.41 + */ + QByteArray rawData() const; + protected: ///@cond internal friend class Barcode; @@ -159,4 +185,3 @@ }; } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kpkpass-22.04.3/src/pass_p.h new/kpkpass-22.08.0/src/pass_p.h --- old/kpkpass-22.04.3/src/pass_p.h 2022-06-09 13:43:34.000000000 +0200 +++ new/kpkpass-22.08.0/src/pass_p.h 2022-08-05 13:33:08.000000000 +0200 @@ -39,4 +39,3 @@ Pass::Type passType; }; } -