Re: [ANNOUNCE] libchamplain 0.5.2



On Tue, May 18, 2010 at 22:57, Łukasz Jernaś <deejay1 srem org> wrote:
> On Tue, May 18, 2010 at 10:29 PM, Jiří Techet <techet gmail com> wrote:
>> On Tue, May 18, 2010 at 10:05, Łukasz Jernaś <deejay1 srem org> wrote:
>>> On Tue, May 18, 2010 at 1:49 AM, Jiří Techet <techet gmail com> wrote:
>>> 2. IMHO the LIBRARY_VERSION variable in configure.ac should be 0:5:2
>>> (0:6:0 rather) or do you plan to keep the ABI stable until the 1.0
>>> release of libchamplain?
>>>
>>
>> No. Notice that libchamplain libraries have the major and minor
>> version numbers in their name, such as
>>
>> libchamplain-0.5.so
>>
>> and the same applies for the include directory name. The reason is
>> that the ABI is not frozen yet and changes quite a lot between
>> releases (the same applies to ABI). With the version number as a part
>> of the library name it is possible to install several versions of
>> libchamplain in parallel (each with its own library, pc files and
>> include directory), which wouldn't be possible otherwise. During every
>> point release the library version is bumped to 0.0.0, so after the 0.6
>> release, there will be
>>
>> libchamplain-0.6.so.0.0.0
>>
>> in the stable branch and
>>
>> libchamplain-0.7.so.0.0.0
>>
>> on trunk. Between the individual releases of 0.6.x and 0.7.x the
>> version numbers are updated according to the rules here:
>
> Well, as far as I know (from a few dozen packages made for PLD) if you
> specify version at 1:0:0 you'll get libchamplain-0.6.so.1.0.0 with a
> symlink to libchamplain-0.6.so
> The version flag for libtool allows you to specify ABI versions, so
> you can have installed for example libchamplain-0.6.so.1.0.0 and
> libchamplain-0.6.so.1.2.3 with different ABI/API versions
> simultaneusly.

Right, but it holds for the library itself only. libchamplain is far
from being API/ABI stable - even though some basic functionality
probably won't change much (e.g. ChamplainView), in other areas (map
sources, marker layers) we are still learning what we actually want.
And if you compare libchamplain 0.4 and 0.6 you'll realize that
several headers of the previous version were removed and several new
introduced. So the include directory must have different name in order
to make two versions of libchamplain coexist. The same applies to the
pkgconfig files.

These are just my speculations about the reasons for such naming
conventions - I've just been following the versioning used by
Pierre-Luc. Maybe it's better to ask him what are the real motivations
behind it. So far I have been a happy library user who just linked his
applications against what was available in the system without worrying
much about library versions so this is a very new experience for me.

> The thing with adding libraryname-0.1.so,
> libraryname-0.2.so is just because people usually didn't get the
> libtool bits right ;) It really makes things for packagers hard,
> because if you change the version after the .so suffix you have to
> rebuild every package depending on that library even if the ABI stays
> the same. Of course this is all IMHO (see the X.org and KDE libs for a
> versioning scheme which is IMO more correct, eg.
> libraryname.so.1.2.3), but if the version is 0.0.0 then usually the
> --avoid-version parameter could be used (and it is usually patched to
> it by packagers)
>
> Regards, (because I'm out of battery)

Recharge your battery and tell me if you still experience some make
distcheck problems ;-).

Jiri

> --
> Łukasz
>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]