#1149287 shasta: FTBFS with boost 1.92

#1149287#5
Date:
2026-09-29 05:31:54 UTC
From:
To:
Dear Maintainer,

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

shasta 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 ====================
[ 84%] Building CXX object dynamicLibrary/CMakeFiles/shastaDynamicLibrary.dir/__/src/mode3-AssemblyGraphDetangle.cpp.o
cd /build/reproducible-path/shasta-0.14.0/obj-x86_64-linux-gnu/dynamicLibrary && /usr/bin/x86_64-linux-gnu-g++ -DBOOST_ALLOW_DEPRECATED_HEADERS -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DBUILD_ID=0.14.0 -DNDEBUG -DSHASTA_PYTHON_API -I/build/reproducible-path/shasta-0.14.0/dynamicLibrary/../src -g -O2 -ffile-prefix-map=/build/reproducible-path/shasta-0.14.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC   -std=c++20 -Wall -Wconversion -Wno-unused-result -Wno-trigraphs -Wno-psabi -Wunused-parameter -O3 -mcx16 -I/usr/include/python3.14 -I/usr/lib/python3/dist-packages/pybind11/include  -MD -MT dynamicLibrary/CMakeFiles/shastaDynamicLibrary.dir/__/src/mode3-AssemblyGraphDetangle.cpp.o -MF CMakeFiles/shastaDynamicLibrary.dir/__/src/mode3-AssemblyGraphDetangle.cpp.o.d -o CMakeFiles/shastaDynamicLibrary.dir/__/src/mode3-AssemblyGraphDetangle.cpp.o -c /build/reproducible-path/shasta
 -0.14.0/src/mode3-AssemblyGraphDetangle.cpp
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp: In member function ‘bool shasta::mode3::AssemblyGraph::detangleVertex(boost::adjacency_list<boost::listS, boost::listS, boost::bidirectionalS, shasta::mode3::AssemblyGraphVertex, shasta::mode3::AssemblyGraphEdge>::vertex_descriptor, bool, uint64_t, uint64_t, bool, double, double)’:
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:3276:18: warning: variable ‘significantCount’ set but not used [-Wunused-but-set-variable=]
 3276 |         uint64_t significantCount = 0;
      |                  ^~~~~~~~~~~~~~~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp: In member function ‘bool shasta::mode3::AssemblyGraph::detangleEdge(bool, std::map<long unsigned int, boost::detail::edge_desc_impl<boost::bidirectional_tag, void*> >&, std::map<long unsigned int, boost::detail::edge_desc_impl<boost::bidirectional_tag, void*> >::iterator&, uint64_t, uint64_t, bool, double, double)’:
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:3982:18: warning: variable ‘significantCount’ set but not used [-Wunused-but-set-variable=]
 3982 |         uint64_t significantCount = 0;
      |                  ^~~~~~~~~~~~~~~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp: In member function ‘bool shasta::mode3::AssemblyGraph::detangleShortSuperbubble(bool, const Superbubbles&, uint64_t, uint64_t, uint64_t, uint64_t, bool, double, double)’:
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:4824:14: warning: variable ‘significantCount’ set but not used [-Wunused-but-set-variable=]
 4824 |     uint64_t significantCount = 0;
      |              ^~~~~~~~~~~~~~~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:4826:14: warning: variable ‘negligibleCount’ set but not used [-Wunused-but-set-variable=]
 4826 |     uint64_t negligibleCount = 0;
      |              ^~~~~~~~~~~~~~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp: In member function ‘void shasta::mode3::AssemblyGraph::PhasingGraph::phase1(bool, bool)’:
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:6270:18: warning: variable ‘spanningTreeEdgeCount’ set but not used [-Wunused-but-set-variable=]
 6270 |         uint64_t spanningTreeEdgeCount = 0;
      |                  ^~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraphDetangle.cpp: In member function ‘bool shasta::mode3::AssemblyGraph::detangleSuperbubbleWithReadFollowing(bool, const Superbubbles&, uint64_t, uint64_t, double, uint64_t, uint64_t)’:
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraphDetangle.cpp:211:18: warning: variable ‘iteration’ set but not used [-Wunused-but-set-variable=]
  211 |     for(uint64_t iteration=0; ; iteration ++) {
      |                  ^~~~~~~~~
In file included from /build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:25:
/usr/include/boost/graph/adj_list_serialize.hpp: In instantiation of ‘void boost::serialization::load(Archive&, boost::adjacency_list<OEL, VL, D, VP, EP, GP, EL>&, unsigned int) [with Archive = boost::archive::binary_iarchive; OEL = boost::listS; VL = boost::listS; D = boost::bidirectionalS; VP = shasta::mode3::AssemblyGraphVertex; EP = shasta::mode3::AssemblyGraphEdge; GP = boost::no_property; EL = boost::listS]’:
/usr/include/boost/serialization/split_free.hpp:57:13:   required from ‘static void boost::serialization::free_loader<Archive, T>::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::adjacency_list<boost::listS, boost::listS, boost::bidirectionalS, shasta::mode3::AssemblyGraphVertex, shasta::mode3::AssemblyGraphEdge>]’
   57 |         load(ar, t, v);
      |         ~~~~^~~~~~~~~~
/usr/include/boost/serialization/split_free.hpp:72:18:   required from ‘void boost::serialization::split_free(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::adjacency_list<boost::listS, boost::listS, boost::bidirectionalS, shasta::mode3::AssemblyGraphVertex, shasta::mode3::AssemblyGraphEdge>]’
   72 |     typex::invoke(ar, t, file_version);
      |     ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/graph/adj_list_serialize.hpp:130:41:   required from ‘void boost::serialization::serialize(Archive&, boost::adjacency_list<OEL, VL, D, VP, EP, GP, EL>&, unsigned int) [with Archive = boost::archive::binary_iarchive; OEL = boost::listS; VL = boost::listS; D = boost::bidirectionalS; VP = shasta::mode3::AssemblyGraphVertex; EP = shasta::mode3::AssemblyGraphEdge; GP = boost::no_property; EL = boost::listS]’
  130 |         boost::serialization::split_free(ar, graph, file_version);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/serialization/serialization.hpp:109:14:   required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::adjacency_list<boost::listS, boost::listS, boost::bidirectionalS, shasta::mode3::AssemblyGraphVertex, shasta::mode3::AssemblyGraphEdge>]’
  109 |     serialize(ar, t, v);
      |     ~~~~~~~~~^~~~~~~~~~
/usr/include/boost/archive/detail/iserializer.hpp:189:40:   required from ‘void boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = boost::adjacency_list<boost::listS, boost::listS, boost::bidirectionalS, shasta::mode3::AssemblyGraphVertex, shasta::mode3::AssemblyGraphEdge>]’
  189 |     boost::serialization::serialize_adl(
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  190 |         boost::serialization::smart_cast_reference<Archive &>(ar),
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  191 |         * static_cast<T *>(x),
      |         ~~~~~~~~~~~~~~~~~~~~~~
  192 |         file_version
      |         ~~~~~~~~~~~~
  193 |     );
      |     ~
/usr/include/boost/archive/detail/iserializer.hpp:122:7:   [ skipping 17 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
  122 | class iserializer : public basic_iserializer
      |       ^~~~~~~~~~~
/usr/include/boost/archive/detail/iserializer.hpp:626:18:   required from ‘void boost::archive::load(Archive&, T&) [with Archive = binary_iarchive; T = shasta::mode3::AssemblyGraph]’
  626 |     typex::invoke(ar, t);
      |     ~~~~~~~~~~~~~^~~~~~~
/usr/include/boost/archive/detail/common_iarchive.hpp:67:22:   required from ‘void boost::archive::detail::common_iarchive<Archive>::load_override(T&) [with T = shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_iarchive]’
   67 |         archive::load(* this->This(), t);
      |         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/boost/archive/basic_binary_iarchive.hpp:76:50:   required from ‘void boost::archive::basic_binary_iarchive<Archive>::load_override(T&) [with T = shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_iarchive]’
   76 |       this->detail_common_iarchive::load_override(t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/archive/binary_iarchive_impl.hpp:58:60:   required from ‘void boost::archive::binary_iarchive_impl<Archive, Elem, Tr>::load_override(T&) [with T = shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_iarchive; Elem = char; Tr = std::char_traits<char>]’
   58 |         this->basic_binary_iarchive<Archive>::load_override(t);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/archive/detail/interface_iarchive.hpp:68:36:   required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_iarchive]’
   68 |         this->This()->load_override(t);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:8067:17:   required from here
 8067 |     archive >> *this;
      |                 ^~~~
/usr/include/boost/graph/adj_list_serialize.hpp:116:54: error: invalid conversion from ‘Vertex’ {aka ‘void*’} to ‘std::vector<void*>::size_type’ {aka ‘long unsigned int’} [-fpermissive]
  116 |             boost::tie(e, inserted) = add_edge(verts[u], verts[v], graph);
      |                                                      ^
      |                                                      |
      |                                                      Vertex {aka void*}
In file included from /usr/include/c++/16/vector:68,
                 from /build/reproducible-path/shasta-0.14.0/src/vector.hpp:4,
                 from /build/reproducible-path/shasta-0.14.0/src/MarkerInterval.hpp:10,
                 from /build/reproducible-path/shasta-0.14.0/src/mode3-Anchor.hpp:5,
                 from /build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.hpp:6,
                 from /build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:2:
/usr/include/c++/16/bits/stl_vector.h:1251:28: note: initializing argument 1 of ‘constexpr std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = void*; _Alloc = std::allocator<void*>; reference = void*&; size_type = long unsigned int]’
 1251 |       operator[](size_type __n) _GLIBCXX_NOEXCEPT
      |                  ~~~~~~~~~~^~~
/usr/include/boost/graph/adj_list_serialize.hpp:116:64: error: invalid conversion from ‘Vertex’ {aka ‘void*’} to ‘std::vector<void*>::size_type’ {aka ‘long unsigned int’} [-fpermissive]
  116 |             boost::tie(e, inserted) = add_edge(verts[u], verts[v], graph);
      |                                                                ^
      |                                                                |
      |                                                                Vertex {aka void*}
/usr/include/c++/16/bits/stl_vector.h:1251:28: note: initializing argument 1 of ‘constexpr std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = void*; _Alloc = std::allocator<void*>; reference = void*&; size_type = long unsigned int]’
 1251 |       operator[](size_type __n) _GLIBCXX_NOEXCEPT
      |                  ~~~~~~~~~~^~~
In file included from /usr/include/boost/archive/detail/interface_oarchive.hpp:24,
                 from /usr/include/boost/archive/detail/common_oarchive.hpp:22,
                 from /usr/include/boost/archive/basic_binary_oarchive.hpp:33,
                 from /usr/include/boost/archive/binary_oarchive_impl.hpp:22,
                 from /usr/include/boost/archive/binary_oarchive.hpp:21,
                 from /build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:23:
/usr/include/boost/archive/detail/oserializer.hpp: In instantiation of ‘static void boost::archive::detail::save_pointer_type<Archive>::invoke(Archive&, TPtr) [with TPtr = void*; Archive = boost::archive::binary_oarchive]’:
/usr/include/boost/archive/detail/oserializer.hpp:541:18:   required from ‘void boost::archive::save(Archive&, T&) [with Archive = binary_oarchive; T = void* const]’
  541 |     typex::invoke(ar, t);
      |     ~~~~~~~~~~~~~^~~~~~~
/usr/include/boost/archive/detail/common_oarchive.hpp:71:22:   required from ‘void boost::archive::detail::common_oarchive<Archive>::save_override(T&) [with T = void* const; Archive = boost::archive::binary_oarchive]’
   71 |         archive::save(* this->This(), t);
      |         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/boost/archive/basic_binary_oarchive.hpp:80:50:   required from ‘void boost::archive::basic_binary_oarchive<Archive>::save_override(const T&) [with T = void*; Archive = boost::archive::binary_oarchive]’
   80 |       this->detail_common_oarchive::save_override(t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/archive/binary_oarchive_impl.hpp:59:60:   required from ‘void boost::archive::binary_oarchive_impl<Archive, Elem, Tr>::save_override(T&) [with T = void* const; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits<char>]’
   59 |         this->basic_binary_oarchive<Archive>::save_override(t);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/archive/detail/interface_oarchive.hpp:71:36:   required from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = void*; Archive = boost::archive::binary_oarchive]’
   71 |         this->This()->save_override(t);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/serialization/nvp.hpp:48:8:   [ skipping 35 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
   48 |     ar << t.const_value();
      |     ~~~^~~~~~~~~~~~~~~~~~
/usr/include/boost/archive/detail/oserializer.hpp:541:18:   required from ‘void boost::archive::save(Archive&, T&) [with Archive = binary_oarchive; T = const shasta::mode3::AssemblyGraph]’
  541 |     typex::invoke(ar, t);
      |     ~~~~~~~~~~~~~^~~~~~~
/usr/include/boost/archive/detail/common_oarchive.hpp:71:22:   required from ‘void boost::archive::detail::common_oarchive<Archive>::save_override(T&) [with T = const shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_oarchive]’
   71 |         archive::save(* this->This(), t);
      |         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/boost/archive/basic_binary_oarchive.hpp:80:50:   required from ‘void boost::archive::basic_binary_oarchive<Archive>::save_override(const T&) [with T = shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_oarchive]’
   80 |       this->detail_common_oarchive::save_override(t);
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/archive/binary_oarchive_impl.hpp:59:60:   required from ‘void boost::archive::binary_oarchive_impl<Archive, Elem, Tr>::save_override(T&) [with T = const shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits<char>]’
   59 |         this->basic_binary_oarchive<Archive>::save_override(t);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/boost/archive/detail/interface_oarchive.hpp:71:36:   required from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = shasta::mode3::AssemblyGraph; Archive = boost::archive::binary_oarchive]’
   71 |         this->This()->save_override(t);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/build/reproducible-path/shasta-0.14.0/src/mode3-AssemblyGraph.cpp:8059:17:   required from here
 8059 |     archive << *this;
      |                 ^~~~
/usr/include/boost/archive/detail/oserializer.hpp:482:18: error: ‘void*’ is not a pointer-to-object type
  482 |         save(ar, * t);
      |                  ^~~
make[3]: *** [dynamicLibrary/CMakeFiles/shastaDynamicLibrary.dir/build.make:1650: dynamicLibrary/CMakeFiles/shastaDynamicLibrary.dir/__/src/mode3-AssemblyGraph.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/reproducible-path/shasta-0.14.0/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:132: dynamicLibrary/CMakeFiles/shastaDynamicLibrary.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/shasta-0.14.0/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/shasta-0.14.0/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:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
==================== end of build log =============

Thanks,

Anton Gladky