On Mon, Sep 15, 2025 at 05:00:11PM +0000, Gianfranco Costamagna wrote: > >Should I do another NMU with version 3.12.0.really.3.12.0.really.3.11.3-0.1 > >to > >fix this issue ? > > please no :)
I do not see much alternative. > the fact that build-dependencies have a strong dependency on the abi is not > sufficient? I thought it was enough to make sure they were picking up the new > abi... We tried to explain this four times already. If you were unsure, you could have discussed your plan in the bug report #1106511 in advance, and please remember to always CC the submitter when posting to a bug, otherwise the submitter does not get a copy, only the maintainer. libxeus11 is a shared library and so has a _fixed_ ABI that _cannot_ be changed. However its ABI incorporates nlohmann-json3 ABI so it needs to be build always with the same nlohmann-json3 ABI. However nlohmann-json3 upstream has set up nlohmann-json3 so that its ABI include the version number, so that means that libxeus11 must always be built with the exact same version of nlohmann-json3, which is 3.11.3. When libxeus12 is released, it will incorporate a newer nlohmann-json3 version, and so we will be able to move to that new version, but not before. Rebuilding libxeus11 with 3.12.0 with lead to a libxeus11 package with a wrong ABI. You can check that by doing nm -D /usr/lib/x86_64-linux-gnu/libxeus.so.11.1.1|grep nlohmann 00000000000205e0 T _ZNK4xeus7xtarget15publish_messageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorS6_blmdSaNSA_14adl_serializerESD_IhSaIhEEvEESH_SD_ISD_IcS5_ESaISI_EE when build with nlohmann-json3 3.12.0 one will get a different symbol 00000000000205e0 T _ZNK4xeus7xtarget15publish_messageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann16json_abi_v3_12_010basic_jsonISt3mapSt6vectorS6_blmdSaNSA_14adl_serializerESD_IhSaIhEEvEESH_SD_ISD_IcS5_ESaISI_EE so the library is incompatible. This is the issue that happened last time with 3.11.2->3.11.3, see #1060164. This issue was worked around because libxeus9 was going to be replaced by libxeus10. But so far I see no plan for a libxeus12, so we cannot afford to break libxeus11. And of course there are other libraries using nlohmann-json3 that might have the same issue. Debian takes library ABI seriously. Cheers, -- Bill. <[email protected]> Imagine a large red swirl here.

