summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2022-07-14 10:26:12 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2022-07-14 11:27:39 +0200
commitf04d8f9baae0e45840a16248cff6a9ab127fc725 (patch)
treedd6241472468e647ae45096bf65301218ee9dc6c /kde-apps/kitinerary
parentkde-frameworks/prison: Drop 5.96.0 (r0) (diff)
downloadgentoo-f04d8f9baae0e45840a16248cff6a9ab127fc725.tar.gz
gentoo-f04d8f9baae0e45840a16248cff6a9ab127fc725.tar.bz2
gentoo-f04d8f9baae0e45840a16248cff6a9ab127fc725.zip
kde-apps/kitinerary: Slot op, build w/ media-libs/zxing-cpp-1.4.0
Upstream commit e60195421aa159462353892ed32bf46ac8c57d19 Backported to 22.04.3. Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-apps/kitinerary')
-rw-r--r--kde-apps/kitinerary/files/kitinerary-22.04.3-zxing-cpp-1.4.0.patch68
-rw-r--r--kde-apps/kitinerary/kitinerary-22.04.3-r1.ebuild53
2 files changed, 121 insertions, 0 deletions
diff --git a/kde-apps/kitinerary/files/kitinerary-22.04.3-zxing-cpp-1.4.0.patch b/kde-apps/kitinerary/files/kitinerary-22.04.3-zxing-cpp-1.4.0.patch
new file mode 100644
index 000000000000..a208d2bfaed7
--- /dev/null
+++ b/kde-apps/kitinerary/files/kitinerary-22.04.3-zxing-cpp-1.4.0.patch
@@ -0,0 +1,68 @@
+From bf83f8bd974925aec07a2e8dbfd50ad39995b428 Mon Sep 17 00:00:00 2001
+From: Volker Krause <vkrause@kde.org>
+Date: Fri, 8 Jul 2022 16:04:19 +0200
+Subject: [PATCH] Support ZXing 1.4.0
+
+The previous code crashes (if it builds at all) with ZXing 1.4.0, so
+distributions updating to 1.4.0 would need to apply this patch on top
+of 22.04.3 as well.
+
+(cherry picked from commit e60195421aa159462353892ed32bf46ac8c57d19)
+---
+ src/lib/barcodedecoder.cpp | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+
+diff --git a/src/lib/barcodedecoder.cpp b/src/lib/barcodedecoder.cpp
+index b38140a..40e0c64 100644
+--- a/src/lib/barcodedecoder.cpp
++++ b/src/lib/barcodedecoder.cpp
+@@ -15,6 +15,7 @@
+ #include <QString>
+
+ #ifdef HAVE_ZXING
++#define ZX_USE_UTF8 1
+ #ifdef ZXING_USE_READBARCODE
+ #include <ZXing/ReadBarcode.h>
+ #else
+@@ -244,6 +245,30 @@ void BarcodeDecoder::decodeZxing(const QImage &img, BarcodeDecoder::BarcodeTypes
+ #endif
+
+ if (res.isValid()) {
++#if ZXING_VERSION >= QT_VERSION_CHECK(1, 4, 0)
++ // detect content type
++ std::string zxUtf8Text;
++ if (res.contentType() == ZXing::ContentType::Text) {
++ result.contentType = Result::Any;
++ zxUtf8Text = res.text();
++ // check if the text is ASCII-only (in which case we allow access as byte array as well)
++ if (std::any_of(zxUtf8Text.begin(), zxUtf8Text.end(), [](unsigned char c) { return c > 0x7F; })) {
++ result.contentType &= ~Result::ByteArray;
++ }
++ } else {
++ result.contentType = Result::ByteArray;
++ }
++
++ // decode content
++ if (result.contentType & Result::ByteArray) {
++ QByteArray b;
++ b.resize(res.bytes().size());
++ std::copy(res.bytes().begin(), res.bytes().end(), b.begin());
++ result.content = b;
++ } else {
++ result.content = QString::fromStdString(zxUtf8Text);
++ }
++#else
+ // detect content type
+ result.contentType = Result::Any;
+ if (std::any_of(res.text().begin(), res.text().end(), [](const auto c) { return c > 255; })) {
+@@ -262,6 +287,7 @@ void BarcodeDecoder::decodeZxing(const QImage &img, BarcodeDecoder::BarcodeTypes
+ } else {
+ result.content = QString::fromStdWString(res.text());
+ }
++#endif
+ result.positive |= formatToType(res.format());
+ } else {
+ result.negative |= format;
+--
+2.35.1
+
diff --git a/kde-apps/kitinerary/kitinerary-22.04.3-r1.ebuild b/kde-apps/kitinerary/kitinerary-22.04.3-r1.ebuild
new file mode 100644
index 000000000000..75600a759039
--- /dev/null
+++ b/kde-apps/kitinerary/kitinerary-22.04.3-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_QTHELP="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.92.0
+QTMIN=5.15.4
+VIRTUALX_REQUIRED="test"
+inherit ecm gear.kde.org
+
+DESCRIPTION="Data Model and Extraction System for Travel Reservation information"
+HOMEPAGE="https://apps.kde.org/kontact/"
+
+LICENSE="LGPL-2.1+"
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="+barcode pdf"
+
+REQUIRED_USE="test? ( pdf )"
+
+DEPEND="
+ dev-libs/libphonenumber
+ dev-libs/libxml2:2
+ dev-libs/openssl:=
+ >=dev-qt/qtdeclarative-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=kde-apps/kmime-${PVCUT}:5
+ >=kde-apps/kpkpass-${PVCUT}:5
+ >=kde-frameworks/karchive-${KFMIN}:5
+ >=kde-frameworks/kcalendarcore-${KFMIN}:5
+ >=kde-frameworks/kcontacts-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ sys-libs/zlib
+ barcode? ( >=media-libs/zxing-cpp-1.1.0:= )
+ pdf? ( app-text/poppler:=[qt5] )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="x11-misc/shared-mime-info"
+
+PATCHES=( "${FILESDIR}/${P}-zxing-cpp-1.4.0.patch" )
+
+src_configure() {
+ local mycmakeargs=(
+ # sci-geosciences/osmctools; TODO: useful at all?
+ -DCMAKE_DISABLE_FIND_PACKAGE_OsmTools=ON
+ $(cmake_use_find_package barcode ZXing)
+ $(cmake_use_find_package pdf Poppler)
+ )
+ ecm_src_configure
+}