#1149273 feather-wallet: FTBFS with boost 1.92

#1149273#5
Date:
2026-09-29 04:49:47 UTC
From:
To:
Dear Maintainer,

Boost 1.92 will most likely be the default boost version in the
upcoming Debian 14 (forky) release.

feather-wallet FTBFS with boost 1.92. Note that the FTBFS may not necessarily be
connected to boost - please check the build log for the actual cause.

boost-defaults pointing to 1.92 is available in experimental, so you can
rebuild your package against it to reproduce the failure and test the fix.

Note: This ticket severity will be increased to RC bug when
boost-defaults is switched to 1.92.

If your package depends on versioned boost packages (e.g. libboost1.90-dev),
please switch to the unversioned (default) ones (e.g. libboost-dev), so the
package follows future boost transitions automatically.

Here is the most probably relevant part of the failing build log:

==================== build log ====================

make  -f monero/external/easylogging++/CMakeFiles/easylogging.dir/build.make monero/external/easylogging++/CMakeFiles/easylogging.dir/build
[  0%] Building CXX object monero/src/device_trezor/CMakeFiles/obj_device_trezor.dir/trezor/messages_map.cpp.o
make[3]: Entering directory '/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu'
cd /build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/src/device_trezor && /usr/bin/x86_64-linux-gnu-g++ -DAUTO_INITIALIZE_EASYLOGGINGPP -DBLOCKCHAIN_DB=DB_LMDB -DBOOST_ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION -DBOOST_NO_AUTO_PTR -DBOOST_UUID_DISABLE_ALIGNMENT -DBUILD_GUI_DEPS=1 -DDEFAULT_DB_TYPE=\"lmdb\" -DDEVICE_TREZOR_READY=1 -DHAVE_EXPLICIT_BZERO -DHAVE_HIDAPI -DHAVE_READLINE -DHAVE_STRPTIME -DHAVE_TREZOR_LIBUSB=1 -DPER_BLOCK_CHECKPOINT -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/rapidjson/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/easylogging++ -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/contrib/epee/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/supercop/include -I/build/reproducibl
 e-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/generated_include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/translations -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/db_drivers/liblmdb -I/usr/include/hidapi -I/usr/include/libusb-1.0 -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 -pthread -DNO_AES  -Dcryptonote=MWYSUTPAXIBT -fno-strict-aliasing -D_GNU_SOURCE   -Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized -Wlogical-op -Wno-error=maybe-uninitialized -Wno-error=cpp -Wno-reorder -Wno-missing-field-initializers -fPIC  -Wformat -Wformat-security -fstack-protector -fstac
 k-protector-strong -fcf-protection=full -fstack-clash-protection -Werror=switch -Werror=return-type -fno-strict-aliasing -ftemplate-depth=900 -std=c++17 -MD -MT monero/src/device_trezor/CMakeFiles/obj_device_trezor.dir/trezor/messages_map.cpp.o -MF CMakeFiles/obj_device_trezor.dir/trezor/messages_map.cpp.o.d -o CMakeFiles/obj_device_trezor.dir/trezor/messages_map.cpp.o -c /build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.cpp
[  0%] Building CXX object monero/external/easylogging++/CMakeFiles/easylogging.dir/easylogging++.cc.o
cd /build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/external/easylogging++ && /usr/bin/x86_64-linux-gnu-g++ -DAUTO_INITIALIZE_EASYLOGGINGPP -DBLOCKCHAIN_DB=DB_LMDB -DDEFAULT_DB_TYPE=\"lmdb\" -DHAVE_EXPLICIT_BZERO -DHAVE_STRPTIME -DPER_BLOCK_CHECKPOINT -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/rapidjson/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/easylogging++ -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/contrib/epee/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/supercop/include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/generated_include -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/translations -I/build/reproducible-path/feather-wallet-2.8.1+dfsg/
 obj-x86_64-linux-gnu/monero/external/easylogging++ -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 -pthread -std=c++11 -fPIC -MD -MT monero/external/easylogging++/CMakeFiles/easylogging.dir/easylogging++.cc.o -MF CMakeFiles/easylogging.dir/easylogging++.cc.o.d -o CMakeFiles/easylogging.dir/easylogging++.cc.o -c /build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/external/easylogging++/easylogging++.cc
In file included from /build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.cpp:30:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp: In static member function ‘static hw::trezor::messages::MessageType hw::trezor::MessageMapper::get_message_wire_number()’:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:75:34: error: ‘is_base_of’ is not a member of ‘boost’; did you mean ‘std::is_base_of’? [-Wtemplate-body]
   75 |       BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                  ^~~~~~~~~~
In file included from /usr/include/c++/16/bits/char_traits.h:52,
                 from /usr/include/c++/16/string:45,
                 from /build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:33:
/usr/include/c++/16/type_traits:1642:12: note: ‘std::is_base_of’ declared here
 1642 |     struct is_base_of
      |            ^~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:75:70: error: expected primary-expression before ‘,’ token [-Wtemplate-body]
   75 |       BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                      ^
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:75:81: error: expected primary-expression before ‘>’ token [-Wtemplate-body]
   75 |       BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                                 ^
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:75:84: error: ‘::value’ has not been declared [-Wtemplate-body]
   75 |       BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                                    ^~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:75:7: error: there are no arguments to ‘BOOST_STATIC_ASSERT’ that depend on a template parameter, so a declaration of ‘BOOST_STATIC_ASSERT’ must be available [-Wtemplate-body]
   75 |       BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |       ^~~~~~~~~~~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:75:7: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp: In function ‘std::shared_ptr<_Tp> hw::trezor::message_ptr_retype(std::shared_ptr<google::protobuf::Message>&)’:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:82:32: error: ‘is_base_of’ is not a member of ‘boost’; did you mean ‘std::is_base_of’? [-Wtemplate-body]
   82 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                ^~~~~~~~~~
/usr/include/c++/16/type_traits:1642:12: note: ‘std::is_base_of’ declared here
 1642 |     struct is_base_of
      |            ^~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:82:68: error: expected primary-expression before ‘,’ token [-Wtemplate-body]
   82 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                    ^
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:82:79: error: expected primary-expression before ‘>’ token [-Wtemplate-body]
   82 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                               ^
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:82:82: error: ‘::value’ has not been declared [-Wtemplate-body]
   82 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                                  ^~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:82:5: error: there are no arguments to ‘BOOST_STATIC_ASSERT’ that depend on a template parameter, so a declaration of ‘BOOST_STATIC_ASSERT’ must be available [-Wtemplate-body]
   82 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |     ^~~~~~~~~~~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp: In function ‘std::shared_ptr<_Tp> hw::trezor::message_ptr_retype_static(std::shared_ptr<google::protobuf::Message>&)’:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:92:32: error: ‘is_base_of’ is not a member of ‘boost’; did you mean ‘std::is_base_of’? [-Wtemplate-body]
   92 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                ^~~~~~~~~~
/usr/include/c++/16/type_traits:1642:12: note: ‘std::is_base_of’ declared here
 1642 |     struct is_base_of
      |            ^~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:92:68: error: expected primary-expression before ‘,’ token [-Wtemplate-body]
   92 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                    ^
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:92:79: error: expected primary-expression before ‘>’ token [-Wtemplate-body]
   92 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                               ^
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:92:82: error: ‘::value’ has not been declared [-Wtemplate-body]
   92 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |                                                                                  ^~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.hpp:92:5: error: there are no arguments to ‘BOOST_STATIC_ASSERT’ that depend on a template parameter, so a declaration of ‘BOOST_STATIC_ASSERT’ must be available [-Wtemplate-body]
   92 |     BOOST_STATIC_ASSERT(boost::is_base_of<google::protobuf::Message, t_message>::value);
      |     ^~~~~~~~~~~~~~~~~~~
In file included from /build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.cpp:32:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages/messages-common.pb.h: At global scope:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages/messages-common.pb.h:763:5: warning: ‘hw::trezor::messages::common::ButtonRequest_ButtonRequestType__Deprecated_ButtonRequest_PassphraseType’ is deprecated [-Wdeprecated-declarations]
  763 |     ButtonRequest_ButtonRequestType__Deprecated_ButtonRequest_PassphraseType;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages/messages-common.pb.h:157:3: note: declared here
  157 |   ButtonRequest_ButtonRequestType__Deprecated_ButtonRequest_PassphraseType PROTOBUF_DEPRECATED_ENUM = 14,
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.cpp: In static member function ‘static google::protobuf::Message* hw::trezor::MessageMapper::get_message(const std::string&)’:
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.cpp:83:23: warning: loop variable ‘text’ of type ‘const std::string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char*’ [-Wrange-loop-construct]
   83 |     for(const string &text : PACKAGES){
      |                       ^~~~
/build/reproducible-path/feather-wallet-2.8.1+dfsg/monero/src/device_trezor/trezor/messages_map.cpp:83:23: note: use non-reference type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
make[3]: *** [monero/src/device_trezor/CMakeFiles/obj_device_trezor.dir/build.make:82: monero/src/device_trezor/CMakeFiles/obj_device_trezor.dir/trezor/messages_map.cpp.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:2475: monero/src/device_trezor/CMakeFiles/obj_device_trezor.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[  0%] Linking CXX static library libeasylogging.a
cd /build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/external/easylogging++ && /usr/bin/cmake -P CMakeFiles/easylogging.dir/cmake_clean_target.cmake
cd /build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu/monero/external/easylogging++ && /usr/bin/cmake -E cmake_link_script CMakeFiles/easylogging.dir/link.txt --verbose=1
/usr/bin/x86_64-linux-gnu-ar qc libeasylogging.a CMakeFiles/easylogging.dir/easylogging++.cc.o
/usr/bin/x86_64-linux-gnu-ranlib libeasylogging.a
make[3]: Leaving directory '/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu'
[  0%] Built target easylogging
make[2]: Leaving directory '/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/feather-wallet-2.8.1+dfsg/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j2 INSTALL="install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:21: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
==================== end of build log =============

Thanks,

Anton Gladky