[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Library package naming



On Sunday 08 May 2005 12:20 am, Steve Langasek wrote:
> On Sat, May 07, 2005 at 01:24:31PM +0100, Neil Williams wrote:
> > Should I change the upstream version numbers of the existing library?
>
> No, why would you do that?  It's the package name that's wrong (confusing)
> here, not the library name.

Sorry, that wasn't clear. I'll keep the source version at 0.5.2 (or possibly 
0.6.0) so that the source tarball will be qof-0.5.2.tar.gz - I meant should I 
change the version numbers in the code to change the SONAME, library name or 
other parts?

Also, if this is binary incompatible and I'm changing the name anyway, should 
the Debian package for this shared library be libqof rather than qof?

> The library soname, and the package name, are supposed to indicate *binary
> compatibility*, and nothing more.  Their very *purpose* is to help people
> avoid recompiling their applications unnecessarily; embedding the upstream
> version number in either of these values thwarts this goal, because it
> forces people to recompile whether or not the new upstream version has
> same ABI.

So the question really is: As I've removed 17 deprecated functions and added 
60 new ones (out of 400), how can I assess if this is a sufficient change in 
the ABI to warrant a new soname?

I'm guessing it is.

> > Are there tools for checking binary compatibility beyond just running an
> > existing program (which may not use all the functionality)? Anything I
> > can run from the source tree to indicate likely problems?
>
> Please see the icheck package.

Can't locate object method "get_expr" via package "CParse::Char" 
at /usr/share/icheck/perl5/CParse/Enumerator.pm line 44.
Attempt to free unreferenced scalar: SV 0x8f5ea2c during global destruction.

I can't find CParse at CPAN, I'm not sure where this is going wrong. It takes 
ages to scan a few files but never creates any output.

> You can also use objdump -T and diff to compare the list of exported
> symbols in the actual binaries.  I recommend using both objdump -T and
> icheck together for checking whether the ABI has changed.

I used objdump -T to get the number of functions removed and added above.

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpIgVd0JIhye.pgp
Description: PGP signature


Reply to: