On Mon, 11 Mar 2013 15:01:12 -0500, Richard Shaw wrote:
Another option which I employ with the opencollada library is to use arbitrary soversioning. Upstream not only doesn't use library versions but doesn't use ANY versioning.
I started at 0.1 or something like that and when I build a new package I check compatibility with abi-compliance-checker. If it's not found to be compatible, I bump the soversion macro in the spec file before doing an official build.
Sure, that's something that can help avoiding unnecessary rebuilds.
However, elsewhere in this thread, Sergio has mentioned that cfitsio contains a run-time check to enforce that an application was built with exactly the same headers as the library itself. Indeed it does that when opening files.
$ grep CFITSIO_VERSION * -R cfileio.c: if (version != CFITSIO_VERSION) cfileio.c: printf(" Version used to build the CFITSIO library = %f\n",CFITSIO_VERSION); fitsio.h:#define CFITSIO_VERSION 3.33 longnam.h:#define fits_open_file(A, B, C, D) ffopentest( CFITSIO_VERSION, A, B, C, D)