Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package prison-qt5 for openSUSE:Factory checked in at 2021-11-15 15:25:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/prison-qt5 (Old) and /work/SRC/openSUSE:Factory/.prison-qt5.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "prison-qt5" Mon Nov 15 15:25:52 2021 rev:61 rq:931126 version:5.88.0 Changes: -------- --- /work/SRC/openSUSE:Factory/prison-qt5/prison-qt5.changes 2021-10-18 22:01:15.918053341 +0200 +++ /work/SRC/openSUSE:Factory/.prison-qt5.new.1890/prison-qt5.changes 2021-11-15 15:27:20.597839343 +0100 @@ -1,0 +2,18 @@ +Sun Nov 7 09:13:41 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr> + +- Strip 'Source' URL for faster submissions + +------------------------------------------------------------------- +Sun Nov 7 09:08:29 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 5.88.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.88.0 +- Changes since 5.87.0: + * Decrease the preferred size for PDF417 barcodes + * Add PDF417 barcode support + * Add FreeBSD CI + * Add Android CI + +------------------------------------------------------------------- Old: ---- prison-5.87.0.tar.xz prison-5.87.0.tar.xz.sig New: ---- prison-5.88.0.tar.xz prison-5.88.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ prison-qt5.spec ++++++ --- /var/tmp/diff_new_pack.v5xdNG/_old 2021-11-15 15:27:21.005839456 +0100 +++ /var/tmp/diff_new_pack.v5xdNG/_new 2021-11-15 15:27:21.009839458 +0100 @@ -19,7 +19,7 @@ %define sonum 5 %define rname prison %define _libname KF5Prison -%define _tar_path 5.87 +%define _tar_path 5.88 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) @@ -27,15 +27,15 @@ # Only needed for the package signature condition %bcond_without lang Name: prison-qt5 -Version: 5.87.0 +Version: 5.88.0 Release: 0 Summary: Barcode abstraction layer library License: MIT Group: System/GUI/KDE URL: https://www.kde.org -Source: https://download.kde.org/stable/frameworks/%{_tar_path}/%{rname}-%{version}.tar.xz +Source: %{rname}-%{version}.tar.xz %if %{with lang} -Source1: https://download.kde.org/stable/frameworks/%{_tar_path}/%{rname}-%{version}.tar.xz.sig +Source1: %{rname}-%{version}.tar.xz.sig Source2: frameworks.keyring %endif BuildRequires: extra-cmake-modules >= %{_kf5_bugfix_version} @@ -45,6 +45,7 @@ BuildRequires: cmake(Qt5Core) >= 5.15.0 BuildRequires: cmake(Qt5Gui) >= 5.15.0 BuildRequires: cmake(Qt5Quick) >= 5.15.0 +BuildRequires: cmake(ZXing) >= 1.2.0 BuildRequires: pkgconfig(libdmtx) BuildRequires: pkgconfig(libqrencode) ++++++ prison-5.87.0.tar.xz -> prison-5.88.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/.gitlab-ci.yml new/prison-5.88.0/.gitlab-ci.yml --- old/prison-5.87.0/.gitlab-ci.yml 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/.gitlab-ci.yml 2021-10-31 08:05:00.000000000 +0100 @@ -3,3 +3,5 @@ include: - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.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/freebsd.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/CMakeLists.txt new/prison-5.88.0/CMakeLists.txt --- old/prison-5.87.0/CMakeLists.txt 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/CMakeLists.txt 2021-10-31 08:05:00.000000000 +0100 @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.87.0") # handled by release scripts +set(KF_VERSION "5.88.0") # handled by release scripts project(prison VERSION ${KF_VERSION}) # ECM setup @@ -38,6 +38,8 @@ set_package_properties(QRencode PROPERTIES TYPE REQUIRED) find_package(Dmtx) set_package_properties(Dmtx PROPERTIES TYPE RECOMMENDED) +find_package(ZXing 1.2.0) +set_package_properties(ZXing PROPERTIES TYPE RECOMMENDED) if (Qt5_POSITION_INDEPENDENT_CODE) set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/CMakeLists.txt new/prison-5.88.0/src/lib/CMakeLists.txt --- old/prison-5.87.0/src/lib/CMakeLists.txt 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/lib/CMakeLists.txt 2021-10-31 08:05:00.000000000 +0100 @@ -2,6 +2,9 @@ if(TARGET Dmtx::Dmtx) set(HAVE_DMTX 1) endif() +if (TARGET ZXing::ZXing) + set(HAVE_ZXING 1) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-prison.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-prison.h) add_library(KF5Prison) @@ -28,6 +31,10 @@ if(TARGET Dmtx::Dmtx) target_sources(KF5Prison PRIVATE datamatrixbarcode.cpp) endif() +if(TARGET ZXing::ZXing) + target_sources(KF5Prison PRIVATE pdf417barcode.cpp) +endif() +kde_source_files_enable_exceptions(pdf417barcode.cpp) ecm_qt_declare_logging_category(KF5Prison HEADER prison_debug.h @@ -58,6 +65,9 @@ if(TARGET Dmtx::Dmtx) target_link_libraries(KF5Prison PRIVATE Dmtx::Dmtx) endif() +if(TARGET ZXing::ZXing) + target_link_libraries(KF5Prison PRIVATE ZXing::ZXing) +endif() install(TARGETS KF5Prison EXPORT KF5PrisonTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/abstractbarcode.cpp new/prison-5.88.0/src/lib/abstractbarcode.cpp --- old/prison-5.87.0/src/lib/abstractbarcode.cpp 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/lib/abstractbarcode.cpp 2021-10-31 08:05:00.000000000 +0100 @@ -5,6 +5,8 @@ */ #include "abstractbarcode.h" +#include "config-prison.h" +#include "pdf417barcode.h" #include <QColor> #include <QPainter> @@ -152,6 +154,13 @@ case OneDimension: return QSizeF(d->m_cache.width() * (devicePixelRatio < 2 ? 2 : 1), std::max(d->m_cache.height(), 50)); case TwoDimensions: + // TODO KF6: clean this up once preferredSize is virtual +#if HAVE_ZXING + // the smallest element of a PDF417 code is 1x 3px, for Aztec/QR/DataMatrix it's just 1x1 px + if (dynamic_cast<const Pdf417Barcode *>(this)) { + return d->m_cache.size() * (devicePixelRatio < 2 ? 2 : 1); + } +#endif return d->m_cache.size() * (devicePixelRatio < 2 ? 4 : 2); } return {}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/abstractbarcode.h new/prison-5.88.0/src/lib/abstractbarcode.h --- old/prison-5.87.0/src/lib/abstractbarcode.h 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/lib/abstractbarcode.h 2021-10-31 08:05:00.000000000 +0100 @@ -114,7 +114,7 @@ * @see trueMinimumSize * @since 5.69 */ - QSizeF preferredSize(qreal devicePixelRatio) const; + QSizeF preferredSize(qreal devicePixelRatio) const; // TODO KF6: make virtual /** * @return the foreground color (by default black) to be used for the barcode. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/config-prison.h.in new/prison-5.88.0/src/lib/config-prison.h.in --- old/prison-5.87.0/src/lib/config-prison.h.in 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/lib/config-prison.h.in 2021-10-31 08:05:00.000000000 +0100 @@ -8,5 +8,6 @@ #define PRISON_CONFIG_H #cmakedefine HAVE_DMTX +#cmakedefine01 HAVE_ZXING #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/pdf417barcode.cpp new/prison-5.88.0/src/lib/pdf417barcode.cpp --- old/prison-5.87.0/src/lib/pdf417barcode.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/prison-5.88.0/src/lib/pdf417barcode.cpp 2021-10-31 08:05:00.000000000 +0100 @@ -0,0 +1,50 @@ +/* + SPDX-FileCopyrightText: 2021 Volker Krause <vkra...@kde.org> + + SPDX-License-Identifier: MIT +*/ + +#include "pdf417barcode.h" + +#include <ZXing/BitMatrix.h> +#include <ZXing/MultiFormatWriter.h> + +using namespace Prison; + +Pdf417Barcode::Pdf417Barcode() + : AbstractBarcode(TwoDimensions) +{ +} + +QImage Pdf417Barcode::paintImage(const QSizeF &size) +{ + Q_UNUSED(size); + + std::wstring input; + if (!data().isEmpty()) { + input = data().toStdWString(); + } else { + const auto b = byteArrayData(); + input.reserve(b.size()); + std::copy(b.begin(), b.end(), std::back_inserter(input)); + } + + try { + ZXing::MultiFormatWriter writer(ZXing::BarcodeFormat::PDF417); + // ISO/IEC 15438:2006(E) ??5.8.3 Quiet Zone + writer.setMargin(2); + // aspect ratio 4 is hard-coded in ZXing + const auto matrix = writer.encode(input, 4, 1); + + QImage image(matrix.width(), matrix.height(), QImage::Format_ARGB32); + for (int y = 0; y < matrix.height(); ++y) { + for (int x = 0; x < matrix.width(); ++x) { + image.setPixel(x, y, matrix.get(x, y) ? foregroundColor().rgb() : backgroundColor().rgb()); + } + } + + return image; + } catch (const std::invalid_argument &e) { + }; // input too large + return {}; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/pdf417barcode.h new/prison-5.88.0/src/lib/pdf417barcode.h --- old/prison-5.87.0/src/lib/pdf417barcode.h 1970-01-01 01:00:00.000000000 +0100 +++ new/prison-5.88.0/src/lib/pdf417barcode.h 2021-10-31 08:05:00.000000000 +0100 @@ -0,0 +1,29 @@ +/* + SPDX-FileCopyrightText: 2021 Volker Krause <vkra...@kde.org> + + SPDX-License-Identifier: MIT +*/ + +#ifndef PRISON_PDF417BARCODE_H +#define PRISON_PDF417BARCODE_H + +#include "abstractbarcode.h" + +namespace Prison +{ +/** PDF417 barcode. + * @see https://en.wikipedia.org/wiki/PDF417 + * @see ISO/IEC 15438 + */ +class Pdf417Barcode : public AbstractBarcode +{ +public: + explicit Pdf417Barcode(); + +protected: + QImage paintImage(const QSizeF &size) override; +}; + +} + +#endif // PRISON_PDF417BARCODE_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/prison.cpp new/prison-5.88.0/src/lib/prison.cpp --- old/prison-5.87.0/src/lib/prison.cpp 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/lib/prison.cpp 2021-10-31 08:05:00.000000000 +0100 @@ -10,6 +10,7 @@ #include "code39barcode.h" #include "code93barcode.h" #include "datamatrixbarcode.h" +#include "pdf417barcode.h" #include "qrcodebarcode.h" #include <config-prison.h> @@ -34,6 +35,10 @@ return new Code93Barcode; case Prison::Code128: return new Code128Barcode; +#if HAVE_ZXING + case Prison::PDF417: + return new Pdf417Barcode; +#endif } return nullptr; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/lib/prison.h new/prison-5.88.0/src/lib/prison.h --- old/prison-5.87.0/src/lib/prison.h 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/lib/prison.h 2021-10-31 08:05:00.000000000 +0100 @@ -35,7 +35,8 @@ Code93, /** Code 128 barcode */ Code128, - + /** PDF417 barcode */ + PDF417, }; /** * Factory method to create a barcode of a given type. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/src/quick/barcodequickitem.h new/prison-5.88.0/src/quick/barcodequickitem.h --- old/prison-5.87.0/src/quick/barcodequickitem.h 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/src/quick/barcodequickitem.h 2021-10-31 08:05:00.000000000 +0100 @@ -46,10 +46,11 @@ Code39 = Prison::Code39, Code93 = Prison::Code93, Code128 = Prison::Code128, + PDF417 = Prison::PDF417, }; Q_ENUM(BarcodeType) explicit BarcodeQuickItem(QQuickItem *parent = nullptr); - ~BarcodeQuickItem(); + ~BarcodeQuickItem() override; QVariant content() const; void setContent(const QVariant &data); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/tests/barcode.qml new/prison-5.88.0/tests/barcode.qml --- old/prison-5.87.0/tests/barcode.qml 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/tests/barcode.qml 2021-10-31 08:05:00.000000000 +0100 @@ -24,7 +24,7 @@ } ComboBox { id: typeCombobox - model: [ "Null", "QRCode", "DataMatrix", "Aztec", "Code39", "Code93", "Code128" ] + model: [ "Null", "QRCode", "DataMatrix", "Aztec", "Code39", "Code93", "Code128", "PDF417" ] currentIndex: 3 } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prison-5.87.0/tests/barcodeexamplewidget.h new/prison-5.88.0/tests/barcodeexamplewidget.h --- old/prison-5.87.0/tests/barcodeexamplewidget.h 2021-10-02 14:23:47.000000000 +0200 +++ new/prison-5.88.0/tests/barcodeexamplewidget.h 2021-10-31 08:05:00.000000000 +0100 @@ -25,7 +25,7 @@ * @param parent the parent in QWidget hierarchy */ BarcodeExampleWidget(Prison::AbstractBarcode *barcode, QWidget *parent = nullptr); - virtual ~BarcodeExampleWidget(); + ~BarcodeExampleWidget() override; /** * sets the data shown to data, and triggers a repaint and resize if needed * @param data QString holding the data to be shown