This would affect most applications using libpe_status. I ran into a situation recently where a fix would require changing libpe_status's pe_working_set_t data type.
For most data types in the Pacemaker API, we require (usually by documented policy rather than code) that library-provided constructors be used to allocate them. That allows us to add new members at the end of structs without existing applications needing to be rebuilt. However we don't have that for pe_working_set_t, so any change to that currently requires an ABI version bump and thus all applications using it to be recompiled (and breaking any ABI stability a distro would like to provide). I have a PR open currently to add a constructor and destructor for pe_working_set_t, and document their requirement: https://github.com/ClusterLabs/pacemaker/pull/1608 Applications that use the library would need to not only be recompiled but also modified to use the new functions. The PR gives examples. A bit of searching turned up only sbd, fence-virt, and pacemaker-mgmt using libpe_status (and I'm not sure pacemaker-mgmt is still active). But I'm curious if anyone has custom applications that might be affected, or has an opinion on the problem and solution here. In case anyone's interested, the fix that inspired this has its own PR: https://github.com/ClusterLabs/pacemaker/pull/1609 -- Ken Gaillot <kgail...@redhat.com> _______________________________________________ Developers mailing list Developers@clusterlabs.org https://lists.clusterlabs.org/mailman/listinfo/developers