Hi, On Mon, 28 Sep 2015, A. Maitland Bottoms wrote: > I've got uhd-3.9.1-1 conflicting with gnuradio << 3.7.8-3
Breaks should be enough. > and I am considering adding a versioned depends for gnuradio 3.7.8-4 > and libgnuradio-osmosdr0.1.4 0.1.4-3 that requires libuhd003 >= 3.9. > Will that be enough to avoid problems when upgrading from jessie to stretch? Almost: - Breaks is enough, no need for Conflicts - gr-osmosdr is also a reverse dependency of libuhd003 so should have the tighter dep as well - the tighter dependency should be injected via a stronger dependency in the "shlibs" file exported by libuhd003 (built with "dh_makeshlibs -V") > Upstream has been breaking ABI routinely. Another approach would be > to patch the soname and soversion for the Debian packaging resulting > in a new libuhd3.9 library package. At the moment I am preferring > this approach to the v5 suffix approach. The package rename was the easy/clean solution to make sure that old binaries do not use the new library. But you can also ensure this with Breaks. Both are acceptable. > But if taking the v5 suffix approach is the recommended way forward, > I can certainly do that. But I would like your advice now that you > know upstream UHD often breaks ABI without soname/soversion bumps. the v5 is just a way to automatically rename the package, the suffix itself is not important, so renaming to libuhd3.9 is also possible but this will require a round through NEW while the v5 suffix is already known in the overrides file. > I think UHD upstream is interested in best practices for library > release management, but, like me, needs a bit of education and a > plan to move from the current state of release management to > something better. I think you know the basics: for upstream “change the SONAME when you break the ABI”, and for you “change the package name when the SONAME changes”. > The reasoning is that uhd routinely changes ABI and API between versions. > I have been using versioned package dependencies to manage library ABI > changes. Since 3.9.0 was another ABI bump from 3.8.5, I went ahead and > reverted the library rename. As long as upstream doesn't follow the SONAME change, it's up to you to change the package name when the ABI changes. Cheers, -- Raphaël Hertzog ◈ Debian Developer Support Debian LTS: http://www.freexian.com/services/debian-lts.html Learn to master Debian: http://debian-handbook.info/get/

