On Mon, 14 Jan 2008 12:40:37 -0300 Felipe Sateler <fsateler@gmail.com> wrote: > David Paleino wrote: > > > Hi all, > > one of my packages, libopenraw, has just been uploaded to NEW. My sponsor > > (lucab, thanks Luca!) noted that I should've read [1] and [2], to write proper > > symbols files. > > Unfortunately, I've not been able to fully understand how to implement this. > > > > Can anyone give some help? That would be appreciated :p > > > > The thing is that very few packages are using this right now, and I remember > someone asking in debian-devel for early adopters to write a set of guidelines, > but nothing has come out yet. > > I should note that apparently it takes some work to get the new dependencies > working, and that currently only packages with *lots* of reverse dependencies > (such as glibc) have it implemented. I personally wouldn't bother for a new > library. OK. This is what I have done so far with the next release of QOF. 1. Upstream : add --version-script support to the libtool implementation so that objdump -p lists the symbols. This involves changes to configure.in|ac and to Makefile.am as well as creation of a new file in the main library source directory which needs to be packaged in the source tarball. These changes are difficult to achieve except by upstream. The changes implement versioned symbols and involves ongoing maintenance upstream so that whenever a symbol is added, the symbol script is updated. 2. Use the Debian site (via mole) to get the symbols file for the package, if possible. If not, you'll need to use dpkg-gensymbols to get a patch to create the symbols file(s). I'm going to write up something more helpful on a wiki page and the changes in QOF are currently in CVS so that people can see the process. I've also been discussing the issues on debian-devel and that's all in the archives. I'm more than willing to discuss the merits of this over IRC later on if needed. Quick summary: IMHO, symbols files are largely irrelevant if not supported upstream via versioned symbols. Versioned symbols are largely useless if the upstream maintenance is generally poor or has a particularly poor understanding of libtool versioning. Versioned symbols involve continuous maintenance upstream every time a symbol is modified (e.g. new functions added) but have no effect on changes within functions that do not modify the function prototype itself. Symbols files involve regular maintenance by the Debian maintainer. Although scripts exist for easy maintenance of symbols files in Debian, scripts (of any kind) are distinctly lacking for *upstream* maintenance of the versioned symbols and --version-script data. Overall, this is definitely worth attempting but should only be actually implemented if it is done properly. Libraries that have many reverse dependencies - especially if those include other libraries - should ensure that versioned symbols are implemented and maintained. Poorly implemented versioned symbols and symbols files are probably worse than useless. Library maintenance is one of the harder tasks, both for upstream and in Debian. Every library *should* implement versioned symbols and support symbols files. Getting libraries to do things properly is the real challenge. You need a very good understanding of libtool and various other library-related issues. Details of QOF: http://www.linux.codehelp.co.uk/ http://qof.sourceforge.net/ http://qof.cvs.sourceforge.net/qof/ -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
pgpgP4Hq7WmFv.pgp
Description: PGP signature