On 2020-12-19 Niels Möller wrote:
Amos Jeffries squid3@treenet.co.nz writes:
I would have though this needs a soname bump. Otherwise software built to use bcrypt might try to link to the old version with same soname.
My understanding is that one usually doesn't bump the soname when adding new functions.
[...]
Then the soname only ensures that upgrading *the library* doesn't break installed and working applications. Upgrading an application (to a new version depending on new library functions) could break, and require library to be upgraded first. Preventing that kind of breakage has to be prevented by other means, e.g., dependencies in the packaging system.
Hello Niels,
that mirrors my understanding perfectly. Adding functions does not require a soname bump; removing functions or changing the number or type of arguments a function expects does[1].
cu Andreas
[1] With versioned symbols a library can provide both the old version of a symbol for applications built against earlier library versions and the newer interface for freshly linked apps to avoid breaking legacy apps and therefore avoid a soname bump in most cases. However this effort only pays off when a soname bump would bring loads of pain, i.e. glibc.