From d709748070e361b14d4e09042e05cb396174631b Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Mon, 10 Sep 2012 14:34:09 +0300 Subject: [PATCH] s3-passdb: update abi_match and ignore more statically linked functions Autobuild-User(master): Alexander Bokovoy Autobuild-Date(master): Mon Sep 10 16:14:50 CEST 2012 on sn-devel-104 --- source3/passdb/ABI/pdb-0.sigs | 10 ---------- source3/wscript_build | 28 +++++++++++++++++++++------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/source3/passdb/ABI/pdb-0.sigs b/source3/passdb/ABI/pdb-0.sigs index d4a6b6acb0e..2bccc0880ef 100644 --- a/source3/passdb/ABI/pdb-0.sigs +++ b/source3/passdb/ABI/pdb-0.sigs @@ -43,8 +43,6 @@ grant_all_privileges: bool (const struct dom_sid *) grant_privilege_by_name: bool (const struct dom_sid *, const char *) grant_privilege_set: bool (const struct dom_sid *, struct lsa_PrivilegeSet *) groupdb_tdb_init: const struct mapping_backend *(void) -groupmap_attr_list: 0xXXXX -groupmap_attr_list_to_delete: 0xXXXX idpool_attr_list: {attrib = 2, name = 0xXXXX "uidNumber"}, {attrib = 3, name = 0xXXXX "gidNumber"}, {attrib = 24, name = 0xXXXX "objectClass"}, {attrib = 0, name = 0xXXXX} init_account_policy: bool (void) init_buffer_from_samu: uint32_t (uint8_t **, struct samu *, bool) @@ -52,7 +50,6 @@ init_samu_from_buffer: bool (struct samu *, uint32_t, uint8_t *, uint32_t) initialize_password_db: bool (bool, struct tevent_context *) is_dc_trusted_domain_situation: bool (const char *) is_privileged_sid: bool (const struct dom_sid *) -ldapsam_search_suffix_by_name: int (struct ldapsam_privates *, const char *, LDAPMessage **, const char **) local_password_change: NTSTATUS (const char *, int, const char *, char **, char **) login_cache_delentry: bool (const struct samu *) login_cache_init: bool (void) @@ -183,13 +180,8 @@ pdb_getsampwsid: bool (struct samu *, const struct dom_sid *) pdb_gid_to_sid: bool (gid_t, struct dom_sid *) pdb_group_rid_to_gid: gid_t (uint32_t) pdb_increment_bad_password_count: bool (struct samu *) -pdb_init_ldapsam: NTSTATUS (struct pdb_methods **, const char *) -pdb_ipa_init: NTSTATUS (void) pdb_is_password_change_time_max: bool (time_t) pdb_lookup_rids: NTSTATUS (const struct dom_sid *, int, uint32_t *, const char **, enum lsa_SidType *) -pdb_nds_get_password: int (struct smbldap_state *, char *, size_t *, char *) -pdb_nds_init: NTSTATUS (void) -pdb_nds_set_password: int (struct smbldap_state *, char *, const char *) pdb_new_rid: bool (uint32_t *) pdb_nop_add_group_mapping_entry: NTSTATUS (struct pdb_methods *, GROUP_MAP *) pdb_nop_delete_group_mapping_entry: NTSTATUS (struct pdb_methods *, struct dom_sid) @@ -259,7 +251,6 @@ pdb_update_bad_password_count: bool (struct samu *, bool *) pdb_update_group_mapping_entry: NTSTATUS (GROUP_MAP *) pdb_update_login_attempts: NTSTATUS (struct samu *, bool) pdb_update_sam_account: NTSTATUS (struct samu *) -priv2ld: LDAP *(struct ldapsam_privates *) privilege_create_account: NTSTATUS (const struct dom_sid *) privilege_delete_account: NTSTATUS (const struct dom_sid *) privilege_enum_sids: NTSTATUS (enum sec_privilege, TALLOC_CTX *, struct dom_sid **, int *) @@ -292,7 +283,6 @@ smb_nscd_flush_group_cache: void (void) smb_nscd_flush_user_cache: void (void) smb_register_passdb: NTSTATUS (int, const char *, pdb_init_function) smb_set_primary_group: int (const char *, const char *) -smbldap_search_domain_info: NTSTATUS (struct smbldap_state *, LDAPMessage **, const char *, bool) uid_to_sid: void (struct dom_sid *, uid_t) uid_to_unix_users_sid: void (uid_t, struct dom_sid *) unix_groups_domain_name: const char *(void) diff --git a/source3/wscript_build b/source3/wscript_build index 048875d66fc..2903594f06b 100755 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -693,14 +693,28 @@ bld.SAMBA3_SUBSYSTEM('TLDAP', source=TLDAP_SRC, deps='asn1util LIBTSOCKET') -static_pdb_modules = ['tdbsam', 'ldap', 'smbpasswd', 'wbc_sam'] -static_pdb_match = filter(lambda x: bld.SAMBA3_IS_STATIC_MODULE('pdb_%s' % x), static_pdb_modules) +# libpdb.so should not expose internal symbols that are only usable +# to the statically linked modules that are merged into libpdb. +# Note that we always filter these symbols out in libpdb, even +# when modules are not linked statically. In the latter case +# symbols will not be present in the libpdb anyway so no hurt is +# done to the version script. +static_pdb_match = ['tdbsam', 'smbpasswd', 'wbc_sam'] private_pdb_match = [] -if bld.SAMBA3_IS_STATIC_MODULE('pdb_samba_dsdb') and bld.AD_DC_BUILD_IS_ENABLED(): - static_pdb_match.append('samba_dsdb') - private_pdb_match.append('!idmap_init') - private_pdb_match.append('!idmap_sids_to_xids') - private_pdb_match.append('!idmap_xids_to_sids') + +# AD DC module when linked statically will pull in few source4/winbind +# dependencies which are not used outside AD DC module +static_pdb_match.append('samba_dsdb') +private_pdb_match.append('!idmap_init') +private_pdb_match.append('!idmap_sids_to_xids') +private_pdb_match.append('!idmap_xids_to_sids') + +# ldap module is actually three modules merged together: ldapsam, ipa, and nds +static_pdb_match = static_pdb_match + ['ldap', 'ipa', 'nds'] +ldapsam_pdb_match = ['!priv2ld', '!smbldap_search_domain_info', '!ldapsam_*', '!groupmap_attr_list*'] +private_pdb_match.append('!pdb_nds_*') +private_pdb_match.append('!pdb_init_ldapsam') +private_pdb_match = private_pdb_match + ldapsam_pdb_match private_pdb_match = private_pdb_match + map(lambda x: '!pdb_%s_init' % x, static_pdb_match) -- 2.34.1