On (08/01/14 20:12), Jan Engelhardt wrote:
On Wednesday 2014-01-08 19:37, Lukas Slebodnik wrote:
>>to indicate the new backwards-incompatibility. People, -version-info
>>1:0:0 => -version-info 2:0:1 is not enough! You must either
>It was not backward incompatible change in the refarray, but libini_config
>requires new version of libref_array and it was not detected.
Backwards compat is not a prerequisite to changing the SONAME.
The SONAME _can_ be changed (by setting -version-info 2:0:0),
and there is no harm in doing so other than increased diskspace
for the new file.
The SONAME *can be* changed by setting "-version-info", but version-info
libtool abstraction over different dynamic library version in the all
supported platforms (Solaris, AIX, UX, BSD, Linux ...). Version-info should not
be changed ad-hoc. There is algorithm how to change its value.
Your proposal with changing SONAME would solve problem, but it is not right.
Because it would mean that public function was removed or API of some function
was changed (backward incompatible change). And It is not true in case of
libref_array. There is not way how to obtain verion-info 2:0:0 from 2:0:1 if
you follow gnu manual. (It would be BIG HACK)
>In my opinion, good enough solution would be to explicitly require
>version of libref_array in the ini pkg-config file. It should be sufficient
>information for package maintainers.
That is _not_ sufficient. pkg-config would only specify dependencies
for the devel packages, not for the regular libraries.
it is not perferct solution but only good enough. Because package maintainer
need to check changes in the pkg-config file and manually adds requirement to
the package description file (spec file in case of RPM based distribution)
As you wrote in the previous mail, another option is to use -version-script
(I din't test it)