Re: library naming problem
On Wed, Dec 21, 2005 at 12:33:38AM -0500, Steve Halasz wrote:
> I've been helping to package the GDAL library. It contains a C and a C++
> API. The upstream maintainer has decided not to guarantee ABI
> compatibility even between minor releases. He updates the SONAME
> correctly for the C API. Hopefully we can manage to split the two APIs
> into different packages. But for now, how should I name the package when
> the ABI has changed, but the SONAME hasn't?
> The SONAME is libgdal.so.1. The new release is 1.3.1. I've thought of
> using libgdal1.3.1-1 as the package name.
The symlink libgal.so.1 => libgdal.so.1.X.Y will exist in each runtime
package, and the linker symlink libgal.so => libgal.so.1.X.Y will
exist in each -dev package.
If each runtime package Conflicts+Provides+Replaces the virual package
libgdal, then you will be able to ensure that only a single such
package is installed. You can either do a similar thing with the -dev
packages, or use Depends: libgal1.3.1 (which conflicts with other
libgal packages, which are dependencies of other -dev packages).
The runtime packages will provide a shlibs file resolving the soname
to the package that was used for compilation, and thusly the one
necessary at runtime. (The shlibs file should be an '=' relation, not
an '>=' one).