[postgis-devel] liblwgeom symbols exported by postgis module
Bas Couwenberg
sebastic at xs4all.nl
Thu Oct 1 01:45:18 PDT 2015
On 2015-10-01 10:22, Sandro Santilli wrote:
> On Thu, Oct 01, 2015 at 10:04:03AM +0200, Bas Couwenberg wrote:
>> On 2015-10-01 09:27, Sandro Santilli wrote:
>
>> For 2.2.0rc1 the following dependencies are used:
>>
>> postgis depends on liblwgeom2 (>= 2.0.0)
>> postgresql-9.4-postgis-2.2 depends on liblwgeom2 (>= 2.2.0~rc1)
>>
>> So the binaries included in the postgis package don't use any
>> liblwgeom symbols introduced after 2.0.0, only the postgis module
>> requires newer liblwgeom symbols.
>
> Makes sense. Does that mean you have your own way to know which
> symbols of a library is used by a binary ? I guess that cannot help
> in case the symbol exists but behaves differently.
Yes, we manage symbols files in the Debian package that define the
version in which symbols are introduced:
http://anonscm.debian.org/cgit/pkg-grass/postgis.git/tree/debian/liblwgeom-2.1.8.symbols
This is documented in the Debian Policy:
http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-depends
Making incompatible changes and not bumping the SONAME is a sign of
incompetent library management, that should be fixed by educating the
developers.
>> The Debian Policy requires that the library package name matches the
>> SONAME, diverging from this should only be done for very good
>> reasons:
>
> Makes sense.
> Assumes (as expected by SONAME) that upgrades of libraries with same
> SONAME are always backward compatible.
The point of a SONAME is to indicate binary compatibility, when the
compatibility breaks the SONAME must change.
>> The difference with static linking is copying the code, and hence
>> multiple places where bugs needs to be fixed instead of only the
>> single dynamically linked shared library.
>
> Well, bugs are still fixed in the same place, the difference is just
> in needing or not a _rebuild_ of the multiple packages statically
> linking the fixed library.
The hard part is determining which of the 20.000+ packages need a
rebuild because they statically link the library, the dependencies don't
express this relationship.
>> Security updates in the stable distribution are only applied to the
>> shared library in question, any packages statically linking it won't
>> be rebuilt to include the bug fix.
>
> Alright, so it may theoretically happen, in a Debian system,
> that you end up with a PostGIS module version 2.1.6 using a liblwgeom
> version 2.1.8 ?
No, because the postgis module has liblwgeom-2.1.8.so in its NEEDED
section.
Kind Regards,
Bas
More information about the postgis-devel
mailing list