Re: Improving dependencies on shared libraries
Raphael Hertzog <firstname.lastname@example.org> wrote:
> in the list of things that we can do to make it more easy to backport
> packages, there's one important item: have a finer-grained system for
> generating dependencies on shared libraries. The system should have
> historical knowledges of symbols exported by libraries. Then when
> generating dependencies on an given package, it should check which symbols
> are used and what minimal version of the library provided them.
> Please find a sort of specification in the wiki:
> Please check it out and share your comments. I'm not an expert of
> libraries and I may have missed some important points.
rpm has something like that, it relies on a specific way of symbol
versioning. - Newly added symbols get a different version, and you can
tell whether a program is using new symbols by checking "Version
References:" in objdump -p's output. rpm then generates dependencies
on libfoo.so.12(BLAH_1) and (if necessary) /additionally/ libfoo.so.12(BLAH_2).
libasound is library that implements this.
This does not address changed symbol hashing at all and requires
upstream to keep books on added symbols in the symbol versioning
script. Which is why I do not think it is going to see widespread use.
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'