* [Buildroot] [PATCH 1/1] package/zxing-cpp: bump to version 2.2.1
@ 2024-07-22 16:17 Dario Binacchi
2024-07-22 16:28 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Dario Binacchi @ 2024-07-22 16:17 UTC (permalink / raw)
To: buildroot; +Cc: Francesco Nicoletta Puzzillo, Dario Binacchi, linux-amarula
Release notes:
https://github.com/zxing-cpp/zxing-cpp/releases/tag/v2.2.0
https://github.com/zxing-cpp/zxing-cpp/releases/tag/v2.2.1
The added patch fixes the library compilation when only the writer
support is enabled.
Co-Developed-by: Francesco Nicoletta Puzzillo <francesco.nicolettap@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
...-when-only-writer-support-is-enabled.patch | 164 ++++++++++++++++++
package/zxing-cpp/zxing-cpp.hash | 2 +-
package/zxing-cpp/zxing-cpp.mk | 2 +-
3 files changed, 166 insertions(+), 2 deletions(-)
create mode 100644 package/zxing-cpp/0001-Fix-building-when-only-writer-support-is-enabled.patch
diff --git a/package/zxing-cpp/0001-Fix-building-when-only-writer-support-is-enabled.patch b/package/zxing-cpp/0001-Fix-building-when-only-writer-support-is-enabled.patch
new file mode 100644
index 000000000000..0d2a90f7a546
--- /dev/null
+++ b/package/zxing-cpp/0001-Fix-building-when-only-writer-support-is-enabled.patch
@@ -0,0 +1,164 @@
+From aef33b66df0ad6f085dc55b50d7847e0b8a2ccd8 Mon Sep 17 00:00:00 2001
+From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Date: Wed, 17 Jul 2024 14:53:35 +0200
+Subject: [PATCH] Fix building when only writer support is enabled
+
+The compilation of the following code, which links the zxing-cpp library
+built with only the writer (encoder) support, raises the following
+linking errors:
+
+using namespace ZXing;
+
+int main(void)
+{
+ std::string str = "01";
+ BitHacks::NumberOfLeadingZeros(0);
+ auto writer = MultiFormatWriter(BarcodeFormat::Code128);
+ writer.setEncoding(CharacterSet::UTF8);
+ writer.setMargin(0);
+ auto matrix = writer.encode(str, 0, 0 /*scaledImageWidth, pixelHeight*/);
+
+ return EXIT_SUCCESS;
+}
+
+arm-buildroot-linux-uclibcgnueabihf/bin/ld:host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libZXing.so:
+undefined reference to `ZXing::TextDecoder::GuessEncoding(unsigned char const*, unsigned int, ZXing::CharacterSet)'
+arm-buildroot-linux-uclibcgnueabihf/bin/ld: host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libZXing.so:
+undefined reference to `ZXing::HRIFromGS1[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >)'
+arm-buildroot-linux-uclibcgnueabihf/bin/ld: host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libZXing.so:
+undefined reference to `ZXing::TextDecoder::Append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char const*, unsigned int, ZXing::CharacterSet, bool)'
+arm-buildroot-linux-uclibcgnueabihf/bin/ld: host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libZXing.so:
+undefined reference to `ZXing::HRIFromISO15434[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >)'
+collect2: error: ld returned 1 exit status
+
+The patch fixes these errors.
+
+Co-Developed-by: Francesco Nicoletta Puzzillo <francesco.nicolettap@amarula>
+Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Upstream: backport from upstream https://github.com/zxing-cpp/zxing-cpp/pull/811
+---
+ core/src/Content.cpp | 4 ++++
+ core/src/Content.h | 6 ++++++
+ core/src/DecoderResult.h | 2 ++
+ core/src/GTIN.cpp | 2 ++
+ core/src/GTIN.h | 2 ++
+ 5 files changed, 16 insertions(+)
+
+diff --git a/core/src/Content.cpp b/core/src/Content.cpp
+index 4d3c44657cf9..569d4e35614a 100644
+--- a/core/src/Content.cpp
++++ b/core/src/Content.cpp
+@@ -93,6 +93,7 @@ bool Content::canProcess() const
+ return std::all_of(encodings.begin(), encodings.end(), [](Encoding e) { return CanProcess(e.eci); });
+ }
+
++#ifdef ZXING_READERS
+ std::string Content::render(bool withECI) const
+ {
+ if (empty() || !canProcess())
+@@ -165,6 +166,7 @@ std::wstring Content::utfW() const
+ {
+ return FromUtf8(render(false));
+ }
++#endif // ZXING_READERS
+
+ ByteArray Content::bytesECI() const
+ {
+@@ -188,6 +190,7 @@ ByteArray Content::bytesECI() const
+ return ByteArray(res);
+ }
+
++#ifdef ZXING_READERS
+ CharacterSet Content::guessEncoding() const
+ {
+ // assemble all blocks with unknown encoding
+@@ -236,5 +239,6 @@ ContentType Content::type() const
+
+ return ContentType::Mixed;
+ }
++#endif // ZXING_READERS
+
+ } // namespace ZXing
+diff --git a/core/src/Content.h b/core/src/Content.h
+index 99e5a01e7140..aa77bda94d54 100644
+--- a/core/src/Content.h
++++ b/core/src/Content.h
+@@ -38,7 +38,9 @@ class Content
+ void ForEachECIBlock(FUNC f) const;
+
+ void switchEncoding(ECI eci, bool isECI);
++#ifdef ZXING_READERS
+ std::string render(bool withECI) const;
++#endif // ZXING_READERS
+
+ public:
+ struct Encoding
+@@ -75,13 +77,17 @@ public:
+ bool empty() const { return bytes.empty(); }
+ bool canProcess() const;
+
++#ifdef ZXING_READERS
+ std::string text(TextMode mode) const;
+ std::wstring utfW() const; // utf16 or utf32 depending on the platform, i.e. on size_of(wchar_t)
+ std::string utf8() const { return render(false); }
++#endif // ZXING_READERS
+
+ ByteArray bytesECI() const;
++#ifdef ZXING_READERS
+ CharacterSet guessEncoding() const;
+ ContentType type() const;
++#endif // ZXING_READERS
+ };
+
+ } // ZXing
+diff --git a/core/src/DecoderResult.h b/core/src/DecoderResult.h
+index 02b285084195..3117b03a923a 100644
+--- a/core/src/DecoderResult.h
++++ b/core/src/DecoderResult.h
+@@ -50,7 +50,9 @@ public:
+ Content&& content() && { return std::move(_content); }
+
+ // to keep the unit tests happy for now:
++#ifdef ZXING_READERS
+ std::wstring text() const { return _content.utfW(); }
++#endif // ZXING_READERS
+ std::string symbologyIdentifier() const { return _content.symbology.toString(false); }
+
+ // Simple macro to set up getter/setter methods that save lots of boilerplate.
+diff --git a/core/src/GTIN.cpp b/core/src/GTIN.cpp
+index 256855a03070..690901062301 100644
+--- a/core/src/GTIN.cpp
++++ b/core/src/GTIN.cpp
+@@ -199,6 +199,7 @@ std::string LookupCountryIdentifier(const std::string& GTIN, const BarcodeFormat
+ return it != std::end(COUNTRIES) && prefix >= it->first && prefix <= it->last ? it->id : std::string();
+ }
+
++#ifdef ZXING_READERS
+ std::string EanAddOn(const Result& result)
+ {
+ if (!(BarcodeFormat::EAN13 | BarcodeFormat::UPCA | BarcodeFormat::UPCE | BarcodeFormat::EAN8)
+@@ -208,6 +209,7 @@ std::string EanAddOn(const Result& result)
+ auto pos = txt.find(' ');
+ return pos != std::string::npos ? std::string(txt.substr(pos + 1)) : std::string();
+ }
++#endif // ZXING_READERS
+
+ std::string IssueNr(const std::string& ean2AddOn)
+ {
+diff --git a/core/src/GTIN.h b/core/src/GTIN.h
+index d56b604e5f71..9af0b01200ce 100644
+--- a/core/src/GTIN.h
++++ b/core/src/GTIN.h
+@@ -47,7 +47,9 @@ bool IsCheckDigitValid(const std::basic_string<T>& s)
+ */
+ std::string LookupCountryIdentifier(const std::string& GTIN, const BarcodeFormat format = BarcodeFormat::None);
+
++#ifdef ZXING_READERS
+ std::string EanAddOn(const Result& result);
++#endif // ZXING_READERS
+
+ std::string IssueNr(const std::string& ean2AddOn);
+ std::string Price(const std::string& ean5AddOn);
+--
+2.43.0
+
diff --git a/package/zxing-cpp/zxing-cpp.hash b/package/zxing-cpp/zxing-cpp.hash
index 6c6917ed8650..ff11896f4b79 100644
--- a/package/zxing-cpp/zxing-cpp.hash
+++ b/package/zxing-cpp/zxing-cpp.hash
@@ -1,5 +1,5 @@
# Locally calculated
-sha256 6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe zxing-cpp-2.1.0.tar.gz
+sha256 02078ae15f19f9d423a441f205b1d1bee32349ddda7467e2c84e8f08876f8635 zxing-cpp-2.2.1.tar.gz
# License files
sha256 c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08 LICENSE
diff --git a/package/zxing-cpp/zxing-cpp.mk b/package/zxing-cpp/zxing-cpp.mk
index 077d7e75d3dd..5f91bf2f716d 100644
--- a/package/zxing-cpp/zxing-cpp.mk
+++ b/package/zxing-cpp/zxing-cpp.mk
@@ -4,7 +4,7 @@
#
################################################################################
-ZXING_CPP_VERSION = 2.1.0
+ZXING_CPP_VERSION = 2.2.1
ZXING_CPP_SITE = $(call github,zxing-cpp,zxing-cpp,v$(ZXING_CPP_VERSION))
ZXING_CPP_LICENSE = Apache-2.0
ZXING_CPP_LICENSE_FILES = LICENSE
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-07-22 16:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-22 16:17 [Buildroot] [PATCH 1/1] package/zxing-cpp: bump to version 2.2.1 Dario Binacchi
2024-07-22 16:28 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.