[SCM] Samba Shared Repository - branch master updated

Alexander Bokovoy ab at samba.org
Wed Feb 6 05:33:02 MST 2013


The branch, master has been updated
       via  ff496ef autoconf: rename pdb_ldap module to pdb_ldapsam
       via  e721e71 source3/wscript: support 'pdb_ldap' module in configure
       via  1b582c4 Rename pdb_ldap to pdb_ldapsam
       via  6ba7ab5 PIDL: fix parsing linemarkers in preprocessor output
      from  1aa1d65 docs: Add missing ")".

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ff496ef29fe0eb8db929ba014abf5f8eeed86b33
Author: Alexander Bokovoy <ab at samba.org>
Date:   Wed Feb 6 12:22:12 2013 +0200

    autoconf: rename pdb_ldap module to pdb_ldapsam
    
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Alexander Bokovoy <ab at samba.org>
    Autobuild-Date(master): Wed Feb  6 13:32:53 CET 2013 on sn-devel-104

commit e721e7132e7bb32850ff8b2af654b8f3ebf955fe
Author: Alexander Bokovoy <ab at samba.org>
Date:   Wed Feb 6 10:43:16 2013 +0200

    source3/wscript: support 'pdb_ldap' module in configure
    
    While PASSDB module ldapsam is called pdb_ldapsam internally,
    support specifying 'pdb_ldap' during configure step.
    
    This should make transition to pdb_ldapsam transparent to distributions.
    
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 1b582c4bf8ad46034eb30c758b085dc210e8096a
Author: Andreas Schneider <asn at samba.org>
Date:   Mon Jan 28 16:16:42 2013 +0100

    Rename pdb_ldap to pdb_ldapsam
    
    This patch moves pdb_ldap to pdb_ldapsam unconditionally
    and makes possible to load ldapsam.so dynamically
    
    Reviewed-by: Alexander Bokovoy <ab at samba.org>

commit 6ba7ab5c14801aecae96373d5a9db7ab82957526
Author: Alexander Bokovoy <ab at samba.org>
Date:   Wed Feb 6 10:17:57 2013 +0200

    PIDL: fix parsing linemarkers in preprocessor output
    
    When PIDL calls out to C preprocessor to expand IDL files
    and parse the output, it filters out linemarkers and line control
    information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
    and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control
    
    With gcc 4.8 stdc-predef.h is included automatically and linemarker for the
    file has extended flags that PIDL couldn't parse ('system header that needs to
    be extern "C" protected for C++')
    
    Thanks to Jakub Jelinek <jakub at redhat.com> for explanation of the linemarker format.
    
    Fixes https://bugzilla.redhat.com/show_bug.cgi?id=906517
    
    Reviewed-by: Andreas Schneider <asn at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 pidl/idl.yp                  |    4 +++-
 pidl/lib/Parse/Pidl/IDL.pm   |    4 +++-
 source3/configure.in         |    9 +++++++--
 source3/passdb/pdb_ipa.c     |    2 +-
 source3/passdb/pdb_ldap.c    |   12 +++++++++---
 source3/passdb/pdb_ldap.h    |    4 ++--
 source3/passdb/pdb_nds.c     |    2 +-
 source3/passdb/wscript_build |    8 +++-----
 source3/wscript              |   15 ++++++++++++++-
 9 files changed, 43 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/pidl/idl.yp b/pidl/idl.yp
index b5c5185..c8a65f6 100644
--- a/pidl/idl.yp
+++ b/pidl/idl.yp
@@ -610,7 +610,9 @@ again:
 
 	for ($parser->YYData->{INPUT}) {
 		if (/^\#/) {
-			if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
+			# Linemarker format is described at
+			# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
+			if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
 				$parser->YYData->{LINE} = $1-1;
 				$parser->YYData->{FILE} = $2;
 				goto again;
diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm
index d4820ff..6927c89 100644
--- a/pidl/lib/Parse/Pidl/IDL.pm
+++ b/pidl/lib/Parse/Pidl/IDL.pm
@@ -2576,7 +2576,9 @@ again:
 
 	for ($parser->YYData->{INPUT}) {
 		if (/^\#/) {
-			if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
+			# Linemarker format is described at
+			# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
+			if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
 				$parser->YYData->{LINE} = $1-1;
 				$parser->YYData->{FILE} = $2;
 				goto again;
diff --git a/source3/configure.in b/source3/configure.in
index b17a37e..031a33d 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -3276,7 +3276,7 @@ if test x"$with_ldap_support" != x"no"; then
   if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes"; then
     AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
     CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED"
-    default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
+    default_static_modules="$default_static_modules pdb_ldapsam idmap_ldap";
     default_shared_modules="$default_shared_modules";
     SMBLDAP="lib/smbldap.o"
     with_ldap_support=yes
@@ -6348,13 +6348,18 @@ AC_ARG_WITH(shared-modules,
 	done
 fi ])
 
+# additionally, support pdb_ldap -> pdb_ldapsam replacement
+if test x"$MODULE_pdb_ldap" != x ; then
+	MODULE_pdb_ldapsam="$MODULE_pdb_ldap"
+fi
+
 if test x"$MODULE_DEFAULT_vfs_notify_fam" = xSTATIC -o \
 		x"$MODULE_vfs_notify_fam" = xSTATIC ; then
 	SMBD_FAM_LIBS="$SMB_FAM_LIBS"
 	AC_SUBST(SMBD_FAM_LIBS)
 fi
 
-SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o passdb/pdb_ipa.o passdb/pdb_ldap_util.o,
+SMB_MODULE(pdb_ldapsam, passdb/pdb_ldap.o passdb/pdb_nds.o passdb/pdb_ipa.o passdb/pdb_ldap_util.o,
 		   "bin/ldapsam.$SHLIBEXT", PDB,
 		   [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
diff --git a/source3/passdb/pdb_ipa.c b/source3/passdb/pdb_ipa.c
index d31b37f..a699aab 100644
--- a/source3/passdb/pdb_ipa.c
+++ b/source3/passdb/pdb_ipa.c
@@ -1446,7 +1446,7 @@ static NTSTATUS pdb_init_IPA_ldapsam(struct pdb_methods **pdb_method, const char
 	struct ldapsam_privates *ldap_state;
 	NTSTATUS status;
 
-	status = pdb_init_ldapsam(pdb_method, location);
+	status = pdb_ldapsam_init_common(pdb_method, location);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index 6899b26..dc6a9c3 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -6439,7 +6439,8 @@ static NTSTATUS pdb_init_ldapsam_common(struct pdb_methods **pdb_method, const c
  Initialise the normal mode for pdb_ldap
  *********************************************************************/
 
-NTSTATUS pdb_init_ldapsam(struct pdb_methods **pdb_method, const char *location)
+NTSTATUS pdb_ldapsam_init_common(struct pdb_methods **pdb_method,
+				 const char *location)
 {
 	NTSTATUS nt_status;
 	struct ldapsam_privates *ldap_state = NULL;
@@ -6588,11 +6589,16 @@ NTSTATUS pdb_init_ldapsam(struct pdb_methods **pdb_method, const char *location)
 	return NT_STATUS_OK;
 }
 
-NTSTATUS pdb_ldap_init(void)
+NTSTATUS pdb_ldapsam_init(void)
 {
 	NTSTATUS nt_status;
-	if (!NT_STATUS_IS_OK(nt_status = smb_register_passdb(PASSDB_INTERFACE_VERSION, "ldapsam", pdb_init_ldapsam)))
+
+	nt_status = smb_register_passdb(PASSDB_INTERFACE_VERSION,
+					"ldapsam",
+					pdb_ldapsam_init_common);
+	if (!NT_STATUS_IS_OK(nt_status)) {
 		return nt_status;
+	}
 
 	/* Let pdb_nds register backends */
 	pdb_nds_init();
diff --git a/source3/passdb/pdb_ldap.h b/source3/passdb/pdb_ldap.h
index 1372f33..0420314 100644
--- a/source3/passdb/pdb_ldap.h
+++ b/source3/passdb/pdb_ldap.h
@@ -29,8 +29,8 @@
 /* The following definitions come from passdb/pdb_ldap.c  */
 
 const char** get_userattr_list( TALLOC_CTX *mem_ctx, int schema_ver );
-NTSTATUS pdb_init_ldapsam(struct pdb_methods **pdb_method, const char *location);
-NTSTATUS pdb_ldap_init(void);
+NTSTATUS pdb_ldapsam_init_common(struct pdb_methods **pdb_method, const char *location);
+NTSTATUS pdb_ldapsam_init(void);
 int ldapsam_search_suffix_by_name(struct ldapsam_privates *ldap_state,
                                   const char *user,
                                   LDAPMessage ** result,
diff --git a/source3/passdb/pdb_nds.c b/source3/passdb/pdb_nds.c
index cce4937..d7c16da 100644
--- a/source3/passdb/pdb_nds.c
+++ b/source3/passdb/pdb_nds.c
@@ -878,7 +878,7 @@ static NTSTATUS pdb_init_NDS_ldapsam_common(struct pdb_methods **pdb_method, con
 
 static NTSTATUS pdb_init_NDS_ldapsam(struct pdb_methods **pdb_method, const char *location)
 {
-	NTSTATUS nt_status = pdb_init_ldapsam(pdb_method, location);
+	NTSTATUS nt_status = pdb_ldapsam_init_common(pdb_method, location);
 
 	(*pdb_method)->name = "NDS_ldapsam";
 
diff --git a/source3/passdb/wscript_build b/source3/passdb/wscript_build
index 03c8b56..a6620cd 100644
--- a/source3/passdb/wscript_build
+++ b/source3/passdb/wscript_build
@@ -13,15 +13,13 @@ bld.SAMBA3_MODULE('pdb_tdbsam',
                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_tdbsam'),
                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_tdbsam'))
 
-# This cannot be built as a shared module cause it has two init functions. The
-# code needs to be cleaned up and split to allow this.
-bld.SAMBA3_MODULE('pdb_ldap',
+bld.SAMBA3_MODULE('pdb_ldapsam',
                  subsystem='pdb',
                  deps='smbldap smbldaphelper',
                  source=PDB_LDAP_SRC,
                  init_function='',
-                 internal_module=True,
-                 enabled=bld.CONFIG_SET('HAVE_LDAP'))
+                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_ldapsam'),
+                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_ldapsam') and bld.CONFIG_SET('HAVE_LDAP'))
 
 bld.SAMBA3_MODULE('pdb_smbpasswd',
                  subsystem='pdb',
diff --git a/source3/wscript b/source3/wscript
index 7c63a9c..84abf76 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -1730,7 +1730,7 @@ main() {
         default_shared_modules.extend(TO_LIST('vfs_aio_linux'))
 
     if conf.CONFIG_SET('HAVE_LDAP'):
-        default_static_modules.extend(TO_LIST('pdb_ldap idmap_ldap'))
+        default_static_modules.extend(TO_LIST('pdb_ldapsam idmap_ldap'))
 
     if conf.CONFIG_SET('DARWINOS'):
         default_static_modules.extend(TO_LIST('charset_macosxfs'))
@@ -1741,6 +1741,19 @@ main() {
     explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',')
     explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',')
 
+    def replace_list_item(lst, item, value):
+        try:
+            idx = lst.index(item)
+            lst[idx] = value
+        except:
+            pass
+    # PDB module file name should have the same name as module registers itself
+    # In Autoconf build we export LDAP passdb module as ldapsam but WAF build
+    # was always exporting pdb_ldap. In order to support existing packages
+    # allow referring to pdb_ldapsam as pdb_ldap but use proper name internally.
+    replace_list_item(explicit_shared_modules, 'pdb_ldap', 'pdb_ldapsam')
+    replace_list_item(explicit_static_modules, 'pdb_ldap', 'pdb_ldapsam')
+
     final_static_modules = default_static_modules
     final_shared_modules = default_shared_modules
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list