summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Slebodnik <lslebodn@redhat.com>2014-06-09 14:38:31 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-07-09 14:45:05 +0200
commitf28b09f887870c10c8c611beee3c17eaa9ef74f3 (patch)
tree3264dfcc7258bd2bd6591599fcf193d3820fb58b
parent09641f85aae8fff72d0573394c40c8c3c002179a (diff)
downloadsssd-f28b09f887870c10c8c611beee3c17eaa9ef74f3.tar.gz
sssd-f28b09f887870c10c8c611beee3c17eaa9ef74f3.tar.xz
sssd-f28b09f887870c10c8c611beee3c17eaa9ef74f3.zip
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. The difference between libraries libsss_nss_idmap_test.so and libsss_nss_idmap.so is that the 1st library will not be installed and has more exported functions, which are necessary for mocking with cmocka for test sss_nss_idmap-test. Resolves: https://fedorahosted.org/sssd/ticket/2194 Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
-rw-r--r--Makefile.am31
-rw-r--r--src/lib/idmap/sss_idmap.exports56
-rw-r--r--src/providers/ipa/ipa_hbac.exports15
-rw-r--r--src/sss_client/idmap/sss_nss_idmap.exports14
-rw-r--r--src/sss_client/idmap/sss_nss_idmap.unit_tests6
5 files changed, 119 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 32af6c069..ee4b24cf5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -714,23 +714,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 \
@@ -738,8 +747,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 \
@@ -1119,7 +1132,9 @@ libsss_test_common_la_SOURCES += \
src/tests/common_check.c
check_LTLIBRARIES += \
- libdlopen_test_providers.la
+ libdlopen_test_providers.la \
+ libsss_nss_idmap_tests.la \
+ $(NULL)
libdlopen_test_providers_la_SOURCES = \
$(sssd_be_SOURCES)
@@ -1139,6 +1154,16 @@ libdlopen_test_providers_la_LDFLAGS = \
-rpath $(abs_top_builddir) \
-export-dynamic
+libsss_nss_idmap_tests_la_SOURCES = $(libsss_nss_idmap_la_SOURCES)
+libsss_nss_idmap_tests_la_LIBADD = $(libsss_nss_idmap_la_LIBADD)
+libsss_nss_idmap_tests_la_LDFLAGS = \
+ $(libsss_nss_idmap_la_LDFLAGS) \
+ -shared \
+ -rpath $(libdir) \
+ -Wl,--version-script,$(srcdir)/src/sss_client/idmap/sss_nss_idmap.unit_tests
+
+dist_noinst_DATA += src/sss_client/idmap/sss_nss_idmap.unit_tests
+
dlopen_tests_SOURCES = \
src/tests/dlopen-tests.c
dlopen_tests_CFLAGS = \
@@ -1678,7 +1703,8 @@ sss_nss_idmap_tests_CFLAGS = \
$(AM_CFLAGS)
sss_nss_idmap_tests_LDADD = \
$(CMOCKA_LIBS) \
- libsss_nss_idmap.la
+ libsss_nss_idmap_tests.la \
+ $(NULL)
EXTRA_dyndns_tests_DEPENDENCIES = \
$(ldblib_LTLIBRARIES)
@@ -2732,4 +2758,3 @@ prerelease-srpm:
$(MAKE) srpm
mv $(srcdir)/version.m4.orig $(srcdir)/version.m4
endif
-
diff --git a/src/lib/idmap/sss_idmap.exports b/src/lib/idmap/sss_idmap.exports
new file mode 100644
index 000000000..52115636d
--- /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 000000000..0115084e2
--- /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 000000000..7b8488b2a
--- /dev/null
+++ b/src/sss_client/idmap/sss_nss_idmap.exports
@@ -0,0 +1,14 @@
+SSS_NSS_IDMAP_0.0.1 {
+
+ # public functions
+ global:
+
+ sss_nss_getsidbyname;
+ sss_nss_getsidbyid;
+ sss_nss_getnamebysid;
+ sss_nss_getidbysid;
+
+ # everything else is local
+ local:
+ *;
+};
diff --git a/src/sss_client/idmap/sss_nss_idmap.unit_tests b/src/sss_client/idmap/sss_nss_idmap.unit_tests
new file mode 100644
index 000000000..361cc3b13
--- /dev/null
+++ b/src/sss_client/idmap/sss_nss_idmap.unit_tests
@@ -0,0 +1,6 @@
+# version script files can be combined. They needn't be in single file
+UNIT_TEST_ONLY {
+ # should not be part of installed library
+ global:
+ sss_nss_make_request;
+};