Skip to content

library soversion is incorrectly used #1978

@antonio-rojas

Description

@antonio-rojas

In version 0.18 a SOVERSION was added to shared libraries 43de3e5

The SOVERSION of a library is meant to indicate binary compatibility with previous versions. That is, the SOVERSION must be changed when there is a backwards-incompatible ABI change. However, every opentimelineio version is binary incompatible by design since the ABI contains the full version number (up to patch level).

$ objdump -T /lib/libopentimelineio.so | grep 0_18_1
0000000000033840 g    DF .text  00000000000003ce  Base        _ZN14opentimelineio7v0_18_14Clip30set_active_media_reference_keyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS0_11ErrorStatusE
00000000000a6140 g    DO .bss   0000000000000040  Base        _ZN14opentimelineio7v0_18_15Color6purpleE
00000000000394c0 g    DF .text  00000000000006d7  Base        _ZNK14opentimelineio7v0_18_111Composition13child_at_timeERKN8opentime7v0_18_112RationalTimeEPNS0_11ErrorStatusEb
0000000000050d60 g    DF .text  00000000000000d6  Base        _ZN14opentimelineio7v0_18_130SerializableObjectWithMetadataD1Ev
00000000000352d0 g    DF .text  000000000000003d  Base        _ZNK14opentimelineio7v0_18_111Composition31trimmed_range_of_child_at_indexEiPNS0_11ErrorStatusE
00000000000326d0 g    DF .text  0000000000000248  Base        _ZNK14opentimelineio7v0_18_111Composition12is_parent_ofEPKNS0_10ComposableE
00000000000a48a8 g    DO .data.rel.ro   0000000000000028  Base        _ZTIN14opentimelineio7v0_18_113AnyDictionaryE
0000000000052550 g    DF .text  0000000000000098  Base        _ZN14opentimelineio7v0_18_122ImageSequenceReferenceD2Ev
00000000000541a0 g    DF .text  0000000000000057  Base        _ZN14opentimelineio7v0_18_122SerializableCollection14clear_childrenEv
00000000000474e0 g    DF .text  000000000000066f  Base        _ZN14opentimelineio7v0_18_14algo6rippleEPNS0_4ItemERKN8opentime7v0_18_112RationalTimeES8_PNS0_11ErrorStatusE
0000000000078db0 g    DF .text  000000000000012f  Base        _ZNK14opentimelineio7v0_18_15Track31trimmed_range_of_child_at_indexEiPNS0_11ErrorStatusE
0000000000076090 g    DF .text  0000000000000050  Base        _ZN14opentimelineio7v0_18_110TransitionD2Ev
[...]

Distributions have tooling to detect such soversion changes and rebuild the corresponding packages accordingly. So please either bump the soversion with every release, including patch ones, or remove it again to not give any ABI compatibility expectations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions