notfound 678769 1.1.6~rc0-4.2 reassign 678769 src:givaro affects 678769 linbox affects 678769 fflas-ffpack retitle 678769 givaro: changed ABI without SONAME bump found 678769 3.7.0-2 thanks
Justification: Policy 8.1 "Every time the shared library ABI changes in a way that may break binaries linked against older versions of the shared library, the SONAME of the library and the corresponding name for the binary package containing the runtime shared library should change. Normally, this means the SONAME should change any time an interface is removed from the shared library or the signature of an interface (the number of parameters or the types of parameters that it takes, for example) is changed. This practice is vital to allowing clean upgrades from older versions of the package and clean transitions between the old ABI and new ABI without having to upgrade every affected package simultaneously." The sequence was as follows: 0: givaro 3.2.13 was uploaded on 2012-05-29, the same day that linbox was NMU'd by doko for a gcc-4.7 FTBFS in linbox. Everything was fine at this point. 1: On 2012-06-10 - close to the known start of the release freeze for Wheezy - givaro 3.7.0-1 was uploaded, followed by 3.7.0-2 on 2012-06-21. AFAICT the release team were not asked about either upload, there was no request to binNMU linbox (it would have failed, had this been done). 2: givaro migrates into testing on 2012-07-02, despite #678769 being filed by Lucas on 24 Jun 2012 against linbox because the linbox maintainer didn't respond to the RC bug or try to work out what was wrong. 3: givaro doesn't use versioned symbols, so none of this was noticed by the givaro maintainer. (If a libgivaro0.symbols file was in use in 3.2.13, 3.7.0 would have failed to build for the givaro maintainer, complaining about missing symbols which *should* have given the hint that the givaro API had changed). givaro 3.7.0 has the following diffstat for just one of the public header files, givinteger.h: givinteger.h | 501 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 361 insertions(+), 140 deletions(-) This consists, mainly, of moving all of the Class IntegerDom public declarations inside a new namespace (Givaro::). Namespacing public functions and classes has the effect of *removing* the symbols as defined in 3.2.13 and *adding* all the same symbols back again with the namespace included as part of the symbol. This is an incompatible API change and requires source code changes in any reverse dependencies which include the affected header file. In this case, linbox. Therefore, givaro should have migrated to libgivaro1 at which point the givaro maintainer would have had to contact the release team for approval of a new transition which, at the time it was done, would likely have been denied. Instead, Debian testing now has a version of givaro which breaks reverse dependencies, a version of linbox which requires numerous source code changes to build against the new givaro (my patch so far includes 12 separate changes in the linbox source code and I've only processed the first few instances) and a version of fflas-ffpack which needs a rebuild against whatever version of givaro we end up with, or removal if that is the decision regarding fixing the givaro mess. My proposal to the release team to fix this mess is that all three packages (givaro, fflas-ffpack and linbox) are removed from testing as each maintainer has failed to spot the problem or prevent the breakage. No other packages would be affected by these removals. fflas-ffpack has the same maintainer as givaro. The reassignment of this bug does not affect the removal as the givaro maintainer should already have noticed that this bug existed and linbox needs substantial source code changes to work with the new givaro API. It does not seem likely to me that the necessary changes will be made given the lack of response to the original RC bug against linbox. -- Neil Williams ============= http://www.linux.codehelp.co.uk/
pgpRPkccCKPpC.pgp
Description: PGP signature