In one week (2023-03-09), or slightly later, I plan to update libbraiding from 1.1 to 1.2
in F39/Rawhide. Upstream says, “Minor changes for compatibility with newer C++.”
https://github.com/miguelmarco/libbraiding/compare/1.1...1.2
This is not supposed to be an incompatible update, and the .so version is unchanged, but
there are changes to inline template functions that are used both inside and (potentially)
outside the compiled library, and the compiled library loses several symbols as a result:
Comparing the ABI of binaries between libbraiding-1.1-14.fc38.x86_64.rpm and
libbraiding-1.2-1.fc39.x86_64.rpm:
================ changes of 'libbraiding.so.0.0.0'===============
Functions changes summary: 5 Removed, 0 Changed, 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
5 Removed functions:
[D] 'method bool
CBraid::Factor<CBraid::ArtinPresentation>::CompareWithDelta(CBraid::sint32)
const' {_ZNK6CBraid6FactorINS_17ArtinPresentationEE16CompareWithDeltaEi}
[D] 'method bool
CBraid::Factor<CBraid::ArtinPresentation>::CompareWithIdentity() const'
{_ZNK6CBraid6FactorINS_17ArtinPresentationEE19CompareWithIdentityEv}
[D] 'method CBraid::Factor<CBraid::ArtinPresentation>
CBraid::Factor<CBraid::ArtinPresentation>::Flip(CBraid::sint32) const'
{_ZNK6CBraid6FactorINS_17ArtinPresentationEE4FlipEi}
[D] 'function bool
CBraid::MakeLeftWeighted<CBraid::ArtinPresentation>(CBraid::Factor<CBraid::ArtinPresentation>&,
CBraid::Factor<CBraid::ArtinPresentation>&)'
{_ZN6CBraid16MakeLeftWeightedINS_17ArtinPresentationEEEbRNS_6FactorIT_EES5_}
[D] 'function bool
CBraid::MakeRightWeighted<CBraid::ArtinPresentation>(CBraid::Factor<CBraid::ArtinPresentation>&,
CBraid::Factor<CBraid::ArtinPresentation>&)'
{_ZN6CBraid17MakeRightWeightedINS_17ArtinPresentationEEEbRNS_6FactorIT_EES5_}
================ end of changes of 'libbraiding.so.0.0.0'===============
Therefore, for safety, I plan to build this for F39/Rawhide only, and I plan to coordinate
a rebuild of sagemath (the sole dependent package) in a side tag.