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

Re: bad lintian warning?



On Mon, May 21, 2012 at 09:03:09AM +0000, Daniel Pocock wrote:
> >> b) I notice the verbose output (on the mentors summary page)
> >> shows an SONAME in a slightly different format:
> >> 
> >> usr/lib/librutil-1.8.so.0.0.0 usr/lib/librutil-1.8.so
> >> 
> >> Notice: librutil-1.8.so, while the -dev package creates a symlink
> >> in the form librutil.so
> > Yes, that's the problem. Lintian cuts out everything after ".so"
> > when searching for the dev symlink while libtool with -release
> > doesn't include the release number in the dev symlink (see also
> > info libtool "7.4 Managing release information"). If you encode the
> > library version in the library name, you are supposed to specify
> > that version when linking, otherwise it's pointless. Note that the
> > libtool example (libbfd-2.9.0.so) doesn't
> 
> Ok, so if people are supposed to specify the version when linking,
> then I should do these two things:
> 
> - - not ship the librutil.so symlink at all in the -dev package?
If you drop -version-info and use -release to declare ABI breaks you will
have a libfoo.so symlink and you will need to link against -lfoo. If you
want to have -version-info for ABI breaks and -release for something
different (parallel APIs?) to link against -lfoo-1.8 then maybe you need
some manual work, I'm not sure about such scenarios. Please rethink what
version schemes do you want to use.

> - - make a lintian override to suppress the warning, with a comment to
> explain I am using -release deliberately for resiprocate?
I'm not sure you want to keep the current names for the lib and the dev
symlink (but if you do, then probably you should override the warning).

> > have a soversion while your libs have -version-info 0:0:0 in
> > addition to -release 1.8 and that's why the libs are named
> > libfoo-1.8.so.0.0.0 instead of more common libfoo-1.8.so.
> 
> I realize -version-info is redundant here, but is it prohibited to set
> - -version-info when using -release?  The libtool manual is not explicit
> about whether I can mix them.
> http://www.gnu.org/software/libtool/manual/html_node/Release-numbers.html#Release-numbers
The manual seems to talk about the usual case with compatible changes
(-version-info) vs the less usual case with each version incompatible with
others (-release). I don't know how is libtool intended to work with both
arguments provided, but in you case it doesn't include -release in the dev
symlink name which means you cannot have different dev libraries
coinstalled.

> I thought setting -version-info would allow for minor changes, e.g.
> 
> - - a 1.8.1 release may have -version-info 0:1:0
> - - a 1.8.5 release might have -version-info 1:0:0
> 
> but all 1.8.x releases would have SONAME librutil-1.8.so
To be honest I don't see much reason to have different file names for libs
with the same soname as in the real world you end up using the newest one
anyway (I'm speaking only about ELFs on Linux though).

-- 
WBR, wRAR

Attachment: signature.asc
Description: Digital signature


Reply to: