[jira] [Commented] (AVRO-2063) C: VERSION, SOVERSION not set correctly for shared library

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[jira] [Commented] (AVRO-2063) C: VERSION, SOVERSION not set correctly for shared library

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/AVRO-2063?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16117521#comment-16117521 ]

ASF GitHub Bot commented on AVRO-2063:
--------------------------------------

GitHub user edmonds opened a pull request:

    https://github.com/apache/avro/pull/239

    AVRO-2063. C: VERSION, SOVERSION not set correctly for shared library

    Prior to this commit the `VERSION` and `SOVERSION` properties were not being set correctly for the Avro C shared library. Previously, `VERSION` was unset, and `SOVERSION` was set to the full dotted version string (e.g. "23.0.0"), which resulted in a `SONAME` of "libavro.so.23.0.0", which is incorrect.
   
    This commit sets `SOVERSION` to the library's "current" version number (obtained by invoking `version.sh libcurrent`), and sets `VERSION` to the full dotted version string.
   
    This should result in a proper `libavro.so` → `libavro.so.23` → `libavro.so.23.0.0` symlink chain with a `SONAME` of "libavro.so.23".
   
    See Sune Vuorela's article on "CMake and library properties": http://pusling.com/blog/?p=352.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/edmonds/avro edmonds/AVRO-2063

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/avro/pull/239.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #239
   
----
commit 5e852265ea7197efe809a8c37ec6a0c34811d3ba
Author: Robert Edmonds <[hidden email]>
Date:   2017-08-07T23:02:35Z

    AVRO-2063. C: VERSION, SOVERSION not set correctly for shared library
   
    Prior to this commit the VERSION and SOVERSION properties were not being
    set correctly for the Avro C shared library. Previously, VERSION was
    unset, and SOVERSION was set to the full dotted version string (e.g.
    "23.0.0"), which resulted in a SONAME of "libavro.so.23.0.0", which is
    incorrect.
   
    This commit sets SOVERSION to the library's "current" version number
    (obtained by invoking "version.sh libcurrent"), and sets VERSION to the
    full dotted version string.
   
    This should result in a proper libavro.so → libavro.so.23 →
    libavro.so.23.0.0 symlink chain with a SONAME of "libavro.so.23".
   
    See Sune Vuorela's article on "CMake and library properties":
    http://pusling.com/blog/?p=352.

----


> C: VERSION, SOVERSION not set correctly for shared library
> ----------------------------------------------------------
>
>                 Key: AVRO-2063
>                 URL: https://issues.apache.org/jira/browse/AVRO-2063
>             Project: Avro
>          Issue Type: Bug
>          Components: c
>    Affects Versions: 1.8.2
>            Reporter: Robert Edmonds
>            Priority: Minor
>
> Hi,
> I'm attempting to package avro-c for Debian. While doing so, I noticed that the libavro.so symlink that gets installed points directly to the libavro.so.23.0.0 library file, without an intermediate "libavro.so.23" symlink, and that the SONAME embedded in the library file is set to "libavro.so.23.0.0", rather than "libavro.so.23", which is what I would expect for a library trying to follow the libtool-style current/revision/age scheme on Linux systems.
> It looks like the recommended way to get CMake to produce the typical symlink chain and SONAME is to set the VERSION property to "23.0.0" and the SOVERSION to 23 on the shared library target. See this article for details: http://pusling.com/blog/?p=352.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
Loading...