Source: feather-wallet
Severity: important
Version: 2.8.1+dfsg-3
X-Debbugs-CC: [email protected]
Control: forwarded -1 https://github.com/feather-wallet/feather/issues/288
Control: affects -1 +src:zxing-cpp
Control: tags -1 +patch

Dear Debian feather-wallet package maintainer,

Your package fails to build from source when building against zxing-cpp 3.0.0
(currently in Debian Experimental):


[ 84%] Building CXX object 
src/CMakeFiles/feather.dir/wizard/PageHardwareDevice.cpp.o
cd /build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/src && /usr/bin/c++ -DFEATHER_TARGET_TRIPLET=\"\" -DFEATHER_VERSION=\"2.8.1\" -DHAS_WEBSOCKET=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIAWIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_NO_DEBUG=1 -DQT_SVGWIDGETS_LIB -DQT_SVG_LIB -DQT_WAYLANDCLIENT_LIB -DQT_WEBSOCKETS_LIB -DQT_WIDGETS_LIB -DTOR_VERSION=\"\" -DWITH_SCANNER=1 -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/src/feather_autogen/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/easylogging++ -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/contrib/epee/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/src -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/src/libwalletqt -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/src/model -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/src/utils -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/src/qrcode -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/contrib/epee/src/../include -isystem /usr/include/x86_64-linux-gnu/qt6/QtCore -isystem /usr/include/x86_64-linux-gnu/qt6 -isystem /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -isystem /usr/include/x86_64-linux-gnu/qt6/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt6/QtGui -isystem /usr/include/x86_64-linux-gnu/qt6/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt6/QtSvg -isystem /usr/include/x86_64-linux-gnu/qt6/QtWebSockets -isystem /usr/include/x86_64-linux-gnu/qt6/QtSvgWidgets -isystem /usr/include/x86_64-linux-gnu/qt6/QtMultimedia -isystem /usr/include/x86_64-linux-gnu/qt6/QtMultimediaWidgets -isystem /usr/include/x86_64-linux-gnu/qt6/QtWaylandClient -g -O2 -ffile-prefix-map=/build/reproducible-path/feather-wallet-2.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fstack-protector -fstack-protector-strong -fcf-protection=full -fstack-clash-protection -fPIC -Dcryptonote=MWYSUTPAXIBT -std=gnu++17 -MD -MT src/CMakeFiles/feather.dir/wizard/PageHardwareDevice.cpp.o -MF CMakeFiles/feather.dir/wizard/PageHardwareDevice.cpp.o.d -o CMakeFiles/feather.dir/wizard/PageHardwareDevice.cpp.o -c /build/reproducible-path/feather-wallet-2.8.1+dfsg/src/wizard/PageHardwareDevice.cpp
In file included from 
/build/reproducible-path/feather-wallet-2.8.1+dfsg/src/widgets/PayToEdit.cpp:16:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/src/qrcode/utils/QrCodeUtils.h:30:63:
 error: ‘DecodeHints’ in namespace ‘ZXing’ does not name a type
   30 |     static Result ReadBarcode(const QImage& img, const 
ZXing::DecodeHints& hints = { });
      |                                                               
^~~~~~~~~~~
make[3]: *** [src/CMakeFiles/feather.dir/build.make:2221: 
src/CMakeFiles/feather.dir/widgets/PayToEdit.cpp.o] Error 1


This is due to feather-wallet using deprecated APIs of zxing-cpp, which
was removed in zxing-cpp v3.0.0+.

This issue has been reported upstream at 
https://github.com/feather-wallet/feather/issues/288 .
I am also attaching a proposed patch that could fix this problem in the 
attachment.


Thanks,
Boyuan Yang
From: Boyuan Yang <[email protected]>
Date: Sat, 7 Feb 2026 11:58:36 -0500
Subject: Fix FTBFS with zxing-cpp 3.0.0

Bug: https://github.com/feather-wallet/feather/issues/288
---
 src/qrcode/scanner/QrScanThread.cpp | 4 ++--
 src/qrcode/utils/QrCodeUtils.cpp    | 6 +++---
 src/qrcode/utils/QrCodeUtils.h      | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/qrcode/scanner/QrScanThread.cpp 
b/src/qrcode/scanner/QrScanThread.cpp
index e1ecaf9..d47a5b6 100644
--- a/src/qrcode/scanner/QrScanThread.cpp
+++ b/src/qrcode/scanner/QrScanThread.cpp
@@ -15,7 +15,7 @@ QrScanThread::QrScanThread(QObject *parent)
 
 void QrScanThread::processQImage(const QImage &qimg)
 {
-    const auto hints = ZXing::DecodeHints()
+    const auto hints = ZXing::ReaderOptions()
             .setFormats(ZXing::BarcodeFormat::QRCode)
             .setTryHarder(true)
             .setMaxNumberOfSymbols(1);
@@ -62,4 +62,4 @@ void QrScanThread::run()
             processQImage(m_queue.takeFirst());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/qrcode/utils/QrCodeUtils.cpp b/src/qrcode/utils/QrCodeUtils.cpp
index e957780..22ecd02 100644
--- a/src/qrcode/utils/QrCodeUtils.cpp
+++ b/src/qrcode/utils/QrCodeUtils.cpp
@@ -3,7 +3,7 @@
 
 #include "QrCodeUtils.h"
 
-Result QrCodeUtils::ReadBarcode(const QImage& img, const ZXing::DecodeHints& 
hints)
+Result QrCodeUtils::ReadBarcode(const QImage& img, const ZXing::ReaderOptions& 
hints)
 {
     auto ImgFmtFromQImg = [](const QImage& img){
         switch (img.format()) {
@@ -50,7 +50,7 @@ Result QrCodeUtils::ReadBarcode(const QImage& img, const 
ZXing::DecodeHints& hin
 
 
 QString QrCodeUtils::scanImage(const QImage &img) {
-    const auto hints = ZXing::DecodeHints()
+    const auto hints = ZXing::ReaderOptions()
             .setFormats(ZXing::BarcodeFormat::QRCode | 
ZXing::BarcodeFormat::DataMatrix)
             .setTryHarder(true)
             .setBinarizer(ZXing::Binarizer::FixedThreshold);
@@ -58,4 +58,4 @@ QString QrCodeUtils::scanImage(const QImage &img) {
     const auto result = ReadBarcode(img, hints);
 
     return result.text();
-}
\ No newline at end of file
+}
diff --git a/src/qrcode/utils/QrCodeUtils.h b/src/qrcode/utils/QrCodeUtils.h
index 305bc96..b41c7be 100644
--- a/src/qrcode/utils/QrCodeUtils.h
+++ b/src/qrcode/utils/QrCodeUtils.h
@@ -27,7 +27,7 @@ private:
 class QrCodeUtils {
 public:
     static QString scanImage(const QImage &img);
-    static Result ReadBarcode(const QImage& img, const ZXing::DecodeHints& 
hints = { });
+    static Result ReadBarcode(const QImage& img, const ZXing::ReaderOptions& 
hints = { });
 };
 
 #endif //FEATHER_QRCODEUTILS_H

Reply via email to