summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2022-07-14 10:23:40 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2022-07-14 11:27:39 +0200
commita8bb28b162de0908f9cc23b1a0bc04a986d8eeee (patch)
tree7d9ef2010babab3d586750a9ea5cc2f98b592436 /kde-frameworks/prison
parentnet-misc/smb4k: 3.1.3 version bump (diff)
downloadgentoo-a8bb28b162de0908f9cc23b1a0bc04a986d8eeee.tar.gz
gentoo-a8bb28b162de0908f9cc23b1a0bc04a986d8eeee.tar.bz2
gentoo-a8bb28b162de0908f9cc23b1a0bc04a986d8eeee.zip
kde-frameworks/prison: Slot op, build w/ media-libs/zxing-cpp-1.4.0
Upstream commit 74e34fa35a59098db7c4358b788ad3ac0a5745f7 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks/prison')
-rw-r--r--kde-frameworks/prison/files/prison-5.96.0-zxing-cpp-1.4.0.patch107
-rw-r--r--kde-frameworks/prison/prison-5.96.0-r1.ebuild36
2 files changed, 143 insertions, 0 deletions
diff --git a/kde-frameworks/prison/files/prison-5.96.0-zxing-cpp-1.4.0.patch b/kde-frameworks/prison/files/prison-5.96.0-zxing-cpp-1.4.0.patch
new file mode 100644
index 000000000000..8971bd919a08
--- /dev/null
+++ b/kde-frameworks/prison/files/prison-5.96.0-zxing-cpp-1.4.0.patch
@@ -0,0 +1,107 @@
+From 74e34fa35a59098db7c4358b788ad3ac0a5745f7 Mon Sep 17 00:00:00 2001
+From: Volker Krause <vkrause@kde.org>
+Date: Fri, 8 Jul 2022 16:18:47 +0200
+Subject: [PATCH] Support ZXing 1.4.0
+
+The previous code doesn't build (and when made to build, crashes) with
+ZXing 1.4.0.
+---
+ src/scanner/CMakeLists.txt | 2 ++
+ src/scanner/config-prison-scanner.h.in | 14 ++++++++++++++
+ src/scanner/videoscannerworker.cpp | 17 +++++++++++++++++
+ 3 files changed, 33 insertions(+)
+ create mode 100644 src/scanner/config-prison-scanner.h.in
+
+diff --git a/src/scanner/CMakeLists.txt b/src/scanner/CMakeLists.txt
+index d5b9cf5..ef690c5 100644
+--- a/src/scanner/CMakeLists.txt
++++ b/src/scanner/CMakeLists.txt
+@@ -1,6 +1,8 @@
+ # SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
+ # SPDX-License-Identifier: BSD-3-Clause
+
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-prison-scanner.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-prison-scanner.h)
++
+ add_library(KF5PrisonScanner)
+ add_library(KF5::PrisonScanner ALIAS KF5PrisonScanner)
+
+diff --git a/src/scanner/config-prison-scanner.h.in b/src/scanner/config-prison-scanner.h.in
+new file mode 100644
+index 0000000..d80ceaf
+--- /dev/null
++++ b/src/scanner/config-prison-scanner.h.in
+@@ -0,0 +1,14 @@
++/*
++ SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
++ SPDX-License-Identifier: LGPL-2.0-or-later
++*/
++
++#ifndef CONFIG_PRISON_SCANNER_H
++#define CONFIG_PRISON_SCANNER_H
++
++#define ZXING_VERSION_MAJOR @ZXing_VERSION_MAJOR@
++#define ZXING_VERSION_MINOR @ZXing_VERSION_MINOR@
++#define ZXING_VERSION_PATCH @ZXing_VERSION_PATCH@
++#define ZXING_VERSION ((@ZXing_VERSION_MAJOR@<<16)|(@ZXing_VERSION_MINOR@<<8)|(@ZXing_VERSION_PATCH@))
++
++#endif // CONFIG_PRISON_SCANNER_H
+diff --git a/src/scanner/videoscannerworker.cpp b/src/scanner/videoscannerworker.cpp
+index 45792dc..947367c 100644
+--- a/src/scanner/videoscannerworker.cpp
++++ b/src/scanner/videoscannerworker.cpp
+@@ -3,6 +3,7 @@
+ SPDX-License-Identifier: MIT
+ */
+
++#include "config-prison-scanner.h"
+ #include "format_p.h"
+ #include "scanresult_p.h"
+ #include "videoscannerframe_p.h"
+@@ -12,6 +13,7 @@
+ #include <QImage>
+ #include <QTransform>
+
++#define ZX_USE_UTF8 1
+ #include <ZXing/ReadBarcode.h>
+ #include <ZXing/TextUtfEncoding.h>
+
+@@ -25,7 +27,11 @@ VideoScannerWorker::VideoScannerWorker(QObject *parent)
+
+ void VideoScannerWorker::slotScanFrame(VideoScannerFrame frame)
+ {
++#if ZXING_VERSION < QT_VERSION_CHECK(1, 4, 0)
+ ZXing::Result zxRes(ZXing::DecodeStatus::FormatError);
++#else
++ ZXing::Result zxRes;
++#endif
+ ZXing::DecodeHints hints;
+ hints.setFormats(frame.formats() == Format::NoFormat ? ZXing::BarcodeFormats::all() : Format::toZXing(frame.formats()));
+
+@@ -173,6 +179,7 @@ void VideoScannerWorker::slotScanFrame(VideoScannerFrame frame)
+ if (zxRes.isValid()) {
+ auto res = ScanResultPrivate::get(scanResult);
+
++#if ZXING_VERSION < QT_VERSION_CHECK(1, 4, 0)
+ // distinguish between binary and text content
+ const auto hasWideChars = std::any_of(zxRes.text().begin(), zxRes.text().end(), [](auto c) {
+ return c > 255;
+@@ -188,6 +195,16 @@ void VideoScannerWorker::slotScanFrame(VideoScannerFrame frame)
+ std::copy(zxRes.text().begin(), zxRes.text().end(), b.begin());
+ res->content = b;
+ }
++#else
++ if (zxRes.contentType() == ZXing::ContentType::Text) {
++ res->content = QString::fromStdString(zxRes.text());
++ } else {
++ QByteArray b;
++ b.resize(zxRes.bytes().size());
++ std::copy(zxRes.bytes().begin(), zxRes.bytes().end(), b.begin());
++ res->content = b;
++ }
++#endif
+
+ // determine the bounding rect
+ // the cooridinates we get from ZXing are a polygon, we need to determine the
+--
+GitLab
+
diff --git a/kde-frameworks/prison/prison-5.96.0-r1.ebuild b/kde-frameworks/prison/prison-5.96.0-r1.ebuild
new file mode 100644
index 000000000000..4173c4d0a8ba
--- /dev/null
+++ b/kde-frameworks/prison/prison-5.96.0-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+QTMIN=5.15.4
+inherit ecm frameworks.kde.org
+
+DESCRIPTION="QRCode and data matrix barcode library"
+HOMEPAGE="https://invent.kde.org/frameworks/prison"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE="qml"
+
+RDEPEND="
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtmultimedia-${QTMIN}:5
+ media-gfx/qrencode:=
+ media-libs/libdmtx
+ media-libs/zxing-cpp:=
+ qml? ( >=dev-qt/qtdeclarative-${QTMIN}:5 )
+"
+DEPEND="${RDEPEND}
+ test? ( >=dev-qt/qtwidgets-${QTMIN}:5 )
+"
+
+PATCHES=( "${FILESDIR}/${P}-zxing-cpp-1.4.0.patch" )
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake_use_find_package qml Qt5Quick)
+ )
+
+ ecm_src_configure
+}