diff options
author | 2022-07-14 10:23:40 +0200 | |
---|---|---|
committer | 2022-07-14 11:27:39 +0200 | |
commit | a8bb28b162de0908f9cc23b1a0bc04a986d8eeee (patch) | |
tree | 7d9ef2010babab3d586750a9ea5cc2f98b592436 /kde-frameworks/prison | |
parent | net-misc/smb4k: 3.1.3 version bump (diff) | |
download | gentoo-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.patch | 107 | ||||
-rw-r--r-- | kde-frameworks/prison/prison-5.96.0-r1.ebuild | 36 |
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 +} |