Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1160712

Summary: libgfapi: use versioned symbols in libgfapi.so for compatibility
Product: [Community] GlusterFS Reporter: Kaleb KEITHLEY <kkeithle>
Component: libgfapiAssignee: bugs <bugs>
Status: CLOSED CURRENTRELEASE QA Contact: Sudhir D <sdharane>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.4.6CC: bugs, gluster-bugs, sdharane
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1160709 Environment:
Last Closed: 2015-04-13 06:51:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1160709    
Bug Blocks: 1154714, 1160710, 1160711, 1165129    

Description Kaleb KEITHLEY 2014-11-05 13:15:21 UTC
+++ This bug was initially created as a clone of Bug #1160709 +++

Description of problem:

Bumping the SO_NAME to 7.0.0 breaks compatibility for dependent applications linked against earlier versions of libgfapi.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Anand Avati 2014-11-05 19:01:09 UTC
REVIEW: http://review.gluster.org/9058 (api: versioned symbols in libgfapi.so for compatibility) posted (#1) for review on release-3.4 by Kaleb KEITHLEY (kkeithle)

Comment 2 Anand Avati 2015-03-05 21:42:13 UTC
COMMIT: http://review.gluster.org/9058 committed in release-3.4 by Kaleb KEITHLEY (kkeithle) 
------
commit 35fdb730b733cec49f5c7cb4807eabed08631712
Author: Kaleb S. KEITHLEY <kkeithle>
Date:   Wed Nov 5 13:59:37 2014 -0500

    api: versioned symbols in libgfapi.so for compatibility
    
    Use versioned symbols to keep libgfapi at libgfapi.so.0.0.0
    
    Some nits uncovered:
    
    + there are a couple functions declared that do not have an
      associated definition, e.g. glfs_truncate(), glfs_caller_specific_init()
    
    + there are five private/internal functions used by heal/src/glfsheal
      and the gfapi master xlator (glfs-master.c): glfs_loc_touchup(),
      glfs_active_subvol(), and glfs_subvol_done(), glfs_init_done(),
      glfs_resolve_at(); which are not declared in glfs.h;
    
    + for this initial pass at versioned symbols, we use the earliest version
      of all public symbols, i.e. those for which there are declarations in
      glfs.h or glfs-handles.h.
      Further investigation as we do backports to 3.6, 3.4, and 3.4
      will be required to determine if older implementations need to
      be preserved (forward ported) and their associated alias(es) and
      symbol version(s) defined.
    
    FWIW, we should consider linking all of our libraries with a map, it'll
    result in a cleaner ABI. Perhaps something for an intern to do or a
    Google Summer of Code project.
    
    Change-Id: I64e6860d9ccfa22c40376eef2e1e6ebc0e36f051
    BUG: 1160712
    Signed-off-by: Kaleb S. KEITHLEY <kkeithle>
    Reviewed-on: http://review.gluster.org/9058
    Tested-by: Gluster Build System <jenkins.com>