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. <ballo...@debian.org>

Imagine a large red swirl here. 

Reply via email to