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++.”
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.
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:
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.