Bug#1060164: libxeus9 incompatible with nlohmann::json_abi_v3_11_3
Bill Allombert
ballombe at debian.org
Sat Jan 6 17:29:01 GMT 2024
Package: xeus-dev
Version: 3.1.3-1
Severity: serious
Dear Debian Science maintainers,
I have trouble with linking with libxeus9 since I upgraded
nlohmann-json3-dev to 3.11.3-1.
It seems to me nlohmann-json3-dev 3.11.3-1. is changing the API of libxeus9 in
an incompatible way.
/lib/x86_64-linux-gnu/libxeus.so.9 defines
xeus::make_null_debugger(xeus::xcontext&, xeus::xconfiguration const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned
long, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > > const&)
while programs compiled with xeus-dev and nlohmann-json3-dev require
xeus::make_null_debugger(xeus::xcontext&, xeus::xconfiguration const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned
long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&)'
That is 'nlohmann::json_abi_v3_11_3' instead of 'nlohmann::json_abi_v3_11_2'
This causes xeus-based kernels to fail to link.
main.cpp:(.text+0x58b): undefined reference to `xeus::make_null_debugger(xeus::xcontext&, xeus::xconfiguration const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&)'
Downgrading nlohmann-json3-dev to 3.11.2-2 fixes this issue.
binNMUing libxeus9 might fix this issue, but will probably silently change the ABI of libxeus9 without
updating the shlibs. This is worrysome. I hope I am wrong about that.
Cheers,
--
Bill. <ballombe at debian.org>
Imagine a large red swirl here.
More information about the debian-science-maintainers
mailing list