Miguel Ángel Herranz Trillo created THRIFT-2270:
---------------------------------------------------
Summary: Faulty library version numbering at build or documentation
Key: THRIFT-2270
URL: https://issues.apache.org/jira/browse/THRIFT-2270
Project: Thrift
Issue Type: Bug
Components: Build Process, C++ - Library, Deployment
Affects Versions: 0.9.1
Environment: Linux
Reporter: Miguel Ángel Herranz Trillo
Priority: Minor
The shared libraries generated for C/C++ under Linux (.so files) have a SONAME
that includes the full version number.
For example:
{code}
# objdump -p libthrift.so | grep SONAME
SONAME libthrift-0.8.0.so
{code}
Since the compilation process will make any program compiled against a library
to depend on the SONAME, in the case of Thrift library, the program will depend
on the full version number.
The program will fail if some other different Thrift library version is
provided instead, despite it can be a minor improvement or a bug fix that
doesn't break the external interface.
For example, if external interface of 0.8.0 is the same as 0.8.1 or even 0.9.1
(since it may happen that only the first number represent changes in the
dynamic linking or protocol interface), then we could expect that a program
will depend on a SONAME with the format libthrift.so.0 and that both version
0.8.0 and 0.9.1 shared library binaries provides the same SONAME equal to
libthrift.so.0
I haven't found any document about the versioning scheme in Thrift or the
compatibility between versions (maybe I didn't search enough, so sorry in that
case).
So, if that document does not exist, I think it should be created.
And also, in case that some of the version numbers are just used for changes
that doesn't imply changes in the ABI or the Thrift protocol itself, the
numbers should be removed from the SONAME of the Thrift library binary.
--
This message was sent by Atlassian JIRA
(v6.1#6144)