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

Re: Dependencies on shared libs, take 2

On Wed, 06 Jun 2007, Steve Langasek wrote:
> On Wed, Jun 06, 2007 at 09:15:02AM +0200, Raphael Hertzog wrote:
> > Now, if we have people store symbols in shlibs file, it means that
> > dh_installdeb would install the shlibs file with symbols. That could be
> > almost enough except that we really want a check that the information
> > stored in those files matches the reality so we need to call
> > dpkg-gensymbols either to update the file with real symbol information or
> > at least to verify it and fail it it doesn't match.
> Can you clarify what you mean by "update the file with real symbol
> information"?  If the real lib doesn't match, how do you plan to achieve
> this?

The real lib has precedence over the provided symbols file.
- any new symbol is added and marked with mininal version being the current
  version of the package
- a symbol that disappeared is marked as deprecated. Currently it
  comments it out in the file like this:
#DEPRECATED: 2.5-9#ld-linux.so.2 _dl_out_of_memory@GLIBC_PRIVATE libc6 2.3.6.ds1-13
- any symbol information concerning a library that is not in the package
  is dropped
- symbols concerning a new library not listed in the debian/symbols are
  added with minimal version being the current one
- in all the remaining cases (symbol and library exists) I just keep the
  provided symbols information

> Specifically, how do you save the information generated at this stage
> so that the details of which symbols were added in this particular build
> aren't lost in the future?  (You can't save it in the source package at
> this point without /also/ throwing a failure, because the source is already
> built and you're in the middle of the binary target when this gets
> checked...)

The information generated is saved in the "DEBIAN/symbols" file inside the
package. This information can then be auto-extracted on one of our servers
and made available to developers so that they can update their
debian/*.symbols.* files.

(Storing in the source has never been a good option since most builds are
binary-only anyway)

Raphaël Hertzog

Premier livre français sur Debian GNU/Linux :

Reply to: