festvox / flite

A small fast portable speech synthesis system
Other
861 stars 186 forks source link

[2.1] symbols removed but no soname bump #2

Closed paulgevers closed 6 years ago

paulgevers commented 6 years ago

While trying to package flite version 2.1 for Debian¹, I noticed that three symbols (cst_read_2d_array, cst_read_array and cst_rx_not_indic) were dropped with respect to version 2.0. I was wondering if bumping of the soname was just forgotten or if there is anything else at stake.

Can you either bump the soname, or let me know what you think I should do instead?

¹ https://www.debian.org/

awbcmu commented 6 years ago

They first two have been replaced with new names cst_read_2d_double_array and cst_read_float_array. cst_rx_not_indic was in the code twice for a while before we fixed it.

For Unix/Linux (unlike Windows) I didn't think we needed to explicitly list external functions in shared libraries, it juts got that from the standard declarations in the code, though I have to admit most of our test implementations don't use shared libraries so we don't test these as much as they should be exercised.

paulgevers commented 6 years ago

@awbcmu thanks for the answer.

I think I agree with you that you don't need to list external functions explicitly, however, you do have a soname for your library. If you change the API of you library in an backwards incompatible way (like changing the class of an interface, or dropping one), then if you care for your clients of the library you really should bump the soname.

In this case, I took the risk in Debian after I investigated that all the KNOWN clients (those that are shipped with Debian) don't used those dropped symbols. But this is typically frowned upon in the world of Linux distributions, so I rather not have to do that again.

festvox commented 6 years ago

Noted, we wont do that (unless we do a major overhaul of the whole API at a major release), but we will keep the symbols compatible for seemless upgrades.

thanks