On 2020-12-29 22:01:15, Andrey Rahmatullin wrote: > Control: reassign -1 libspdlog1/1:1.8.1+ds-2+b1 > Control: affects -1 waybar > Control: severity -1 serious > Control: retitle -1 libspdlog1 breaks ABI on rebuilds with different libfmt > > On Sun, Dec 27, 2020 at 09:26:09PM +0100, Michele Cane wrote: > > waybar: symbol lookup error: waybar: undefined symbol: > > _ZN6spdlog7details7log_msgC1ENS_10source_locEN3fmt2v617basic_string_viewIcEENS_5level10level_enumES6_ > This is because libspdlog1 was rebuilt with newer libfmt and this caused > symbol renames. > > #977454 says "The code is actually working with the new version, only the > symbols file is wrong here. spdlog uses fmtlib internal API and exposes it > through the symbols files. This looks wrong to me, as every new fmtlib > will cause spdlog ftbfs due to the symbols file.". If it's about the same > problem then it looks like it failed to mention that symbol changes cause > much worse problems than just needing to update the symbols file.
The situtation is somewhat similar to liboost-regex and libicu. libboost-regex exports symbols that depend on libicu's ABI and change whenever liboost-regex is rebuilt against a version of libicu with a different ABI. For spdlog this can be solved in the same way as for boost. liboost-regexX.Y provides libboost-regexX.Y-icuZ when built against libicuZ. Reverse dependencies then depend on libboost-regexX.Y-icuZ. See https://salsa.debian.org/debian/boost/-/blob/master/debian/rules#L53 https://salsa.debian.org/debian/boost/-/blob/master/debian/rules#L289 https://salsa.debian.org/debian/boost/-/blob/master/debian/rules#L338 Cheers -- Sebastian Ramacher
signature.asc
Description: PGP signature