[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