On 08/14/2010 10:35 AM, Phil Dibowitz wrote:
> On 08/14/2010 04:30 AM, Stephen Warren wrote:
>> On 08/13/2010 01:27 AM, Phil Dibowitz wrote:
>>> On 08/13/2010 04:40 AM, Stephen Warren wrote:
>>>> On 08/12/2010 10:16 AM, Phil Dibowitz wrote:
>>>>> On Thu, Aug 12, 2010 at 04:55:25PM +0100, Chris Mayo wrote:
>>>>>> In 0.22 libconcord.py sets: ABI_VERSION = 2
>>>>>> causing it to look for libconcord.so.2
>>>>>
>>>>> Crap. That should have gone 0 ->    1, not 0 ->    2.
>>>>>
>>>>> I have to release a 0.23 this weekend anyway, I'll fix that.
>>>>
>>>> I think it was originally 1 not 0. I don't think this value should have
>>>> been changed at all, since when I build latest CVS, the link command
>>>> includes:
>>>>
>>>> -Wl,-soname -Wl,libconcord.so.1 -o .libs/libconcord.so.1.1.0
>>>>
>>>> ... and the Python bindings should be looking for the soname.
>>>
>>> I need to not talk from memory and look at the code.
>>>
>>> OK, it should be 2, because the so-version should be 2.0.1:
>>>
>>> -libconcord_la_LDFLAGS = -version-info 1:0:0 -lusb
>>> +libconcord_la_LDFLAGS = -version-info 2:0:1 -lusb
>>>
>>> I bumped the version due to the change in API.
>>>
>>> However, I misunderstood how that gets put into a final version number.
>>>
>>> Since this says we are version 2, but support 1 previous version, the
>>> so-version changed from 1.0.0 to 1.1.0. If I'd made this 2:0:0, then it
>>> would have been 2.0.0.
>>>
>>> So the so-version changed, but sorta not in the way I expected.
>>>
>>> So really what we want is ABI_VERSION = 1.1, though I don't know if python
>>> supports non-integers there. I have to get to work, I'll look into it 
>>> tonight.
>>
>> You could make this a string and it'd work fine.
>>
>> However, 1.1 isn't the correct value; libconcord currently installs the
>> following:
>
> 1.1.0 would technically be correct. It will be depending on the extra calls
> in 1.1.0.
>
> I've set it to that in CVS. Is that reasonable?

No, that's not correct; it should be "1" given the current libconcord.so 
settings. If you run ldd on the concordance application, you'll see that 
it searches for "libconcord.so.1" (the soname), which is then symlinked 
to "libconcord.so.1.1.0" (the current implementation of that soname). 
The Python bindings should be searching for the soname too just like the 
concordance application.

However, since the ABI changed, this should really be "libconcord.so.2". 
Without that change, a concordance application built from the latest 
source will still be looking for libconcord.so.1, which could be 
satisfied by a libconcord built from either new or old sources (since 
they have the same soname and filenames), yet a libconcord built from 
old sources wouldn't work with the latest concordance application 
because of the missing functions.

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
concordance-devel mailing list
concordance-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/concordance-devel

Reply via email to