[SSSD] [PATCH] BUILD: Add version symbol files for public libraries.

Lukas Slebodnik lslebodn at redhat.com
Thu Jun 26 08:31:27 UTC 2014


ehlo,

attached patch fixes ticket #2194.

If you wan to know more about version script (version maps) here are links:

http://people.redhat.com/drepper/dsohowto.pdf
    (sections 2.2.5 .. 2.2.7, 3.4, 3.5)
https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html
ftp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html

LS
-------------- next part --------------
>From 0779624cf96480fe3b62f5c881fb9b123d24a965 Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <lslebodn at redhat.com>
Date: Mon, 9 Jun 2014 14:38:31 +0200
Subject: [PATCH] BUILD: Add version symbol files for public libraries.

Version symbol files will help package systems to catch backward compatible
changes (newly added functions) into library.

Resolves:
https://fedorahosted.org/sssd/ticket/2194
---
 Makefile.am                                | 13 +++++++
 src/lib/idmap/sss_idmap.exports            | 56 ++++++++++++++++++++++++++++++
 src/providers/ipa/ipa_hbac.exports         | 15 ++++++++
 src/sss_client/idmap/sss_nss_idmap.exports | 17 +++++++++
 4 files changed, 101 insertions(+)
 create mode 100644 src/lib/idmap/sss_idmap.exports
 create mode 100644 src/providers/ipa/ipa_hbac.exports
 create mode 100644 src/sss_client/idmap/sss_nss_idmap.exports

diff --git a/Makefile.am b/Makefile.am
index 83999f3584fe130320ebfa6ea459f5706992c6a4..4e2748ee7aa42629e6bb14122bd2a6645dc6bb44 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -707,23 +707,32 @@ endif # BUILD_IFP
 
 lib_LTLIBRARIES = libipa_hbac.la libsss_idmap.la libsss_nss_idmap.la
 pkgconfig_DATA += src/providers/ipa/ipa_hbac.pc
+libipa_hbac_la_DEPENDENCIES = src/providers/ipa/ipa_hbac.exports
 libipa_hbac_la_SOURCES = \
     src/providers/ipa/hbac_evaluator.c \
     src/util/sss_utf8.c
 libipa_hbac_la_LIBADD = \
     $(UNICODE_LIBS)
 libipa_hbac_la_LDFLAGS = \
+    -Wl,--version-script,$(srcdir)/src/providers/ipa/ipa_hbac.exports \
     -version-info 0:1:0
 
+dist_noinst_DATA += src/providers/ipa/ipa_hbac.exports
+
 pkgconfig_DATA += src/lib/idmap/sss_idmap.pc
+libsss_idmap_la_DEPENDENCIES = src/lib/idmap/sss_idmap.exports
 libsss_idmap_la_SOURCES = \
     src/lib/idmap/sss_idmap.c \
     src/lib/idmap/sss_idmap_conv.c \
     src/util/murmurhash3.c
 libsss_idmap_la_LDFLAGS = \
+    -Wl,--version-script,$(srcdir)/src/lib/idmap/sss_idmap.exports \
     -version-info 4:0:4
 
+dist_noinst_DATA += src/lib/idmap/sss_idmap.exports
+
 pkgconfig_DATA += src/sss_client/idmap/sss_nss_idmap.pc
+libsss_nss_idmap_la_DEPENDENCIES = src/sss_client/idmap/sss_nss_idmap.exports
 libsss_nss_idmap_la_SOURCES = \
     src/sss_client/idmap/sss_nss_idmap.c \
     src/sss_client/common.c \
@@ -731,8 +740,12 @@ libsss_nss_idmap_la_SOURCES = \
 libsss_nss_idmap_la_LIBADD = \
     $(CLIENT_LIBS)
 libsss_nss_idmap_la_LDFLAGS = \
+    -Wl,--version-script,$(srcdir)/src/sss_client/idmap/sss_nss_idmap.exports \
     -version-info 0:1:0
 
+dist_noinst_DATA += src/sss_client/idmap/sss_nss_idmap.exports
+
+
 include_HEADERS = \
     src/providers/ipa/ipa_hbac.h \
     src/lib/idmap/sss_idmap.h \
diff --git a/src/lib/idmap/sss_idmap.exports b/src/lib/idmap/sss_idmap.exports
new file mode 100644
index 0000000000000000000000000000000000000000..52115636d5a6b936f18b4392e9d12adc26c85f53
--- /dev/null
+++ b/src/lib/idmap/sss_idmap.exports
@@ -0,0 +1,56 @@
+SSS_IDMAP_0.4 {
+
+    # public functions
+    global:
+
+        sss_idmap_init;
+        sss_idmap_ctx_set_autorid;
+        sss_idmap_ctx_set_lower;
+        sss_idmap_ctx_set_upper;
+        sss_idmap_ctx_set_rangesize;
+        sss_idmap_ctx_get_autorid;
+        sss_idmap_ctx_get_lower;
+        sss_idmap_ctx_get_upper;
+        sss_idmap_ctx_get_rangesize;
+        sss_idmap_calculate_range;
+        sss_idmap_add_domain;
+        sss_idmap_add_domain_ex;
+        sss_idmap_check_collision;
+        sss_idmap_check_collision_ex;
+        sss_idmap_sid_to_unix;
+        sss_idmap_dom_sid_to_unix;
+        sss_idmap_bin_sid_to_unix;
+        sss_idmap_smb_sid_to_unix;
+        sss_idmap_check_sid_unix;
+        sss_idmap_check_dom_sid_to_unix;
+        sss_idmap_check_bin_sid_unix;
+        sss_idmap_check_smb_sid_unix;
+        sss_idmap_unix_to_sid;
+        sss_idmap_unix_to_dom_sid;
+        sss_idmap_unix_to_bin_sid;
+        sss_idmap_free;
+        sss_idmap_free_sid;
+        sss_idmap_free_dom_sid;
+        sss_idmap_free_smb_sid;
+        sss_idmap_free_bin_sid;
+        idmap_error_string;
+        is_domain_sid;
+        sss_idmap_domain_has_algorithmic_mapping;
+        sss_idmap_domain_by_name_has_algorithmic_mapping;
+        sss_idmap_bin_sid_to_dom_sid;
+        sss_idmap_bin_sid_to_sid;
+        sss_idmap_dom_sid_to_bin_sid;
+        sss_idmap_sid_to_bin_sid;
+        sss_idmap_dom_sid_to_sid;
+        sss_idmap_sid_to_dom_sid;
+        sss_idmap_sid_to_smb_sid;
+        sss_idmap_smb_sid_to_sid;
+        sss_idmap_dom_sid_to_smb_sid;
+        sss_idmap_smb_sid_to_dom_sid;
+        sss_idmap_bin_sid_to_smb_sid;
+        sss_idmap_smb_sid_to_bin_sid;
+
+    # everything else is local
+    local:
+        *;
+};
diff --git a/src/providers/ipa/ipa_hbac.exports b/src/providers/ipa/ipa_hbac.exports
new file mode 100644
index 0000000000000000000000000000000000000000..0115084e2b3a66569f97c4e7c035dffdb6450b43
--- /dev/null
+++ b/src/providers/ipa/ipa_hbac.exports
@@ -0,0 +1,15 @@
+IPA_HBAC_0.0.1 {
+
+    # public functions
+    global:
+
+        hbac_evaluate;
+        hbac_result_string;
+        hbac_error_string;
+        hbac_free_info;
+        hbac_rule_is_complete;
+
+    # everything else is local
+    local:
+        *;
+};
diff --git a/src/sss_client/idmap/sss_nss_idmap.exports b/src/sss_client/idmap/sss_nss_idmap.exports
new file mode 100644
index 0000000000000000000000000000000000000000..bd3abb211120784494fe366ddd19b94d9b982657
--- /dev/null
+++ b/src/sss_client/idmap/sss_nss_idmap.exports
@@ -0,0 +1,17 @@
+SSS_NSS_IDMAP_0.0.1 {
+
+    # public functions
+    global:
+
+        sss_nss_getsidbyname;
+        sss_nss_getsidbyid;
+        sss_nss_getnamebysid;
+        sss_nss_getidbysid;
+
+    # exported for mocking
+        sss_nss_make_request;
+
+    # everything else is local
+    local:
+        *;
+};
-- 
1.9.3



More information about the sssd-devel mailing list