[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