[SSSD] [PATCHES][ding-libs] Bump versions for 0.4.0 release
Lukas Slebodnik
lslebodn at redhat.com
Fri May 9 16:23:21 UTC 2014
On (09/05/14 08:44), Stephen Gallagher wrote:
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>On 05/09/2014 02:37 AM, Lukas Slebodnik wrote:
>> On (08/05/14 10:08), Stephen Gallagher wrote:
>>> On 04/14/2014 02:42 AM, Lukas Slebodnik wrote:
>>>> ehlo,
>>>>
>>>> release blocked by:
>>>> https://lists.fedorahosted.org/pipermail/sssd-devel/2014-April/019043.html
>>>>
>>>>
>>>>
>Two patches are attachd.
>>>>
>>>> My notes: basicobject no ABI change new function added
>>>> simplebuffer_get_vbuf libref_array no ABI change function
>>>> ref_array_debug added to public header ref_array.h
>>>>
>>>> libcollection version-info should be 4:0:0, but there would be
>>>> big jump in soname libcollection.so.2.1.0 ->
>>>> libcollection.so.4.0.0
>>>>
>>>> -function removed from ABI: col_allocate_item (declared in
>>>> collection_priv.h)
>>>>
>>>> libini_config version-info should be 5:0:0, but there would be
>>>> big jump in soname libini_config.so.3.1.0 ->
>>>> libini_config.so.5.0.0
>>>>
>>>> -functions removed from ABI:collect_metadata, empty_section,
>>>> ini_boundary_cb, ini_cleanup_cb, ini_comment_cb,
>>>> ini_get_error_str,is_allowed_spaces. is_just_spaces,
>>>> parser_run, prepare_metadata, print_grammar_errors,
>>>> print_validation_errors, read_line, valid_collision_flags
>>>> //were declared in internal ini_metadata.h or
>>>> ini_config_priv.h
>>>>
>>>
>>> Patch 0001:
>>>
>>> libpath_utils: ack libdhash: ack libcollection: I had a
>>> discussion with Lukas on IRC about this. This was a premature
>>> optimization. We should follow the version-info update rules
>>> here, regardless of the jump in soname to so.4. The reason for
>>> this is that the meaning of the previous 2.1.0 version was this:
>>> "This library can support clients that are talking version 2 of
>>> the ABI as well as version 3 (the second value is the number of
>>> additional interface revisions beyond it).
>>>
>>> However, when we created ABI version 4, we *removed* some
>>> functions. This means we are no longer capable of meeting the
>>> needs of clients expecting versions 2 and 3, so we have to set
>>> the minimum version to 4 and re-set the second value to zero (for
>>> future use if we add an ABI version 5). In theory, we could
>>> someday go from 4.99.0 directly to 103.0.0, which would be a much
>>> larger jump and it would still be a *correct* answer.
>>>
>>> So the correct version-info here is 4:0:0
>> fixed
>>
>>>
>>> Also, I'm not familiar enough with symbol table files. Why are
>>> you moving col_destroy_collection_with_cb out of a separate
>>> section in the symbol table? Shouldn't they remain distinct for
>>> historical reasons?
>> If you link program with some library without version symbols the
>> linker requires only SONAME
>>
>> sh$ objdump -p /usr/sbin/sssd //snip Dynamic Section: NEEDED
>> libtevent.so.0 NEEDED libtalloc.so.2 NEEDED
>> libpopt.so.0 NEEDED libldb.so.1 ...
>>
>> The version symbol files are usefull if you want to require newer
>> version of library, which didn't change SONAME (only minor version
>> was updated)
>>
>> If SONAME was bumped you have to recompile your program with newer
>> version of library otherwise you will not be able to start program.
>> The symbol versioning will not help in this case, you can merge all
>> symbols to the one version.
>>
>> sh$ objdump -p /usr/sbin/sssd //snip Version References: required
>> from libtalloc.so.2: 0x0ea30422 0x00 04 TALLOC_2.0.2 required from
>> libkeyutils.so.1: 0x0ae3c993 0x00 06 KEYUTILS_0.3 required from
>> libpthread.so.0: 0x09691a75 0x00 05 GLIBC_2.2.5 required from
>> libc.so.6: 0x0d696913 0x00 11 GLIBC_2.3 0x09691a75 0x00 03
>> GLIBC_2.2.5 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ functions with two
>> different version of glibc are required. It is automatically
>> detected by linker.
>>
>> //side note. It is possible to do backward incompatible change with
>> symbol versioning. But we didn't released ding-libs with them yet,
>> therefore we can modify them without any probelm
>>
>> sh$ objdump -T /lib64/libc.so.6 | grep " realpath" 0000003ce1d302b0
>> g DF .text 0000000000000021 (GLIBC_2.2.5) realpath
>> 0000003ce1c42e50 g DF .text 0000000000000523 GLIBC_2.3
>> realpath
>>
>>> Maybe I just don't understand this area enough.
>> More about symbol versioning
>> http://www.redhat.com/f/summitfiles/presentation/June2/Developer%20Tools/Drepper_Writing%20Shared%20Libraries.pdf
>>
>>
>http://www.akkadia.org/drepper/dsohowto.pdf
>>
>>>
>>>
>>>
>>> ini_config: we need to be using 5:0:0 for version-info.
>> fixed.
>>
>> Thank you very much for review. New patches are attached.
>>
>>
>
>Ack
>
Thank you very much for review.
LS
More information about the sssd-devel
mailing list